Banner
Views: 715,205,201
Time:
4 users online: Falaflame, gaminggiga, o Khastvrokg, MarioFanGamer - Guests: 32 - Bots: 206Users: 37,342 (1,641 active)
Latest: MrWizard
Not logged in.
SMAS RAM Map
Displaying 620 addresses. Show waiting addresses (96) - Submit address
Address Length Context Type Description
$7E0000 8 bytes Miscellaneous Scratch RAM for many subroutines
$7E0000 Unknown Miscellaneous 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.
$7E0009 1 byte Counter Frame Counter
$7E000A 3 bytes Flag 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 Bit flags: JD000000
J - Jump button
D - Dash button
$7E000B 1 byte Flag Bit flags: 0000UD00
U - Up button
D - Down button
$7E000C 1 byte Flag Bit flags: 000000LR
L - Left flag
R - Right flag
$7E000D 1 byte Flag Saves the value of $7E:000A (jump/run flags) from the previous frame.
$7E000F 1 byte Player Action 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 Sprite onscreen flag.

Bit 7 = never overwrite sprite slot of current index.
Bit 0 = Onscreen flag.
$7E0010 1 byte Counter Frame Counter
$7E0011 1 byte Stripe Image Layer image upload
$7E0012 1 byte Position Which screen number the player is in. TODO: Verify, editing this seems to screw with the level drawing
$7E0014 1 byte Player Player's X-position, high byte.
$7E0014 1 byte Flag Level completed flag.
$7E0015 9 bytes Sprites Sprites' X-position, high byte.
$7E0015 1 byte Counter Frame counter.
$7E0016 1 byte Hardware Mirror Brightness. Does not affect the statusbar on the overworld.
$7E001C 8 bytes Sprites Sprite number
$7E001C 1 byte Timer Number of frames to show intro logo.

Is initially set to #$81.

At #$61, the logo will flash.
$7E001E 1 byte Player Player's Y-position, high byte.
$7E001F 9 bytes Sprites Sprites' Y-position, high byte.
$7E0022 1 byte Level How many screens the level has.
$7E0022 1 byte Timer Timer for various things.

1. Number of frames to show each flash state during intro logo flashing
$7E0022 1 byte Timer Amount of time to wait until the "Super Mario All-Stars" text flashes.
$7E0023 1 byte Counter What step we are in, in the flashing "ALL*STARS" text in the hall screen.
$7E0024 1 byte Flag Flag for various animation timers. When set, the animation timers will begin.

1. Flash animation for intro logo
$7E0025 1 byte Sprites Sprite number which came out of a question block.
$7E0027 1 byte Flag Is #$10 if the start button has been pressed by either controller, otherwise #$00.
$7E0028 1 byte Player Player's X position, low byte
$7E0029 8 bytes Sprites Sprite state.

TODO: Find a list of values
$7E0029 9 bytes Sprites 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 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 Pointer to current current level's sprite data (SNES Address, Little endian)
$7E0032 1 byte Player Player's Y-Position, low byte
$7E0033 2 bytes Sprites Fireball states

TODO: Find out about the values
$7E0033 9 bytes Sprites 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 Bounce block state

TODO: find out the states
$7E003C 1 byte Speed Speed of one of bonus slot 3's images. Also used for player's speed.
$7E003D 9 bytes Sprites Sprite X speed table. $3D is also used for speed of the other of bonus slot 3's images.
$7E0042 2 bytes X Position X-Position of screen
$7E0042 2 bytes X Position 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 Low byte of the player Y position on the overworld. Byte 1 is for Mario, byte 2 is for Luigi
$7E0043 1 byte Miscellaneous Player X position in the level, high byte (i.e. screen number)
$7E0044 9 bytes Sprites Sprite X position, high byte.

TODO: Verify length
$7E0045 2 bytes 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 Facing direction of player
$01 - Right
$02 - Left
$7E0046 1 byte Player Player's Y-speed
$7E0047 8 bytes Sprites Sprite direction
$01 - Right
$02 - Left
$7E0047 9 bytes Sprites Sprite Y speed table
$7E0047 2 bytes X Position Player overworld X-position.

First byte is for Mario, second byte for Luigi.
$7E0047 Unknown X Position Sprite X position in the level, high byte.

TODO: verify length
$7E004C 1 byte Direction Player's direction on the overworld.
$7E0050 1 byte Direction The direction of the sprite which came out of a [?]-block.
$7E0051 9 bytes Sprites 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 Player Y-position in the level, high byte.
$7E0056 9 bytes Sprites Sprite Y position, high byte.

TODO: Verify length
$7E005A 1 byte Flag "Players spins in the overworld" flag (e.g. when player dies and gets placed to the latest checkpoint)
$7E005C 1 byte Level Data 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 Player's X Speed
$7E005E 8 bytes X Speed Sprite X-Speed
$7E005E 1 byte X Position Player X-position in the level, low byte
$7E005F 9 bytes Sprites Sprite X position, low byte.

TODO: Verify length
$7E0060 4 bytes Sound Effect SPC700 I/O Ports. Write values to play music/sound effects.
$7E0067 1 byte X Speed X speed of the sprite which came out of a [?]-block.
$7E0068 2 bytes X Speed Fireball X-Speed
$7E006A 2 bytes X Speed Bounce blocks X-Speed
$7E0070 1 byte Y Position 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 Sprite Y position, low byte.

TODO: Verify length
$7E0078 1 byte X Position Player X-Position, high byte.
$7E0079 8 bytes X Position Sprite X-Position, high byte.
$7E0082 1 byte Player Amount of time to remain in a player state.
$7E0084 2 bytes X Position Fireball X-Position, high byte.
$7E0086 2 bytes X Position Bounce block X-Position, high byte.
$7E008B 1 byte Speed Player X-speed
$7E008C 9 bytes Sprites Sprite X speed.

TODO: Verify length
$7E008F 1 byte Player Current player. #$00 = Mario; #$01 = Peach; #$02 = Toad; #$03 = Luigi.
$7E0090 9 bytes Sprite Number Sprite num table
$7E0099 1 byte Level 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 Graphics to upload during level load. See this for a list of values.
$7E009B 1 byte Sprites The current sprite index.
$7E009C 1 byte Flag Player holding item flag ($01 = Holding.)
$7E009D 1 byte Player Player's Direction ($00 = Left, $01 = Right)
$7E009D 1 byte Y Speed Player Y-speed
$7E009E 1 byte Index Current sprite index
$7E009E 9 bytes Sprites Sprite Y speed.

TODO: Verify length
$7E00A0 1 byte Y Speed Player's Y Speed
$7E00A1 8 bytes Y Speed Sprite Y Speed
$7E00A2 1 byte Counter Alternative Frame Counter (Stops at times)
$7E00A8 9 bytes Sprites Sprite is picked up table. 07 = sprite = bottom at player, 01 = top, 00 = normal state
$7E00AA 1 byte Y Speed 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 Player fireballs Y speed
$7E00AB 3 bytes Pointers 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 Bounce block Y speed
$7E00B3 1 byte Overworld What overworld tile the player is standing on.

TODO: List of overworld tiles.
$7E00BA 1 byte Level 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 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 Something related about OW powerup get? ($07 + higher= glitch)

TODO: Verify
$7E00BC 8 bytes Y Position Sprite Y position in the level.

$00 - Top of screen (above status bar)
$01 - Inside range
$02 - In pit
$7E00BD 1 byte Direction 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 Indicates that the player is dying. Setting it causes the player to die immediately.
$7E00C5 1 byte Y Position [?]-block sprite Y position

$00 - Top of screen (above status bar)
$01 - Inside range
$02 - In pit
$7E00D0 1 byte Index Selected game index in the Game Select screen
$7E00D1 1 byte Index Selected file index in the File Select screen
$7E00D9 2 bytes Pointers 16-bit pointer to Layer 1 room data.
$7E00DB 1 byte Level Data 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 If non-zero $7F:0000 will get uploaded to BG1's tilemap.
$7E00E2 8 bytes X Position Extended sprite X-position, high byte.
$7E00E3 2 bytes Timer Timer for showing the current hall screen state (blackout) or (lightened).

#$011A - First blackout time
#$044A - First lightened time
$7E00EB 2 bytes Clipping 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 Horizontal level flag. #$00 = Vertical level; #$01 = Horizontal level.
$7E00ED 2 bytes Miscellaneous Used during level loading to load level backgrounds: Used to calculate $7E00EB

Also used by the podoboo lava splash.
$7E00EF 2 bytes Level Data 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 Indirect pointer to load a layer image from. Controlled by $11.
$7E00F0 1 byte Hardware Mirror 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 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 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 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 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 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 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 Controller Data 1. AXSPUDLR. All frames.
$7E00F6 1 byte Hardware Mirror 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 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 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 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 24-bit pointer to current level's objects, and their positions (SNES Address, Little endian)
$7E00FA 1 byte Hardware Mirror Controller Data 2. AXSPUDLR. 1 frame.
$7E00FA 1 byte Hardware Mirror 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 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 24-bit pointer to current level's sprites, and their positions (SNES Address, Little endian)
$7E00FD 1 byte Counter Frame counter.
$7E00FE 1 byte Hardware Mirror Brightness Register
$7E00FF 1 byte Hardware Mirror NMI / Joypad Enable
$7E0100 1 byte Hardware Mirror Screen brightness.
$7E0101 1 byte Index 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 Mirror of $7E:2101 - Object Size and Chr Size
$7E0102 1 byte Hardware Mirror Mirror of $2105: BG Mode and Character Size
$7E0103 1 byte Hardware Mirror Mirror of $2106: Screen Pixelation
$7E0104 1 byte Hardware Mirror Mirror of $2107: BG1 Tilemap Address and Size
$7E0105 1 byte Hardware Mirror Mirror of $2108: BG2 Tilemap Address and Size
$7E0106 1 byte Hardware Mirror Mirror of $2109: BG3 Tilemap Address and Size
$7E0107 1 byte Hardware Mirror Mirror of $210B: Mirror of BG1 and 2 Chr Address
$7E0108 1 byte Hardware Mirror 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 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 Mirror of $210E: BG1 Vertical Scroll
This value represents the low byte address and is written to the register first.
$7E010B 1 byte Flag "Three byte object" flag when loading level data
$7E010B 1 byte Hardware Mirror Mirror of $210E: BG1 Vertical Scroll
This value represents the high byte address and is written to the register second.
$7E010C 1 byte Hardware Mirror Mirror of $210F: BG2 Horizontal Scroll
This value represents the low byte address and is written to the register first.
$7E010D 1 byte Hardware Mirror Mirror of $210F: BG2 Horizontal Scroll
This value represents the high byte address and is written to the register second.
$7E010E 1 byte Hardware Mirror Mirror of $2110: BG2 Vertical Scroll
This value represents the low byte address and is written to the register first.
$7E010F 1 byte Hardware Mirror Mirror of $2110: BG2 Vertical Scroll
This value represents the high byte address and is written to the register second.
$7E0110 1 byte Hardware Mirror Mirror of $2111: BG3 Horizontal Scroll
This value represents the low byte address and is written to the register first.
$7E0111 1 byte Hardware Mirror Mirror of $2111: BG3 Horizontal Scroll
This value represents the high byte address and is written to the register second.
$7E0112 1 byte Hardware Mirror Mirror of $2112: BG3 Vertical Scroll
This value represents the low byte address and is written to the register first.
$7E0113 1 byte Hardware Mirror Mirror of $2112: BG3 Vertical Scroll
This value represents the high byte address and is written to the register second.
$7E0114 1 byte Hardware Mirror Mirror of $2123: Window Mask Settings for BG1 and BG2
$7E0115 1 byte Hardware Mirror Mirror of $2124: Window Mask Settings for BG3 and BG4
$7E0116 1 byte Hardware Mirror Mirror of $2125: Window Mask Settings for OBJ and Color Window
$7E0117 1 byte Hardware Mirror Mirror of $212C (Main screen designation).
$7E0117 1 byte Hardware Mirror Mirror of $212C: Main Screen Designation
$7E0118 1 byte Hardware Mirror Mirror of $212D: Subscreen Designation
$7E0118 1 byte Hardware Mirror Mirror of $212D (Sub screen designation).
$7E0119 1 byte Hardware Mirror Mirror of $212E: Window Mask Designation for the Main Screen
$7E011A 1 byte Hardware Mirror Mirror of $212F: Window Mask Designation for the Subscreen
$7E011B 1 byte Hardware Mirror Mirror of $2130: Color addition select
$7E011B 1 byte Hardware Mirror Mirror of $2130 (Color Addition Select).
$7E011C 1 byte Hardware Mirror Mirror of $2131: Color math designation
$7E011C 1 byte Hardware Mirror Miror of $2131 (Color math designation).
$7E011D 1 byte Hardware Mirror Mirror of $2132: Fixed color data
This value is written to the mirror first.
$7E011D 3 bytes Hardware Mirror Mirror of $2132 (Fixed Color Data).

$011D - Red fixed color component.
$011E - Green fixed color component.
$011F - Blue fixed color component.
$7E011E 1 byte Hardware Mirror Mirror of $2132: Fixed color data
This value is written to the mirror second.
$7E011F 1 byte Hardware Mirror Mirror of $2132: Fixed color data
This value is written to the mirror third.
$7E0120 1 byte Hardware Mirror Mirror of $7E:420C - HDMA Enable
$7E0121 1 byte Miscellaneous Value is always $7E:0124 & #$FE, but is never read in-game.
$7E0122 1 byte Flag "Main program loop initialize" flag.

This flag is set during NMI. Once set, the game will go through its main program loop. When the loop is finished, it will clear the flag and wait for NMI to set it again before continuing.
$7E0124 1 byte Flag General IRQ flag. If set, IRQ mode registers will be enabled
$7E0124 2 bytes Counter IRQ Vertical timer. Writes to $4209 and $420A. Used to keep the "Select v Game" box at a static position.
$7E0125 1 byte Hardware Mirror Mirror of $7E:4209 - V-timer low byte.
$7E0154 1 byte Flag If the value in it is not zero, run the actual game; otherwise, loop forever. It's set to a non-zero value during NMI, and it's set to zero after the game mode has been run, so that the game runs exactly once a frame - one NMI trigger per frame.
$7E0156 170 bytes Stack Stack RAM area reserved for everything in Super Mario All-Stars. Ends at $7E01FF.
$7E0160 1 byte Player Debug RAM. Setting it to $80 will allow you to cycle through the player's power-ups by using select. You can also press A / B / X / Y and Select to toggle the Kuribo's Shoe power-up.
$7E0200 2 bytes Hardware Mirror BG 1 X position
$7E0200 1 byte Hardware Mirror Window Mask Settings for BG1 and BG2
$7E0200 1 byte Index Tilemap index for animating Luigi's head
$7E0201 1 byte Hardware Mirror Window Mask Settings for BG3 and BG4
$7E0201 1 byte Index Tilemap index for animating Luigi's right hand
$7E0202 1 byte Direction Player direction.
$01 - Right
$02 - left
$7E0202 2 bytes Hardware Mirror BG 2 X position
$7E0202 1 byte Hardware Mirror Window Mask Settings for OBJ and Color Window
$7E0202 1 byte Index Tilemap index for animating Peach's head
$7E0203 1 byte Hardware Mirror Color Addition Select
$7E0203 1 byte Index Tilemap index for animating Toad
$7E0204 2 bytes Hardware Mirror BG 3 X position
$7E0204 1 byte Hardware Mirror Color math designation
$7E0204 1 byte Index Tilemap index for animating Birdo's eyes.
This animation sequence was cut from the final game.
$7E0205 1 byte Hardware Mirror Fixed Color Data (red)
$7E0205 1 byte Index Tilemap index for animating Birdo's right arm
$7E0206 2 bytes Hardware Mirror BG 1 Y Position, works together with $04C6 (low byte)
$7E0206 1 byte Hardware Mirror Fixed Color Data (green)
$7E0206 1 byte Index Tilemap index for animating Birdo's tail
$7E0207 1 byte Hardware Mirror Fixed Color Data (blue)
$7E0207 1 byte Index Tilemap index for animating Gommba's head.
This animation sequence was cut from the final game.
$7E0208 2 bytes Hardware Mirror BG 2 Y position
$7E0208 1 byte Hardware Mirror Main Screen Designation
$7E0208 1 byte Index Tilemap index for animating Bob-omb's fuse.
This animation sequence was cut from the final game.
$7E0209 1 byte Hardware Mirror Subscreen Designation
$7E0209 1 byte Index Tilemap index for animating Spiney's head.
This animation sequence was cut from the final game.
$7E020A 2 bytes Hardware Mirror BG 3 Y position
$7E020A 1 byte Hardware Mirror Window Mask Designation for the Main Screen
$7E020A 1 byte Index Tilemap index for animating Pidgit.
$7E020B 1 byte Hardware Mirror Window Mask Designation for the Subscreen
$7E020B 1 byte Index Tilemap index for animating Mario's head.

Also acts as a flag to animate Mario's left arm on frame 0 and frame 6.

Resets after 10 frames
$7E020C 1 byte Powerup Which powerup the current powerup entity is. ($00 = Mushroom, $01 = Fireflower, $02 = Star, $03 = 1-up)

Note: You can only have one powerup on the screen, hence this address is a single byte.
$7E020C 1 byte Clipping BG Mode and Character Size
$7E020C 1 byte Index Tilemap index for animating Mario's left arm.
$7E020D 1 byte Hardware Mirror Screen Pixelation
$7E020D 1 byte Index Tilemap index for animating Bowser's left arm.
$7E020E 1 byte Graphics BG mode of statusbar (Mode 1 by default)
$7E020F 1 byte Hardware Mirror Main screen designation of statusbar
$7E0210 2 bytes X Position BG1 Horizontal Scroll position

TODO: maybe break up into 2 sub addresses for low and high byte
$7E0214 2 bytes Hardware Mirror Mirror of $7E:210D - BG1 horizontal scroll.

The low byte is written first and then the high byte is written second.

This mirror is only applied during IRQ.
$7E0214 2 bytes Hardware Mirror BG1 Vertical scroll (IRQ) in Game Select screen
$7E0216 2 bytes Y Position BG1 Camera Y position. In the top of the level, this has a value of $0000 while on ground level in horizontal levels, this has a value of $00EF.
$7E0216 1 byte Timer BG1 IRQ scroll timer in Game Select screen. This timer is used when scrolling right.
$7E0217 1 byte Timer BG1 IRQ scroll timer in Game Select screen. This timer is used when scrolling left.
$7E0218 1 byte Flag Player's "peace" pose flag. (Used when entering vertical pipes)
$7E0218 2 bytes Y Position BG2 Camera Y position.
$7E0218 1 byte Counter Scroll index in Game Select menu. Increments by 1 when scrolling right, decrements by 1 when scrolling left.
$7E0219 1 byte X Position Player's current X position within the screen.
$7E0219 1 byte Flag "File Select mode" flag
$7E021A 8 bytes X Position Sprite X position, low byte
$7E021A 1 byte Flag "File Select open/close" flag. When set, the File Select menu will either open if closed, or close if opened.
$7E021B 128 bytes Timer "File Select open/close" timer. Counts the number of frames remaining to continue opening/closing the File Select menu.
$7E0220 1 byte Flag "File Select menu open" flag. When set, the File Select menu in the Game Select screen is open.
$7E0223 1 byte Timer Wait time before fading out the screen after a game has been selected.
$7E0224 1 byte Flag "Begin gameplay" flag. Becomes set as soon as the player chooses a file in the Game Select screen. The flag is set to #$29 because it is set at the same time the "Begin gameplay" SFX is loaded (which is also #$29).
$7E0225 1 byte Flag When $7E:00E3 decrements to this value, the timer delay for the next shine effect on the ALL-STARS logo in the intro will be set.
$7E0235 1 byte Hardware Mirror Window Mask for BG1 & BG2
$7E0236 1 byte Flag Grow vine in start of level (e.g. bonus cloud) flag.
$7E0236 1 byte Hardware Mirror Window Mask for BG3 & BG4
$7E0237 1 byte Y Position Player's Y Position
$7E0237 1 byte Hardware Mirror Window Mask for OBJ & COL
$7E0238 8 bytes Y Position Sprite Y position, low byte
$7E0238 1 byte Hardware Mirror Color addition select
$7E0239 1 byte Hardware Mirror CGADSUB settings
$7E023A 1 byte Hardware Mirror HDMA Enable
$7E023B 1 byte Hardware Mirror Window Mask Desig. Main Screen
$7E023D 3 bytes Hardware Mirror RGB Values for backdrop color
$7E0243 1 byte Hardware Mirror Main Screen Designation
$7E024B 1 byte Hardware Mirror V-count for IRQ. Starry BG appears at screen load.
$7E024C 1 byte Hardware Mirror BG1 Tilemap Address & Size
$7E026C 5 bytes X Position Whirlpool sprite X position, high byte.
$7E0283 1 byte Counter Bowser sprite's health against the player's fireballs.
$7E0285 2 bytes DMA Graphics DMA: Source address low and high byte
$7E0287 1 byte DMA Graphics DMA: Bank byte
$7E0288 2 bytes DMA Graphics DMA: DMA size
$7E028A 2 bytes DMA Graphics DMA: VRAM destination address
$7E028C 1 byte Flag Flag to disable scenery graphics animation and most of the background animations.
$7E028C 1 byte Flag Shows the Game Over dialogue on the overworld.
$7E028D 1 byte Flag Flag to upload the next frame of animated FG.
$7E02A9 1 byte Flag (Don't) update palettes flag.
$7E02C5 1 byte Level Data Layer 2 Palette, written upon level load.
$00 -
TODO: List of possible values.
$7E02DA 2 bytes Score The number of rounds each player has won in this match.
$7E02DE 2 bytes Score The number of matches each player has won. This determines the number of stars on the scoreboard.
$7E02DF 3 bytes Pointers Layer 2 Map16 data pointer.
$7E02E0 1 byte Speed Something related about Mario running at full speed

TODO: Figure out what
$7E02F8 1 byte Flag Bonus Room flag.
$7E0350 1 byte Level Data Layer 2 Background, written upon level load. Values #$26 and higher are most likely invalid. (TODO: double-check this)
$7E0364 1 byte Timer Amount of time left to make the next part of Bowser's bridge crumble
todo: also has other purposes during the Bowser fight
$7E0365 1 byte Direction Bowser sprite's movement direction.
$01 = right
$02 = right, but all he does is run towards the axe
$FF = left
$7E0367 1 byte Timer Index to ROM table $03:D6F1 (timer delay for next Bowser fireball). Increases as a bowser fireball is launched
$7E0368 1 byte Index Index of the Bowser sprite.
$7E037C 1 byte Miscellaneous Used by the 'slot machine' minigame to determine xposition of the parts.

TODO: What exactly is this address for?
$7E0399 1 byte Sprites How long the vine (both in start of a level and item boxes) has grown.
$7E03A2 8 bytes Timer Hammer bros hammer throw timer.

TODO: Also related to the player interacting with the red platforms.
$7E03CA 1 byte Timer Bowser's "dizzy bubbles" timer. Increases and shows the animation, until value $34.

Used in combination with $7E03CB.
$7E03CB 1 byte Flag Bowser's "dizzy bubbles" animation flag upon receiving the 4th fireball hit. Used in combination with $7E03CA.
$7E03F2 1 byte Counter Counts the amount of bounce blocks you've created in the current level. Doesn't seem to be used for anything else.
$7E0400 896 bytes VRAM Tilemap "File Select tileset" buffer
$7E0422 1 byte Counter Amount of coins added to the coin counter (so setting this to $02 will add 2 coins to the coin counter).
$7E0428 1 byte Flag Setting this to $01 in a level gives the player the star powerup for the default amount of time.

Setting this in the overworld will give the player the star powerup on the overworld, to be applied when you enter a level.
$7E0429 1 byte Player Player's image on the overworld.

$00 - Small
$01 - Big
$02 - Big
$03 - Leaf
$04 - Frog
$05 - Tanooki
$06 - Hammer
$07 - Jugem's Cloud
$08 - P-Wing
$09 and higher - Glitch

Does not affect the powerup upon level entrance.
Palette does not update when changing image.
$7E04B5 1 byte Flag Crystal ball has been collected flag, height of opened mouth of hawkmouth.
$7E04B7 1 byte Counter How long the dark potion rooms last.
$7E04C3 1 byte Counter HP count. (Red hearts.)
$7E04C4 1 byte Miscellaneous Amount of hearts to show + 2.
$7E04C6 1 byte Hardware Mirror BG 1 Y (low byte) position, works together with $0206. Used for effects such as the POW.
$7E04CA 1 byte Player The amount of time the player can float.
$7E04CB 1 byte Counter Amount of time the player has to charge up for before doing the super jump.
$7E04E1 1 byte Timer Flashing timer, can kill enemies.
$7E04E8 1 byte Counter Accumulative level number to continue on.
$7E04E9 1 byte Level Data Current room to continue on.
$7E04EA 1 byte Level Data Screen number to continue on.
$7E04ED 1 byte Level Data 0 = don't go out of level, 1 = go to player select screen, 2 = go to Game Over screen, 3 = go to bonus game, 4-FF = go to warp screen.
$7E04EE 1 byte Counter Current amount of lives.
$7E04EF 1 byte Miscellaneous Jar type. 0 = warp jar, 1 = regular jar, 2 = 'enclosed' jar
$7E0500 1 byte Sprites Amount of time sprites are frozen. (Stopwatch.)
$7E0533 1 byte Level Data Accumulative level number
$7E0534 1 byte Level Data Current room
$7E0535 1 byte Level Data Screen number to start out on.
$7E0545 1 byte Level During level load: Set level entrance type. Value is 00-07, set by the level header.
00 = normal
01 = slide
02 = vertical pipe exit up
03 = vertical pipe exit down??
04 = horizontal pipe exit right
05 = horizontal pipe exit left
06 = airship intro
07 = weird vertical scrolling?
(TODO: verify values 3 and 7)

During gameplay: Player sliding speed.
$00-$7F: right
$80-$FF: left

TODO: Doesn't seem to work in levels without slopes?
$7E0551 1 byte Timer Player growing/shrinking animation timer. $2F is the maximum value.

Does not apply to other animations (smoke animation, fire flower animation, etc.)
$7E0552 1 byte Timer Player is hurt flag (flashing after they get hit)
$7E0553 1 byte Timer Star power timer. Does not adjust the music.
$7E0554 1 byte Timer Player turns into smoke timer. (When you get Leaf, Tanooki suit etc.)
$7E0555 1 byte Timer Mario changes pallette rapidly timer (When you get fireflower)
$7E0556 1 byte Timer Everything freezes timer (Activates when Mario gets hit)
$7E0557 1 byte Timer Player kicks object image timer
$7E0558 1 byte Timer Player faces screen image timer
$7E0559 1 byte Timer Player walks to the right in level end timer (Activates when only on ground)
$7E055A 1 byte Timer Player walking towards doomship timer (during that one cutscene).
$7E0566 1 byte Generator Generator number. Valid values:

$00 - Nothing
$01 - Flying Cheep-Cheeps
$02 - Spiny Cheep-Cheeps
$03 - ? (turns off generator and does something else...)
$04 - Para-Beetles (red and green)
$05 - Moving background clouds?
$06 - Left-moving falling platforms
$07 - Exit on treasure chest obtain?
$08 - Turns off generators?

TODO: Verify values 05, 07, and 08 and check out 03.
$7E0567 1 byte Timer P-Switch timer.
$7E0577 1 byte Player Player Kuribo shoe status

$00 - Without
$01 - With
$7E0578 1 byte Powerup Current player's powerup.

$00 - Small
$01 - Small
$02 - Big
$03 - Fiery
$04 - Raccoon
$05 - Frog
$06 - Tanooki
$07 - Hammer
$20 - Tanooki statue
$7E057A 1 byte Timer Tanooki Player's statue mode timer. Makes the player lose statue mode once it hits 00.
$7E0598 1 byte Overworld Flag to enable the spotlight on the overworld. Read upon overworld loading, pausing and level entry.
$7E0598 1 byte Overworld Flag to hide the overworld in darkness when the Game Over screen pops up. Only used in World 8's 3rd submap (with the spotlight).
$7E05A5 1 byte Timer How long it takes Phanto to initially take off after grabbing a key. Starts at #$A0
$7E05BF 8 bytes Y Position Extended sprite Y-position, low byte.

TODO: Verify length
$7E05C9 8 bytes X Position Extended sprite X position, low byte

TODO: Verify length
$7E05EE 3 bytes Timer Current level timer (example: $03 $02 $05 = 325 seconds left)
$7E0620 1 byte Flag 1UP has been collected flag.
$7E0628 1 byte Level Data In potion room or not. #$00 = regular level, #$01 = jar, #$02 = potion room.
$7E0629 1 byte Level Data Level number without world number added
$7E062A 1 byte Counter Amount of cherries collected
$7E062B 1 byte Counter Amount of coins you have for the bonus game
$7E062D 4 bytes Level Data Amount of levels completed per character table.
$7E0635 1 byte World World number.
$7E0671 8 bytes Sprites Sprite number.

TODO: Verify length; include list?
$7E06A1 13 bytes Map16 Map16 tile buffer.

Map16 tile which gets drawn off-screen as the level progresses. Tiles are drawn from top to bottom, so the first byte is for the top of the level while the last byte is for the bottom of the level.
$7E06C2 1 byte Player Player is shrinking or growing
$7E06CB 1 byte Generator Which generator to activate.
$7E06CC 1 byte Flag "Hard mode" flag. This flag is set at W5-3 and modifies sprites (makes platforms smaller and have bullet generators, etc.)
$7E06CD 1 byte Sprite Number Which enemy to generate during generators.
$7E06D9 1 byte Counter Looping maze level amount of correct checkpoints counter. Resets everytime you pass the last checkpoint of a certain part of the level.
$7E06DA 1 byte Counter Looping maze level amount of checkpoints counter. Resets everytime you pass the last checkpoint of a certain part of the level.
$7E06DB 1 byte Y Speed Springboard launch force. Later stored into $7E00A0, player Y Speed.
$7E0714 1 byte Flag Player is ducking flag. $04 = duck, $00 = normal. Unwritten when player is small.
$7E0715 3 bytes Routine Current player's score
$7E0716 1 byte Flag Disable player collision detection with objects flag.

Can still interact with sprites.
$7E0717 1 byte Counter Current Demo action executed
$7E0718 1 byte Timer Current Demo action's timer, counts down.
$7E071A 1 byte X Position Horizontal X coordinate of left side of the screen, high byte.
$7E071A 1 byte Hardware Mirror Mirror of $210D: BG1 X Position (high byte)
$7E071B 1 byte X Position Horizontal X coordinate of right side of the screen, high byte.
$7E071C 1 byte X Position Horizontal X coordinate of left side of the screen, low byte.
$7E071D 1 byte X Position Horizontal X coordinate of right side of the screen, low byte.
$7E0720 2 bytes VRAM Handles drawing of the layer 1 tiles? Adding 1 to it moves every layer 1 stuff to the left 1 8x8 tile.

"Is 0x04 on every odd numbered page and 0x00 on even."

TODO: Verify
$7E0725 1 byte Level Current screen number. Starts with $01 unlike traditional counters which start at $00.

Changing this seems to affect level loading in real-time. Seems to be used in maze castle levels (like 7-4)
$7E0726 1 byte Player Current player number.
$00 - Mario
$01 - Luigi
$7E0727 1 byte World Current world
$7E0727 1 byte Overworld Current player's overworld action.
$7E072C 2 bytes Objects Offset of level data, used as an index for [$FA],y
$7E0733 1 byte Level Area object style

$00 - Regular (green platforms, also used in cloud levels)
$01 - Mushroom platforms
$02 - Bullet Bill Cannons
$7E0735 1 byte Level Vertical length of object, used in rendering objects into the level.
$7E0739 1 byte Sprites Offset of sprite data, used as an index for [$FD],y
$7E073A 1 byte Sprites Screen number of the most recent sprite placed into the level.
$7E073D 2 bytes Flag Flag to beat the current world, display the "Oh thank heavens!" cutscene and proceed to the next world. Read upon level load.

Byte 1 is for Mario
Byte 2 is for Luigi
$7E073F 1 byte X Position BG1 X Position low byte.
$7E073F 1 byte Hardware Mirror Mirror of $210D: BG1 X Position (low byte)
$7E0740 1 byte Y Position BG1 Y Position low byte.
$7E0740 1 byte Hardware Mirror Mirror of $210E: BG1 Y Position (low byte)

High byte version of this address does not exist.
$7E0742 1 byte Flag Flag to keep N-Spade cards as is. 0 = shuffle, 1 = keep.
$7E0743 1 byte Flag Cloud bonus game level type flag (also replaces most objects with clouds as the level progresses).
$7E0744 3 bytes Pointers Layer 3 Map16 data pointer.
$7E0746 1 byte Counter Flagpole task control.

$00 - Nothing
$01 - Check if firework is applicable
$02 - Award points
$03 - Raise star flag and launch fireworks
$04 - Delay to level fadeout
$7E0747 1 byte Timer Everything freezes timer (when the player get a powerup or dies for example).
$7E0747 2 bytes Player Current player's powerup on the overworld.

$00 - Small
$01 - Big
$02 - Fire
$03 - Raccoon
$04 - Frog Suit
$05 - Tanooki Suit
$06 - Hammer Suit
$07 - Jugem's Cloud
$08 - P-Wing
$09 or higher - Glitch

Byte 1 is for Mario, byte 2 is for Luigi.

Behaviour of certain powerups apply once the overworld loads , not immediately upon changing the value (like Jugem's Cloud). Jugem's Cloud will also have seemingly infinite uses.
$7E074D 1 byte Sprites Number of pixels that a sprite has moved along the X- or Y-axis. It is set during the routine that updates a sprite's position based on its speed.
$7E074E 1 byte Graphics Enable Layer 3 image. Also controls which Layer 3 image to load.
$7E074F 9 bytes Sprites Sprite X position fractional bits.

TODO: Verify length
$7E0753 1 byte Player Current Player
$00 - Player 1 (Mario)
$01 - Player 2 (Luigi)

Changing this value effectively changes the input controller as well.
$7E0754 1 byte Flag Current player's small player flag.
$7E0756 1 byte Player Current player's powerup
$7E075A 1 byte Player Current player's current amount of lives.
$7E075B 1 byte Counter Current player's midway point screen number
$7E075C 1 byte Counter Current player's level number (used for dash-number display)
$7E075D 1 byte Flag Current player's hidden 1-up block can be hit flag.
$7E075E 1 byte Counter Current player's coins. (Statusbar display not updated)
$7E075F 1 byte World Current player's world.
$7E0760 1 byte World Current player's level (does not update dash-number)
$7E0761 1 byte Player Previous player's current amount of lives.
$7E0761 9 bytes Sprites Sprite Y position fractional bits.

TODO: Verify length
$7E0762 1 byte Counter Previous player's midway point screen number
$7E0763 1 byte Counter Previous player's level number (used for dash-number display)
$7E0764 1 byte Flag Previous player's hidden 1-up block can be hit flag.
$7E0765 1 byte Counter Previous player's coins. (Statusbar display not updated)
$7E0766 1 byte World Previous player's world.
$7E0767 1 byte World Previous player's level (does not update dash-number)
$7E0769 1 byte Flag Disable level preview flag.
$7E076A 1 byte Flag Current player's "More difficult quest" flag.
$7E0770 1 byte Routine Game operation mode.

$00 - Title screen
$01 - Main
$02 - Defeated Bowser
$03 - Game Over
$7E0772 1 byte Routine Which task to execute of the current operation mode ($7E0770).
$7E0772 1 byte Flag Layer 3 transparency flag. (Layer 3 in front of Layer 2) Used for light beams in cave levels.
$7E0773 1 byte VRAM Stripe image uploader destination VRAM address index. Indexes the tables at $0382DE (VRAM low byte) and $0382F1 (VRAM high byte).
$7E0775 1 byte Speed Camera scrolling x-speed.
$7E0775 1 byte Hardware Mirror BG Mode / Character Size / Layer 3 priority
$7E0776 1 byte Flag Pause flag. Shows the pause menu.
$7E0777 1 byte Timer Counter which disables the start button. Used when pausing the game so you can't rapidly pause/unpause. Counts down automatically.
$7E077A 1 byte Flag 2-Player game flag
$7E077F 1 byte Flag Previous player's small player flag.
$7E0780 1 byte Player Previous player's powerup.
$7E0781 1 byte Flag "More difficult quest" flag for previous player
$7E0782 1 byte Timer Amount of times 'No Bonus' should flash. (Up to 7F)
$7E0783 1 byte Timer Amount of frames 'No Bonus' remains present or not. (00 slowest, 01 fastest)
$7E078A 1 byte Timer Amount of time to wait before changing music back to the original level music again. Used for several occasions like the Crystal Ball collecting scene.
$7E078C 1 byte Flag The player who won the round. $01 = Luigi, $02 = Mario.
$7E078F 1 byte Timer Countdown timer which when it hits 0, it reduces the level timer by 1. Lower values means the level timer counts down faster.
$7E079B 1 byte Timer Used in generators: Timer to spawn the next sprite.

TODO: Seems to behave differently for the bullet bill generator
$7E079C 1 byte Timer Time until Bowser's sprite shoots a fireball.
$7E07AE 1 byte Timer Player invincibility (after getting hit) timer.
$7E07AF 1 byte Timer Player Star power timer.
$7E07B7 7 bytes Miscellaneous Table of randomly generated numbers.
$7E07CE 6 bytes Player Player 1's current score. 1 digit each byte. Example: $01 $02 $03 $04 $05 $06 = 1234560 points
$7E07D4 6 bytes Player Player 2's current score.
$7E07E9 3 bytes Timer The level's current timer.
First byte is the hundreds, second byte is the tens, and the third byte is the ones.
$7E07FC 1 byte Flag "More difficult quest" flag.

Actually affects the world and level number display to show the star.
$7E07FD 1 byte World Residual address from NES SMB1: World number for the secret continue function (A + Start) of NES SMB1
$7E0800 544 bytes OAM Tilemap OAM table.
$7E0800 544 bytes OAM Tilemap OAM table.
$7E0800 544 bytes Hardware Mirror Mirror of the entirety of OAM.
$7E0800 512 bytes OAM Tilemap OAM low table mirror
$7E0886 1 byte OAM Tile Number Miniature player's tile number in the

WORLD N
MARIO/LUIGI x N

blue screen popup on the overworld.
$7E0A00 32 bytes OAM Tilemap OAM high table mirror (actual).
$7E0A20 128 bytes OAM Tilemap Table that determines the size of a sprite's tile - 8x8 (#$00) or 16x16 (#$02). Each byte corresponds to 4 OAM bytes. Stores to $0A00-$0A1F (where each 2 bits correspond to 4 OAM bytes.)
$7E0A20 128 bytes OAM Tilemap OAM high table mirror (expanded).

Each byte only sets the lowest two bits that then get inserted into $7E:0A00.
$7E0AC0 1 byte Flag If non-zero CGRAM will update (transfer $7F:9200 to CGRAM).
$7E0B00 512 bytes Palette CGRAM (palette) table.
$7E0B75 1 byte Pointers Pause window states.

$00 - Expand
$01 - Maintain pause window, wait for input, etc.
$02 - Option selected (?)
$03 - Collapse
$7E0B78 1 byte Timer Frame counter which increases every frame only when paused. Used to do the cursor blinking animation.
$7E0B9A 1 byte HDMA How big the windowing HDMA circle is of the player's and Peach's portrait after rescuing the princess. Maximum valid value is $30.
$7E0BA5 1 byte Flag Animation locked flag. $01 Locks the player animation.

Seems to be only used during the fadeout to a new world after rescuing Toad.
$7E0E4F 1 byte Flag Pipe fadeout flag - when taking a pipe, makes all screen fades mosaic and hides OAM tiles.
$7E0E7E 1 byte Hardware Mirror Mirror of $2105: Mosaic/pixelation register.
$7E0EC0 2 bytes Index Index to the final background map16 page written. (Every $0100 bytes of RAM $7ED000 is a page)
$7E0EC2 1 byte Flag Current player's character graphics.

$00 - Mario's graphics
$01 - Luigi's graphics
$7E0ED1 1 byte Flag "Starry Night" background mode flag. Enables IRQ parallax scrolling and other things.
$7E0ED2 1 byte Hardware Mirror Mirror of $2110: BG2 Y Position (low byte)
$7E0ED3 1 byte Hardware Mirror Mirror of $2110: BG2 Y Position (high byte)
$7E0EDC 1 byte Flag Process layer 3 image display flag
$7E0EDE 1 byte Flag IRQ-related flag. $00 during fades, $01 during normal levels and $02 during Starry Night levels.
$7E0EE0 1 byte Hardware Mirror Mirror of $2132: Direct Color Register
$7E0EE1 1 byte Hardware Mirror Mirror of $2132: Direct Color Register
$7E0EE2 1 byte Hardware Mirror Mirror of $2132: Direct Color Register
$7E0EEE 2 bytes Hardware Mirror if $7E0EF1 (starry night IRQ flag) is set:
Mirror of $210F: BG2 Horizontal scroll.

else:
Mirror of $2111: BG3 Horizontal scroll.
$7E0EF2 1 byte Counter IRQ V-Timer thing. #$AF during Starry Night levels to do the parallax effect, #$1F during other levels.
$7E0EFD 1 byte Hardware Mirror Mirror of $210F: BG2 X Position (low byte)
$7E0EFE 1 byte Hardware Mirror Mirror of $210F: BG2 X Position (high byte)
$7E0F4C 1 byte Timer Bowser animation freeze timer
$7E0F4E 1 byte Index Sprite index of latest generated Bowser fire.
$7E0F89 1 byte Counter 'Phase' of the floating heart in the Princess kisses player sequence.
$7E1000 512 bytes Palette Level Palette
$7E1019 1 byte Counter An unused counter variable which controls how many times you get to play the Spade minigame. Setting the value to any value besides 00 during the game will allow you to keep trying until either you win, or the counter reaches zero (whichever comes first). Simply press A, B, or Start to spin the reels again.
$7E1061 1 byte Music The level music. Values:
00 = nothing
01 = athletic
02 = grassland
03 = water
04 = P-switch
05 = Bowser battle
06 = underground
07 = bonus win
08 = fortress
09 = miss
0A = game over
0B = boss clear
0C = level clear
0D = invincible
0E = Bowser defeated?
0F = falling with wand
10 = airship
11 = Hammer Bros. battle
12 = boss battle
13 = king saved
14 = Coin Heaven
15 = title screen
16 = 2-player battle (with intro)
17 = Bowser's letter
18 = Peach's letter
19-FF = nothing?
$7E1062 1 byte Music Music backup, used to restore the level music when it changes (as a result of something like a P-Switch or star).
$7E116C 14 bytes VRAM Tilemap Line of white squares to display how many levels there are in current world. 2 bytes per tile. 1st byte = tilemap, 2nd byte = properties.
$7E118E 1 byte VRAM Tilemap World number in beginning of level display tilemap
$7E118F 1 byte VRAM Tilemap World number in beginning of level display properties
$7E1190 1 byte VRAM Tilemap Dash in beginning of level display tilemap
$7E1191 1 byte VRAM Tilemap Dash in beginning of level display properties
$7E1192 1 byte VRAM Tilemap Level number in beginning of level display tilemap
$7E1193 1 byte VRAM Tilemap Level number in beginning of level display properties
$7E11B4 1 byte Counter Amount of lives in char. select, 10s
$7E11B5 1 byte VRAM Tilemap Properties of lives in char. select, 10s
$7E11B6 1 byte Counter Amount of lives in char. select, 1s
$7E11B7 1 byte VRAM Tilemap Properties of lives in char. select, 1s
$7E11BD 6 bytes VRAM Tilemap Tilemap and properties of number of 'World
$7E1200 1 byte Sound Effect Sound effects channel 1
$7E1201 1 byte Hardware Mirror Mirror of $2100: Brightness settings.

Automatically goes into F-Blank when brightness is 0.
$7E1201 1 byte Sound Effect Sound effects channel 2
$7E1202 1 byte Music Current music number. Write $F2 to lower the volume, and $80 to fade out the music, although doing this disallows you from pausing inside levels.
$7E1203 1 byte Hardware Mirror Mirror of $420C: Enable HDMA channels
$7E1203 1 byte Sound Effect Sound effects channel 3
$7E1204 1 byte Hardware Mirror Mirror of $2123: Window Mask Settings for BG1 and 2
$7E1204 4 bytes Hardware Mirror Backup of $1200; used to determine which music was played recently.
$7E1205 1 byte Hardware Mirror Mirror of $2124: Window Mask Settings for BG3 and 4
$7E1206 1 byte Hardware Mirror Mirror of $2125: Window Mask Settings for OAM and color window
$7E1207 1 byte Hardware Mirror Mirror of $212E: Window Mask Designation for main screen
$7E1208 1 byte Hardware Mirror Mirror of $212F: Window Mask Designation for sub screen
$7E1208 4 bytes Hardware Mirror SPC700 -> SNES I/O registers. Used to determine if a sound effect or music is finished playing.
$7E1209 1 byte Hardware Mirror Mirror of $2130: Color addition select
$7E120A 1 byte Hardware Mirror Mirror of $2131: CGADSUB
$7E120B 1 byte Hardware Mirror Mirror of $212C: Main Screen Designation
$7E120C 1 byte Hardware Mirror Mirror of $212D: Sub Screen Designation
$7E120D 1 byte Hardware Mirror Mirror of $2105: Screen mode
$7E120E 1 byte Hardware Mirror Mirror of $2128: Window 2 left position
$7E120F 1 byte Hardware Mirror Mirror of $2129: Window 2 right position
$7E1210 1 byte Hardware Mirror Mirror of $2132: Direct color register
$7E1300 512 bytes Palette A buffer for the entire palette, both in levels and on the overworld. It may be uploaded to CGRAM depending on $1500.
$7E1400 64 bytes HDMA The red intensity of the HDMA background colors. Seems to be used in indirect HDMA to $2132, HDMA channel 5
$7E1408 1 byte Counter Amount of coins in bonus game, 10s (if low byte is a blank tile, this is used as 1s)
$7E1409 1 byte VRAM Tilemap Properties of coins in bonus game, 10s
$7E140A 1 byte Counter Amount of coins in bonus game, 1s
$7E140B 1 byte VRAM Tilemap Properties of coins in bonus game, 1s
$7E142A 1 byte Counter Amount of lives in bonus game, 10s
$7E142B 1 byte VRAM Tilemap Properties of lives in bonus game, 10s
$7E142C 1 byte Counter Amount of lives in bonus game, 1s
$7E142D 1 byte VRAM Tilemap Properties of lives in bonus game, 1s
$7E1460 96 bytes HDMA The green intensity of the HDMA background colors. Seems to be used in indirect HDMA to $2132, HDMA channel 6
$7E14C0 96 bytes HDMA The blue intensity of the HDMA background colors. Seems to be used in indirect HDMA to $2132, HDMA channel 7
$7E1500 1 byte Palette A flag that determines whether or not to upload the data at $1300. If this is nonzero, $1300-$14FF will be uploaded to CGRAM and $1500 will be cleared to zero. The relevant check is at $20F923.
$7E1520 96 bytes HDMA Indirect HDMA Table for $7E1400 - HDMA red intensity, channel 5.
$7E1560 64 bytes HDMA Indirect HDMA Table for $7E1460 - HDMA green intensity, channel 6.
$7E15A0 64 bytes HDMA Indirect HDMA Table for $7E14C0 - HDMA blue intensity, channel 7.
$7E1600 1 byte Sound Effect Sound effect channel 1
$7E1601 1 byte Sound Effect Sound effect channel 2
$7E1602 1 byte Music Music channel
$7E1603 1 byte Sound Effect Sound effect channel 3
$7E1680 1 byte Flag "Pause" flag after you rescue the princess.

TODO: has another purpose too?
$7E1800 17 bytes Sprites Sprite status table (2 bytes for players, 13 bytes for enemies, then 2 bytes for bouncing blocks)
Players:
$00 - Initiate
$01 - Alive
$02 - Dying
$03 - Climbing
Enemies:
$00 - No sprite (empty slot)
$01 - Normal
$02 - Flipped upside-down
$03 - Dying
$04 - Kicked (shell only)
Bouncing blocks:
$00 - No sprite (empty slot)
$0D - Normal (decrements once per frame until despawned)
$7E1811 17 bytes Y Position Sprite Y position, low byte (2 bytes for players, 13 bytes for enemies, then 2 bytes for bouncing blocks).
$7E1822 17 bytes X Position Sprite X position, low byte (2 bytes for players, 13 bytes for enemies, then 2 bytes for bouncing blocks).
$7E1833 17 bytes Y Speed Sprite Y speed (2 bytes for players, 13 bytes for enemies, then 2 bytes for bouncing blocks).
$7E1844 17 bytes X Speed Sprite X speed (2 bytes for players, 13 bytes for enemies, then 2 bytes for bouncing blocks).
$7E1855 15 bytes Timer Sprite animation timer (2 bytes for players, then 13 bytes for enemies).
$7E1864 15 bytes Direction Sprite horizontal facing direction (2 bytes for players, then 13 bytes for enemies). $01 = left, $02 = right.
$7E1873 17 bytes Y Position Sprite Y position subpixel (2 bytes for players, 13 bytes for enemies, then 2 bytes for bouncing blocks).
$7E1884 17 bytes X Position Sprite X position subpixel (2 bytes for players, 13 bytes for enemies, then 2 bytes for bouncing blocks).
$7E1895 17 bytes Flag Sprite interaction direction(s) (2 bytes for players, 13 bytes for enemies, then 2 bytes for bouncing blocks).
Bitwise: ????cf?? where
c = 1 if hit a ceiling
f = 1 if hit a floor
$7E18A6 13 bytes Sprites Unknown sprite table (13 bytes for enemies).
TODO: figure this one out
$7E18B3 2 bytes Player Player kicking timer. If non-zero, player will display a kicking pose.
$7E18B5 2 bytes Player Player squished timer. If non-zero, player will display a squished pose.
$7E18B7 2 bytes Player Player frozen vertically timer. If non-zero, player will not move vertically. Used when a player hits their head on a block.
$7E18B9 1 byte Flag Disable player interaction flag. Used so players don't get stuck to each other when they collide.
$7E18BA 1 byte Timer POW timer. If non-zero, the screen will shake and all sprites on a floor will be stunned.
$7E18BB 13 bytes Sprite Number Sprite number for active sprites.
$00 - Spiny
$01 - ?
$02 - Crab
$03 - Fly
$04-$06 - Fireball
$07-$09 - Boo
$0A - Koopa
$0B - ?
$0C-$0E - Level cards
$0F - Brown Block
$10 - Super Mushroom
$11 - Red ? Mushroom
$12 - Green ? Mushroom
$13 - Coin
$7E18CA 1 byte Counter Number of unique enemies that have spawned this round.
$7E18CB 15 bytes Sprites Sprite lock timer (2 bytes for players, then 13 bytes for enemies). If non-zero, this sprite will be frozen in time.
$7E18DA 13 bytes Sprites Sprite turning around timer (13 bytes for enemies).
$7E18E7 15 bytes Sprites Sprite stunned timer (2 bytes for players, then 13 bytes for enemies).
$7E18F6 2 bytes Player Player has jumped flag.
$7E18F8 15 bytes Sprites What block a sprite is standing on top of (2 bytes for players, then 13 bytes for sprites).
$7E1908 2 bytes Position Coordinates of the block a player has hit from below.
Bitwise: xxxxyyyy where
x = block X position / $10
y = block Y position / $10
$7E190C 1 byte Counter Enemy spawning counter. A Swooping Boo is spawned when this value is divisible by 8.
$7E190D 1 byte Counter Enemy spawning counter. A Bouncing Boo is spawned when this value is divisible by 256.
$7E190E 1 byte Index A temporary register used for saving an index when iterating through various tables.
$7E190F 2 bytes Player The block that is direction above the players' heads.
$7E1911 13 bytes Sprites Bitwise sprite status table (13 bytes for enemies).
Bitwise: p?????e? where
p = entering/exiting a pipe
e = sprite exists
$7E191E 13 bytes Sprites Sprite entering/exiting a pipe timer (13 bytes for enemies).
$7E192B 3 bytes Miscellaneous Random number generation (RNG) bytes. First two bytes are the seeds, and $192D is the actual output of the routine.
$7E192E 2 bytes Player Player coin count.
$7E1930 1 byte Timer Round is over timer. Set to $FF when the round is finished, and advances to the next screen when it hits zero.
$7E1931 13 bytes Sprites Miscellaneous sprite table, fast animation? (13 bytes for enemies).
$7E193E 1 byte Counter Number of times the POW has been hit.
$7E193F 2 bytes Player Player Y offset. Used to adjust the player sprite when standing on the POW.
$7E1942 15 bytes Y Position Sprite Y position, high byte (2 bytes for players, then 13 bytes for enemies).
$7E1951 15 bytes Sprites Miscellaneous sprite table, fast animation? (2 bytes for players, then 13 bytes for enemies)
$7E1962 13 bytes Sprites Sprite vertical direction (13 bytes for enemies). $04 = down, $08 = up.
$7E198B 15 bytes Sprites Backup of $18CB sprite lock timer (2 bytes for players, then 13 bytes for enemies). Saves all values for when the game is paused.
$7E199C 2 bytes Player Fractional bits for $199E player animation.
$7E199E 2 bytes Player Player walking animation frame.
$7E19AB 1 byte Player Mario powerup status in the Battle Game mode.
$00 - Small
$01 - Big
$7E19AB 2 bytes Player Player size. $00 = small, $01 = big.
$7E19AC 1 byte Player Luigi powerup status in the Battle Game mode.
$00 - Small
$01 - Big
$7E19AD 2 bytes Player Player ducking flag.
$7E19AF 2 bytes Player Player transitioning between sizes timer.
$7E19B1 2 bytes Player Player size after the transition animation is complete.
$7E19B3 2 bytes Player Player flashing invincible timer.
$7E19B5 2 bytes Player Player remains flashing invincible timer. Used so a player won't lose invincibility until after they move around.
$7E19B7 1 byte X Position X position of the block that has a mushroom hidden inside.
$7E19B9 1 byte Y Position Y position of the block that has a mushroom hidden inside.
$7E19BC 1 byte Counter Total number of enemies killed this round.
$7E19C0 1 byte Timer ? Mushroom effects are active timer.
$7E19C5 9 bytes X Position Particle X position.
$7E19CE 9 bytes Y Position Particle Y position.
$7E19D7 9 bytes Sprites Particle animation timer.
$7E19E0 9 bytes Sprites Particle animation frame.
$7E19E9 9 bytes Sprite Number Particle number.
$01 - Skid smoke
$02 - Yellow star
$7E19FF 21 bytes Generator Various properties for layer 1 movement generator (moving spikes, autoscroll, etc)

$7E1A01: Layer 1 movements

00 - None
01 - No effect
02 - Scrolls Upright
03 - Prompt to Spike Ceiling movement.
04 - Same as 03, but scrolls down completely.
05 - Layer 1 moves up and down, the bottom of the screen has water

TODO: what are the properties
$7E1A25 9 bytes Y Position Sprite Y position, low byte

TODO: Verify length
$7E1A2D 9 bytes X Position Sprite X position, high byte

TODO: Verify length
$7E1A35 9 bytes X Position Sprite X position, low byte

TODO: Verify length
$7E1A35 1 byte Counter Counter that respawns the POW when it reaches zero.
$7E1A38 1 byte Index Index of the missing coin tile in the status bar when a player wins via collecting 5 coins.
$7E1A39 1 byte Timer Timer that controls which palette to display in the status bar when a player wins via collecting 5 coins.
$7E1CFE 1 byte Miscellaneous Something related to Magic Wand's image

TODO: Verify. Is there really a RAM address for something trivial like this?
$7E1D80 28 bytes Powerup What items Player 1 has in his inventory on the overworld.

$00 - Nothing
$01 - Mushroom
$02 - Fire Flower
$03 - Leaf
$04 - Frog Suit
$05 - Tanooki suit
$06 - Hammer suit
$07 - Jugem's Cloud
$08 - P-wing
$09 - Star
$0A - Anchor
$0B - Hammer
$0C - Warp Whistle
$0D - Music box
$0E-FF - Unused
$7E1D9C 28 bytes Powerup What items Player 2 has in his inventory on the overworld.

$00 - Nothing
$01 - Mushroom
$02 - Fire Flower
$03 - Leaf
$04 - Frog Suit
$05 - Tanooki suit
$06 - Hammer suit
$07 - Jugem's Cloud
$08 - P-wing
$09 - Star
$0A - Anchor
$0B - Hammer
$0C - Warp Whistle
$0D - Music box
$0E-FF - Unused
$7E1D9C 3 bytes Player Player 1's level cards.
$7E1DA2 1 byte Counter Current player's coins
$7E1DBF 3 bytes Player Player 2's level cards.
$7E1DE0 1 byte Music SFX panel 1
$7E1DE1 1 byte Music SFX panel 2
$7E1DE2 1 byte Music Current Music
$7E1DE3 1 byte Music SFX panel 3
$7E1E84 18 bytes Objects N-Spade cards. 00 = Mushroom, 01 = Fire Flower, 02 = Star, 03 = 1-up, 04 = 10 coins, 05 = 20 coins. Anything beyond that is glitched. Layout goes from top-left to bottom-right.
$7E1EBB 3 bytes Pointers Pointer to level object data (SNES Address, Little endian)
$7E1F26 1 byte Counter The current round number.
$7E1F55 1 byte Overworld Amount of times the music box is supposed to play on the overworld. Is set to $02 when you first use a music box.
$7E1F9C 2 bytes Sprite Number Smoke image sprite number

TODO: Verify length
$7E1F9F 2 bytes Y Position Smoke image Y position.

TODO: Verify length
$7E1FA2 2 bytes X Position Smoke image X position.

TODO: Verify length
$7E1FC8 8 bytes Sprite Number Extended sprite number. $15 = laser from Bowser's Castle

TODO: Verify length, get list of values
$7E2000 45056 bytes Map16 Tile Layer 2 Map16 Tiles
$7E2000 28672 bytes Map16 Layer 1 Map16 table for the entire level, low byte.
$7E2000 240 bytes Level The entire level layout.
$7E3965 1 byte Miscellaneous Number of coins needed to activate the White Mushroom House in a level that has one. Set by sprite D4.
$7E3966 1 byte Miscellaneous How many coins have been collected in the current level so far.
$7E3970 1 byte Flag Flag that indicates that the white mushroom house has been spawned once. When it's set, it's not possible to spawn another white mushroom house.
$7E9000 28672 bytes Map16 Layer 1 Map16 table for the entire level, high byte.
$7ED000 3328 bytes Map16 Tilemap Layer 2 Map16 tilemap
$7F2000 40960 bytes Map16 Layer 2 Map16 table for the entire level.
$7F3000 2688 bytes Map16 Layer 3 Map16 tilemap, read upon level load for the individual VRAM tiles located around $04:BD09.

TODO: Confirm size, size of ROM address, format of ROM address, and $7F2000 & $7F2004,x
$7F300C 1 byte Index The cursor selection on the results screen. $00 = continue, $02 = quit
$7F4FFE 128 bytes VRAM Tilemap Mirror of offset-per-tile BG3 tilemap for the barn door effect of results screen transition.
$7F8000 800 bytes VRAM Tilemap Tilemap buffer for BG1.
$7F9000 959 bytes HDMA Windowing HDMA table.

TODO: Verify length. Having an odd number for a windowing table is odd.
$7F9200 200 bytes Palette Palette buffer.
$7F9200 200 bytes Palette Palette buffer.
$7FC000 2400 bytes Map16 Layer 3 Map16 table for the current room.
$7FFB00 1 byte World World number loaded from save file. Used in order to load the correct world number after the title screen.
$7FFB01 1 byte Level Level number loaded from save file, typically 0 due to how SMB1's save system works. Setting this anyway displays the level number you set it to, but doesn't load that specific level. Use $7FFB02 for that.
$7FFB02 1 byte Level Level number loaded from save file, but it's typically 0 due to how SMB1's save system works. Read after starting the game from title screen. Setting this changes which level the game starts at.
$7FFB03 1 byte Counter Player 1 amount of lives loaded from save file. Read after starting the game from title screen.
$7FFB04 1 byte Counter Player 2 amount of lives loaded from save file. Read after starting the game from title screen.
$7FFB05 1 byte Flag More difficult quest flag loaded from save file.
$7FFB06 1 byte Flag 2-Player flag, loaded from save file. Affects the game's title screen menu.
$7FFF00 1 byte Index The current game being played. Used to run the appropriate NMI and IRQ routines of the games.

$00 - Nintendo presents, hall screen, game select screen, etc.
$02 - Super Mario Bros. 1
$04 - Super Mario Bros. The Lost Levels
$06 - Super Mario Bros. 2
$08 - Super Mario Bros. 3

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2019 - SMW Central
Legal Information - Privacy Policy - Link To Us


Total queries: 22

Menu

Follow Us On

  • Facebook
  • Twitter
  • YouTube

Affiliates

  • Talkhaus
  • SMBX Community
  • GTx0
  • Super Luigi Bros
  • ROMhacking.net
  • MFGG
  • Gaming Reinvented