Save Data
The save data is a 256kb file named EEP_NSZE for USA and EEP_NSZJ for Japanese. It's contents are not laid out the exact same between the two versions. USA has only two files along with two owl statue saves while Japanese has three files and no owl statue saves. Not all of the space in the file is used. For the USA save data ~62.5% of the file isn't used while on Japanese ~56.25% isn't used.
Below is a table. This lists all the offsets of where the corresponding data appears in the file for each version.
The padding section is completely unused. This is where all of ZC's contents are placed.
Despite it not being used it is still saved. This means that any changes that happen to this data, such as the state of the codes, will be saved via Song of Time in game.
ZC Data
ZC's data is placed into the unused padding section of the save data and begins at offset 0x1C080 on both versions. This makes it consistent across both versions even though it leaves extra unused space on the USA version.
Below is a table. This lists all the offsets of where the corresponding data appears in the file.
State Flags
All State flags determines what color and icon to show over the HUD Rupee indicator at the bottom left of the screen.
Codes State
Mem File State
Tatl Texts State
Lock Warp State
Tunic Edit State
Tunic Color Channel State
Rainbow Tunic State
Mem File Slot State
Tunic Colors
These control what color Link's tunic currently is. The regular color is just static but can be edited to any rgb value. The rainbow color is constantly cycling the colors of the rainbow every frame.
Item and Mask Inventory
The inventories are a table of bytes for all the items in the inventory. The item and mask inventory codes get the slot that the pause cursor is currently on. Then it goes into the table for that item slot and gets the value then places it into that slot of the inventory.
Camera Data
The camera data is the stored location of where the camera was when the camera control code gets activated. This is then used to restore the camera's position and angle when camera control is then disabled.
Warps
The warps is a table of all the locations that can be warped to using the set warp code. Based on what the rupee count is the set warp code calculates which warp from the table to use.
Mem Files
The mem files store data relative to the current game state. This data can be stored and then loaded back. Each mem file is 0x6000 (24,576) bytes and consists of the following data.
Note that sub offsets are relative to the current data's offset. i.e. Link's Position offset is 0x0000, then the sub offset for Y is 0x0004. This means the offset into the mem file for Link's Y Position is then 0x0004 (0x0000 + 0x0004).
Gecko Code List
The code list is basically an array of all the lines of gecko code. The code list currently starts at 0x221E0 and can extend all the way to the end of the file. This means that currently there is space for 9,156 lines of gecko code. To view the current list of codes head over to the Code List.
The code list is currently up to date as of the 0.2 version of the Save Data. Something important to keep in mind is the order of the codes. All of the codes listed are in the exact order as they appear in the save data. The codehandler simply iterates over all the lines of gecko code and executes them. Many codes will start a condition that does not get immediately ended. Meaning any following codes are also under that condition until it is ended.