-
Notifications
You must be signed in to change notification settings - Fork 44
Common Hacking Questions
This page contains answers to various questions and obstacles I anticipate hackers (new and old) to come across while hacking Oracle of Ages or Seasons.
Due to the number of hard-coded events in the Oracles, the solutions to many of these problems will involve hex editing.
Ever since the demise of Zeldahacking.net, we congregate at a discord server and irc server. The two servers are linked together with a bot.
Discord invite link: https://discord.gg/Y8zRPCD
IRC Server: irc.caffie.net, Channel: #zole
ZOLE 4 is the primary editor for Oracle of Ages and Seasons. The latest version is called "ZOLE 4.5 Update 3", which has a nicer interface than Lin's last release of ZOLE 4 and fixes some bugs. (TODO: link)
Although it is recommended to use ZOLE for now, the plan is to replace it with LynnaLab when it is ready. LynnaLab works by editing the Oracle of Ages disassembly. It is considerably more complicated to set up, but it will be considerably more powerful (and less prone to corruption).
Seasons is not as well supported as Ages. In ZOLE, certain features are missing from Seasons, such as editing "static objects" (minecarts).
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.
Make sure that you opened a US version of Ages or Seasons. European and Japanese versions are not supported.
Maps $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.)
For now, I will give instructions on how to disable some of the special code that the Animal region has. It is possible that these instructions can be modified to move the companion regions elsewhere.
The changing animal region makes use of "Room Packs" to inform the game that it needs special behaviour. Each room with a room pack value of $7f
is treated as a companion region, which may cause unwanted behaviour.
To fix this, change all values of $7f
to $01
. Do this in a hex editor by going to offset $10770
(roughly), and change all of the $7f
values you see there. There should be 7 of them, since there are 7 rooms that change depending on the companion.
This solution needs more testing to determine if it really gets rid of all special behaviour in those rooms. (dynamically changing area ID, loading the layout from underwater areas, etc)