datacrystal.romhacking.net → datacrystal.tcrf.net
The Legend of Zelda: Oracle of Seasons/RAM map: Difference between revisions
(Also need to research dungeon floors more.) |
m (Styles make things pretty.) |
||
(One intermediate revision by the same user not shown) | |||
Line 12: | Line 12: | ||
==Sound== | ==Sound== | ||
{| border="3" cellpadding="7" style="width: 75%;" | {| border="3" cellpadding="7" style="width: 75%; margin: 0 0 1em 1em; border-color: #8888cc;" | ||
|- style="background: #ccccff; font-size: 1.5em;" | |||
! style="width: 100px;" | '''Address''' | |||
! style="width: 75px;" | '''Length''' | ! style="width: 75px;" | '''Length''' | ||
! style="width: 300px;" | '''Purpose''' | ! style="width: 300px;" | '''Purpose''' | ||
! ''' | ! '''Info''' | ||
|- | |- | ||
|'''$C024''' || 1 Byte || Sound Volume || | |'''$C024''' || 1 Byte || Sound Volume || | ||
<center> | <center> | ||
{| class="wikitable" style="width: 100%; text-align: center; border: 2px solid black;" | {| class="wikitable" style="width: 100%; text-align: center; border: 2px solid black;" | ||
! colspan="8" style="height: 35px; font-size: 1. | ! colspan="8" style="height: 35px; font-size: 1.3em;" | Bits | ||
|- style="border-top: 2px solid black; border-bottom: 2px solid black; font-size: 1.2em;" | | |- style="border-top: 2px solid black; border-bottom: 2px solid black; font-size: 1.2em;" | | ||
! 0 | ! 0 | ||
Line 49: | Line 50: | ||
<center> | <center> | ||
{| class="wikitable" style="width: 100%; text-align: center; border: 2px solid black;" | {| class="wikitable" style="width: 100%; text-align: center; border: 2px solid black;" | ||
! colspan="9" style="height: 35px; font-size: 1. | ! colspan="9" style="height: 35px; font-size: 1.3em;" | Volume Levels | ||
|- style="border-top: 2px solid black; border-bottom: 2px solid black; font-size: 1.2em;" | | |- style="border-top: 2px solid black; border-bottom: 2px solid black; font-size: 1.2em;" | | ||
! {{Diagonal split header | Speaker | Level | style=border-right: 2px solid black; width: 15%;}} | ! {{Diagonal split header | Speaker | Level | style=border-right: 2px solid black; width: 15%;}} | ||
Line 94: | Line 95: | ||
==TBD== | ==TBD== | ||
{| border="3" cellpadding="7" style="width: 75%;" | {| border="3" cellpadding="7" style="width: 75%; margin: 0 0 1em 1em; border-color: #8888cc;" | ||
|- style="background: #ccccff; font-size: 1.5em;" | |||
! style="text-align: center; width: 100px;" | '''Address''' | ! style="text-align: center; width: 100px;" | '''Address''' | ||
! style="width: 75px;" | '''Length''' | ! style="width: 75px;" | '''Length''' | ||
! style="width: 300px;" | '''Purpose''' | ! style="width: 300px;" | '''Purpose''' | ||
! ''' | ! '''Info''' | ||
|- | |- | ||
|'''$C2EF''' || 1 Byte || Cutscene Index || | |'''$C2EF''' || 1 Byte || Cutscene Index || | ||
Line 108: | Line 110: | ||
<center> | <center> | ||
{| class="mw-collapsible mw-collapsed wikitable" style="width: 100%; text-align: center; border: 2px solid black;" | {| class="mw-collapsible mw-collapsed wikitable" style="width: 100%; text-align: center; border: 2px solid black;" | ||
! colspan="3" style="height: 35px; font-size: 1. | ! colspan="3" style="height: 35px; font-size: 1.3em;" | Cutscenes | ||
|- style="border-top: 2px solid black; border-bottom: 2px solid black; font-size: 1.2em;" | | |- style="border-top: 2px solid black; border-bottom: 2px solid black; font-size: 1.2em;" | | ||
! {{Diagonal split header | Value | Info | style=border-right: 2px solid black; width: 10%;}} | ! {{Diagonal split header | Value | Info | style=border-right: 2px solid black; width: 10%;}} | ||
Line 232: | Line 234: | ||
==TBD== | ==TBD== | ||
{| border="3" cellpadding="7" style="width: 75%;" | {| border="3" cellpadding="7" style="width: 75%; margin: 0 0 1em 1em; border-color: #8888cc;" | ||
|- style="background: #ccccff; font-size: 1.5em;" | |||
! style="text-align: center; width: 100px;" | '''Address''' | ! style="text-align: center; width: 100px;" | '''Address''' | ||
! style="width: 75px;" | '''Length''' | ! style="width: 75px;" | '''Length''' | ||
! style="width: 300px;" | '''Purpose''' | ! style="width: 300px;" | '''Purpose''' | ||
! ''' | ! '''Info''' | ||
|- | |- | ||
|'''$C5C0''' - '''$C5FF''' || 64 Bytes || Unappraised Rings || | |'''$C5C0''' - '''$C5FF''' || 64 Bytes || Unappraised Rings || | ||
Line 243: | Line 246: | ||
<center> | <center> | ||
{| class="wikitable" style="width: 100%; text-align: center; border: 2px solid black;" | {| class="wikitable" style="width: 100%; text-align: center; border: 2px solid black;" | ||
! colspan="6" style="height: 35px; font-size: 1. | ! colspan="6" style="height: 35px; font-size: 1.3em;" | Bytes | ||
|- style="border-top: 2px solid black; border-bottom: 2px solid black; font-size: 1.2em;" | | |- style="border-top: 2px solid black; border-bottom: 2px solid black; font-size: 1.2em;" | | ||
! '''$C602''' | ! '''$C602''' | ||
Line 274: | Line 277: | ||
==Totals Since File Creation== | ==Totals Since File Creation== | ||
{| border="3" cellpadding="7" style="width: 75%;" | {| border="3" cellpadding="7" style="width: 75%; margin: 0 0 1em 1em; border-color: #8888cc;" | ||
|- style="background: #ccccff; font-size: 1.5em;" | |||
! style="text-align: center; width: 100px;" | '''Address''' | ! style="text-align: center; width: 100px;" | '''Address''' | ||
! style="width: 75px;" | '''Length''' | ! style="width: 75px;" | '''Length''' | ||
! style="width: 300px;" | '''Purpose''' | ! style="width: 300px;" | '''Purpose''' | ||
! ''' | ! '''Info''' | ||
|- | |- | ||
|'''$C61E''' - '''$C61F''' || 2 Bytes || Deaths || <u>'''Value is represented in decimal'''</u> | |'''$C61E''' - '''$C61F''' || 2 Bytes || Deaths || <u>'''Value is represented in decimal'''</u> | ||
Line 299: | Line 303: | ||
==TBD== | ==TBD== | ||
{| border="3" cellpadding="7" style="width: 75%;" | {| border="3" cellpadding="7" style="width: 75%; margin: 0 0 1em 1em; border-color: #8888cc;" | ||
|- style="background: #ccccff; font-size: 1.5em;" | |||
! style="text-align: center; width: 100px;" | '''Address''' | ! style="text-align: center; width: 100px;" | '''Address''' | ||
! style="width: 75px;" | '''Length''' | ! style="width: 75px;" | '''Length''' | ||
! style="width: 300px;" | '''Purpose''' | ! style="width: 300px;" | '''Purpose''' | ||
! ''' | ! '''Info''' | ||
|- | |- | ||
|'''$C629''' || 1 Byte || Message Speed || <code>0x00 - 0x04</code><br /><br />Some higher values yield hilarious results such as a letter appearing once per few seconds. | |'''$C629''' || 1 Byte || Message Speed || <code>0x00 - 0x04</code><br /><br />Some higher values yield hilarious results such as a letter appearing once per few seconds. | ||
Line 321: | Line 326: | ||
==Maple: Part 2== | ==Maple: Part 2== | ||
{| border="3" cellpadding="7" style="width: 75%;" | {| border="3" cellpadding="7" style="width: 75%; margin: 0 0 1em 1em; border-color: #8888cc;" | ||
|- style="background: #ccccff; font-size: 1.5em;" | |||
! style="text-align: center; width: 100px;" | '''Address''' | ! style="text-align: center; width: 100px;" | '''Address''' | ||
! style="width: 75px;" | '''Length''' | ! style="width: 75px;" | '''Length''' | ||
! style="width: 300px;" | '''Purpose''' | ! style="width: 300px;" | '''Purpose''' | ||
! ''' | ! '''Info''' | ||
|- | |- | ||
|'''$C63E''' || 1 Byte || Last Maple Encounter || Maple appears at the first available opportunity when this reaches <code>0x1E</code> (greater than or equal to <code>0x0F</code> when wearing Maple's Ring), then it resets to <code>0x00</code>. | |'''$C63E''' || 1 Byte || Last Maple Encounter || Maple appears at the first available opportunity when this reaches <code>0x1E</code> (greater than or equal to <code>0x0F</code> when wearing Maple's Ring), then it resets to <code>0x00</code>. | ||
Line 335: | Line 341: | ||
==Gasha== | ==Gasha== | ||
{| border="3" cellpadding="7" style="width: 75%;" | {| border="3" cellpadding="7" style="width: 75%; margin: 0 0 1em 1em; border-color: #8888cc;" | ||
|- style="background: #ccccff; font-size: 1.5em;" | |||
! style="text-align: center; width: 100px;" | '''Address''' | ! style="text-align: center; width: 100px;" | '''Address''' | ||
! style="width: 75px;" | '''Length''' | ! style="width: 75px;" | '''Length''' | ||
! style="width: 300px;" | '''Purpose''' | ! style="width: 300px;" | '''Purpose''' | ||
! ''' | ! '''Info''' | ||
|- | |- | ||
|'''$C64C''' || 1 Byte || Gasha Seed Planted at ?? || | |'''$C64C''' || 1 Byte || Gasha Seed Planted at ?? || | ||
Line 407: | Line 414: | ||
==Dungeon Things== | ==Dungeon Things== | ||
<!--{| border="3" cellpadding="7" style="width: 75%;" | <!--{| border="3" cellpadding="7" style="width: 75%; margin-left: 1em; border-color: #8888cc;" | ||
|- style="background: #ccccff; font-size: 1.5em;" | |||
! style="text-align: center; width: 100px;" | '''Address''' | ! style="text-align: center; width: 100px;" | '''Address''' | ||
! style="width: 75px;" | '''Length''' | ! style="width: 75px;" | '''Length''' | ||
! style="width: 300px;" | '''Purpose''' | ! style="width: 300px;" | '''Purpose''' | ||
! ''' | ! '''Info''' | ||
|- | |- | ||
|'''$C662 - $C66A''' || 10 Bytes || Visited Floors of Dungeons || Each byte corresponds to 1 dungeon. | |'''$C662 - $C66A''' || 10 Bytes || Visited Floors of Dungeons || Each byte corresponds to 1 dungeon. | ||
|}--> | |}--> | ||
{| border="3" cellpadding="7" style="width: 75%;" | {| border="3" cellpadding="7" style="width: 75%; margin-left: 1em; border-color: #8888cc;" | ||
|- style="background: #ccccff; font-size: 1.5em;" | |||
! style="text-align: center; width: 100px;" | '''Address''' | ! style="text-align: center; width: 100px;" | '''Address''' | ||
! style="width: 75px;" | '''Length''' | ! style="width: 75px;" | '''Length''' | ||
! style="width: 300px;" | '''Purpose''' | ! style="width: 300px;" | '''Purpose''' | ||
! ''' | ! '''Info''' | ||
|- | |- | ||
| style="width: 100px;" | '''$C66E''' || style="width: 75px;" | 1 Byte || style="width: 300px;" | Small Keys — Hero's Cave || | | style="width: 100px;" | '''$C66E''' || style="width: 75px;" | 1 Byte || style="width: 300px;" | Small Keys — Hero's Cave || | ||
Line 439: | Line 448: | ||
| '''$C676''' || 1 Byte || Small Keys — Level 8: Sword & Shield Maze || | | '''$C676''' || 1 Byte || Small Keys — Level 8: Sword & Shield Maze || | ||
|} | |} | ||
{| border="3" cellpadding="7" style="width: 75%;" | {| border="3" cellpadding="7" style="width: 75%; margin: 0 0 1em 1em; border-color: #8888cc;" | ||
|- | |- | ||
| style="width: 100px;" | '''$C67A''' || style="width: 75px;" | 1 Byte || style="width: 300px;" | Has Big Key(s) ||rowspan="3"|<!--'''<code>0x01</code>''' — Hero's Cave<br />'''<code>0x02</code>''' — Level 1: Gnarled Root Dungeon<br />'''<code>0x04</code>''' — Level 2: Snake's Remains<br />'''<code>0x08</code>''' — Level 3: Poison Moth's Lair<br />'''<code>0x10</code>''' — Level 4: Dancing Dragon Dungeon<br />'''<code>0x20</code>''' — Level 5: Unicorn's Cave<br />'''<code>0x40</code>''' — Level 6: Ancient Ruins<br />'''<code>0x80</code>''' — Level 7: Explorer's Crypt<br /><br />'''<code>0xFF</code>''' — Level 8: Sword & Shield Maze<br /><br /> | | style="width: 100px;" | '''$C67A''' || style="width: 75px;" | 1 Byte || style="width: 300px;" | Has Big Key(s) ||rowspan="3"|<!--'''<code>0x01</code>''' — Hero's Cave<br />'''<code>0x02</code>''' — Level 1: Gnarled Root Dungeon<br />'''<code>0x04</code>''' — Level 2: Snake's Remains<br />'''<code>0x08</code>''' — Level 3: Poison Moth's Lair<br />'''<code>0x10</code>''' — Level 4: Dancing Dragon Dungeon<br />'''<code>0x20</code>''' — Level 5: Unicorn's Cave<br />'''<code>0x40</code>''' — Level 6: Ancient Ruins<br />'''<code>0x80</code>''' — Level 7: Explorer's Crypt<br /><br />'''<code>0xFF</code>''' — Level 8: Sword & Shield Maze<br /><br /> | ||
Line 457: | Line 466: | ||
==Items== | ==Items== | ||
{| border="3" cellpadding="7" style="width: 75%;" | {| border="3" cellpadding="7" style="width: 75%; margin: 0 0 1em 1em; border-color: #8888cc;" | ||
|- style="background: #ccccff; font-size: 1.5em;" | |||
! style="text-align: center; width: 100px;" | '''Address''' | ! style="text-align: center; width: 100px;" | '''Address''' | ||
! style="width: 75px;" | '''Length''' | ! style="width: 75px;" | '''Length''' | ||
! style="width: 300px;" | '''Purpose''' | ! style="width: 300px;" | '''Purpose''' | ||
! ''' | ! '''Info''' | ||
|- | |- | ||
|'''$C680''' || 1 Byte || Item on '''B''' Button || | |'''$C680''' || 1 Byte || Item on '''B''' Button || | ||
Line 473: | Line 483: | ||
{| border="3" cellpadding="7" style="width: 75%;" | {| border="3" cellpadding="7" style="width: 75%; margin: 0 0 1em 1em; border-color: #8888cc;" | ||
|- style="background: #ccccff; font-size: 1.5em;" | |||
! style="text-align: center; width: 100px;" | '''Address''' | ! style="text-align: center; width: 100px;" | '''Address''' | ||
! style="width: 75px;" | '''Length''' | ! style="width: 75px;" | '''Length''' | ||
! style="width: 300px;" | '''Purpose''' | ! style="width: 300px;" | '''Purpose''' | ||
! ''' | ! '''Info''' | ||
|- | |- | ||
|'''$C6A2''' || 1 Byte || Current Hearts || This represents the current number of quarter-hearts the player has (each full heart is equal to <code>0x04</code>). | |'''$C6A2''' || 1 Byte || Current Hearts || This represents the current number of quarter-hearts the player has (each full heart is equal to <code>0x04</code>). | ||
Line 528: | Line 539: | ||
<center> | <center> | ||
{| class="wikitable" style="width: 100%; text-align: center; border: 2px solid black;" | {| class="wikitable" style="width: 100%; text-align: center; border: 2px solid black;" | ||
! colspan="9" style="height: 35px; font-size: 1. | ! colspan="9" style="height: 35px; font-size: 1.3em;" | Bits | ||
|- style="border-top: 2px solid black; border-bottom: 2px solid black; font-size: 1.2em;" | | |- style="border-top: 2px solid black; border-bottom: 2px solid black; font-size: 1.2em;" | | ||
! {{Diagonal split header | State | Bit | style=border-right: 2px solid black; width: 10%;}} | ! {{Diagonal split header | State | Bit | style=border-right: 2px solid black; width: 10%;}} | ||
Line 576: | Line 587: | ||
<center> | <center> | ||
{| class="wikitable" style="width: 100%; text-align: center; border: 2px solid black;" | {| class="wikitable" style="width: 100%; text-align: center; border: 2px solid black;" | ||
! colspan="9" style="height: 35px; font-size: 1. | ! colspan="9" style="height: 35px; font-size: 1.3em;" | Bits | ||
|- style="border-top: 2px solid black; border-bottom: 2px solid black; font-size: 1.2em;" | | |- style="border-top: 2px solid black; border-bottom: 2px solid black; font-size: 1.2em;" | | ||
! 0 | ! 0 | ||
Line 608: | Line 619: | ||
<center> | <center> | ||
{| class="wikitable" style="width: 100%; text-align: center; border: 2px solid black;" | {| class="wikitable" style="width: 100%; text-align: center; border: 2px solid black;" | ||
! colspan="8" style="height: 35px; font-size: 1. | ! colspan="8" style="height: 35px; font-size: 1.3em;" | Bits | ||
|- style="border-top: 2px solid black; border-bottom: 2px solid black; font-size: 1.2em;" | | |- style="border-top: 2px solid black; border-bottom: 2px solid black; font-size: 1.2em;" | | ||
! 0 | ! 0 | ||
Line 649: | Line 660: | ||
==TBD== | ==TBD== | ||
{| border="3" cellpadding="7" style=" | {| border="3" cellpadding="7" style="width: 75%; margin: 0 0 1em 1em; border-color: #8888cc;" | ||
|- style="background: #ccccff; font-size: 1.5em;" | |||
! style="text-align: center; min-width: 100px;" | '''Address''' | ! style="text-align: center; min-width: 100px;" | '''Address''' | ||
! style="min-width: 75px;" | '''Length''' | ! style="min-width: 75px;" | '''Length''' | ||
! style="min-width: 300px;" | '''Purpose''' | ! style="min-width: 300px;" | '''Purpose''' | ||
! ''' | ! '''Info''' | ||
|- | |- | ||
|'''$C700''' - '''$C7FF''' || 256 Bytes || Overworld Screen Flags (used to track events and map exploration) || Todo: Specify which each address tracks. | |'''$C700''' - '''$C7FF''' || 256 Bytes || Overworld Screen Flags (used to track events and map exploration) || Todo: Specify which each address tracks. | ||
Line 669: | Line 681: | ||
==Unmapped== | ==Unmapped== | ||
{| border="3" cellpadding="7" style="max-width: 75%;" | {| border="3" cellpadding="7" style="max-width: 75%; margin: 0 0 1em 1em; border-color: #8888cc;" | ||
|- style="background: #ccccff; font-size: 1.5em;" | |||
! style="text-align: center;" | '''Address''' | ! style="text-align: center;" | '''Address''' | ||
! ''' | ! '''Info''' | ||
|- | |- | ||
|'''$C000''' - '''$C023''' || | |'''$C000''' - '''$C023''' || |
Revision as of 18:30, 12 July 2024
The following article is a RAM map for The Legend of Zelda: Oracle of Seasons.
Note: All values in tables are hexadecimal unless noted otherwise.
Bank 0 ($C000 - $CFFF)
This map is a work in progress.
Sound
Address | Length | Purpose | Info | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$C024 | 1 Byte | Sound Volume |
Note: A value of 0 for either speaker does NOT turn the sound for that speaker off, it is instead the lowest volume level. |
TBD
Address | Length | Purpose | Info | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$C2EF | 1 Byte | Cutscene Index |
|
TBD
Address | Length | Purpose | Info | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$C5C0 - $C5FF | 64 Bytes | Unappraised Rings | |||||||||||||||||||
$C602 - $C607 | 6 Bytes | Player Name |
| ||||||||||||||||||
$C616 - $C61D | 8 Bytes | Rings Owned | Todo: Map which bits correspond to which rings. |
Totals Since File Creation
Address | Length | Purpose | Info |
---|---|---|---|
$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
Maple: Part 2
Address | Length | Purpose | Info |
---|---|---|---|
$C63E | 1 Byte | Last Maple Encounter | Maple appears at the first available opportunity when this reaches 0x1E (greater than or equal to 0x0F when wearing Maple's Ring), then it resets to 0x00 .
|
Gasha
Address | Length | Purpose | Info | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$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 | ||||||||||||||||||||||||||||
$C65C - $C65D | 2 Bytes | Gasha Prize Quality |
|
Dungeon Things
Address | Length | Purpose | Info |
---|---|---|---|
$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
Address | Length | Purpose | Info |
---|---|---|---|
$C680 | 1 Byte | Item on B Button | |
$C681 | 1 Byte | Item on A Button | |
$C682 - $C691 | 16 Bytes | Inventory Storage | Todo: Map possible items. |
Address | Length | Purpose | Info | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$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 | ||||||||||||||||||||||||||||||||
$C6AD | 1 Byte | Current Bombchus | ||||||||||||||||||||||||||||||||
$C6AE | 1 Byte | Seed Satchel Level | Determines satchel capacity. | |||||||||||||||||||||||||||||||
$C6AF | 1 Byte | Flute Icon | This will determine which song plays and what icon appears on the flute, but not which companion Link actually currently has. | |||||||||||||||||||||||||||||||
$C6B0 | 1 Byte | Obtained Seasons | ||||||||||||||||||||||||||||||||
$C6B1 | 1 Byte | Boomerang level | ||||||||||||||||||||||||||||||||
$C6B2 | 1 Byte | Magnetic Gloves Polarity |
| |||||||||||||||||||||||||||||||
$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 |
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
Address | Length | Purpose | Info |
---|---|---|---|
$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
Address | Info |
---|---|
$C000 - $C023 | |
$C025 - $C2EE | |
$C2F0 - $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 | |
$C662 - $C66C | Dungeon flags |
$C677 - $C679 | |
$C67B | |
$C67D | |
$C67F | |
$C692 - $C6A1 | |
$C6BC - $C6C5 | |
$C6C7 - $C6FF | |
$C800 - $CC2F | |
$CC31 - $CDFF | |
$CEB0 - $CEFF | |
$CFB0 - $CFFF |
External Links
Internal Data for The Legend of Zelda: Oracle of Seasons
| |
---|---|