Language…
17 users online: 3lectro, B. Gangster, bandicoot, blueribbonhighlife, BlueSheep123, crm0622, E-man38, Fullcannon, Guleyan112, h.carrell, HumbyTwitch, Israelcv12cv, julesthesleepydemon, LadiesMan217, MM102, steelsburg, Tulip Time Scholarship Games - Guests: 112 - Bots: 289
Users: 64,664 (2,405 active)
Latest user: HumbyTwitch

SM64 Memory Map

Displaying 50 out of 54 addresses.

View: moderated | waiting (9)

Filter

Link
  • Pages:
  • 1
  • 2
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
$903E6A00 3248 bytes Level Data Hazy Maze Cave level layout script
$903FB990 2336 bytes Level Data Shifting Sand Land level layout script
$90405A60 1360 bytes Level Data Bob-Omb's Battlefield level layout script
$9040E840 1328 bytes Level Data Snow Man's land level layout script
$90419F90 2000 bytes Level Data Wet Dry World level layout script
$90423B20 2992 bytes Level Data Jolly Roger Bay level layout script
$9042C6E0 2112 bytes Level Data Tiny Huge Island level layout script
$90437400 1136 bytes Level Data Tick Tock Clock level layout script
$9044A140 2688 bytes Level Data Rainbow Road level layout script
$904545E0 2080 bytes Level Data Castle Grounds level layout script
$9045BF60 1696 bytes Level Data Bowser 1 Course level layout script
$90461220 688 bytes Level Data Vanish Cap level layout script
$9046A840 2128 bytes Level Data Bowser's Fire Sea level layout script
$9046C1A0 512 bytes Level Data Secret Aquarium level layout script
$90477D00 1952 bytes Level Data Bowser 3 Course level layout script
$9048C9B0 3968 bytes Level Data Lethal Lava Land level layout script
$90495A60 1584 bytes Level Data Dire Dire Docks level layout script
$9049DA50 3264 bytes Level Data Whomp's Fortress level layout script
$904AC4B0 192 bytes Level Data Thank You cake picture at the end level layout script
$904AF670 704 bytes Level Data Castle Courtyard level layout script
$904B7F10 448 bytes Level Data Peach's Secret Slide level layout script
$904BE9E0 592 bytes Level Data Metal Cap level layout script
$904C2700 544 bytes Level Data Wing Cap level layout script
$904C41C0 352 bytes Level Data Bowser 1 Battle Platform level layout script
$904CD930 672 bytes Level Data Rainbow Clouds Bonus level layout script
  • Pages:
  • 1
  • 2