The current URL is datacrystal.tcrf.net.
The Legend of Zelda: Oracle of Seasons/RAM map
NOTE: All values in Tables are Hexadecimal unless noted otherwise.
The following article is a RAM map for The Legend of Zelda: Oracle of Seasons.
Bank 0 ($C000 - $CFFF)
TBD
RAM | Length | Purpose | Note | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$C5C0 - $C5FF | 64 Bytes | Unappraised Rings Carried | |||||||||||||||||||
$C602 - $C607 | 6 Bytes | Player Name |
| ||||||||||||||||||
$C616 - $C61D | 8 Bytes | Rings Owned |
Totals Since File Creation
RAM | Length | Purpose | Note |
---|---|---|---|
$C61E - $C61F | 2 Bytes | Deaths | Value is represented in decimal
|
$C620 - $C621 | 2 Bytes | Enemies Killed | When total killed enemies reaches 0x03E8 , 0x01 is added to $C6CA to set a flag for Vasu to give the Slayer's Ring, and this no longer increments when killing enemies.
|
$C622 - $C625 | 4 Bytes | Time Passed (in frames) | |
$C626 | 1 Byte | Signs Destroyed | |
$C627 - $C628 | 2 Bytes | Rupees Collected | Value is represented in decimal. Example: If the total earned rupee count is 8,473, the hexadecimal representation will be 0x8473 .When a rupee gain pushes the value over 0x9999 , the value is then set to 0x6363, the value will no longer change, and $C6CA is then incremented by 0x02 so that Vasu will give the Rupee Ring the next time he is spoken with.
|
TBD
Enemies killed since...
RAM | Length | Purpose | Note |
---|---|---|---|
$C63E | 1 Byte | Last Maple Encounter | Maple appears at the first available opportunity when this reaches 0x1E , then it resets to 0x00 .
|
$C64C | 1 Byte | Gasha Seed Planted at ?? | |
$C64D | 1 Byte | Gasha Seed Planted at ?? | |
$C64E | 1 Byte | Gasha Seed Planted at ?? | |
$C64F | 1 Byte | Gasha Seed Planted at ?? | |
$C650 | 1 Byte | Gasha Seed Planted at ?? | |
$C651 | 1 Byte | Gasha Seed Planted at ?? | |
$C652 | 1 Byte | Gasha Seed Planted at ?? | |
$C653 | 1 Byte | Gasha Seed Planted at ?? | |
$C654 | 1 Byte | Gasha Seed Planted at ?? | |
$C655 | 1 Byte | Gasha Seed Planted at ?? | |
$C656 | 1 Byte | Gasha Seed Planted at K7 | |
$C657 | 1 Byte | Gasha Seed Planted at ?? | |
$C658 | 1 Byte | Gasha Seed Planted at ?? | |
$C659 | 1 Byte | Gasha Seed Planted at ?? | |
$C65A | 1 Byte | Gasha Seed Planted at ?? | |
$C65B | 1 Byte | Gasha Seed Planted at M9 |
Mysterious Counter
Action | Incrementation | Note |
---|---|---|
Dig a Hole | 0x01 |
|
Slay an Enemy | 0x03 |
This excludes using gale seeds on enemies, and knocking them into water/holes. |
Collect a Heart | 0x04 |
|
Screen Transition | 0x05 |
This excludes entering/exiting structures, or taking mini-boss warps in dungeons. |
Collect a Fairy | 0x18 |
|
Bomb a Wall | 0x32 |
|
Great Fairy Heal | 0x40 |
|
Collect a Heart Piece | 0x64 |
Dungeon Things
RAM | Length | Purpose | Note |
---|---|---|---|
$C662 | 1 Byte | Has entered Hero's Cave | Exiting a sublevel or using a mini-boss warp in the corresponding level will also set these flags (though redundant). [There's more to these addresses than originally thought. More exploration needed.] |
$C663 | 1 Byte | Has entered Level 1: Gnarled Root Dungeon | |
$C664 | 1 Byte | Has entered Level 2: Snake's Remains | |
$C665 | 1 Byte | Has entered Level 3: Poison Moth's Lair (?) | |
$C666 | 1 Byte | Has entered Level 4: Dancing Dragon Dungeon (?) | |
$C667 | 1 Byte | Has entered Level 5: Unicorn's Cave (?) | |
$C668 | 1 Byte | Has entered Level 6: Ancient Ruins (?) | |
$C669 | 1 Byte | Has entered Level 7: Explorer's Crypt (?) | |
$C66A | 1 Byte | Has entered Level 8: Sword & Shield Maze (?) |
$C66E | 1 Byte | Small Keys — Hero's Cave | |
$C66F | 1 Byte | Small Keys — Level 1: Gnarled Root Dungeon | |
$C670 | 1 Byte | Small Keys — Level 2: Snake's Remains | |
$C671 | 1 Byte | Small Keys — Level 3: Poison Moth's Lair | |
$C672 | 1 Byte | Small Keys — Level 4: Dancing Dragon Dungeon | |
$C673 | 1 Byte | Small Keys — Level 5: Unicorn's Cave | |
$C674 | 1 Byte | Small Keys — Level 6: Ancient Ruins | |
$C675 | 1 Byte | Small Keys — Level 7: Explorer's Crypt | |
$C676 | 1 Byte | Small Keys — Level 8: Sword & Shield Maze |
$C67A | 1 Byte | Has Big Key(s) | |
$C67C | 1 Byte | Has Compass(s) | |
$C67E | 1 Byte | Has Dungeon Map(s) |
Items
RAM | Length | Purpose | Note |
---|---|---|---|
$C680 | 1 Byte | Item on B Button | |
$C681 | 1 Byte | Item on A Button | |
$C682 | 1 Byte | Inventory Slot 1 | |
$C683 | 1 Byte | Inventory Slot 2 | |
$C684 | 1 Byte | Inventory Slot 3 | |
$C685 | 1 Byte | Inventory Slot 4 | |
$C686 | 1 Byte | Inventory Slot 5 | |
$C687 | 1 Byte | Inventory Slot 6 | |
$C688 | 1 Byte | Inventory Slot 7 | |
$C689 | 1 Byte | Inventory Slot 8 | |
$C68A | 1 Byte | Inventory Slot 9 | |
$C68B | 1 Byte | Inventory Slot 10 | |
$C68C | 1 Byte | Inventory Slot 11 | |
$C68D | 1 Byte | Inventory Slot 12 | |
$C68E | 1 Byte | Inventory Slot 13 | |
$C68F | 1 Byte | Inventory Slot 14 | |
$C690 | 1 Byte | Inventory Slot 15 | |
$C691 | 1 Byte | Inventory Slot 16 |
RAM | Length | Purpose | Note | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$C6A2 | 1 Byte | Current Hearts | This represents the current number of quarter-hearts the player has (each full heart is equal to 0x04 ).
| |||||||||||||||||||||||||||
$C6A3 | 1 Byte | Max Hearts | This represents the maximum number of quarter-hearts the player can have (each full heart is equal to 0x04 ).
| |||||||||||||||||||||||||||
$C6A4 | 1 Byte | Number of Heart Pieces | Valid values are 0x00 - 0x03 .
| |||||||||||||||||||||||||||
$C6A5 - $C6A6 | 2 Bytes | Rupees | Value is represented in decimal.
| |||||||||||||||||||||||||||
$C6A7 - $C6A8 | 2 Bytes | Ore Chunks | ||||||||||||||||||||||||||||
$C6A9 | 1 Byte | Shield level | ||||||||||||||||||||||||||||
$C6AA | 1 Byte | Current Bombs | Value is represented in decimal. | |||||||||||||||||||||||||||
$C6AB | 1 Byte | Max bombs | Value is represented in decimal. | |||||||||||||||||||||||||||
$C6AC | 1 Byte | Sword level | ||||||||||||||||||||||||||||
$C6B1 | 1 Byte | Boomerang level | ||||||||||||||||||||||||||||
$C6B3 | 1 Byte | Slingshot level | ||||||||||||||||||||||||||||
$C6B2 | 1 Byte | Magnetic Gloves Polarity |
| |||||||||||||||||||||||||||
$C6B4 | 1 Byte | Roc's feather level | ||||||||||||||||||||||||||||
$C6B5 | 1 Byte | Ember Seeds | ||||||||||||||||||||||||||||
$C6B6 | 1 Byte | Scent Seeds | ||||||||||||||||||||||||||||
$C6B7 | 1 Byte | Pegasus Seeds | ||||||||||||||||||||||||||||
$C6B8 | 1 Byte | Gale Seeds | ||||||||||||||||||||||||||||
$C6B9 | 1 Byte | Mystery Seeds | ||||||||||||||||||||||||||||
$C6BA | 1 Byte | Gasha Seeds | ||||||||||||||||||||||||||||
$C6BB | 1 Byte | Essences |
Example: If the value of this address is
Any value in this address is valid, but many of them will not normally be used unless essences are collected out of sequence. Assuming all essences are collected in sequence, the value will progress setting each bit in sequence, as follows:
0x00 -> 0x01 -> 0x03 -> 0x07 -> 0x0F -> 0x1F -> 0x3F -> 0x7F -> 0xFF
| |||||||||||||||||||||||||||
$C6CA | 1 Byte | Vasu Ring Flags |
Example: If the value is
| |||||||||||||||||||||||||||
$C6C6 | 1 Byte | Ring Box level |
TBD
RAM | Length | Purpose | Note |
---|---|---|---|
$C700 - $C7FF | 256 Bytes | Overworld Screen Flags (used to track events and map exploration) | Todo: Specify which each address tracks. |
$CC30 | 1 Byte | Enemies left on screen | |
$CE00 - $CEAF | Current Screen Collision Data | Dynamically generated from the screen tile data. This space is also used as a temporary store for compressed level data read from ROM. | |
$CF00 - $CFAF | Current Screen Tile Data |
Unmapped
RAM | Note |
---|---|
$C000 - $C5BF | |
$C600 - $C601 | |
$C608 - $C615 | |
$C620 - $C621 | |
$C628 - $C639 | |
$C63F | Shop 1 item flags? |
$C640 | Shop 2 item flags? |
$C641 | Maple flags? |
$C642 | Subrosian shop item flags? |
$C643 | Ricky flags? |
$C644 | Dimitri flags? |
$C645 | Moosh flags? |
$C646 - $C64B | |
$C65E - $C661 | |
$C66B - $C66C | |
$C677 - $C679 | |
$C67B | |
$C67D | |
$C67F | |
$C692 - $C6A1 | |
$C6AD - $C6B0 | |
$C6BC - $C6C5 | |
$C6C7 - $C6FF | |
$C800 - $CC2F | |
$CC31 - $CDFF | |
$CEB0 - $CEFF | |
$CFB0 - $CFFF |
Internal Data for The Legend of Zelda: Oracle of Seasons
| |
---|---|