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 Legend of Zelda: Oracle of Seasons/RAM map

From Data Crystal
Jump to navigation Jump to search

NOTE: All values in Tables are Hexadecimal unless noted otherwise.

Chip tiny.png The following article is a RAM map for The Legend of Zelda: Oracle of Seasons.

Bank 0 (C000 - CFFF)


TBD

RAM Size Purpose Note
C5C0 - C5FF Unappraised rings carried
C602 - C606 5 Bytes Player name
C616 - C61D 8 Bytes Rings owned
C61E - C61F 2 Bytes Deaths
C622 - C625 4 Bytes Time passed since power-on
C627 2 Bytes Rupees earned since file creation Value is represented in decimal.

Example: If the total earned rupee count is 8,473, the hexadecimal representation will be 0x8473.

When the count rolls over back to 0, a flag (somewhere) is (probably) set so Vasu will give the Rupee Ring the next time he is spoken with.
C63A 1 Byte Current level bank
C63B 1 Byte Current Absolute Overworld Screen

OR

Current Relative Dungeon Screen
On the overworld, all 256 map tiles are represented in order; left to right, top to bottom, 0x00 - 0xFF.


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. Zelda OoS RAM C63B 01.png
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.Zelda OoS RAM C63C 01.png


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

C65C - C65D A counter for ??? for which various actions increment
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


Items/Collectables

RAM Size Purpose Note
C66F 1 Byte Small Keys (TODO: Test if per dungeon, or total)
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)
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 - C66E
C670 - C679
C67B
C67D
C67F
C692 - C6A1
C6A4
C6AB
C6AD - C6B0
C6B2
C6BC - C6C5
C6C7 - C6FF
C800 - CC2F
CC31 - CDFF
CEB0 - CEFF
CFB0 - CFFF