$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 |
Timer for various things.
1. Number of frames to show each flash state during intro logo flashing |
$7E0022
|
1 byte |
Timer |
Intro & Game Select Screens |
Amount of time to wait until the "Super Mario All-Stars" text flashes. |
$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 |
$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. |
$7E010C
|
1 byte |
Hardware Mirror |
Intro & Game Select Screens |
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 |
Intro & Game Select Screens |
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 |
Intro & Game Select Screens |
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 |
Intro & Game Select Screens |
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 |
Intro & Game Select Screens |
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 |
Intro & Game Select Screens |
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 |
Intro & Game Select Screens |
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 |
Intro & Game Select Screens |
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 |
Intro & Game Select Screens |
Mirror of $2123: Window Mask Settings for BG1 and BG2 |
$7E0115
|
1 byte |
Hardware Mirror |
Intro & Game Select Screens |
Mirror of $2124: Window Mask Settings for BG3 and BG4 |
$7E0116
|
1 byte |
Hardware Mirror |
Intro & Game Select Screens |
Mirror of $2125: Window Mask Settings for OBJ and Color Window |
$7E0117
|
1 byte |
Hardware Mirror |
Intro & Game Select Screens |
Mirror of $212C (Main screen designation). |
$7E0117
|
1 byte |
Hardware Mirror |
Intro & Game Select Screens |
Mirror of $212C: Main Screen Designation |
$7E0118
|
1 byte |
Hardware Mirror |
Intro & Game Select Screens |
Mirror of $212D: Subscreen Designation |
$7E0118
|
1 byte |
Hardware Mirror |
Intro & Game Select Screens |
Mirror of $212D (Sub screen designation). |
$7E0119
|
1 byte |
Hardware Mirror |
Intro & Game Select Screens |
Mirror of $212E: Window Mask Designation for the Main Screen |
$7E011A
|
1 byte |
Hardware Mirror |
Intro & Game Select Screens |
Mirror of $212F: Window Mask Designation for the Subscreen |
$7E011B
|
1 byte |
Hardware Mirror |
Intro & Game Select Screens |
Mirror of $2130: Color addition select |
$7E011B
|
1 byte |
Hardware Mirror |
Intro & Game Select Screens |
Mirror of $2130 (Color Addition Select). |
$7E011C
|
1 byte |
Hardware Mirror |
Intro & Game Select Screens |
Mirror of $2131: Color math designation |
$7E011C
|
1 byte |
Hardware Mirror |
Intro & Game Select Screens |
Miror of $2131 (Color math designation). |
$7E011D
|
1 byte |
Hardware Mirror |
Intro & Game Select Screens |
Mirror of $2132: Fixed color data
This value is written to the mirror first. |
$7E011D
|
3 bytes |
Hardware Mirror |
Intro & Game Select Screens |
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 |
Intro & Game Select Screens |
Mirror of $2132: Fixed color data
This value is written to the mirror second. |
$7E011F
|
1 byte |
Hardware Mirror |
Intro & Game Select Screens |
Mirror of $2132: Fixed color data
This value is written to the mirror third. |
$7E0120
|
1 byte |
Hardware Mirror |
Intro & Game Select Screens |
Mirror of $7E:420C - HDMA Enable |
$7E0121
|
1 byte |
Miscellaneous |
Intro & Game Select Screens |
Value is always $7E:0124 & #$FE, but is never read in-game. |
$7E0122
|
1 byte |
Flag |
Intro & Game Select Screens |
"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 |
Intro & Game Select Screens |
General IRQ flag. If set, IRQ mode registers will be enabled |
$7E0124
|
2 bytes |
Counter |
Intro & Game Select Screens |
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 |
Intro & Game Select Screens |
Mirror of $7E:4209 - V-timer low byte. |
$7E0142
|
2 bytes |
Empty |
Super Mario Bros. 1 |
Free space |
$7E014D
|
7 bytes |
Empty |
Super Mario Bros. 1 |
Free space |
$7E0154
|
1 byte |
Flag |
Super Mario Bros. 1 |
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. |
$7E0155
|
1 byte |
Empty |
Super Mario Bros. 1 |
Free space |
$7E0156
|
170 bytes |
Stack |
Global |
Stack RAM. Ends at $7E01FF. |
$7E0160
|
1 byte |
Player |
Super Mario Bros. 3/Global |
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 |
Super Mario Bros. 2 |
BG 1 X position |
$7E0200
|
1 byte |
Hardware Mirror |
Super Mario Bros. 3/Global |
Window Mask Settings for BG1 and BG2 |
$7E0200
|
1 byte |
Index |
Intro & Game Select Screens |
Tilemap index for animating Luigi's head |
$7E0201
|
1 byte |
Hardware Mirror |
Super Mario Bros. 3/Global |
Window Mask Settings for BG3 and BG4 |
$7E0201
|
1 byte |
Index |
Intro & Game Select Screens |
Tilemap index for animating Luigi's right hand |
$7E0202
|
1 byte |
Direction |
Super Mario Bros. 1 |
Player direction.
$01 - Right
$02 - left |
$7E0202
|
2 bytes |
Hardware Mirror |
Super Mario Bros. 2 |
BG 2 X position |
$7E0202
|
1 byte |
Hardware Mirror |
Super Mario Bros. 3/Global |
Window Mask Settings for OBJ and Color Window |
$7E0202
|
1 byte |
Index |
Intro & Game Select Screens |
Tilemap index for animating Peach's head |
$7E0203
|
1 byte |
Hardware Mirror |
Super Mario Bros. 3/Global |
Color Addition Select |
$7E0203
|
1 byte |
Index |
Intro & Game Select Screens |
Tilemap index for animating Toad |
$7E0204
|
2 bytes |
Hardware Mirror |
Super Mario Bros. 2 |
BG 3 X position |
$7E0204
|
1 byte |
Hardware Mirror |
Super Mario Bros. 3/Global |
Color math designation |
$7E0204
|
1 byte |
Index |
Intro & Game Select Screens |
Tilemap index for animating Birdo's eyes.
This animation sequence was cut from the final game. |
$7E0205
|
1 byte |
Hardware Mirror |
Super Mario Bros. 3/Global |
Fixed Color Data (red) |
$7E0205
|
1 byte |
Index |
Intro & Game Select Screens |
Tilemap index for animating Birdo's right arm |
$7E0206
|
2 bytes |
Hardware Mirror |
Super Mario Bros. 2 |
BG 1 Y Position, works together with $04C6 (low byte) |
$7E0206
|
1 byte |
Hardware Mirror |
Super Mario Bros. 3/Global |
Fixed Color Data (green) |
$7E0206
|
1 byte |
Index |
Intro & Game Select Screens |
Tilemap index for animating Birdo's tail |
$7E0207
|
1 byte |
Hardware Mirror |
Super Mario Bros. 3/Global |
Fixed Color Data (blue) |
$7E0207
|
1 byte |
Index |
Intro & Game Select Screens |
Tilemap index for animating Gommba's head.
This animation sequence was cut from the final game. |
$7E0208
|
2 bytes |
Hardware Mirror |
Super Mario Bros. 2 |
BG 2 Y position |
$7E0208
|
1 byte |
Hardware Mirror |
Super Mario Bros. 3/Global |
Main Screen Designation |
$7E0208
|
1 byte |
Index |
Intro & Game Select Screens |
Tilemap index for animating Bob-omb's fuse.
This animation sequence was cut from the final game. |
$7E0209
|
1 byte |
Hardware Mirror |
Super Mario Bros. 3/Global |
Subscreen Designation |
$7E0209
|
1 byte |
Index |
Intro & Game Select Screens |
Tilemap index for animating Spiney's head.
This animation sequence was cut from the final game. |
$7E020A
|
2 bytes |
Hardware Mirror |
Super Mario Bros. 2 |
BG 3 Y position |
$7E020A
|
1 byte |
Hardware Mirror |
Super Mario Bros. 3/Global |
Window Mask Designation for the Main Screen |
$7E020A
|
1 byte |
Index |
Intro & Game Select Screens |
Tilemap index for animating Pidgit. |
$7E020B
|
1 byte |
Hardware Mirror |
Super Mario Bros. 3/Global |
Window Mask Designation for the Subscreen |
$7E020B
|
1 byte |
Index |
Intro & Game Select Screens |
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 |
Super Mario Bros. 1 |
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 |
Super Mario Bros. 3/Global |
BG Mode and Character Size |
$7E020C
|
1 byte |
Index |
Intro & Game Select Screens |
Tilemap index for animating Mario's left arm. |
$7E020D
|
1 byte |
Hardware Mirror |
Super Mario Bros. 3/Global |
Screen Pixelation |
$7E020D
|
1 byte |
Index |
Intro & Game Select Screens |
Tilemap index for animating Bowser's left arm. |
$7E020E
|
1 byte |
Graphics |
Super Mario Bros. 3/Global |
BG mode of statusbar (Mode 1 by default) |
$7E020F
|
1 byte |
Hardware Mirror |
Super Mario Bros. 3/Global |
Main screen designation of statusbar |
$7E0210
|
2 bytes |
X Position |
Super Mario Bros. 3/Global |
BG1 Horizontal Scroll position
TODO: maybe break up into 2 sub addresses for low and high byte |
$7E0214
|
2 bytes |
Hardware Mirror |
Intro & Game Select Screens |
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 |
Intro & Game Select Screens |
BG1 Vertical scroll (IRQ) in Game Select screen |
$7E0216
|
1 byte |
Timer |
Intro & Game Select Screens |
BG1 IRQ scroll timer in Game Select screen. This timer is used when scrolling right. |
$7E0216
|
2 bytes |
Y Position |
Super Mario Bros. 3/Main gameplay |
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. |
$7E0217
|
1 byte |
Timer |
Intro & Game Select Screens |
BG1 IRQ scroll timer in Game Select screen. This timer is used when scrolling left. |
$7E0218
|
1 byte |
Flag |
Super Mario Bros. 1 |
Player's "peace" pose flag. (Used when entering vertical pipes) |
$7E0218
|
1 byte |
Counter |
Intro & Game Select Screens |
Scroll index in Game Select menu. Increments by 1 when scrolling right, decrements by 1 when scrolling left. |
$7E0218
|
2 bytes |
Y Position |
Super Mario Bros. 3/Main gameplay |
BG2 Camera Y position. |
$7E0219
|
1 byte |
X Position |
Super Mario Bros. 1 |
Player's current X position within the screen. |
$7E0219
|
1 byte |
Flag |
Intro & Game Select Screens |
"File Select mode" flag |
$7E021A
|
8 bytes |
X Position |
Super Mario Bros. 1 |
Sprite X position, low byte |
$7E021A
|
1 byte |
Flag |
Intro & Game Select Screens |
"File Select open/close" flag. When set, the File Select menu will either open if closed, or close if opened. |
$7E021B
|
128 bytes |
Timer |
Intro & Game Select Screens |
"File Select open/close" timer. Counts the number of frames remaining to continue opening/closing the File Select menu. |
$7E0220
|
1 byte |
Flag |
Intro & Game Select Screens |
"File Select menu open" flag. When set, the File Select menu in the Game Select screen is open. |
$7E0223
|
1 byte |
Timer |
Intro & Game Select Screens |
Wait time before fading out the screen after a game has been selected. |
$7E0224
|
1 byte |
Flag |
Intro & Game Select Screens |
"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 |
Intro & Game Select Screens |
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 |
Super Mario Bros. 2 |
Window Mask for BG1 & BG2 |
$7E0236
|
1 byte |
Flag |
Super Mario Bros. 1 |
Grow vine in start of level (e.g. bonus cloud) flag. |
$7E0236
|
1 byte |
Hardware Mirror |
Super Mario Bros. 2 |
Window Mask for BG3 & BG4 |
$7E0237
|
1 byte |
Y Position |
Super Mario Bros. 1 |
Player's Y Position |
$7E0237
|
1 byte |
Hardware Mirror |
Super Mario Bros. 2 |
Window Mask for OBJ & COL |
$7E0238
|
8 bytes |
Y Position |
Super Mario Bros. 1 |
Sprite Y position, low byte |
$7E0238
|
1 byte |
Hardware Mirror |
Super Mario Bros. 2 |
Color addition select |
$7E0239
|
1 byte |
Hardware Mirror |
Super Mario Bros. 2 |
CGADSUB settings |
$7E023A
|
1 byte |
Hardware Mirror |
Super Mario Bros. 2 |
HDMA Enable |
$7E023B
|
1 byte |
Hardware Mirror |
Super Mario Bros. 2 |
Window Mask Desig. Main Screen |
$7E023D
|
3 bytes |
Hardware Mirror |
Super Mario Bros. 2 |
RGB Values for backdrop color |
$7E0243
|
1 byte |
Hardware Mirror |
Super Mario Bros. 2 |
Main Screen Designation |
$7E024B
|
1 byte |
Hardware Mirror |
Super Mario Bros. 2 |
V-count for IRQ. Starry BG appears at screen load. |
$7E024C
|
1 byte |
Hardware Mirror |
Super Mario Bros. 2 |
BG1 Tilemap Address & Size |
$7E026C
|
5 bytes |
X Position |
Super Mario Bros. 1 |
Whirlpool sprite X position, high byte. |
$7E0283
|
1 byte |
Counter |
Super Mario Bros. 1 |
Bowser sprite's health against the player's fireballs. |
$7E0285
|
2 bytes |
DMA |
Super Mario Bros. 1 |
Graphics DMA: Source address low and high byte |
$7E0287
|
1 byte |
DMA |
Super Mario Bros. 1 |
Graphics DMA: Bank byte |
$7E0288
|
2 bytes |
DMA |
Super Mario Bros. 1 |
Graphics DMA: DMA size |
$7E028A
|
2 bytes |
DMA |
Super Mario Bros. 1 |
Graphics DMA: VRAM destination address |
$7E028C
|
1 byte |
Flag |
Super Mario Bros. 1 |
Flag to disable scenery graphics animation and most of the background animations. |
$7E028C
|
1 byte |
Flag |
Super Mario Bros. 3/Global |
Shows the Game Over dialogue on the overworld. |
$7E028D
|
1 byte |
Flag |
Super Mario Bros. 1 |
Flag to upload the next frame of animated FG. |
$7E02A9
|
1 byte |
Flag |
Super Mario Bros. 2 |
(Don't) update palettes flag. |
$7E02C5
|
1 byte |
Level Data |
Super Mario Bros. 3/Global |
Layer 2 Palette, written upon level load.
$00 -
TODO: List of possible values. |
$7E02DA
|
2 bytes |
Score |
Super Mario Bros. 3/Battle Mode |
The number of rounds each player has won in this match. |
$7E02DE
|
2 bytes |
Score |
Super Mario Bros. 3/Battle Mode |
The number of matches each player has won. This determines the number of stars on the scoreboard. |
$7E02DF
|
3 bytes |
Pointers |
Super Mario Bros. 2 |
Layer 2 Map16 data pointer. |
$7E02E0
|
1 byte |
Speed |
Super Mario Bros. 3/Global |
Something related about Mario running at full speed
TODO: Figure out what |
$7E02F8
|
1 byte |
Flag |
Super Mario Bros. 1 |
Bonus Room flag. |
$7E0350
|
1 byte |
Level Data |
Super Mario Bros. 3/Global |
Layer 2 Background, written upon level load. Values #$26 and higher are most likely invalid. (TODO: double-check this) |
$7E0364
|
1 byte |
Timer |
Super Mario Bros. 1 |
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 |
Super Mario Bros. 1 |
Bowser sprite's movement direction.
$01 = right
$02 = right, but all he does is run towards the axe
$FF = left |
$7E0367
|
1 byte |
Timer |
Super Mario Bros. 1 |
Index to ROM table $03:D6F1 (timer delay for next Bowser fireball). Increases as a bowser fireball is launched |
$7E0368
|
1 byte |
Index |
Super Mario Bros. 1 |
Index of the Bowser sprite. |
$7E037C
|
1 byte |
Miscellaneous |
Super Mario Bros. 3/Global |
Used by the 'slot machine' minigame to determine xposition of the parts.
TODO: What exactly is this address for? |
$7E0399
|
1 byte |
Sprites |
Super Mario Bros. 1 |
How long the vine (both in start of a level and item boxes) has grown. |
$7E03A2
|
8 bytes |
Timer |
Super Mario Bros. 1 |
Hammer bros hammer throw timer.
TODO: Also related to the player interacting with the red platforms. |
$7E03CA
|
1 byte |
Timer |
Super Mario Bros. 1 |
Bowser's "dizzy bubbles" timer. Increases and shows the animation, until value $34.
Used in combination with $7E03CB. |
$7E03CB
|
1 byte |
Flag |
Super Mario Bros. 1 |
Bowser's "dizzy bubbles" animation flag upon receiving the 4th fireball hit. Used in combination with $7E03CA. |
$7E03F2
|
1 byte |
Counter |
Super Mario Bros. 1 |
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 |
Intro & Game Select Screens |
"File Select tileset" buffer |
$7E0422
|
1 byte |
Counter |
Super Mario Bros. 3/Global |
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 |
Super Mario Bros. 3/Global |
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 |
Super Mario Bros. 3/Global |
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 |
Super Mario Bros. 2 |
Crystal ball has been collected flag, height of opened mouth of hawkmouth. |
$7E04B7
|
1 byte |
Counter |
Super Mario Bros. 2 |
How long the dark potion rooms last. |
$7E04C3
|
1 byte |
Counter |
Super Mario Bros. 2 |
HP count. (Red hearts.) |
$7E04C4
|
1 byte |
Miscellaneous |
Super Mario Bros. 2 |
Amount of hearts to show + 2. |
$7E04C6
|
1 byte |
Hardware Mirror |
Super Mario Bros. 2 |
BG 1 Y (low byte) position, works together with $0206. Used for effects such as the POW. |
$7E04CA
|
1 byte |
Player |
Super Mario Bros. 2 |
The amount of time the player can float. |
$7E04CB
|
1 byte |
Counter |
Super Mario Bros. 2 |
Amount of time the player has to charge up for before doing the super jump. |
$7E04E1
|
1 byte |
Timer |
Super Mario Bros. 2 |
Flashing timer, can kill enemies. |
$7E04E8
|
1 byte |
Counter |
Super Mario Bros. 2 |
Accumulative level number to continue on. |
$7E04E9
|
1 byte |
Level Data |
Super Mario Bros. 2 |
Current room to continue on. |
$7E04EA
|
1 byte |
Level Data |
Super Mario Bros. 2 |
Screen number to continue on. |
$7E04ED
|
1 byte |
Level Data |
Super Mario Bros. 2 |
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 |
Super Mario Bros. 2 |
Current amount of lives. |
$7E04EF
|
1 byte |
Miscellaneous |
Super Mario Bros. 2 |
Jar type. 0 = warp jar, 1 = regular jar, 2 = 'enclosed' jar |
$7E0500
|
1 byte |
Sprites |
Super Mario Bros. 2 |
Amount of time sprites are frozen. (Stopwatch.) |
$7E0533
|
1 byte |
Level Data |
Super Mario Bros. 2 |
Accumulative level number |
$7E0534
|
1 byte |
Level Data |
Super Mario Bros. 2 |
Current room |
$7E0535
|
1 byte |
Level Data |
Super Mario Bros. 2 |
Screen number to start out on. |
$7E0545
|
1 byte |
Level |
Super Mario Bros. 3/Main gameplay |
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 |
Super Mario Bros. 3/Main gameplay |
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 |
Super Mario Bros. 3/Global |
Player is hurt flag (flashing after they get hit) |
$7E0553
|
1 byte |
Timer |
Super Mario Bros. 3/Global |
Star power timer. Does not adjust the music. |
$7E0554
|
1 byte |
Timer |
Super Mario Bros. 3/Global |
Player turns into smoke timer. (When you get Leaf, Tanooki suit etc.) |
$7E0555
|
1 byte |
Timer |
Super Mario Bros. 3/Global |
Mario changes pallette rapidly timer (When you get fireflower) |
$7E0556
|
1 byte |
Timer |
Super Mario Bros. 3/Global |
Everything freezes timer (Activates when Mario gets hit) |
$7E0557
|
1 byte |
Timer |
Super Mario Bros. 3/Global |
Player kicks object image timer |
$7E0558
|
1 byte |
Timer |
Super Mario Bros. 3/Global |
Player faces screen image timer |
$7E0559
|
1 byte |
Timer |
Super Mario Bros. 3/Global |
Player walks to the right in level end timer (Activates when only on ground) |
$7E055A
|
1 byte |
Timer |
Super Mario Bros. 3/Global |
Player walking towards doomship timer (during that one cutscene). |
$7E0566
|
1 byte |
Generator |
Super Mario Bros. 3/Global |
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 |
Super Mario Bros. 3/Global |
P-Switch timer. |
$7E0577
|
1 byte |
Player |
Super Mario Bros. 3/Global |
Player Kuribo shoe status
$00 - Without
$01 - With |
$7E0578
|
1 byte |
Powerup |
Super Mario Bros. 3/Global |
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 |
Super Mario Bros. 3/Global |
Tanooki Player's statue mode timer. Makes the player lose statue mode once it hits 00. |
$7E0598
|
1 byte |
Overworld |
Super Mario Bros. 3/Global |
Flag to enable the spotlight on the overworld. Read upon overworld loading, pausing and level entry. |
$7E0598
|
1 byte |
Overworld |
Super Mario Bros. 3/Global |
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 |
Super Mario Bros. 2 |
How long it takes Phanto to initially take off after grabbing a key. Starts at #$A0 |
$7E05BF
|
8 bytes |
Y Position |
Super Mario Bros. 3/Global |
Extended sprite Y-position, low byte.
TODO: Verify length |
$7E05C9
|
8 bytes |
X Position |
Super Mario Bros. 3/Global |
Extended sprite X position, low byte
TODO: Verify length |
$7E05EE
|
3 bytes |
Timer |
Super Mario Bros. 3/Global |
Current level timer (example: $03 $02 $05 = 325 seconds left) |
$7E0620
|
1 byte |
Flag |
Super Mario Bros. 2 |
1UP has been collected flag. |
$7E0628
|
1 byte |
Level Data |
Super Mario Bros. 2 |
In potion room or not. #$00 = regular level, #$01 = jar, #$02 = potion room. |
$7E0629
|
1 byte |
Level Data |
Super Mario Bros. 2 |
Level number without world number added |
$7E062A
|
1 byte |
Counter |
Super Mario Bros. 2 |
Amount of cherries collected |
$7E062B
|
1 byte |
Counter |
Super Mario Bros. 2 |
Amount of coins you have for the bonus game |
$7E062D
|
4 bytes |
Level Data |
Super Mario Bros. 2 |
Amount of levels completed per character table. |
$7E0635
|
1 byte |
World |
Super Mario Bros. 2 |
World number. |
$7E0671
|
8 bytes |
Sprites |
Super Mario Bros. 3/Global |
Sprite number.
TODO: Verify length; include list? |
$7E06A1
|
13 bytes |
Map16 |
Super Mario Bros. 1 |
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 |
Super Mario Bros. 2 |
Player is shrinking or growing |
$7E06CB
|
1 byte |
Generator |
Super Mario Bros. 1 |
Which generator to activate. |
$7E06CC
|
1 byte |
Flag |
Super Mario Bros. 1 |
"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 |
Super Mario Bros. 1 |
Which enemy to generate during generators. |
$7E06D9
|
1 byte |
Counter |
Super Mario Bros. 1 |
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 |
Super Mario Bros. 1 |
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 |
Super Mario Bros. 1 |
Springboard launch force. Later stored into $7E00A0, player Y Speed. |
$7E0714
|
1 byte |
Flag |
Super Mario Bros. 1 |
Player is ducking flag. $04 = duck, $00 = normal. Unwritten when player is small. |
$7E0715
|
3 bytes |
Routine |
Super Mario Bros. 3/Global |
Current player's score |
$7E0716
|
1 byte |
Flag |
Super Mario Bros. 1 |
Disable player collision detection with objects flag.
Can still interact with sprites. |
$7E0717
|
1 byte |
Counter |
Super Mario Bros. 1 |
Current Demo action executed |
$7E0718
|
1 byte |
Timer |
Super Mario Bros. 1 |
Current Demo action's timer, counts down. |
$7E071A
|
1 byte |
X Position |
Super Mario Bros. 1 |
Horizontal X coordinate of left side of the screen, high byte. |
$7E071A
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $210D: BG1 X Position (high byte) |
$7E071B
|
1 byte |
X Position |
Super Mario Bros. 1 |
Horizontal X coordinate of right side of the screen, high byte. |
$7E071C
|
1 byte |
X Position |
Super Mario Bros. 1 |
Horizontal X coordinate of left side of the screen, low byte. |
$7E071D
|
1 byte |
X Position |
Super Mario Bros. 1 |
Horizontal X coordinate of right side of the screen, low byte. |
$7E0720
|
2 bytes |
VRAM |
Super Mario Bros. 1 |
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 |
Super Mario Bros. 1 |
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 |
Super Mario Bros. 3/Main gameplay |
Current player number.
$00 - Mario
$01 - Luigi |
$7E0727
|
1 byte |
World |
Super Mario Bros. 3/Global |
Current world |
$7E0727
|
1 byte |
Overworld |
Super Mario Bros. 3/Overworld |
Current player's overworld action. |
$7E072C
|
2 bytes |
Objects |
Super Mario Bros. 1 |
Offset of level data, used as an index for [$FA],y |
$7E0733
|
1 byte |
Level |
Super Mario Bros. 1 |
Area object style
$00 - Regular (green platforms, also used in cloud levels)
$01 - Mushroom platforms
$02 - Bullet Bill Cannons |
$7E0735
|
1 byte |
Level |
Super Mario Bros. 1 |
Vertical length of object, used in rendering objects into the level. |
$7E0739
|
1 byte |
Sprites |
Super Mario Bros. 1 |
Offset of sprite data, used as an index for [$FD],y |
$7E073A
|
1 byte |
Sprites |
Super Mario Bros. 1 |
Screen number of the most recent sprite placed into the level. |
$7E073D
|
2 bytes |
Flag |
Super Mario Bros. 3/Main gameplay |
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 |
Super Mario Bros. 1 |
BG1 X Position low byte. |
$7E073F
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $210D: BG1 X Position (low byte) |
$7E0740
|
1 byte |
Y Position |
Super Mario Bros. 1 |
BG1 Y Position low byte. |
$7E0740
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $210E: BG1 Y Position (low byte)
High byte version of this address does not exist. |
$7E0742
|
1 byte |
Flag |
Super Mario Bros. 3/Global |
Flag to keep N-Spade cards as is. 0 = shuffle, 1 = keep. |
$7E0743
|
1 byte |
Flag |
Super Mario Bros. 1 |
Cloud bonus game level type flag (also replaces most objects with clouds as the level progresses). |
$7E0744
|
3 bytes |
Pointers |
Super Mario Bros. 2 |
Layer 3 Map16 data pointer. |
$7E0746
|
1 byte |
Counter |
Super Mario Bros. 1 |
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 |
Super Mario Bros. 1 |
Everything freezes timer (when the player get a powerup or dies for example). |
$7E0747
|
2 bytes |
Player |
Super Mario Bros. 3/Global |
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 |
Super Mario Bros. 3/Global |
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 |
Super Mario Bros. 2 |
Enable Layer 3 image. Also controls which Layer 3 image to load. |
$7E074F
|
9 bytes |
Sprites |
Super Mario Bros. 3/Global |
Sprite X position fractional bits.
TODO: Verify length |
$7E0753
|
1 byte |
Player |
Super Mario Bros. 1 |
Current Player
$00 - Player 1 (Mario)
$01 - Player 2 (Luigi)
Changing this value effectively changes the input controller as well. |
$7E0754
|
1 byte |
Flag |
Super Mario Bros. 1 |
Current player's small player flag. |
$7E0756
|
1 byte |
Player |
Super Mario Bros. 1 |
Current player's powerup |
$7E075A
|
1 byte |
Player |
Super Mario Bros. 1 |
Current player's current amount of lives. |
$7E075B
|
1 byte |
Counter |
Super Mario Bros. 1 |
Current player's midway point screen number |
$7E075C
|
1 byte |
Counter |
Super Mario Bros. 1 |
Current player's level number (used for dash-number display) |
$7E075D
|
1 byte |
Flag |
Super Mario Bros. 1 |
Current player's hidden 1-up block can be hit flag. |
$7E075E
|
1 byte |
Counter |
Super Mario Bros. 1 |
Current player's coins. (Statusbar display not updated) |
$7E075F
|
1 byte |
World |
Super Mario Bros. 1 |
Current player's world. |
$7E0760
|
1 byte |
World |
Super Mario Bros. 1 |
Current player's level (does not update dash-number) |
$7E0761
|
1 byte |
Player |
Super Mario Bros. 1 |
Previous player's current amount of lives. |
$7E0761
|
9 bytes |
Sprites |
Super Mario Bros. 3/Global |
Sprite Y position fractional bits.
TODO: Verify length |
$7E0762
|
1 byte |
Counter |
Super Mario Bros. 1 |
Previous player's midway point screen number |
$7E0763
|
1 byte |
Counter |
Super Mario Bros. 1 |
Previous player's level number (used for dash-number display) |
$7E0764
|
1 byte |
Flag |
Super Mario Bros. 1 |
Previous player's hidden 1-up block can be hit flag. |
$7E0765
|
1 byte |
Counter |
Super Mario Bros. 1 |
Previous player's coins. (Statusbar display not updated) |
$7E0766
|
1 byte |
World |
Super Mario Bros. 1 |
Previous player's world. |
$7E0767
|
1 byte |
World |
Super Mario Bros. 1 |
Previous player's level (does not update dash-number) |
$7E0769
|
1 byte |
Flag |
Super Mario Bros. 1 |
Disable level preview flag. |
$7E076A
|
1 byte |
Flag |
Super Mario Bros. 1 |
Current player's "More difficult quest" flag. |
$7E0770
|
1 byte |
Routine |
Super Mario Bros. 1 |
Game operation mode.
$00 - Title screen
$01 - Main
$02 - Defeated Bowser
$03 - Game Over |
$7E0772
|
1 byte |
Routine |
Super Mario Bros. 1 |
Which task to execute of the current operation mode ($7E0770). |
$7E0772
|
1 byte |
Flag |
Super Mario Bros. 2 |
Layer 3 transparency flag. (Layer 3 in front of Layer 2) Used for light beams in cave levels. |
$7E0773
|
1 byte |
VRAM |
Super Mario Bros. 1 |
Stripe image uploader destination VRAM address index. Indexes the tables at $0382DE (VRAM low byte) and $0382F1 (VRAM high byte). |
$7E0775
|
1 byte |
Speed |
Super Mario Bros. 1 |
Camera scrolling x-speed. |
$7E0775
|
1 byte |
Hardware Mirror |
Super Mario Bros. 2 |
BG Mode / Character Size / Layer 3 priority |
$7E0776
|
1 byte |
Flag |
Super Mario Bros. 1 |
Pause flag. Shows the pause menu. |
$7E0777
|
1 byte |
Timer |
Super Mario Bros. 1 |
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 |
Super Mario Bros. 1 |
2-Player game flag |
$7E077F
|
1 byte |
Flag |
Super Mario Bros. 1 |
Previous player's small player flag. |
$7E0780
|
1 byte |
Player |
Super Mario Bros. 1 |
Previous player's powerup. |
$7E0781
|
1 byte |
Flag |
Super Mario Bros. 1 |
"More difficult quest" flag for previous player |
$7E0782
|
1 byte |
Timer |
Super Mario Bros. 2 |
Amount of times 'No Bonus' should flash. (Up to 7F) |
$7E0783
|
1 byte |
Timer |
Super Mario Bros. 2 |
Amount of frames 'No Bonus' remains present or not. (00 slowest, 01 fastest) |
$7E078A
|
1 byte |
Timer |
Super Mario Bros. 2 |
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 |
Super Mario Bros. 3/Battle Mode |
The player who won the round. $01 = Luigi, $02 = Mario. |
$7E078F
|
1 byte |
Timer |
Super Mario Bros. 1 |
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 |
Super Mario Bros. 1 |
Used in generators: Timer to spawn the next sprite.
TODO: Seems to behave differently for the bullet bill generator |
$7E079C
|
1 byte |
Timer |
Super Mario Bros. 1 |
Time until Bowser's sprite shoots a fireball. |
$7E07AE
|
1 byte |
Timer |
Super Mario Bros. 1 |
Player invincibility (after getting hit) timer. |
$7E07AF
|
1 byte |
Timer |
Super Mario Bros. 1 |
Player Star power timer. |
$7E07B7
|
7 bytes |
Miscellaneous |
Super Mario Bros. 1 |
Table of randomly generated numbers. |
$7E07CE
|
6 bytes |
Player |
Super Mario Bros. 1 |
Player 1's current score. 1 digit each byte. Example: $01 $02 $03 $04 $05 $06 = 1234560 points |
$7E07D4
|
6 bytes |
Player |
Super Mario Bros. 1 |
Player 2's current score. |
$7E07E9
|
3 bytes |
Timer |
Super Mario Bros. 1 |
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 |
Super Mario Bros. 1 |
"More difficult quest" flag.
Actually affects the world and level number display to show the star. |
$7E07FD
|
1 byte |
World |
Super Mario Bros. 1 |
Residual address from NES SMB1: World number for the secret continue function (A + Start) of NES SMB1 |
$7E0800
|
544 bytes |
OAM Tilemap |
Super Mario Bros. 1 |
OAM table. |
$7E0800
|
544 bytes |
OAM Tilemap |
Super Mario Bros. 2 |
OAM table. |
$7E0800
|
512 bytes |
OAM Tilemap |
Intro & Game Select Screens |
OAM low table mirror |
$7E0800
|
544 bytes |
Hardware Mirror |
Super Mario Bros. 3/Battle Mode |
Mirror of the entirety of OAM. |
$7E0886
|
1 byte |
OAM Tile Number |
Super Mario Bros. 3/Global |
Miniature player's tile number in the
WORLD N
MARIO/LUIGI x N
blue screen popup on the overworld. |
$7E0A00
|
32 bytes |
OAM Tilemap |
Intro & Game Select Screens |
OAM high table mirror (actual). |
$7E0A20
|
128 bytes |
OAM Tilemap |
Super Mario Bros. 2 |
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 |
Intro & Game Select Screens |
OAM high table mirror (expanded).
Each byte only sets the lowest two bits that then get inserted into $7E:0A00. |
$7E0AC0
|
1 byte |
Flag |
Intro & Game Select Screens |
If non-zero CGRAM will update (transfer $7F:9200 to CGRAM). |
$7E0B00
|
512 bytes |
Palette |
Super Mario Bros. 2 |
CGRAM (palette) table. |
$7E0B75
|
1 byte |
Pointers |
Super Mario Bros. 1 |
Pause window states.
$00 - Expand
$01 - Maintain pause window, wait for input, etc.
$02 - Option selected (?)
$03 - Collapse |
$7E0B78
|
1 byte |
Timer |
Super Mario Bros. 1 |
Frame counter which increases every frame only when paused. Used to do the cursor blinking animation. |
$7E0B9A
|
1 byte |
HDMA |
Super Mario Bros. 1 |
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 |
Super Mario Bros. 1 |
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 |
Super Mario Bros. 1 |
Pipe fadeout flag - when taking a pipe, makes all screen fades mosaic and hides OAM tiles. |
$7E0E7E
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $2105: Mosaic/pixelation register. |
$7E0EC0
|
2 bytes |
Index |
Super Mario Bros. 1 |
Index to the final background map16 page written. (Every $0100 bytes of RAM $7ED000 is a page) |
$7E0EC2
|
1 byte |
Flag |
Super Mario Bros. 1 |
Current player's character graphics.
$00 - Mario's graphics
$01 - Luigi's graphics |
$7E0ED1
|
1 byte |
Flag |
Super Mario Bros. 1 |
"Starry Night" background mode flag. Enables IRQ parallax scrolling and other things. |
$7E0ED2
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $2110: BG2 Y Position (low byte) |
$7E0ED3
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $2110: BG2 Y Position (high byte) |
$7E0EDC
|
1 byte |
Flag |
Super Mario Bros. 1 |
Process layer 3 image display flag |
$7E0EDE
|
1 byte |
Flag |
Super Mario Bros. 1 |
IRQ-related flag. $00 during fades, $01 during normal levels and $02 during Starry Night levels. |
$7E0EE0
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $2132: Direct Color Register |
$7E0EE1
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $2132: Direct Color Register |
$7E0EE2
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $2132: Direct Color Register |
$7E0EEE
|
2 bytes |
Hardware Mirror |
Super Mario Bros. 1 |
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 |
Super Mario Bros. 1 |
IRQ V-Timer thing. #$AF during Starry Night levels to do the parallax effect, #$1F during other levels. |
$7E0EFD
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $210F: BG2 X Position (low byte) |
$7E0EFE
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $210F: BG2 X Position (high byte) |
$7E0F4C
|
1 byte |
Timer |
Super Mario Bros. 1 |
Bowser animation freeze timer |
$7E0F4E
|
1 byte |
Index |
Super Mario Bros. 1 |
Sprite index of latest generated Bowser fire. |
$7E0F89
|
1 byte |
Counter |
Super Mario Bros. 1 |
'Phase' of the floating heart in the Princess kisses player sequence. |
$7E1000
|
512 bytes |
Palette |
Super Mario Bros. 1 |
Level Palette |
$7E1019
|
1 byte |
Counter |
Super Mario Bros. 3/Global |
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 |
Super Mario Bros. 3/Main gameplay |
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 |
Super Mario Bros. 3/Main gameplay |
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 |
Super Mario Bros. 2 |
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 |
Super Mario Bros. 2 |
World number in beginning of level display tilemap |
$7E118F
|
1 byte |
VRAM Tilemap |
Super Mario Bros. 2 |
World number in beginning of level display properties |
$7E1190
|
1 byte |
VRAM Tilemap |
Super Mario Bros. 2 |
Dash in beginning of level display tilemap |
$7E1191
|
1 byte |
VRAM Tilemap |
Super Mario Bros. 2 |
Dash in beginning of level display properties |
$7E1192
|
1 byte |
VRAM Tilemap |
Super Mario Bros. 2 |
Level number in beginning of level display tilemap |
$7E1193
|
1 byte |
VRAM Tilemap |
Super Mario Bros. 2 |
Level number in beginning of level display properties |
$7E11B4
|
1 byte |
Counter |
Super Mario Bros. 2 |
Amount of lives in char. select, 10s |
$7E11B5
|
1 byte |
VRAM Tilemap |
Super Mario Bros. 2 |
Properties of lives in char. select, 10s |
$7E11B6
|
1 byte |
Counter |
Super Mario Bros. 2 |
Amount of lives in char. select, 1s |
$7E11B7
|
1 byte |
VRAM Tilemap |
Super Mario Bros. 2 |
Properties of lives in char. select, 1s |
$7E11BD
|
6 bytes |
VRAM Tilemap |
Super Mario Bros. 2 |
Tilemap and properties of number of 'World |
$7E1200
|
1 byte |
Sound Effect |
Super Mario Bros. 3/Global |
Sound effects channel 1 |
$7E1201
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $2100: Brightness settings.
Automatically goes into F-Blank when brightness is 0. |
$7E1201
|
1 byte |
Sound Effect |
Super Mario Bros. 3/Global |
Sound effects channel 2 |
$7E1202
|
1 byte |
Music |
Super Mario Bros. 3/Global |
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 |
Super Mario Bros. 1 |
Mirror of $420C: Enable HDMA channels |
$7E1203
|
1 byte |
Sound Effect |
Super Mario Bros. 3/Global |
Sound effects channel 3 |
$7E1204
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $2123: Window Mask Settings for BG1 and 2 |
$7E1204
|
4 bytes |
Hardware Mirror |
Super Mario Bros. 3/Global |
Backup of $1200; used to determine which music was played recently. |
$7E1205
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $2124: Window Mask Settings for BG3 and 4 |
$7E1206
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $2125: Window Mask Settings for OAM and color window |
$7E1207
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $212E: Window Mask Designation for main screen |
$7E1208
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $212F: Window Mask Designation for sub screen |
$7E1208
|
4 bytes |
Hardware Mirror |
Super Mario Bros. 3/Global |
SPC700 -> SNES I/O registers. Used to determine if a sound effect or music is finished playing. |
$7E1209
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $2130: Color addition select |
$7E120A
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $2131: CGADSUB |
$7E120B
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $212C: Main Screen Designation |
$7E120C
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $212D: Sub Screen Designation |
$7E120D
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $2105: Screen mode |
$7E120E
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $2128: Window 2 left position |
$7E120F
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $2129: Window 2 right position |
$7E1210
|
1 byte |
Hardware Mirror |
Super Mario Bros. 1 |
Mirror of $2132: Direct color register |
$7E1300
|
5 bytes |
Level Data (Objects) |
Super Mario Bros. 1 |
A buffer for rendering horizontally extendable objects. The buffer is represented as a stack that starts at $7E1304 and ends at $7E1300. A value of #$FF means there is no object to render. A value greater than or equal to zero means this object should render at the current X-coordinate.
Each byte represents the remaining width of the object to render. The area data parser renders the level an X-coordinate at a time. The renderer pauses until the player moves forward and more tile data needs to be read (this strategy to load area data is why you can't scroll backwards in SMB1).
How the buffer works is, when an object is at the X-coordinate as the area data renderer (the coordinate it is currently rendering) it will do the render logic for that coordinate, decrement the buffer value, and move on. Once the buffer value gets to $FF, this buffer value is free to use for another object. It will save the 16-bit index of this object relative to the area data address at $7E1305,x, and the 8-bit width of the object at $7E1300,x.
If there is already an object at the current buffer stack, the object will be saved to the next buffer location. If all five buffers are filled, the render will not render anymore objects until it gets to the next screen and the buffer is reset. This places a limit of 5 objects per X-coordinate in SMB1. |
$7E1300
|
512 bytes |
Palette |
Super Mario Bros. 3/Global |
A buffer for the entire palette, both in levels and on the overworld. It may be uploaded to CGRAM depending on $1500. |
$7E1305
|
10 bytes |
Level Data (Objects) |
Super Mario Bros. 1 |
A buffer that saves the index of the area data object in the respective buffer of $7E1300.
Once an object is ready to be rendered at its X-coordinate, the width of the object is saved to $7E1300,x and the index of this object in the area object data is saved at $7E1305,x. The X register for $7E1300,x is 8-bit, but for $7E1305,x it's 16-bit. |
$7E130F
|
5 bytes |
Level Data (Objects) |
Super Mario Bros. 1 |
A flag for the current buffer object at $7E1300. If that object is a green tree platform, then this flag is set when it's rendering the left base of the tree (the stem), and then cleared once it reaches the right base.
This flag is used to determine when to start and stop rendering the stem green tree platform. |
$7E1314
|
5 bytes |
Level Data (Objects) |
Super Mario Bros. 1 |
A value used for the current buffer object at $7E1300,x.
If that object is an orange mushroom platform, then this value is set to half the width of the platform and is used to determine where to draw the stem of the mushroom. |
Follow Us On