Language…
17 users online: BlueSheep123, Dark Prince, DoubleCakes, Hammerer, LazyRuns, Lizard_433, lo fang 123, MM102, mmBeefStew, OnlySpaghettiCode, RareMojo, Sheilal14,  shovda, stormitive, TheMorganah, Tulip Time Scholarship Games, Wavee - Guests: 133 - Bots: 303
Users: 64,663 (2,406 active)
Latest user: NightSpark

SMAS Memory Map

Displaying 50 out of 631 addresses.

View: moderated | waiting (204)

Filter

Link
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