Language…
12 users online: ASSATAKKU,  Donut, DPBOX, Golden Yoshi, masl, Rauf, Shomi, signature_steve, Sweetdude,  Telinc1, timothy726, zAce08xZ - Guests: 240 - Bots: 346
Users: 64,795 (2,377 active)
Latest user: mathew

SM64 Memory Map

Displaying 25 out of 54 addresses.

View: moderated | waiting (9)

Filter

Link
ROM Address Length Type Description Details
$90000000 4 bytes Misc. Initial PI BSD Domain 1 register settings; [80][3][7][12][40]

[80] Endianess indicator

PI BSD Domain 1 registers:
[3] Release
[7] Pages
[12] Pulse width
[40] Latency
$90000004 4 bytes Misc. Clock rate setting; 0000000:F
$90000008 4 bytes Misc. Entry point; 80246000
$9000000C 4 bytes Misc. Release; 00001444
$90000010 8 bytes Misc. ROM Checksum; 63 5A 2B FF 8B 02 23 26
$90000018 8 bytes Misc. Unknown use / 0000000000000000
$90000020 20 bytes Misc. ROM Name; "SUPER MARIO 64" followed by 5 spaces.
$90000034 4 bytes Misc. Unknown use; 00000000
$90000038 4 bytes Misc. Media format; 0000004E / "N" (Cartridge)
$9000003C 2 bytes Misc. Cartridge ID; "SM" / 534D
$9000003E 1 byte Misc. Country code; "E" / 45 (USA)
$9000003F 1 byte Misc. Version; 00
$90000040 4032 bytes Routine Bootstrap code; from 90000040 to 90001000
$90000584 492 bytes Misc. Boot and final checksum comparison routine.

The final checksum comparison can be removed by NOPing the BNE instructions at 9000066C and 90000678.
$90108A40 48400 bytes Misc. MIO0 File 00 (RAM segment 0x02)
HUD and other common textures
$90114750 78432 bytes Misc. MIO0 File 01 (RAM segment 0x04)
Mario's model
$90201088 316 bytes Geometry Layout Bob-omb's geo-layout
$90219E00 22208 bytes Bank Behavior script bank
$9021B278 52 bytes Behaviour Purple switch's behavior script
$9021CCC0 56 bytes Behaviour Mario's Behavior.
It has three function calls, which are called as RAM offset:

21CCD8 08 00 00 00 - Start Loop
21CCDC 0C 00 00 00 80 2C B1 C0 - JAL $802CB1C0
21CCE4 0C 00 00 00 80 29 CA 58 - JAL $8029CA58
21CCEC 0C 00 00 00 80 2C B2 64 - JAL $802CB264
21CCF4 09 00 00 00

0x0C commands: (JAL, but quite different here. The RAM Offset is done through LB(Load Byte))

[0C] [00 00 00] [80 XX XX XX]

[0]= 0C is the Command Byte.
[1,2,3]= Always zero, unused?

[4,5,6,7]= The offset in RAM of the ASM function.

0x0C commands do call ASM Funtions found in RAM.

The functions are "looped" because of the 0x08 command and ends with 0x09 command. 0x08 starts a loop, is called every frame. And 0x09 jumps back to the beginning of the loop.

You can use ASM Function "0C 00 00 00 80 2C B1 C0" to inject your own code, as this is an unused debug function in mario's behavior. For this, you calculate the ROM offset of 802CB1C0. For every RAM offset between $80246000 and $80330000 you subtract $80245000 of the RAM offset. $802CB1C0-$80245000 = $861C0 (ROM offset). In $861C0 you put in your code. (Remember to make place for the stack and push your return address to the stack, in case you call a subroutine)
$9021CF74 56 bytes Behaviour Bob-omb's behavior script
$9021E52C 44 bytes Behaviour Goomba Behaviour.

00 05 00 00<------ Loop for an amount of time, where the time is 0 and loop is infinite.

11 01 20 49 <---- Object's flag

1E 00 00 00 <---- Does nothing?

27 26 00 00 08 01 DA 4C <---- Animation Command, load textures with the 0xFD command in the display list, animate with 0x0E command in geo layout, I.e 0E 00 00 0A 80 XX XX XX, 0E <--- Command, 00 00 0A <---- Number of frames of anim. 80 XX XX XX- Ram Bank.

2D 00 00 00 <----Initiates pos.

30 00 00 00 00 28 FE 70 FF CE 03 E8 03 E8 00 00 00 00 00 00 <----- Allocates gravity

0C 00 00 00 80 2F F4 08 <---- Ram Pointer(Subtract 0x80245000 to get position) Equivalent to the JAL, command, as 0X0C is 0C 00 00 00 80 2F F4 08, JAL is JAL $802FF408

08 00 00 00 <---- Loops behavior, Commands( I.e 0x0F, 0x0C)has to be in it to get looped.

0C 00 00 00 80 2F F9 6C <---- Same as 0C 00 00 00 80 2F F4 08

09 00 00 00 <--- END loop/script.
$903828C0 4240 bytes Level Data Haunted House level layout script
$90395C90 1712 bytes Level Data Cool Cool Mountain level layout script
$903CF0D0 7408 bytes Level Data Inside Castle level layout script