RAM Map

From CloudModding OoT Wiki
(Redirected from Ram Map)
Jump to: navigation, search
For a listing of function addresses, see Function Map.


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
Global Context 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)
Main Heap (Gameplay Game State)
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 Global Context (Game) Stores variables for the Game State
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