Miscellaneous hacking notes
From ZeldaHacking Wiki
Changing overworld size
The following steps aren't complete yet, but in ages-disasm it is necessary to:
- Modify constants:
- Change the values of the OVERWORLD_WIDTH and OVERWORLD_HEIGHT constants in constants/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
- Add data:
- Add text indices to
presentMapTextIndices
andpastMapTextIndices
- (optional) Add data to
presentMinimapPopups
.
- Add text indices to
- Modify code:
- Modify the implementation of
_mapGetRoomIndexWithoutUnusedColumns (02:6621)
- 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.
- 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 (02:66d4)
to change this behaviour.