Views: 714,668,915
3 users online: bruninhopz, Telinc1, zef - Guests: 19 - Bots: 256Users: 37,318 (1,631 active)
Latest: RetroRuco
Winter 2019 C3 Content Spotlight
Christian07's "Random Demo"!
Not logged in.
SM64 Memory Map
Displaying 25 out of 85 addresses. Show Waiting Addresses (6)
Hexadecimal number for a partial address. 8-digit number for a full address. Use - to denote a range. Use , to list more than one address.
Enable JavaScript to use multiple regions.
Hold control to select multiple. Check "All" to select all at once.

Separate each individual keyword with spaces. Surround a phrase with quotes to look for the exact phrase, or with / to use a PCRE regular expression. Prepend with - to exclude a keyword or phrase, with + to require a whole word or phrase, or with -+ to exclude a whole word or phrase. ? matches any character, * matches any amount of characters.
Pages: « 1 2 3 4 » Per Page: 25 50 75 100 150 500 All
RAM Address Length Type Context Description Details
$80064F80 Unknown Misc. Unknown Segment 0x02 constant location - Contains image data for the hud symbols and other textures. The segment is allocated by a hardcoded routine on startup.
$8006C680 Unknown Misc. Unknown Table with segment-offset pointers to the HUD symbol textures. Since some of the HUD symbols were removed in the USA release, some of the slots are left empty:

8006C6CC 00000000 - J
8006C6E8 00000000 - Q
8006C6FC 00000000 - V
8006C704 00000000 - X
8006C70C 00000000 - Z

You can restore the old symbols by patching in the images from the Japanese ROM, and modifying the pointers in this table.
$8007E200 Unknown Misc. Unknown Segment 0x15
$8007EC20 Unknown Misc. Unknown Segment 0x04 - Contains the data for Mario's model
$800EB180 Unknown Misc. Unknown Segment 0x13 - Behavior script segment
$800EC5F8 52 bytes Behaviour Unknown Behavior script - Purple switch
$800ED3FC 32 bytes Behaviour Unknown Behavior script - Spinning exclamation point
$800EDBC8 12 bytes Behaviour Unknown Behavior script - Misc level architecture (eg the castle tower)
$800EDC24 44 bytes Behaviour Unknown Tree's behavior script
$800EE040 56 bytes Behaviour Unknown Mario's behavior script

23000000 002500A0
0C000000 802CB1C0
0C000000 8029CA58
0C000000 802CB264
$800EE2F4 56 bytes Behaviour Unknown Bob-omb's behavior script
$800F0860 Unknown Geometry Layout Unknown Mario's decompressed geo-layout script
$800F8C4C Unknown Geometry Layout Unknown Decompressed geo-layout script for signs
$8018D47C 554 bytes Geometry Layout Unknown Bob-omb's decompressed geo-layout
$80195C54 Unknown Geometry Layout Overworld Decompressed geo-layout script for the castle tower
$801C1000 Unknown Misc. Unknown Segment 0x09 constant location. All level mesh textures are loaded here by the 0x1A level script command.
$80207700 512 bytes Misc. Unknown Start of EEPROM and goes up to 0x80207900
$80277EE0 Unknown Routine Unknown Function that assigns ram segments

Arguments: A0 = segment number, A1 = ram address
Returns: V0 = 0x80-prefix-less ram address

Essentially just: *(uint32*)(0x8033B400 + segment_number << 2) = ram_address & 0x00FFFFFF;
$80277F50 Unknown Routine Unknown Segment-offset to true ram address converter
Arguments: A0 = segmented address
Returns: V0 = true ram address
$80278120 118 bytes Routine Unknown Function that seems to be a memory allocator. Basically finds a desired amount of free space in the heap and returns a pointer to the area.

Arguments: A0 = block size
Returns: V0 = ram address
$80278504 264 bytes Routine Unknown DmaCopy(u32 dst, u32 bottom, u32 top);
dst being the RAM offset! bottom is the beginning ROM offset to copy the bytes and top is the end.
Takes three arguments.

ADDIU SP, SP, $FFE8 ; -24 to stack. Aka, make space.
SW RA, $0014 (SP) ; Push return address to stack.
LUI A0, $8034 ; Upper half address.
ORI A0, A0, $269D ; Lower half address. A0 = $8034269D
LUI A1, $001C ; ROM offset start (bottom)
ORI A1, $0D60 ; Lower part, A1 = $001C0D60
LUI A2, $0020 ; ROM offset end (top)
JAL $80278504 ; Jump to subroutine DmaCopy
ORI A2, $00D1 ; Is executed before JAL. Lower half.
LW RA, $0014 (SP) ; Load back our lost return address.
JR RA ; Jump to return address.
ADDIU SP, SP, $0018 ; Restores stack. (+24)

DmaCopy basically copies data from ROM to RAM. dst is the destination (as RAM offset), bottom is the start (as ROM offset) which is copied to RAM and top is the end. So, in our above example bytes from $001C0D60 (ROM) to $002000D1 (ROM) into $8034269D (RAM).
$80278610 124 bytes Routine Unknown Function that loads data from rom into the heap and returns a ram pointer to the data.

Arguments: A0 = rom start address, A1 = rom end address, A2 = allocation size (seems mostly unused?)
Returns: V0 = pointer to data after being loaded into ram
$802787D8 216 bytes Routine Unknown Function that loads MIO0 files into ram segments.
Arguments: A0 = ram segment number, A1 = rom address start, A2 = rom address end
$802792C0 84 bytes Routine Unknown EEPROM Save file checksum calculation routine
Arguments: A0 = address of buffer, A1 = buffer size, A2 = ? 00004441
Returns: 2 byte checksum to V0
$8027F4E0 164 bytes Routine Unknown MIO0 decoder
Arguments: A0 = pointer to mio0 file (in RAM), A1 = destination address for the decompressed file
Pages: « 1 2 3 4 » Per Page: 25 50 75 100 150 500 All

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2019 - SMW Central
Legal Information - Privacy Policy - Link To Us

Total queries: 28


Follow Us On

  • Facebook
  • Twitter
  • YouTube


  • Talkhaus
  • SMBX Community
  • GTx0
  • Super Luigi Bros
  • MFGG
  • Gaming Reinvented