You are not logged in.
Pages: 1
After having added a new map.blk and script.asm file into my crystal hack and attempted to compile it with Cygwin, I received the following error:
"
rgbasm -D _CRYSTAL -D _CRYSTAL11 -L -o data/maps/map_data11.o data/maps/map_data.asm
rgblink -n pokecrystal11.sym -m pokecrystal11.map -l pokecrystal.link -o pokecrystal11.gbc audio11.o home11.o main11.o wram11.o data/text/common11.o data/maps/map_data11.o data/pokemon/dex_entries11.o data/pokemon/egg_moves11.o data/pokemon/evos_attacks11.o engine/movie/credits11.o engine/overworld/events11.o gfx/pics11.o gfx/sprites11.o lib/mobile/main11.o
error: Unable to place 'Events' (ROMX section) at $6730 in bank $25
make: *** [Makefile:91: pokecrystal11.gbc] Error 1
"
While I'm pretty certain this is because the game is running out of space in those banks, or it's maybe overflowing into other sections of the game's storage? I'm still fairly new to pokecrystal romhacking and I'm unsure of the best way to deal with this problem without potentially creating an even larger problem in the process.
Anyways, thank you in advance.
Offline
You should probably just look for empty space for your new maps and scripts. If you don't, you will need to push everything that overflows to a new ROM bank anyway. You can find empty space by compiling pokecrystal without your changes and looking in the resulting pokecrystal11.map file. It will say stuff like:
ROM Bank #1:
SECTION: $4000-$747A ($347B bytes)
...
SLACK: $0B85 bytes
That means there are 0x347B bytes (out of 0x4000) used in ROM Bank 1 with 0x0B85 bytes to spare. Look for ones with much slack, or for ROM banks which say EMPTY:
ROM Bank #121:
EMPTY
ROM Bank #122:
EMPTY
Or you could look at the original ROM file in a Hex Editor and find regions with lots of 0xFF or 0x00 bytes.
Last edited by Tauwasser (2018-10-02 22:06:53)
Offline
One advantage of assembly is that the assembler can do this work for you. The pokecrystal.link linkerscript explicitly places different SECTIONs so it can accurately reproduce a Crystal ROM, but you can just make a new ROMX SECTION without mentioning it in the linkerscript. Then the assembler will place the section anywhere it will fit. (Which does mean the section has to fit within one ROM bank, 16384 bytes, at most.)
Pokémon Polished Crystal (GitHub) — version 2.2.0 released
Pokémon Red★ and Blue★: Space World Edition (GitHub) — updated August 19!
Polished Map: pokered+pokecrystal map, tileset, and palette editor — version 3.5.3 released!
Offline
One advantage of assembly is that the assembler can do this work for you. The pokecrystal.link linkerscript explicitly places different SECTIONs so it can accurately reproduce a Crystal ROM, but you can just make a new ROMX SECTION without mentioning it in the linkerscript. Then the assembler will place the section anywhere it will fit. (Which does mean the section has to fit within one ROM bank, 16384 bytes, at most.)
So for example, Rom Banks 121 and 122 are empty, so I can use the .link file to tell the game to place extra tileset data in those two empty banks?
Offline
Rangi wrote:One advantage of assembly is that the assembler can do this work for you. The pokecrystal.link linkerscript explicitly places different SECTIONs so it can accurately reproduce a Crystal ROM, but you can just make a new ROMX SECTION without mentioning it in the linkerscript. Then the assembler will place the section anywhere it will fit. (Which does mean the section has to fit within one ROM bank, 16384 bytes, at most.)
So for example, Rom Banks 121 and 122 are empty, so I can use the .link file to tell the game to place extra tileset data in those two empty banks?
Sure, but: "just make a new ROMX SECTION without mentioning it in the linkerscript. Then the assembler will place the section anywhere it will fit."
Pokémon Polished Crystal (GitHub) — version 2.2.0 released
Pokémon Red★ and Blue★: Space World Edition (GitHub) — updated August 19!
Polished Map: pokered+pokecrystal map, tileset, and palette editor — version 3.5.3 released!
Offline
Lacerta wrote:Rangi wrote:One advantage of assembly is that the assembler can do this work for you. The pokecrystal.link linkerscript explicitly places different SECTIONs so it can accurately reproduce a Crystal ROM, but you can just make a new ROMX SECTION without mentioning it in the linkerscript. Then the assembler will place the section anywhere it will fit. (Which does mean the section has to fit within one ROM bank, 16384 bytes, at most.)
So for example, Rom Banks 121 and 122 are empty, so I can use the .link file to tell the game to place extra tileset data in those two empty banks?
Sure, but: "just make a new ROMX SECTION without mentioning it in the linkerscript. Then the assembler will place the section anywhere it will fit."
Thank you :D
Offline
Pages: 1