Language…
11 users online: 35TCB77, Cape, catgirlmeth727, Cracka, HammerBrother, Heitor Porfirio, HmWhyNot, matheoba, ritahernandez, ZachJamesGames, Zavok - Guests: 969 - Bots: 109
Users: 70,472 (2,469 active)
Latest user: ritahernandez

SM64 Memory Map

Displaying 35 out of 85 addresses.

View: moderated | waiting (9)

Filter

Link
  • Pages:
  • 1
  • 2
RAM Address Length Type Context Description Details
$8032DF00 4 bytes Misc. Global Pointer to current object as used by the geo-layout script rendering system. An ASM routine reads the object pointer at this address, and then writes the pointer into a geo-layout's object pointer slot.
$80331620 1 byte Misc. Global Current level's act number
$80338388 2 bytes Misc. Global Format string for number of lives in the HUD - "%d"
$803383A0 2 bytes Misc. Global Format string for the number of stars in the HUD
$803383A4 1 byte Misc. Global Format string for HUD beta keys; "/" or 0x2F
$8033B079 1 byte Misc. Global Result of function osEepromProbe(). Read this byte to check if the eeprom has been loaded properly. This value should be 0x01.

0x00 = No eeprom loaded
0x01 = 4K-EEPROM loaded
0x02 = 16K-EEPROM loaded
$8033B176 2 bytes Misc. Global Mario hat flags
$8033B17C 4 bytes Misc. Global Mario's current action
$8033B17C 4 bytes Misc. Global Mario's previous action
$8033B188 2 bytes Misc. Global Mario's animation phase (unsigned short int)
$8033B18A 2 bytes Misc. Global Mario's animation cycle counter. Game also uses this to determine how sleepy Mario is.
$8033B218 2 bytes Misc. Global Mario's current coins.
$8033B21C 1 byte Misc. Global Number of beta keys
$8033B21D 1 byte Misc. Global Number of lives
$8033B21E 2 bytes Misc. Global Mario's power - upper byte is the value and the lower byte works like a decimal.
$8033B220 1 byte Misc. Global Mario Y offset from the ground (signed char)
$8033B222 1 byte Misc. Global Amount of time to apply 'hurting' effect to Mario's power
$8033B223 1 byte Misc. Global Amount of time to apply 'healing' effect to Mario's power (unsigned char)
$8033B226 2 bytes Misc. Global Displayed power number (signed short int)
$8033B264 2 bytes Misc. Global Number for displayed stars (signed short int aka Halfword).
$8033B400 128 bytes Misc. Global The segments table - Segment descriptions:
0x00 Miscellaneous, Constant 0

Graphics segments:
0x01 Master display lists?
0x02 Textures which are always available
0x03 ?
0x04 Mario graphics (geo+textures)
0x05
0x06
0x07
0x08 Object textures
0x09 Level mesh textures
0x0A
0x0B
0x0D
0x0E
0x0F

General purpose segments:
0x10
0x11
0x12
0x13 Behavior script bank
0x14 Level scripts
0x15 Level scripts
0x16 Geo layouts (pre-decompression)
0x17 Geo layouts (pre-decompression)
0x18 ? (points to nothing)
0x19 Unused
0x1A Unused
0x1B Unused
0x1C Unused
0x1D Unused
0x1E Unused
0x1F Unused
$8033C600 4 bytes Misc. Global Pointer to current collision triangle that mario is standing on/above
$8033D488 145920 bytes Misc. Global Level object linked list - 240 slots for level object structs, each of which are 0x260 bytes. (Goombas, Toads, Signs, Mario, etc)

Struct offsets: (Not completely accurate)
003 Camera relativity
004 Pointer to previous object
008 Pointer to next object
00C Pointer to ?? (some type of schema? Data has a pointer to mario's object in it)
014 Pointer to model layout script
020 X position (copy)
024 Y position (copy)
028 Z position (copy)
03C Pointer to animation data
054 X rotation
058 Y rotation
05C Z rotation
060 Pointer to an object (?)
064 Pointer to list of objects (?)
068 Pointer to ?? (self when mario's object)
070 Interaction from colliding object
074 ?
075 Object link status?
076 Collision with object status
078 Pointer to an object (?) (usually Mario's)
07C Pointer to an object (?)
0A0 X position
0A4 Y position
0A8 Z position
0AC X momentum
0B0 Y momentum
0B4 Z momentum
0F0 Model layout script case parameter
120 Segmented pointer to animation data (?)
130 Interaction
144 Interaction index (dialogue and spawn table indexes)
154 Frame counter
164 X position anchor
168 Y position anchor
16C Z position anchor
17C Model transparency
180 Interaction parameter (number of coins, damage dealt)
188 Interaction parameter ? (door warps)
19C Render distance
1C0 Pointer to level collision data that the object is standing on
1CC Pointer to behavior script (active)
1D0 Pointer to behavior script (active)
1F8 Collision sphere width
1FC Collision sphere height
20C Pointer to behavior script (initial)
21C Pointer to collision polygon
25C Pointer to model script table?
$80361150 4 bytes Pointer Global Pointer to next empty object for the game to use (behavior script engine variable)
$80361158 4 bytes Pointer Global Another pointer to the current Mario object (behavior script engine variable)
$80361160 4 bytes Pointer Global Pointer to current object as used by the behavior processing system.
All behavior ASM routines use the pointer at this address + struct offsets to make changes to level objects.
Refer to the Level object linked list for a list of struct offsets.
$80361164 4 bytes Pointer Global Pointer to the current behavior script command that the game is processing
$80361170 4 bytes Misc. Global Current # of triangles in the collision map. (static collision + collision created by objects)
$80361178 4 bytes Misc. Global Number of triangles in static collision map.
$80361184 4 bytes Pointer Global Pointer to current level's water settings
$8038B8B0 240 bytes Pointer Global The level script jump table; a list of pointers to level script command functions:
0x00 8037E2C4
0x01 8037E388
0x02 8037E404
0x03 8037E47C
0x04 8037E4FC
0x05 8037E580
0x06 8037E5B8
0x07 8037E620
0x08 8037E650
0x09 8037E6D4
0x0A 8037E780
0x0B 8037E7F8
0x0C 8037E878
0x0D 8037E8E8
0x0E 8037E988
0x0F 8037EA18
0x10 8037EA70
0x11 8037EA98
0x12 8037EB04
0x13 8037EB98
0x14 8037EBD4
0x15 8037EC14
0x16 8037EC54
0x17 8037ECA4
0x18 8037ECF8
0x19 8037ED48
0x1A 8037EDF8
0x1B 8037EE48
0x1C 8037EEA8
0x1D 8037EF00
0x1E 8037EF70
0x1F 8037F010
0x20 8037F130
0x21 8037F164
0x22 8037F214
0x23 8037F2A4
0x24 8037F45C
0x25 8037F36C
0x26 8037F67C
0x27 8037F994
0x28 8037F790
0x29 80380014
0x2A 8038007C
0x2B 803800BC
0x2C 80380160
0x2D 803801A0
0x2E 8037FE94
0x2F 8037FF14
0x30 80380274
0x31 8037F920
0x32 8038024C
0x33 803801E0
0x34 8037FDE4
0x35 8037FE2C
0x36 80380300
0x37 8038039C
0x38 803803EC
0x39 8037FF94
0x3A 8037FB18
0x3B 8037FC38
0x3C 80380434
$8038B9B0 220 bytes Pointer Global The behavior script jump table; a list of pointers to behavior script command functions:
0x00 803854CC
0x01 8038425C
0x02 803841B8
0x03 80384224
0x04 8038438C
0x05 80384450
0x06 803844C0
0x07 80384554
0x08 803845E8
0x09 80384634
0x0A 80384188
0x0B 803841A0
0x0C 80384678
0x0D 80384C5C
0x0E 803846D0
0x0F 80384CF0
0x10 8038475C
0x11 80384D70
0x12 80384E04
0x13 803849F8
0x14 80384854
0x15 80384928
0x16 80384AB4
0x17 80384B90
0x18 8038503C
0x19 803850CC
0x1A 80385084
0x1B 80383F24
0x1C 80383F94
0x1D 80384164
0x1E 80384F8C
0x1F 80385114
0x20 803851D0
0x21 80383EE4
0x22 80383E5C
0x23 8038528C
0x24 8038546C
0x25 803842E4
0x26 803843E0
0x27 80384E9C
0x28 80384F08
0x29 803840B4
0x2A 803856A0
0x2B 803853AC
0x2C 8038401C
0x2D 80385700
0x2E 8038531C
0x2F 8038575C
0x30 8038586C
0x31 803857A0
0x32 803857E4
0x33 80385A60
0x34 80385B4C
0x35 80383EA0
0x36 803847D4
0x37 80385AF0
$8038BE28 4 bytes Pointer Global Pointer to the current level script command that the game is processing.
$8038EEA0 2 bytes Misc. Global Max number of triangles for collision map. 2,300 in vanilla SM64 and increased to 32,767 by the SM64 Editor. Set by function 0x80383340
$8038F800 460800 bytes Misc. Global The Framebuffer. Occupies the range starting from $8038F800 to $803FFFFF. This region is constantly being overwritten, so you cannot modify any of the data directly.
  • Pages:
  • 1
  • 2