Miscellaneous hacking notes
Jump to navigation
Jump to search
Changing overworld size
The following steps aren't complete yet, but in oracles-disasm it is necessary to:
- Modify constants:
- Change the values of the OVERWORLD_WIDTH and OVERWORLD_HEIGHT constants in
constants/common/other.s
(see also SUBROSIA_WIDTH/HEIGHT) - Change the values of OVERWORLD_MAP_START_X/Y to change where the tile grid starts on the map screen
- Change the values of the OVERWORLD_WIDTH and OVERWORLD_HEIGHT constants in
- Add data:
- Add text indices to
presentMapTextIndices
andpastMapTextIndices
- (optional) Add data to
presentMinimapPopups
.
- Add text indices to
- Modify code:
- Ages only: Modify the implementation of
mapGetRoomIndexWithoutUnusedColumns
- Ages only: If using the final 2 rows of the overworld, do something about the vines, which use up past room flags. The variable "wVinePositions" is defined in terms of the past room flags; giving it a separate memory location to use may suffice.
- Ages only: Modify the implementation of
- Modify graphics:
- Modify the appearance of the map screen to account for the new tiles (no good tools exist for this yet)
- gfx_map_tiles_[present|past]_1.bin: the graphics for the tiles used (part 1)
- gfx_map_tiles_[present|past]_2.bin: the graphics for the tiles used (part 2)
- map_[past|present]_minimap.bin: the layout of the tiles.
- Modify the appearance of the map screen to account for the new tiles (no good tools exist for this yet)
Changing tree warps
In Ages, this is straightforward to edit in ZOLE, except for the tokay island tree. You can only warp there if bit 7 of the room flags in present room $ac has been set.
See the function: getWarpTreeData
to change this behaviour.