Miscellaneous hacking notes

From ZeldaHacking Wiki
Jump to: navigation, search

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 and pastMapTextIndices
    • (optional) Add data to presentMinimapPopups.
  • 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 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.

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.