Miscellaneous hacking notes

From ZeldaHacking Wiki
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
  • Add data:
    • Add text indices to presentMapTextIndices and pastMapTextIndices
    • (optional) Add data to presentMinimapPopups.
  • 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.
  • 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 to change this behaviour.