SM64 Memory Map
Displaying 35 out of 85 addresses.
View: moderated | waiting (9)
- 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