SMAS Memory Map
Displaying 100 out of 631 addresses.
View: moderated | waiting (204)
RAM Address | Length | Type | Context | Description | Details |
---|---|---|---|---|---|
$7E0000 | 8 bytes | Miscellaneous | Super Mario Bros. 1 | Scratch RAM for many subroutines | |
$7E0000 | Unknown | Miscellaneous | Super Mario Bros. 1 | TODOs: - Fix inconsistent SMB1 sprite table sizes - Consistent naming (player instead of Mario, Y Position instead of ypos, and the likes) - Find out what kind of sprites there are in SMB1. How many types of extended sprites, and so on. - SMB3/Global addresses need context re-assigning. |
|
$7E0008 | 1 byte | Empty | Super Mario Bros. 1 | Unused scratch RAM. | |
$7E0009 | 1 byte | Counter | Super Mario Bros. 1 | Frame Counter | |
$7E000A | 3 bytes | Flag | Super Mario Bros. 1 | Player action data. Note that these flags are not mirrors of SNES controller flags. They merely signify which states the player is experiencing. For example, the Jump flag can be set by whatever button maps to jumping. Also, the flag is set only by the controller of the current player. |
|
$7E000A | 1 byte | Flag | Super Mario Bros. 1 | Bit flags: JD000000 J - Jump button D - Dash button |
|
$7E000B | 1 byte | Flag | Super Mario Bros. 1 | Bit flags: 0000UD00 U - Up button D - Down button |
|
$7E000C | 1 byte | Flag | Super Mario Bros. 1 | Bit flags: 000000LR L - Left flag R - Right flag |
|
$7E000D | 1 byte | Flag | Super Mario Bros. 1 | Saves the value of $7E:000A (jump/run flags) from the previous frame. | |
$7E000F | 1 byte | Player Action | Super Mario Bros. 1 | Player's current action (Entering pipe, fade to image before level, vine, etc.) TODO: verify "Number of subroutines to run in game engine on next frame" |
|
$7E0010 | 8 bytes | Sprites | Super Mario Bros. 1 | Sprite onscreen flag. Bit 7 = never overwrite sprite slot of current index. Bit 0 = Onscreen flag. |
|
$7E0010 | 1 byte | Counter | Super Mario Bros. 2 | Frame Counter | |
$7E0011 | 1 byte | Stripe Image | Super Mario Bros. 1 | Layer image upload | |
$7E0012 | 1 byte | Position | Super Mario Bros. 3/Global | Which screen number the player is in. TODO: Verify, editing this seems to screw with the level drawing | |
$7E0014 | 1 byte | Player | Super Mario Bros. 2 | Player's X-position, high byte. | |
$7E0014 | 1 byte | Flag | Super Mario Bros. 3/Global | Level completed flag. | |
$7E0015 | 9 bytes | Sprites | Super Mario Bros. 2 | Sprites' X-position, high byte. | |
$7E0015 | 1 byte | Counter | Super Mario Bros. 3/Global | Frame counter. | |
$7E0016 | 1 byte | Hardware Mirror | Super Mario Bros. 3/Global | Brightness. Does not affect the statusbar on the overworld. | |
$7E001C | 8 bytes | Sprites | Super Mario Bros. 1 | Sprite number | |
$7E001C | 1 byte | Timer | Intro & Game Select Screens | Number of frames to show intro logo. Is initially set to #$81. At #$61, the logo will flash. |
|
$7E001E | 1 byte | Player | Super Mario Bros. 2 | Player's Y-position, high byte. | |
$7E001F | 9 bytes | Sprites | Super Mario Bros. 2 | Sprites' Y-position, high byte. | |
$7E0022 | 1 byte | Level | Super Mario Bros. 3/Global | How many screens the level has. | |
$7E0022 | 1 byte | Timer | Intro & Game Select Screens | Amount of time to wait until the "Super Mario All-Stars" text flashes. | |
$7E0022 | 1 byte | Timer | Intro & Game Select Screens | Timer for various things. 1. Number of frames to show each flash state during intro logo flashing |
|
$7E0023 | 1 byte | Counter | Intro & Game Select Screens | What step we are in, in the flashing "ALL*STARS" text in the hall screen. | |
$7E0024 | 1 byte | Flag | Intro & Game Select Screens | Flag for various animation timers. When set, the animation timers will begin. 1. Flash animation for intro logo |
|
$7E0025 | 1 byte | Sprites | Super Mario Bros. 1 | Sprite number which came out of a question block. | |
$7E0027 | 1 byte | Flag | Intro & Game Select Screens | Is #$10 if the start button has been pressed by either controller, otherwise #$00. | |
$7E0028 | 1 byte | Player | Super Mario Bros. 2 | Player's X position, low byte | |
$7E0029 | 8 bytes | Sprites | Super Mario Bros. 1 | Sprite state. TODO: Find a list of values |
|
$7E0029 | 9 bytes | Sprites | Super Mario Bros. 2 | Sprites' X-position, low byte. First three bytes also used for movement of bonus slots. 00 = stop, 01 = slowing down, 02-FF = not slowing down. | |
$7E002E | 3 bytes | Pointers | Super Mario Bros. 3/Main gameplay | 24-bit pointer to the level map16 layout in RAM. (Note that this is used for both the low and high bytes; the game changes the index to switch between them.) | |
$7E0031 | 3 bytes | Pointers | Super Mario Bros. 3/Global | Pointer to current current level's sprite data (SNES Address, Little endian) | |
$7E0032 | 1 byte | Player | Super Mario Bros. 2 | Player's Y-Position, low byte | |
$7E0033 | 2 bytes | Sprites | Super Mario Bros. 1 | Fireball states TODO: Find out about the values |
|
$7E0033 | 9 bytes | Sprites | Super Mario Bros. 2 | Sprites' Y-position, low byte. $7E0038-9 is speed of bonus slot 1's images. $7E003A-B is speed of bonus slot 2's images. | |
$7E0035 | 2 bytes | Sprites | Super Mario Bros. 1 | Bounce block state TODO: find out the states |
|
$7E003C | 1 byte | Speed | Super Mario Bros. 2 | Speed of one of bonus slot 3's images. Also used for player's speed. | |
$7E003D | 9 bytes | Sprites | Super Mario Bros. 2 | Sprite X speed table. $3D is also used for speed of the other of bonus slot 3's images. | |
$7E0042 | 2 bytes | X Position | Super Mario Bros. 1 | X-Position of screen | |
$7E0042 | 2 bytes | X Position | Super Mario Bros. 1 | Horizontal X coordinate of left side of the screen - 16-bit value. Used for rendering certain sprites and sprite particles at their proper position. |
|
$7E0043 | 2 bytes | Overworld | Super Mario Bros. 3/Overworld | Low byte of the player Y position on the overworld. Byte 1 is for Mario, byte 2 is for Luigi | |
$7E0043 | 1 byte | Miscellaneous | Super Mario Bros. 3/Main gameplay | Player X position in the level, high byte (i.e. screen number) | |
$7E0044 | 9 bytes | Sprites | Super Mario Bros. 3/Global | Sprite X position, high byte. TODO: Verify length |
|
$7E0045 | 2 bytes | Overworld | Super Mario Bros. 3/Overworld | High byte of the player X position. Alternatively, this can be considered the submap number of the current world the players are on. The first byte is for Mario, while the second is for Luigi. | |
$7E0046 | 1 byte | Player | Super Mario Bros. 1 | Facing direction of player $01 - Right $02 - Left |
|
$7E0046 | 1 byte | Player | Super Mario Bros. 2 | Player's Y-speed | |
$7E0047 | 8 bytes | Sprites | Super Mario Bros. 1 | Sprite direction $01 - Right $02 - Left |
|
$7E0047 | 9 bytes | Sprites | Super Mario Bros. 2 | Sprite Y speed table | |
$7E0047 | 2 bytes | X Position | Super Mario Bros. 3/Global | Player overworld X-position. First byte is for Mario, second byte for Luigi. |
|
$7E0047 | Unknown | X Position | Super Mario Bros. 3/Main gameplay | Sprite X position in the level, high byte. TODO: verify length |
|
$7E004C | 1 byte | Direction | Super Mario Bros. 3/Global | Player's direction on the overworld. | |
$7E0050 | 1 byte | Direction | Super Mario Bros. 1 | The direction of the sprite which came out of a [?]-block. | |
$7E0051 | 9 bytes | Sprites | Super Mario Bros. 2 | Sprite status table. 00 = non-existant/init, 01 = main, 02 = falling from screen, 03 = flat, 04 = explode, 05 = disappear in a puff of smoke, 06 = dissolving sand, 07 = stop interacting, 08 = disappear in two puffs of smoke, 09 = disappear abruptly | |
$7E0055 | 1 byte | Y Position | Super Mario Bros. 3/Main gameplay | Player Y-position in the level, high byte. | |
$7E0056 | 9 bytes | Sprites | Super Mario Bros. 3/Global | Sprite Y position, high byte. TODO: Verify length |
|
$7E005A | 1 byte | Flag | Super Mario Bros. 3/Global | "Players spins in the overworld" flag (e.g. when player dies and gets placed to the latest checkpoint) | |
$7E005C | 1 byte | Level Data | Super Mario Bros. 1 | Map Type $00 - Underwater $01 - Normal $02 - Underground $03 - Castle This address always has the same value as $7E:00BA. |
|
$7E005D | 1 byte | X Speed | Super Mario Bros. 1 | Player's X Speed | |
$7E005E | 8 bytes | X Speed | Super Mario Bros. 1 | Sprite X-Speed | |
$7E005E | 1 byte | X Position | Super Mario Bros. 3/Global | Player X-position in the level, low byte | |
$7E005F | 9 bytes | Sprites | Super Mario Bros. 3/Global | Sprite X position, low byte. TODO: Verify length |
|
$7E0060 | 4 bytes | Sound Effect | Intro & Game Select Screens | SPC700 I/O Ports. Write values to play music/sound effects. | |
$7E0067 | 1 byte | X Speed | Super Mario Bros. 1 | X speed of the sprite which came out of a [?]-block. | |
$7E0068 | 2 bytes | X Speed | Super Mario Bros. 1 | Fireball X-Speed | |
$7E006A | 2 bytes | X Speed | Super Mario Bros. 1 | Bounce blocks X-Speed | |
$7E0070 | 1 byte | Y Position | Super Mario Bros. 3/Global | Player Y-position in the level, low byte. TODO: Also related to OW 'player spawns' stars (those spinning ones), 34 bytes. |
|
$7E0071 | 9 bytes | Sprites | Super Mario Bros. 3/Global | Sprite Y position, low byte. TODO: Verify length |
|
$7E0078 | 1 byte | X Position | Super Mario Bros. 1 | Player X-Position, high byte. | |
$7E0079 | 8 bytes | X Position | Super Mario Bros. 1 | Sprite X-Position, high byte. | |
$7E0082 | 1 byte | Player | Super Mario Bros. 2 | Amount of time to remain in a player state. | |
$7E0084 | 2 bytes | X Position | Super Mario Bros. 1 | Fireball X-Position, high byte. | |
$7E0086 | 2 bytes | X Position | Super Mario Bros. 1 | Bounce block X-Position, high byte. | |
$7E008B | 1 byte | Speed | Super Mario Bros. 3/Global | Player X-speed | |
$7E008C | 9 bytes | Sprites | Super Mario Bros. 3/Global | Sprite X speed. TODO: Verify length |
|
$7E008F | 1 byte | Player | Super Mario Bros. 2 | Current player. #$00 = Mario; #$01 = Peach; #$02 = Toad; #$03 = Luigi. | |
$7E0090 | 9 bytes | Sprite Number | Super Mario Bros. 2 | Sprite num table | |
$7E0099 | 1 byte | Level | Super Mario Bros. 1 | Which tileset to load upon level load. $00 - Unused? $01 - Mario bonus background + cave FG $02 - Hills background & SUPER MARIO BROS banner $03 - Underground background $04 - Castle FG & BG tileset $05 - Tall slim hills background $06 - Castle FG & BG tileset $07 - Hills background $08 - Underwater BG & FG tileset $09 - Hills background & SUPER MARIO BROS banner $0A - Game over screen & Mario bonus room background $0B - Starry night background $0C - Bowser's Castle (outside) background $0D - Mushrooms background $0E - Waterfall background $0F - Underwater ruins background $10 - Goomba pillars BG & snow FG $11 - Underground foreground $12 - Snow foreground $13 - Bowser's Castle BG, part 1 $14 - Bowser's Castle BG, part 2 $15 - Game Over and Time Up text $16 - Starry night background $17 - Grass foreground $18 - Luigi bonus background + cave FG |
|
$7E0099 | 1 byte | Level | Super Mario Bros. 1 | Graphics to upload during level load. See this for a list of values. | |
$7E009B | 1 byte | Sprites | Super Mario Bros. 3/Global | The current sprite index. | |
$7E009C | 1 byte | Flag | Super Mario Bros. 2 | Player holding item flag ($01 = Holding.) | |
$7E009D | 1 byte | Player | Super Mario Bros. 2 | Player's Direction ($00 = Left, $01 = Right) | |
$7E009D | 1 byte | Y Speed | Super Mario Bros. 3/Global | Player Y-speed | |
$7E009E | 1 byte | Index | Super Mario Bros. 1 | Current sprite index | |
$7E009E | 9 bytes | Sprites | Super Mario Bros. 3/Global | Sprite Y speed. TODO: Verify length |
|
$7E00A0 | 1 byte | Y Speed | Super Mario Bros. 1 | Player's Y Speed | |
$7E00A1 | 8 bytes | Y Speed | Super Mario Bros. 1 | Sprite Y Speed | |
$7E00A2 | 1 byte | Counter | Super Mario Bros. 2 | Alternative Frame Counter (Stops at times) | |
$7E00A8 | 9 bytes | Sprites | Super Mario Bros. 2 | Sprite is picked up table. 07 = sprite = bottom at player, 01 = top, 00 = normal state | |
$7E00AA | 1 byte | Y Speed | Super Mario Bros. 1 | Y speed of the sprite which came out of a [?]-block. TODO: Value is only applied when the sprite is airborne? | |
$7E00AB | 2 bytes | Y Speed | Super Mario Bros. 1 | Player fireballs Y speed | |
$7E00AB | 3 bytes | Pointers | Super Mario Bros. 3/Global | Pointer to 24-bit RAM address which contains the windowing HDMA table used for various effects. Seems to alternate between $7F:9000 and $7F:9200. |
|
$7E00AD | 2 bytes | Y Speed | Super Mario Bros. 1 | Bounce block Y speed | |
$7E00B3 | 1 byte | Overworld | Super Mario Bros. 3/Global | What overworld tile the player is standing on. TODO: List of overworld tiles. |
|
$7E00BA | 1 byte | Level | Super Mario Bros. 1 | Current background palette and music. $00 - Light blue background with underwater music $01 - Light blue background with normal world music $02 - Black background with underground music $03 - Black background with castle music This address always has the same value as $7E:005C. |
|
$7E00BB | 1 byte | Y Position | Super Mario Bros. 1 | Player position in the level: $00 - Top of screen (above status bar) $01 - Inside range (anywhere he can shoot fireballs) $02 - In pit (obviously causes death, value increases up to 6) |
|
$7E00BB | 1 byte | Miscellaneous | Super Mario Bros. 3/Global | Something related about OW powerup get? ($07 + higher= glitch) TODO: Verify |
|
$7E00BC | 8 bytes | Y Position | Super Mario Bros. 1 | Sprite Y position in the level. $00 - Top of screen (above status bar) $01 - Inside range $02 - In pit |
|