Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
The Legend of Zelda: Oracle of Seasons/RAM map: Difference between revisions
Jump to navigation
Jump to search
m (Amended C627 - C628 explanation.) |
((Probably) mapped C662 - C66C + Made styles on the tables consistent + Split off into a new dungeon section.) |
||
Line 6: | Line 6: | ||
==TBD== | ==TBD== | ||
{| border="3" cellpadding="7" style=" | {| border="3" cellpadding="7" style="width: 75%;" | ||
! style="text-align: center; | ! style="text-align: center; width: 100px;" | '''RAM''' | ||
! style=" | ! style="width: 75px;" | '''Size''' | ||
! style=" | ! style="width: 300px;" | '''Purpose''' | ||
! '''Note''' | ! '''Note''' | ||
|- | |- | ||
Line 28: | Line 28: | ||
|C63A || 1 Byte || Current level bank || | |C63A || 1 Byte || Current level bank || | ||
|- | |- | ||
|C63B || 1 Byte || Current ''Absolute'' Overworld Screen<br /><br /><center>'''OR'''</center><br />Current ''Relative'' Dungeon Screen || On the overworld, all 256 map tiles are represented in order; left to right, top to bottom, 0x00 - 0xFF.<br /><br /><br />Inside a dungeon, only map tiles that are valid rooms are represented while empty map tiles are not counted; the only empty map tiles that are counted are the ones leading up to the first valid room in order, then from there, the value only increases with each valid room. <span style="float: right | |C63B || 1 Byte || Current ''Absolute'' Overworld Screen<br /><br /><center>'''OR'''</center><br />Current ''Relative'' Dungeon Screen || On the overworld, all 256 map tiles are represented in order; left to right, top to bottom, 0x00 - 0xFF.<br /><br /><br />Inside a dungeon, only map tiles that are valid rooms are represented while empty map tiles are not counted; the only empty map tiles that are counted are the ones leading up to the first valid room in order, then from there, the value only increases with each valid room. <span style="float: right;">[[File:Zelda OoS RAM C63B 01.png|200px]]</span> | ||
|- | |- | ||
|C63C || 1 Byte || Current ''Absolute'' Dungeon Screen || Unlike with C63B, all tiles on the dungeon map, including ones that do not represent a valid room, are counted in order; left to right, top to bottom, 0x00 - 0xFF.<span style="float: right | |C63C || 1 Byte || Current ''Absolute'' Dungeon Screen || Unlike with C63B, all tiles on the dungeon map, including ones that do not represent a valid room, are counted in order; left to right, top to bottom, 0x00 - 0xFF.<span style="float: right;">[[File:Zelda OoS RAM C63C 01.png|200px]]</span> | ||
|} | |} | ||
<br /> | <br /><br /> | ||
==Enemies killed since...== | ==Enemies killed since...== | ||
{| border="3" cellpadding="7" style=" | {| border="3" cellpadding="7" style="width: 75%;" | ||
! style="text-align: center; | ! style="text-align: center; width: 100px;" | '''RAM''' | ||
! style=" | ! style="width: 75px;" | '''Size''' | ||
! style=" | ! style="width: 300px;" | '''Purpose''' | ||
! '''Note''' | ! '''Note''' | ||
|- | |- | ||
Line 77: | Line 77: | ||
|} | |} | ||
<br /> | <br /><br /> | ||
==Mysterious Counter== | ==Mysterious Counter== | ||
Line 99: | Line 99: | ||
|Slay an Enemy || 0x03 || | |Slay an Enemy || 0x03 || | ||
|} | |} | ||
== | <br /><br /> | ||
{| border="3" cellpadding="7" style=" | |||
! style="text-align: center; | ==Dungeon Things== | ||
! style=" | {| border="3" cellpadding="7" style="width: 75%;" | ||
! style=" | ! style="text-align: center; width: 100px;" | '''RAM''' | ||
! style="width: 75px;" | '''Size''' | |||
! style="width: 300px;" | '''Purpose''' | |||
! '''Note''' | ! '''Note''' | ||
|- | |- | ||
| | |C662 || 1 Byte || Has entered Hero's Cave || | ||
|- | |||
|C663 || 1 Byte || Has entered Level 1: Gnarled Root Dungeon || Exiting a sublevel or using a mini-boss warp will also set this flag (though redundant). | |||
|- | |||
|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 Moblin's Keep (?) || | |||
|- | |- | ||
| | |C667 || 1 Byte || Has entered Level 4: Dancing Dragon Dungeon (?) || | ||
|- | |- | ||
| | |C668 || 1 Byte || Has entered Level 5: Unicorn's Cave (?) || | ||
|- | |- | ||
| | |C669 || 1 Byte || Has entered Level 6: Ancient Ruins (?) || | ||
|- | |- | ||
| | |C66A || 1 Byte || Has entered Level 7: Explorer's Crypt (?) || | ||
|- | |- | ||
| | |C66B || 1 Byte || Has entered Level 8: Sword & Shield Maze (?) || | ||
|- | |- | ||
| | |C66C || 1 Byte || Has entered Onox's Castle (?) || | ||
|} | |||
{| border="3" cellpadding="7" style="width: 75%;" | |||
|- | |- | ||
| | | style="width: 100px;" | C66E || style="width: 75px;" | 1 Byte || style="width: 300px;" | 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 — Moblin's Keep (?) || | ||
|- | |- | ||
| | | C673 || 1 Byte || Small Keys — Level 4: Dancing Dragon Dungeon (?) || | ||
|- | |- | ||
|C67E || 1 Byte || Has Dungeon Map || True if value ends in '''2''', '''3''', '''6''', '''7''', '''A''', '''B''', '''E''', or '''F'''<br />(TODO: Determine why multiple values evaluate to True) | | C674 || 1 Byte || Small Keys — Level 5: Unicorn's Cave (?) || | ||
|- | |||
| C675 || 1 Byte || Small Keys — Level 6: Ancient Ruins (?) || | |||
|- | |||
| C676 || 1 Byte || Small Keys — Level 7: Explorer's Crypt (?) || | |||
|- | |||
| C677 || 1 Byte || Small Keys — Level 8: Sword & Shield Maze (?) || | |||
|- | |||
| C678 || 1 Byte || Small Keys — Onox's Castle (?) || | |||
|} | |||
{| border="3" cellpadding="7" style="width: 75%;" | |||
|- | |||
| style="width: 100px;" | C67A || style="width: 75px;" | 1 Byte || style="width: 300px;" | Has Boss Key || True if value ends in '''2''', '''3''', '''6''', '''7''', '''A''', '''B''', '''E''', or '''F'''<br />(TODO: Determine why multiple values evaluate to True) | |||
|- | |||
| C67C || 1 Byte || Has Compass || True if value ends in '''2''', '''3''', '''6''', '''7''', '''A''', '''B''', '''E''', or '''F'''<br />(TODO: Determine why multiple values evaluate to True) | |||
|- | |||
| C67E || 1 Byte || Has Dungeon Map || True if value ends in '''2''', '''3''', '''6''', '''7''', '''A''', '''B''', '''E''', or '''F'''<br />(TODO: Determine why multiple values evaluate to True) | |||
|} | |||
<br /><br /> | |||
==Items/Collectables== | |||
{| border="3" cellpadding="7" style="width: 75%;" | |||
! style="text-align: center; width: 100px;" | '''RAM''' | |||
! style="width: 75px;" | '''Size''' | |||
! style="width: 300px;" | '''Purpose''' | |||
! '''Note''' | |||
|- | |- | ||
|C680 - C691 || || Items || | |C680 - C691 || || Items || | ||
Line 174: | Line 211: | ||
|C6C6 || 1 Byte || Ring Box level || | |C6C6 || 1 Byte || Ring Box level || | ||
|} | |} | ||
<br /> | |||
<br /><br /> | |||
==TBD== | ==TBD== | ||
Line 191: | Line 229: | ||
|CF00 - CFAF || || Current Screen Tile Data || | |CF00 - CFAF || || Current Screen Tile Data || | ||
|} | |} | ||
<br /> | |||
<br /><br /> | |||
==Unmapped== | ==Unmapped== |
Revision as of 00:18, 25 April 2023
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
Enemies killed since...
RAM | Size | Purpose | Note |
---|---|---|---|
C63E | 1 Byte | Last Maple encounter | |
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 |
---|---|---|
Great Fairy Heal | 0x40 | |
Bomb a Wall | 0x32 | |
Collect a Fairy | 0x18 | |
Screen Transition | 0x05 | This excludes entering/exiting structures, or taking mini-boss warps in dungeons. (TODO: Test Gale seeds) |
Collect a Heart | 0x04 | |
Slay an Enemy | 0x03 |
Dungeon Things
RAM | Size | Purpose | Note |
---|---|---|---|
C662 | 1 Byte | Has entered Hero's Cave | |
C663 | 1 Byte | Has entered Level 1: Gnarled Root Dungeon | Exiting a sublevel or using a mini-boss warp will also set this flag (though redundant). |
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 Moblin's Keep (?) | |
C667 | 1 Byte | Has entered Level 4: Dancing Dragon Dungeon (?) | |
C668 | 1 Byte | Has entered Level 5: Unicorn's Cave (?) | |
C669 | 1 Byte | Has entered Level 6: Ancient Ruins (?) | |
C66A | 1 Byte | Has entered Level 7: Explorer's Crypt (?) | |
C66B | 1 Byte | Has entered Level 8: Sword & Shield Maze (?) | |
C66C | 1 Byte | Has entered Onox's Castle (?) |
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 — Moblin's Keep (?) | |
C673 | 1 Byte | Small Keys — Level 4: Dancing Dragon Dungeon (?) | |
C674 | 1 Byte | Small Keys — Level 5: Unicorn's Cave (?) | |
C675 | 1 Byte | Small Keys — Level 6: Ancient Ruins (?) | |
C676 | 1 Byte | Small Keys — Level 7: Explorer's Crypt (?) | |
C677 | 1 Byte | Small Keys — Level 8: Sword & Shield Maze (?) | |
C678 | 1 Byte | Small Keys — Onox's Castle (?) |
C67A | 1 Byte | Has Boss Key | True if value ends in 2, 3, 6, 7, A, B, E, or F (TODO: Determine why multiple values evaluate to True) |
C67C | 1 Byte | Has Compass | True if value ends in 2, 3, 6, 7, A, B, E, or F (TODO: Determine why multiple values evaluate to True) |
C67E | 1 Byte | Has Dungeon Map | True if value ends in 2, 3, 6, 7, A, B, E, or F (TODO: Determine why multiple values evaluate to True) |
Items/Collectables
RAM | Size | Purpose | Note |
---|---|---|---|
C680 - C691 | Items | ||
C6A2 | 1 Byte | Current Hearts | |
C6A3 | 1 Byte | Max Hearts | |
C6A5 - C6A6 | 2 Bytes | Rupees | Value is represented in decimal. Example: If the total rupee count is 639, the hexadecimal representation will be 0x0639. |
C6A7 - C6A8 | 2 Bytes | Ore Chunks | |
C6A9 | 1 Byte | Shield level | |
C6AA | 1 Byte | Current Bombs | |
C6AC | 1 Byte | Sword level | |
C6B1 | 1 Byte | Boomerang level | |
C6B3 | 1 Byte | Slingshot level | |
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 | |
C6C6 | 1 Byte | Ring Box level |
TBD
RAM | Size | Purpose | Note |
---|---|---|---|
C700 - C7FF | 256 Bytes | Overworld Screen Flags (used to track events and map exploration) | |
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 | |
C607 - C615 | |
C620 - C621 | |
C626 | |
C628- C639 | |
C63D | |
C63F - C64B | |
C65E - C66C | |
C679 | |
C67B | |
C67D | |
C67F | |
C692 - C6A1 | |
C6A4 | |
C6AB | |
C6AD - C6B0 | |
C6B2 | |
C6BC - C6C5 | |
C6C7 - C6FF | |
C800 - CC2F | |
CC31 - CDFF | |
CEB0 - CEFF | |
CFB0 - CFFF |