SMAS Memory Map
Displaying 50 out of 1220 addresses.
View: moderated | waiting (204)
RAM Address | Length | Type | Context | Description | Details |
---|---|---|---|---|---|
$7E00BD | 1 byte | Direction | Super Mario Bros. 3/Global | Player direction ($40 = right) $00 - Left $40 - Right $41 - End level walk? TODO: Find out the format of this address, seems bitwise rather than raw numbers. |
|
$7E00BF | 1 byte | Player | Super Mario Bros. 3/Main gameplay | Indicates that the player is dying. Setting it causes the player to die immediately. | |
$7E00C5 | 1 byte | Y Position | Super Mario Bros. 1 | [?]-block sprite Y position $00 - Top of screen (above status bar) $01 - Inside range $02 - In pit |
|
$7E00D0 | 1 byte | Index | Intro & Game Select Screens | Selected game index in the Game Select screen | |
$7E00D1 | 1 byte | Index | Intro & Game Select Screens | Selected file index in the File Select screen | |
$7E00D9 | 2 bytes | Pointers | Super Mario Bros. 2 | 16-bit pointer to Layer 1 room data. | |
$7E00DB | 1 byte | Level Data | Super Mario Bros. 1 | An index value signifying the Layer 2 Background map to use. $00 - Underwater (short) $01 - Underwater (full) $02 - Underwater (castle) $03 - Night sky (w/o mountains) $04 - Outside castle (W8-3) $05 - Mountains and trees $06 - Night sky (w/ mountains) $07 - Night sky (w/ mountains & snow) $08 - Mountains $09 - Waterfall $0A - Goomba statues/pillars $0B - Narrow green hills (W2-1) $0C - One big mountain w/ underground palette $0D - Narrow hills w/ snow (W5-1) $0E - Mario/Luigi Bonus room $0F - Mushrooms $10 - Night sky (w/o mountains) $11 - Night sky (w/ mountains) $12 - Mushrooms $13 - Mountains $14 - Narrow hills w/ snow (W5-1) $15 - Narrow orange hills $16 - Narrow hills w/ snow $17 - Mario/Luigi bonus room $18 - Night sky (w/ mountains) $19 - Underground $1A - Underground $1B - Mario/Luigi bonus room (underground) $1C - Castle $1D - Castle w/ pillars & chandeliers $1E - Castle w/ pillars $1F - Castle w/ pillars $20 - Castle w/ pillars & doors $21 - Castle w/ windows w/ thunder & lightning |
|
$7E00DE | 1 byte | Flag | Intro & Game Select Screens | If non-zero $7F:0000 will get uploaded to BG1's tilemap. | |
$7E00E2 | 8 bytes | X Position | Super Mario Bros. 3/Global | Extended sprite X-position, high byte. | |
$7E00E3 | 2 bytes | Timer | Intro & Game Select Screens | Timer for showing the current hall screen state (blackout) or (lightened). #$011A - First blackout time #$044A - First lightened time |
|
$7E00EB | 2 bytes | Clipping | Super Mario Bros. 1 | Used during level loading to load level backgrounds: Starting index of the background map16 to place the background objects at (Every $0100 bytes of RAM $7ED000 is a page). Also used by the podoboo lava splash. |
|
$7E00EB | 1 byte | Flag | Super Mario Bros. 2 | Horizontal level flag. #$00 = Vertical level; #$01 = Horizontal level. | |
$7E00ED | 2 bytes | Miscellaneous | Super Mario Bros. 1 | Used during level loading to load level backgrounds: Used to calculate $7E00EB Also used by the podoboo lava splash. |
|
$7E00EF | 2 bytes | Level Data | Super Mario Bros. 1 | Command to use in a level's background generation routine. $00 - Increase index to background map16 tilemap's latest written tile by 1 $01 - Handle HDMA gradient. Underwater levels use below value, instead. $02 - Enable underwater HDMA gradient. TODO: does it enable anything else? (cgadsub etc) $03 - TODO: figure out what $04 - TODO: figure out what $05 - Related to background map16 tilemap generation $06 - Fill background with repetitive rock pattern of cave background $07 - Fill top 3 rows with blank tiles for underwater levels $08 - Generate the rocks of the waterfall background $09 - Enable Layer 3 image $0A - Generate the waterfall of the waterfall background $0B - Load tilemap-specific graphics? TODO: verify $0C - Generate Goomba pillar background's sand Despite being two bytes in size, only the first byte is used. Also used by the podoboo lava splash. |
|
$7E00F0 | 3 bytes | Pointers | Super Mario Bros. 2 | Indirect pointer to load a layer image from. Controlled by $11. | |
$7E00F0 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $7E:4219 - Controller Port 1 Data1 Register high byte. This mirror is for controller data from the current frame. |
|
$7E00F1 | 1 byte | HDMA | Super Mario Bros. 1 | Associated value with a background generation command, e.g. value to enable/disable layer 3, which HDMA gradient, and so on. Also used by the podoboo lava splash. |
|
$7E00F1 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $7E:421B - Controller Port 2 Data1 Register high byte. This mirror is for controller data from the current frame. |
|
$7E00F2 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $7E:4218 - Controller Port 1 Data1 Register low byte. This mirror is for controller data from the current frame. |
|
$7E00F3 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $7E:421A - Controller Port 2 Data1 Register low byte. This mirror is for controller data from the current frame. |
|
$7E00F4 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $7E:4219 - Controller Port 1 Data1 Register high byte. This mirror is for controller data that was set on the current frame but was clear on the previous frame. Basically, this determines which buttons were pressed on this frame while not having been held on the last frame. |
|
$7E00F5 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $7E:421B - Controller Port 2 Data1 Register high byte. This mirror is for controller data that was set on the current frame but was clear on the previous frame. Basically, this determines which buttons were pressed on this frame while not having been held on the last frame. |
|
$7E00F6 | 1 byte | Hardware Mirror | Super Mario Bros. 2 | Controller Data 1. AXSPUDLR. All frames. | |
$7E00F6 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $7E:4218 - Controller Port 1 Data1 Register low byte. This mirror is for controller data that was set on the current frame but was clear on the previous frame. Basically, this determines which buttons were pressed on this frame while not having been held on the last frame. |
|
$7E00F7 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $7E:421A - Controller Port 2 Data1 Register low byte. This mirror is for controller data that was set on the current frame but was clear on the previous frame. Basically, this determines which buttons were pressed on this frame while not having been held on the last frame. |
|
$7E00F8 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $7E:4219 - Controller Port 1 Data1 Register high byte. This mirror is for controller data from the previous frame. |
|
$7E00F9 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $7E:421B - Controller Port 2 Data1 Register high byte. This mirror is for controller data from the previous frame. |
|
$7E00FA | 3 bytes | Pointers | Super Mario Bros. 1 | 24-bit pointer to current level's objects, and their positions (SNES Address, Little endian) | |
$7E00FA | 1 byte | Hardware Mirror | Super Mario Bros. 2 | Controller Data 2. AXSPUDLR. 1 frame. | |
$7E00FA | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $7E:4218 - Controller Port 1 Data1 Register low byte. This mirror is for controller data from the previous frame. |
|
$7E00FB | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $7E:421A - Controller Port 2 Data1 Register low byte. This mirror is for controller data from the previous frame. |
|
$7E00FD | 3 bytes | Pointers | Super Mario Bros. 1 | 24-bit pointer to current level's sprites, and their positions (SNES Address, Little endian) | |
$7E00FD | 1 byte | Counter | Intro & Game Select Screens | Frame counter. | |
$7E00FE | 1 byte | Hardware Mirror | Super Mario Bros. 2 | Brightness Register | |
$7E00FF | 1 byte | Hardware Mirror | Super Mario Bros. 2 | NMI / Joypad Enable | |
$7E0100 | 9 bytes | Empty | Super Mario Bros. 1 | Free space | |
$7E0100 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Screen brightness. | |
$7E0101 | 1 byte | Index | Super Mario Bros. 3/Global | IRQ Mode index? Valid values are: { 80 40 20 60 A0 55 75 95 } TODO: seems like this goes bitwise. Figure it out. Also, figure out what each IRQ mode is. |
|
$7E0101 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $7E:2101 - Object Size and Chr Size | |
$7E0102 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $2105: BG Mode and Character Size | |
$7E0103 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $2106: Screen Pixelation | |
$7E0104 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $2107: BG1 Tilemap Address and Size | |
$7E0105 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $2108: BG2 Tilemap Address and Size | |
$7E0106 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $2109: BG3 Tilemap Address and Size | |
$7E0107 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $210B: Mirror of BG1 and 2 Chr Address | |
$7E0108 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $210D: BG1 Horizontal Scroll This value represents the low byte address and is written to the register first. |
|
$7E0109 | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $210D: BG1 Horizontal Scroll This value represents the high byte address and is written to the register second. |
|
$7E010A | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $210E: BG1 Vertical Scroll This value represents the low byte address and is written to the register first. |
|
$7E010B | 1 byte | Flag | Super Mario Bros. 1 | "Three byte object" flag when loading level data | |
$7E010B | 1 byte | Hardware Mirror | Intro & Game Select Screens | Mirror of $210E: BG1 Vertical Scroll This value represents the high byte address and is written to the register second. |
|