Ram Map (NTSC 1.0)
This page or file should be deleted. Merge into Function Map |
Contents
DMA
DMA read function
80000DF0
- A0 = Address to load into
- A1 = Address to read from
- A2 = Size
- SP+00 returns the space loaded to?
- SP+04 returns DMA location
- SP+08 returns Size
Unsorted
800005A0
800005A0
Low level function, calls 800A1C50
Return Instruction Count
80004D50
- V0 is assigned to the number of instructions executed
Copy RAM
80057030
- A0 = Destination Address
- A1 = Source Address
- A2 = Length
Main Game Constructor Function
8009A750
- A0 = Game Play
Quite massive. Performs various checks and calls to create the playable game world (non file select). Called once every time a new area is loaded (twice for Silver Gauntlet's chest though?)
If entrance index (u32, 0x0000 into the "SRAM" block) is -1, this seems to load ovl_opening
Main Boot Routine?
800A1C50
Seems to initialize mem/checks state of Disk Drive software
Disk Drive boot routine
800AD410
Writes to 80121211, which possibly stores whether info can be loaded from the Disk Drive
File Select
Create New File
80090C18
//0C4C sets start entrance index. Irrelevant due to save warp correction routine //0C50 sets age //0C54 sets time of day //0C58 sets initial cutscene
Load Save File
800902AC Related to spawning Link from save. Execution branches based on a table located at 0xB7EA40 (80108AE0) within code.
Memory
Allocate Main Heap
800CD390
- A0 = Block Start Address
- A1 = Block Size
Allocates space for the main heap, and stores a reference to this heap at 8012BAA0
Allocate Memory on Main Heap
800CDA20
- A0 = Space to allocate
- V0 is assigned to the pointer to the heap node containing the allocated space
Allocates a block of space on the main heap.
Allocate Heap
800CDD90
- A0 = Pointer to structure that will reference the heap
- A1 = Block Start Address
- A2 = Block Size
- V0 is assigned to the address the heap is stored at.
Creates a heap space with an initial node, and attaches it to some structure. If the start address is not aligned to a 0x10 boundary, the space will be aligned to the next aligned address. Seems to only be called when allocating the main heap, and the "actor space" heap within the main heap.