Common hacking questions
This page contains answers to various questions and obstacles that hackers (new and old) may come across while hacking Oracle of Ages or Seasons.
- 1 General
- 2 Hacking with ZOLE
- 3 Caveats
Where can I find other Oracles hackers?
The most active place is the official Discord server (https://discord.gg/wCpPPNZ). Users who actively participate in or have knowledge of Oracles hacking have the "Wind Fish" role.
Should I hack Ages or Seasons?
Seasons is not as well supported as Ages by most tools. In ZOLE, certain features are missing from Seasons, such as editing "static objects" (minecarts), and ZOSE does not support scripting (custom events, etc.) in Seasons.
There is no disassembly of Seasons yet. As such, LynnaLab does not yet support Seasons at all, and this wiki is lacking in additional Seasons documentation. It is highly recommended to use Ages for now.
I don't understand some of the notations used on this wiki!
You may want to read the Background information page.
Hacking with ZOLE
When I open my ROM, everything looks corrupted.
Make sure that you opened a US version of Ages or Seasons. European and Japanese versions are not supported.
I'm using a script in a past map from $f0-$f5, but it's behaving strangely.
$f0-$f5 (inclusive) in the past overworld (and past underwater) are unused because their room flags are used to remember the 6 vine sprout positions. As such, moving a vine will also change the room flags in those rooms, which can mess up your scripts.
Even if you're not using vines, their initial positions can still mess up your scripts. You can fix this by going to address
$129e8 in your ROM and changing these 6 bytes all to 00:
41 22 16 35 18 53
You will need to start a new game for this change to take effect.
You can also edit these to other values to change the initial positions of the vines (although changing their rooms is more complicated, since most vine behaviour is hardcoded with "map scripts", as ZOLE calls them.)
How do I handle the Animal Companion regions?
See Room packs.
- Using bombable walls that go left or right in an indoor area in the past overworld/underwater will cause their corresponding room flags to be set in the present overworld/underwater. As a result, not only will it not remember that the wall was destroyed, but it may screw up the flags in the corresponding rooms in the present.
- Bombable walls going up/down aren't affected by this issue, but those kinds don't attempt to set the "wall blown up" flag in the adjacent room (for indoors areas only; they work properly in dungeons).
- See the "setRoomFlagsForUnlockedKeyDoor_overworldOnly" function in the disassembly.
- See the Bug List for more.
Not all rooms are equal. Some have hardcoded behaviour.
- Symmetry City present has a "smooth palette transition" when entering or exiting the area, but it is ignored when the global flag for restoring the tuni nut is unset.
- Bombs are hardcoded to trigger a cutscene in room $0050, the place where you get the bomb upgrade, if they fall into a hazard (water, lava, or a hole).
- The cane of somaria doesn't work in Patch's minigame room.
- In Nayru's house, Link will enter a "sleeping" state by walking into a bed at a specific position.
- Octogon (the boss) is hardcoded to set flags in specific rooms, meaning he may not work properly if relocated.
- Snake's remains entrance is hardcoded to be darkened before the torches are lit.
- The compass is hardcoded to chime in the unicorn cave's boss key room (for some reason).