RAM Map
From CloudModding OoT Wiki
For a listing of function addresses, see Function Map.
To Do: Merge the two sections of this article. |
Contents
RAM Map
Identification | NTSC 1.0 | N64DD | Debug | ||||||
---|---|---|---|---|---|---|---|---|---|
Start | End | Size | Start | End | Size | Start | End | Size | |
RDRAM | 80000000 | 80400000 | 400000 | 80000000 | 80600000 | 600000 | 80000000 | 80600000 | 600000 |
makerom | 80000000 | 80000460 | 460 | 80000000 | 80000460 | 460 | 80000000 | 80000460 | 460 |
boot | 80000460 | 80006830 | 63D0 | 80000460 | 80006830 | 63D0 | 80000460 | 80012370 | 11F10 |
80006830 | 80006850 | 20 | 80006830 | 80006850 | 20 | 80012370 | 80012390 | 20 | |
OSThread idle | 80006850 | 80006850 | 80012390 | ||||||
dmadata | 8000B140 | 800110A0 | 5F60 | 8000B140 | 800110A0 | 5F60 | 80016DA0 | 8001CE60 | 60C0 |
code | 800110A0 | 80114DD0 | 103D30 | 800110A0 | 80114DD0 | 103D30 | 8001CE60 | 80157D90 | 13AF30 |
80114DD0 | 80114DE8 | 18 | 80114DD0 | 80114DE8 | 18 | 80157D90 | 80157DA8 | 18 | |
Unknown Particle 1 | 80114DE8 | 801152AC | 4C4 | 80114DE8 | 801152AC | 4C4 | |||
Unknown Particle 2 | 8011A0E8 | 8011A5AC | 4C4 | 8011A0E8 | 8011A5AC | 4C4 | |||
8011A5AC | 8011A5D0 | 24 | 8011A5AC | 8011A5D0 | 24 | ||||
Save Context | 8011A5D0 | 8011BA00 | 1430 | 8011A5D0 | 8011BA00 | 1430 | 8015E660 | 8015FA90 | 1430 |
8011BA00 | 8011C000 | 600 | 8011BA00 | 8011C000 | 600 | 8015FA90 | |||
8011C000 | 8011CBC0 | BC0 | 8011C000 | 8011CBC0 | BC0 | ||||
OSThread sched | 8011D318 | 8011D318 | 801666D8 | ||||||
Input Context | 8011D500 | 8011D968 | 468 | 8011D500 | 8011D968 | 468 | 801668C0 | ||
OSThread padmgr | 8011D580 | 8011D580 | 80166940 | ||||||
8011D968 | 8011D968 | 80166D28 | |||||||
OSThread irqmgr | 8011DA00 | 8011DA00 | 80166DC0 | ||||||
OSThread graph | 8011DBE8 | 8011DBE8 | |||||||
graph Thread Stack | 8011DD98 | 8011F598 | 1800 | 8011DD98 | 8011F598 | 1800 | |||
Graphics Context | 8011F290 | 8011F588 | 2F8 | 8011F290 | 8011F588 | 2F8 | 80168688 | ||
sched Thread Stack | 8011F598 | 8011F998 | 400 | 8011F598 | 8011F998 | 400 | |||
audio Thread Stack | 8011F998 | 80120198 | 800 | 8011F998 | 80120198 | 800 | |||
padmgr Thread Stack | 80120198 | 80120698 | 500 | 80120198 | 80120698 | 500 | |||
irqmgr Thread Stack | 80120698 | 80120B98 | 500 | 80120698 | 80120B98 | 500 | |||
OSThread audio | 80120D60 | 80120D60 | |||||||
OSThread fault | 80121290 | 80121290 | |||||||
Audio Context | 80125630 | 8012BA80 | 6450 | 80125630 | 8012BA80 | 6450 | |||
Z-Buffer | 8012BE40 | 80151640 | 25800 | 8012BE40 | 80151640 | 25800 | 801759C0 | ||
80151640 | 80151640 | ||||||||
Frame 0 Display List Buffer | 8016A640 | 8017CA50 | 12410 | 8016A640 | 8017CA50 | 12410 | |||
Frame 1 Display List Buffer | 8017CA50 | 8018EE60 | 12410 | 8017CA50 | 8018EE60 | 12410 | |||
801A7944 | 801A7D40 | 3FC | 801A7944 | 801A7D40 | 3FC | ||||
801A7D40 | 801AAD40 | 3000 | 801A7D40 | 801AAD50 | 3010 | ||||
801AAD40 | 801ADD50 | 3010 | 801AAD50 | 801ADD50 | 3000 | ||||
801ADD50 | 801ADE50 | 100 | 801ADD50 | 801ADE50 | 100 | ||||
801ADE50 | 801B15E0 | 3790 | 801ADE50 | 801B15E0 | 3790 | ||||
801B15E0 | 801B1A60 | 480 | 801B15E0 | 801B1A60 | 480 | ||||
801B1A60 | 801B1BE0 | 180 | 801B1A60 | 801B2060 | 600 | ||||
801B2060 | 801B2500 | 4A0 | |||||||
801B2500 | 801B2760 | 260 | |||||||
Audiotable | 801B1BE0 | 801C0560 | E980 | 801B2760 | 801C0560 | DE00 | 802096C0 | ||
801C0560 | 801C1BD0 | 1670 | 801C0560 | 801C1BD0 | 1670 | ||||
801C1BD0 | 801C2CD0 | 1100 | 801C1BD0 | 801C2CD0 | 1100 | ||||
801C2CD0 | 801C43D0 | 1700 | 801C2CD0 | 801C43D0 | 1700 | ||||
801C43D0 | 801C4420 | 50 | 801C43D0 | 801C4410 | 40 | ||||
801C4420 | 801C5240 | E20 | 801C4410 | 801C4C90 | 880 | ||||
801C5240 | 801C52C0 | 80 | 801C4C90 | 801C4D10 | 80 | ||||
801C52C0 | 801C54A0 | 1E0 | 801C4D10 | 801C4E90 | 180 | ||||
801C54A0 | 801C59A0 | 500 | 801C4E90 | 801C5390 | 500 | ||||
801C59A0 | 801C6E60 | 14C0 | 801C5390 | 801C6E80 | 1AF0 | ||||
n64dd | 801C6E80 | 801D9B90 | 12D10 | ||||||
System Heap (Arena) | 801C6E60 | 803B5000 | 1EE1A0 | 801E7810 | 805B5000 | 3CD7F0 | 802109E0 | 80400e80 | 001F04A0 |
Static Context | 801C6E90 | 801C8470 | 15D4 | 801E7840 | 801E8E20 | 15D4 | 80210A10 | 80211FF0 | 15D4 |
Game State (Game Play) | 801C84A0 | 801DA9C0 | 12518 | 801E8E50 | 801FB370 | 12518 | 80212020 | 80213600 | 12518 |
Gameplay Game State's Heap | 801DA9C0 | 803AF190 | 1D47D0 | 801FB370 | 803CFB40 | 1D47D0 | 80213600 | 803E7DD0 | 1D47D0 |
Game Heap (Arena) | 801DAA00 | * | 801FB3B0 | * | 80224540 | * | |||
Scene File | * | 80384980 | * | 803A5330 | * | 803D01B0 | |||
Particles | 80384980 | 80386960 | 1FE0 | 803A5330 | 803A7310 | 1FE0 | 803CE1D0 | 803D01B0 | 1FE0 |
Colour Framebuffer 1 | 803B5000 | 803DA800 | 25800 | 805DA800 | 80600000 | 25800 | 80400E80 | 80426680 | 25800 |
Colour Framebuffer 2 | 803DA800 | 80400000 | 25800 | 25800 | 80426680 | 8044be80 | 25800 | ||
Debug Heap (Arena) | 8044BEB0 | 80600000 | 1B4150 |
NTSC 1.0-Specific
The N64 releases of Ocarina of Time will always address a maximum of 4 MiBs of ram by default, regardless of what ram pack is installed. N64 versions have an extra interesting wrinkle to them since the game was planned to be expanded via the Disk Drive. Installing the DD changes how ram is utilized since the extra code to interface with the DD system pushes OoT past its tight memory requirements and mandates the 8 MiB expansion.
All Game States, no Disk Drive
Start | End | Type | Description | Notes |
---|---|---|---|---|
000000 | 000460 | file | makerom | File is "folded"? |
000460 | 006830 | file | boot | |
00B140 | 0110A0 | file | dmadata | |
0110A0 | 114DD0 | file | code | |
11A5D0 | data | Save data variables and static variables | 0x1352 bytes are crc'd, 0x1450 saved, 0x1428 bytes blanked during initialization | |
11D500 | 11D968 | data | Input Context | Manages input updates. Game States do not directly read from here to detect input |
11F290 | 11F588 | data | Graphics Context | Contains structure that handles frame display list stuff. Located on graph thread's stack |
125630 | 12BA80 | data | "Audio Context" | Unknown, initialized by audio thread |
12BE40 | data | Z-Buffer | ||
16A640 | 17CA50 | data | Buffer for Frame 0 Display Lists | |
17CA50 | 18EE60 | data | Buffer for Frame 1 Display Lists | |
1C6E60 | 3B5000 | data | Main Heap (see below) | |
3B5000 | 3DA800 | data | Frame Buffer 0 (even frames) | |
3DA800 | 400000 | data | Frame Buffer 1 (odd frames) |
Start | End | Type | Description | Notes |
---|---|---|---|---|
1C6E60 | 1C6E90 | mem ll | Memory Node that references below | |
1C6E90 | 1C8464 | data | Static Context | Typically stores variables that persist beyond the lifetime of Game States The Debug Rom's "Memory Editor" manipulates this space |
1C84A0 | 1DA9C0 | data | game_play | |
1DA9F0 | 3AF190 | space | Gameplay Game State's Heap | Coded to be a fixed 0x1D47A0 |
1DAA00 | data | Dynamically Allocated Space | Stores Actor and Particle Effect overlays End Address set after giving everything else an address | |
- FA000 | Scene File Start |
data | Object file space | Starts at (scene file start - 0xFA000) |
384980 | file | Scene file | Starting address depends on scene file size | |
384980 | 386960 | data | Particles |
Game Loaded (Paused, outside dungeon)
Bank offset 08 points to start of paused stuff?
File | Notes |
---|---|
icon_item_static | |
icon_item_24_static | |
icon_item_field_static | |
icon_item_*_static | * = current language |
item_name_static texture | last selected, 0x400 |
map_name_static texture | current location, 0xA00 |
Game Loaded (Paused, inside dungeon)
Bank offset 08 points to start of paused stuff?
File | Notes |
---|---|
icon_item_static | |
icon_item_24_static | |
icon_item_dungeon_static | |
icon_item_*_static | * = language |
item_name_static texture | last selected, 0x400 |
map_name_static texture | current location (unused?), 0xA00 |