Difference between revisions of "Super Mario Bros. 2:RAM map"

From Data Crystal
Jump to: navigation, search
(Attempted to make the style better... still needs a lot of work)
m (Touched up some of the various spelling errors on this page and provided a bit of extra information in some parts.)
 
(27 intermediate revisions by 12 users not shown)
Line 1: Line 1:
 
{{rammap|game=Super Mario Bros. 2}}
 
{{rammap|game=Super Mario Bros. 2}}
  
====Sprite Related====
+
=RAM=
  
$0014 - Page of main character's X position
+
==Counters==
$001E - Page of main character's Y position
 
  
$0028 - Fraction of main character's X position on page
+
* $04ED - Current number of lives
$0029 - Fraction of enemy 5's X position on page
+
* $05C5 - Current number of Continues
$002A - Fraction of enemy 4's X position on page
+
* $062A - Current number of cherries
$002B - Fraction of enemy 3's X position on page
+
* $062B - Current number of coins pulled in Subspace (Slot machine currency)
$002C - Fraction of enemy 2's X position on page
+
* $062C - Current number of BIG vegetables pulled for stop watch
$002D - Fraction of enemy 1's X position on page
 
  
$0033 - Fraction of enemy 5's Y position on page
+
* $062D - Number of levels finished as Mario
$0034 - Fraction of enemy 4's Y position on page
+
* $062E - Number of levels finished as Princess
$0035 - Fraction of enemy 3's Y position on page
+
* $062F - Number of levels finished as Toad
$0036 - Fraction of enemy 2's Y position on page
+
* $0630 - Number of levels finished as Luigi
$0037 - Fraction of enemy 1's Y position on page
 
  
$003C - Enemy 5's speed left/right
+
==Sprite Related==
$003D - Enemy 4's speed left/right
 
$003E - Enemy 3's speed left/right
 
$003F - Enemy 2's speed left/right
 
$0040 - Enemy 1's speed left/right
 
  
$0046 - main character's jumping physics
+
* $0014 - Page of main character's X position
$0047 - enemy 5's jumping physics
+
* $001E - Page of main character's Y position
$0048 - enemy 4's jumping physics
+
* $0638 - Player's Overalls Palette
$0049 - enemy 3's jumping physics
+
* $0639 - Player's Cap Palette
$004A - Enemy 2's jumping physics
+
* $063A - Player's Skin Palette
$004B - Enemy 1's jumping physics
 
  
$0050 - Is character on a vine? If 01, then yes
+
===Position of sprites===
......00 - no
 
......01 - yes
 
  
$0051 - Enemy 5's status
+
====X position on page====
$0052 - Enemy 4's status
 
$0053 - Enemy 3's status
 
$0054 - Enemy 3's status
 
$0055 - Enemy 2's status
 
......00 - Invisable
 
......01 - Visable
 
......02 - Dead
 
  
$005A - Enemy 5's relation to main character/landscape
+
* $0028 - main character
$005B - Enemy 4's relation to main character/landscape
+
* $0029 - enemy 5
$005C - Enemy 3's relation to main character/landscape
+
* $002A - enemy 4
$005D - Enemy 2's relation to main character/landscape
+
* $002B - enemy 3
$005E - Enemy 1's relation to main character/landscape
+
* $002C - enemy 2
......00 - not on the ground (could be jumping or being thrown
+
* $002D - enemy 1
......04 - walking
 
......05 - turn left because object blocks path
 
......06 - turn right because object blocks path
 
......20 - carrying main character when reaching an edge to turn around
 
......24 - carrying main character with same speed as movement
 
  
$0065 - Enemy 5's palette, mirroring, etc.
+
====Y position on page====
$0066 - Enemy 4's palette, mirroring, etc.
 
$0067 - Enemy 3's palette, mirroring, etc.
 
$0068 - Enemy 2's palette, mirroring, etc.
 
$0069 - Enemy 1's palette, mirroring, etc.
 
  
====Timers====
+
* $0033 - enemy 5
 +
* $0034 - enemy 4
 +
* $0035 - enemy 3
 +
* $0036 - enemy 2
 +
* $0037 - enemy 1
  
$0085 - Amount of time left until Mario becomes vulnerable
+
===Speed of sprites (left/right)===
$0086 - Amount of time left?
 
$0087 - Amount of time left before Bob Omb 5 explodes
 
$0088 - Amount of time left before Bob Omb 4 explodes
 
$0089 - Amount of time left before Bob Omb 3 explodes
 
$008A - Amount of time left before Bob Omb 2 explodes
 
$008B - Amount of time left before Bob Omb 1 explodes
 
$008C - Amount of time left before Bomb 1 explodes
 
$008D - Amount of time left before Bomb 2 explodes
 
$008E - Amount of time left before Bomb 3 explodes
 
  
====Sprite IDs====
+
* $003C - Main character
 +
* $003D - Enemy 5
 +
* $003E - Enemy 4
 +
* $003F - Enemy 3
 +
* $0040 - Enemy 2
 +
* $0041 - Enemy 1
  
$008F - Character selected (appearance only, until defeated, then stats as well)
+
===Jumping Physics===
......00 - Mario
 
......01 - Princess
 
......02 - Toad
 
......03 - Luigi
 
$0090 - Changes enemy 5's ID
 
$0091 - Changes enemy 4's ID
 
$0092 - Changes enemy 3's ID
 
$0093 - Changes enemy 2's ID
 
$0094 - Changes enemy 1's ID
 
  
$0096 - Item pulled up from ground
+
* $0046 - main character
 +
* $0047 - enemy 5
 +
* $0048 - enemy 4
 +
* $0049 - enemy 3
 +
* $004A - Enemy 2
 +
* $004B - Enemy 1
  
$0099 - Sprite graphics used when jumping
+
* $0050 - Is character on a vine?
$009A - Drop through
+
00 - no
$009B - Sprite graphics used when walking
+
01 - yes
  
$009C - Status - Holding an item
+
===Misc. sprite addresses===
......00 = no
 
......01 = yes
 
$009D - Character's mirroring, etc. (not palette)
 
$00A3 - Changes once for everytime Tweeter jumps
 
  
$00AD - Is key held? Key appears above head even if thrown, but then not chased.
+
* $0051 - Enemy 5
......00 - no
+
* $0052 - Enemy 4
......01 - yes
+
* $0053 - Enemy 3
$00AE - Item in hand height (used for different character sizes?)
+
* $0054 - Enemy 2
 +
* $0055 - Enemy 1
 +
00 - Invisible
 +
01 - Visible
 +
02 - Dead
  
$00B9 - Current time left to use Pidget's carpet
+
* $005A - Enemy 5's relation to main character/landscape
$00BA - Screen speed moving left and right
+
* $005B - Enemy 4's relation to main character/landscape
 +
* $005C - Enemy 3's relation to main character/landscape
 +
* $005D - Enemy 2's relation to main character/landscape
 +
* $005E - Enemy 1's relation to main character/landscape
 +
00 - not on the ground (could be jumping or being thrown)
 +
04 - walking
 +
05 - turn left because object blocks path
 +
06 - turn right because object blocks path
 +
20 - carrying main character when reaching an edge to turn around
 +
24 - carrying main character with same speed as movement
  
$00C7 - Character's status
+
===Sprite's palette, mirroring, etc.===
  
====Button Related====
+
* $0065 - Enemy 5
 +
* $0066 - Enemy 4
 +
* $0067 - Enemy 3
 +
* $0068 - Enemy 2
 +
* $0069 - Enemy 1
  
$00F5 - Button pressed (Controller 1)
+
===Sprite IDs===
$00F6 - Button pressed (Controller 2)
 
$00F7 - Button held (Controller 1)
 
>>>>>>>>>>  Directional Pad
 
......*0 - no movement
 
......*1 - Right
 
......*2 - Left
 
......*3 - Left + Right
 
......*4 - Down
 
......*5 - Down + Right
 
......*6 - Down + Left
 
......*7 - Down + Left + Right
 
......*8 - Up
 
......*9 - Up + Right
 
......*A - Up + Left
 
......*B - Up + Left + Right
 
......*C - Up + Down
 
......*D - Up + Down + Right
 
......*E - Up + Down + Left
 
......*F - Up + Down + Left + Right
 
>>>>>>>>>>  Buttons
 
......0* - not pressed
 
......1* - Start
 
......2* - Select
 
......3* - Start + Select
 
......4* - B
 
......5* - Start + B
 
......6* - Select + B
 
......7* - Start + Select + B
 
......8* - A
 
......9* - Start + A
 
......A* - Select + A
 
......B* - Start + Select + A
 
......C* - A + B
 
......D* - Start + A + B
 
......E* - Select + A + B
 
......F* - Start + Select + A + B
 
$00F8 - Button held (Controller 2)
 
  
$0100 - (screen hold?)
+
* $008F - Character selected (appearance only, until defeated, then stats as well)
 +
00 - Mario
 +
01 - Princess
 +
02 - Toad
 +
03 - Luigi
 +
* $0090 - Enemy 5
 +
* $0091 - Enemy 4
 +
* $0092 - Enemy 3
 +
* $0093 - Enemy 2
 +
* $0094 - Enemy 1
  
$0415 - the rising of the heart
+
* $0096 - Item pulled up from ground
$0416 - Height of whale's spout after peaking.
 
  
$0456 - Current time left Hawkmouth (before Wart) is open
+
* $0099 - Graphics for when main character jumps
 +
* $009A - Drop through
 +
* $009B - Graphics for when main character walks
  
====Enemy HP====
+
* $00C7 - Character's status
  
$0465 - Enemy 5's health
+
===Sprite HP===
$0466 - Enemy 4's health
 
$0467 - Enemy 3's health
 
$0468 - Enemy 2's health
 
$0469 - Enemy 1's health
 
  
$0471 - look into
+
* $0465 - Enemy 5
 +
* $0466 - Enemy 4
 +
* $0467 - Enemy 3
 +
* $0468 - Enemy 2
 +
* $0469 - Enemy 1
  
$0484 - look into
+
===Main character===
  
$04B4 - Something to do with the Hawkmouth opening and closing
+
* $04C2 - Current life in the life meter
 +
0F - One heart
 +
1F - Two hearts
 +
2F - Three hearts
 +
3F - Four hearts
  
$04AD - Current number of enemies defeated to grab a heart.
+
* $04C3 - Number of bars in the life meter (for visual purposes only)
 +
FF - One bar (doesn't work very well)
 +
00 - Two bars (default)
 +
01 - Three bars
 +
02 - Four bars
  
$04B0 - Has Key been used on lock? If yes, then it won't reappear.
+
==Timers==
......00 - no
 
......01 - yes
 
  
$04B4 - How wide Hawkmouth is open
+
* $0085 - Amount of time left until main character becomes vulnerable
$04B5 - Has the Crystal been obtained? If yes, effect will last while in area.
+
* $0086 - Amount of time left for unknown
......00 - no
+
* $0087 - Amount of time left before Bob Omb 5 explodes
......01 - yes
+
* $0088 - Amount of time left before Bob Omb 4 explodes
$04B6 - look into
+
* $0089 - Amount of time left before Bob Omb 3 explodes
 +
* $008A - Amount of time left before Bob Omb 2 explodes
 +
* $008B - Amount of time left before Bob Omb 1 explodes
 +
* $008C - Amount of time left before Bomb 1 explodes
 +
* $008D - Amount of time left before Bomb 2 explodes
 +
* $008E - Amount of time left before Bomb 3 explodes
 +
* $00B9 - Current time left to use Pidget's carpet
 +
* $04B7 - Amount of time left in subspace
 +
* $04E0 - Amount of time left as star Mario
 +
* $04FF - Current amount of time left from the stop watch
 +
* $14CA - Timer for crouch jump power (0 - 3C)
  
$04BE - Time counts up for how long the door takes to open
+
===Item flags===
  
$04C2 - Current life in the life meter
+
* $009C - Holding an item?
......0F - One heart
+
00 = no
......1F - Two hearts
+
01 = yes
......2F - Three hearts
+
* $009D - Character's mirroring, etc. (not palette)
......3F - Four hearts
+
* $00A3 - Changes once for everytime Tweeter jumps
  
$04C3 - Number of bars in the life meter (for visual purposes only)
+
* $00AD - Is key held?
......FF - One bar (doesn't work very well)
+
00 - no
......00 - Two bars (default)
+
01 - yes -  Key appears above head even if thrown, but then not chased.
......01 - Three bars
+
* $00AE - Item in hand height (used for different character sizes?)
......02 - Four bars
 
$04C4 - Amount of time left for the screen to shake after POW
 
$04C5 - Height to raise and lower the "level" for shake
 
$04C6 - Amount of time left for bomb flash in background
 
  
$04CA - Amount of time to build up to charged jump
+
==Misc.==
  
$04E0 - Current Starman time length left
+
* $002F - Bonus chance left card
  
$04E7 - Area to regenerate
+
* $0030 - Bonus chance middle card
$04E8 - Sub-area to regenerate
 
$04E9 - Page to regenerate
 
  
$04EC - I can't describe this one.
+
* $0031 - Bonus chance right card
......00 - normal game play
 
......01 - begin the same level and area again (like dying revive)
 
......02 - game over
 
......03 - end level, go to bonus game
 
......04 - warp
 
$04ED - Current number of lives
 
  
====Mushroom Flags====
+
* $00BA - Screen speed moving left and right
  
$04FB - Has First Mushroom been pulled? If yes, then it won't reappear.
+
* $0100 - (screen hold?)
......00 - no
 
......01 - yes
 
$04FC - Has Second Mushroom been pulled? If yes, then it won't reappear.
 
......00 - no
 
......01 - yes
 
  
$04FF - Current amount of time left from the stop watch.
+
* $0415 - the rising of the heart
 +
* $0416 - Height of whale's spout after peaking.
  
$051D - look into
+
* $0456 - Current time left Hawkmouth (before Wart) is open
  
$0521 - look into
+
* $04EC - Level Transition.
 +
00 - normal game play
 +
01 - begin the same level and area again (like dying revive)
 +
02 - game over
 +
03 - end level, go to bonus game
 +
04 - warp
  
====Level in Memory====
+
* $06F6 - Character growing or shrinking
 +
 
 +
 
 +
* $0211 + $0215 = Slot machine Slot #1 (only during slot game)
 +
* $0219 + $021D = Slot machine Slot #2 (only during slot game)
 +
* $0221 + $0225 = Slot machine Slot #3 (only during slot game)
 +
9, 9 = Star
 +
1, 3 = Shy Guy
 +
11, 11 = Radish
 +
5, 7 = Cherry
 +
 
 +
==Button Related==
 +
 
 +
* $00F5 - Button pressed (Controller 1)
 +
* $00F6 - Button pressed (Controller 2)
 +
* $00F7 - Button held (Controller 1)
 +
* $00F8 - Button held (Controller 2)
 +
 
 +
Directional Pad
 +
*0 - no movement
 +
*1 - Right
 +
*2 - Left
 +
*3 - Left + Right
 +
*4 - Down
 +
*5 - Down + Right
 +
*6 - Down + Left
 +
*7 - Down + Left + Right
 +
*8 - Up
 +
*9 - Up + Right
 +
*A - Up + Left
 +
*B - Up + Left + Right
 +
*C - Up + Down
 +
*D - Up + Down + Right
 +
*E - Up + Down + Left
 +
*F - Up + Down + Left + Right
 +
 
 +
Buttons
 +
0* - not pressed
 +
1* - Start
 +
2* - Select
 +
3* - Start + Select
 +
4* - B
 +
5* - Start + B
 +
6* - Select + B
 +
7* - Start + Select + B
 +
8* - A
 +
9* - Start + A
 +
A* - Select + A
 +
B* - Start + Select + A
 +
C* - A + B
 +
D* - Start + A + B
 +
E* - Select + A + B
 +
F* - Start + Select + A + B
 +
 
 +
==Sprite Flags==
 +
 
 +
* $04B4 - Something to do with the Hawkmouth opening and closing
 +
 
 +
* $04AD - Current number of enemies defeated to grab a heart.
 +
 
 +
* $04B0 - Has Key been used on lock?
 +
00 - no
 +
01 - yes - If yes, then it won't reappear.
 +
 
 +
* $04B4 - How wide Hawkmouth is open
 +
* $04B5 - Has the Crystal been obtained? If yes, effect will last while in area.
 +
00 - no
 +
01 - yes
 +
* $04B6 - look into
 +
 
 +
* $04BE - Time counts up for how long the door takes to open
 +
 
 +
* $04C4 - Amount of time left for the screen to shake after POW
 +
* $04C5 - Height to raise and lower the "level" for shake
 +
* $04C6 - Amount of time left for bomb flash in background
 +
 
 +
* $04CA - Amount of time to build up to charged jump
 +
 
 +
* $04E0 - Current Starman time length left
 +
 
 +
==Regeneration properties==
 +
 
 +
* $04E7 - Area
 +
* $04E8 - Sub-area
 +
* $04E9 - Page
 +
 
 +
==Mushroom Flags==
 +
 
 +
* $04FB - Has First Mushroom been pulled? If yes, then it won't reappear.
 +
00 - no
 +
01 - yes
 +
* $04FC - Has Second Mushroom been pulled? If yes, then it won't reappear.
 +
00 - no
 +
01 - yes
 +
* $0620 - Has 1-up been pulled?
 +
00 - no
 +
01 - yes - If yes, then it won't reappear.
 +
 
 +
===Subspace Related Properties===
 +
 
 +
* $0621 - Number of times leaving Subspace after grabbing a coin
 +
00 - 1st chance to grab coins
 +
01 - 2nd chance to grab coins
 +
02 - No more chances, get vegetables.
 +
 
 +
* $0628 - In subspace?
 +
00 - no
 +
02 - yes (doesn't work for vertical areas)
 +
* $0629 - Possible subspace offset
 +
 
 +
==Level in Memory==
  
 
$0531 - Current level loaded
 
$0531 - Current level loaded
......00 - 1-1
+
00 - 1-1
......01 - 1-2
+
01 - 1-2
......02 - 1-3
+
02 - 1-3
......03 - 2-1
+
03 - 2-1
......04 - 2-2
+
04 - 2-2
......05 - 2-3
+
05 - 2-3
......06 - 3-1
+
06 - 3-1
......07 - 3-2
+
07 - 3-2
......08 - 3-3
+
08 - 3-3
......09 - 4-1
+
09 - 4-1
......0A - 4-2
+
0A - 4-2
......0B - 4-3
+
0B - 4-3
......0C - 5-1
+
0C - 5-1
......0D - 5-2
+
0D - 5-2
......0E - 5-3
+
0E - 5-3
......0F - 6-1
+
0F - 6-1
......10 - 6-2
+
10 - 6-2
......11 - 6-3
+
11 - 6-3
......12 - 7-1
+
12 - 7-1
......13 - 7-2
+
13 - 7-2
 +
 
 +
==Character Properties==
 +
 
 +
* $0546 - Pickup Speed Animation 1
 +
* $0547 - Pickup Speed Animation 2
 +
* $0548 - Pickup Speed Animation 3
 +
* $0549 - Pickup Speed Animation 4
 +
* $054A - Pickup Speed Animation 5
 +
* $054B - Pickup Speed Animation 6
 +
 
 +
* $054D - Standing Jump Height
 +
* $054E - Crouching Power Jump Height
 +
 
 +
* $0550 - Running Jump Height
 +
* $0551 - Running Jump Height while carrying object
 +
 
 +
* $0553 - Float Timer (set to 0 for everyone but Princess)
 +
 
 +
* $0555 - Character's Jumping physics?
 +
 
 +
==Music and Sound Properties==
 +
 
 +
* $05EE - Current music track?
 +
* $05EF - Current music track?
 +
 
 +
* $0600 - Loads the current song track
 +
* $0601 - Plays a sound effect
 +
* $0602 - Plays a sound effect
 +
* $0603 - Plays a small clip of music (and also for ending sequence)
 +
* $0604 - Character's sound effects
 +
* $0605 - POW sound effects
 +
* $0606 - Stores sound effect from $0603 played
 +
* $0607 - Stores sound effect from $0602 played
 +
* $0608 - Stores sound effect from $0601 played
 +
* $0609 - Stores music track from $0600 played
 +
 
 +
* $0612 - Current music tempo
 +
 
 +
==World Properties==
 +
 
 +
* $0635 - Current World number (loads characteristics of world such as Ice)
 +
 
 +
===Graphics Tileset===
  
$0532 - look into<br>
+
* $06F7 - Current Level Tileset (1st half of the right Table)
$0533 - look into<br>
+
10 - Grass
 +
12 - Desert
 +
14 - Sky
 +
16 - Wart's Palace?
 +
* $06F8 - Current Cycling Sprite Tileset (2nd half of the right Table)
 +
* $06F9 - Current Character (Appearance, not stats) (1st quarter of left Table)
 +
00 - Large Mario
 +
01 - Large Luigi
 +
02 - Large Princess
 +
03 - Large Toad
 +
04 - Small Mario
 +
05 - Small Luigi
 +
06 - Small Princess
 +
07 - Small Toad
 +
* $06FA - Current standard sprites (Snifits, Hawkmouth, etc.) (2nd quarter of left Table)
 +
* $06FB - Current standard sprites (1-Up, Birdo, etc.) (3rd quarter of left Table)
 +
* $06FC - Current changeable sprites (Ostro, Pidget, Pokey, etc.) (4th quarter of left Table)
 +
* $06FD - Current animation of $06F8 (Cycling sprites)
  
$0544 - look into<br>
+
===Level Layout===
$0545 - look into<br>
 
  
====Character Properties====
+
* $0700 ~ $07FF - Subspace and jars
 +
* $6000 - $695F - Currently loaded level (Almost half the SRAM)
  
$0546 - Pickup Speed Animation 1
+
===Stuff posted by ACMLM on rustedmagick forums in 2002===
$0547 - Pickup Speed Animation 2
+
<pre>SMB2's music ROM bank: ($8000-FFFF, Addresses not counting header)
$0548 - Pickup Speed Animation 3
 
$0549 - Pickup Speed Animation 4
 
$054A - Pickup Speed Animation 5
 
$054B - Pickup Speed Animation 6
 
  
$054D - Standing Jump Height
+
----------
$054E - Crouching Power Jump Height
+
$8000-8119 = ?? (contains data such as the jump sound, climbing sound, falling sound (in 1-1))
 +
$811A-8137 = Mushroom sound (notes in reverse order)
 +
$8138-818E = ??
 +
$818F-8196 = Pointers to sound effects
 +
$8197-828D = Sound effects
 +
$828E-8746 = ?? (must be the code that generates music from the data)
 +
$8747-875E = Note frequency data (base scale)
  
$0550 - Running Jump Height
+
$875F-8EFF = unused
$0551 - Running Jump Height while carrying object
 
  
$0553 - Float Timer (set to 0 for everyone but Princess)
+
$8F00-8FB2 = Note length tables
 +
$8FB3-8FFF = unused (can be used to add note length tables)
  
$0545 - look into
+
$9000-9029 = Music part pointers
 +
$902A-9102 = Music part headers
 +
$9103-910B = Pointers to first music part (for each song)
 +
$910C-9114 = Pointers to last music part
 +
$9115-911D = Pointers to looping music part
 +
$911E-A18D = Music data
 +
$A18E-A3EE = Instrument sound data (square pulse property bits)
  
$0555 - Character's Jumping physics?
+
$A3EF-BFFF = unused
 +
----------
  
$05C5 - Current number of Continues
+
Pointers to
 +
first/last/loop part of:
 +
$9103-910C-9115 = Normal level    ($10-16-11)
 +
$9104-910D-9116 = Character select ($07-0F-08)
 +
$9105-910E-9117 = Underground      ($29-29-29)
 +
$9106-910F-9118 = Boss            ($17-17-17)
 +
$9107-9110-9119 = Star            ($18-18-18)
 +
$9108-9111-911A = Sub-space        ($1E-22-1E)
 +
$9109-9112-911B = Wart            ($19-19-19)
 +
$910A-9113-911C = Intro            ($1A-1D-00)
 +
$910B-9114-911D = Ending          ($23-28-28)
 +
--> pointing from $9000
  
====Music and Sound Properties====
+
$9000-9029 = Music part pointers
 +
Default:
 +
$9000      = Bonus (get mushroom) ($99)
 +
$9001      = Boss beaten          ($8E)
 +
$9002      = Bonus 2 (get ball)  ($84)
 +
$9003      = Die, lose            ($A4)
 +
$9004      = Game Over            ($89)
 +
$9005      = Same as $9002        ($84)
 +
$9006      = Same as $9000        ($99)
 +
$9007-900F = Character select    ($2A,30,36,30,3C,42,A9,9E,93)
 +
$9010-9016 = Normal level        ($48,4E,54,5A,54,60,66)
 +
$9017      = Boss                ($72)
 +
$9018      = Star                ($78)
 +
$9019      = Wart                ($7E)
 +
$901A-901D = Intro                ($B5,AF,BB,C1)
 +
$901E-9022 = Subspace            ($C7,CD,D3,CD,D9)
 +
$9023-9028 = Ending              ($DF,EB,E5,F7,F1,FD)
 +
$9029      = Underground          ($6C)
 +
--> pointing from $9000
  
$05EE - Current music track?
+
Music part headers:
$05EF - Current music track?
+
$902A-902F \
 +
$9030-9035 |
 +
$9036-903B | Character select
 +
$903C-9041 | (part 1)
 +
$9042-9047 /
 +
$9048-904D \
 +
$904E-9053 |
 +
$9054-9059 | Normal level
 +
$905A-905F |
 +
$9060-9065 |
 +
$9066-906B /
 +
$906C-9071 = Underground
 +
$9072-9077 = Boss
 +
$9078-907D = Star
 +
$907E-9083 = Wart
 +
$9084-9088 = Bonus 2
 +
$9089-908D = Game Over
 +
$908E-9092 = Boss beaten
 +
$9093-9098 = Character select (2)
 +
$9099-909D = Bonus
 +
$909E-90A3 = Character select (3)
 +
$90A4-90A8 = Die, lose
 +
$90A9-90AE = Character select (4)
 +
$90AF-90B4 \
 +
$90B5-90BA | Intro
 +
$90BB-90C0 |
 +
$90C1-90C6 /
 +
$90C7-90CC \
 +
$90CD-90D2 | Subspace
 +
$90D3-90D8 |
 +
$90D9-90DE /
 +
$90DF-90E4 \
 +
$90E5-90EA |
 +
$90EB-90F0 | Ending
 +
$90F1-90F6 |
 +
$90F7-90FC |
 +
$90FD-9102 /
  
$0600 - Loads the current song track
+
Music header bytes:
$0601 - Plays a sound effect
+
00    = Pointer to note length table (points from $8F00)
$0602 - Plays a sound effect
+
01-02 = Pointer for square 1 channel (main pointer)
$0603 - Plays a small clip of music (and also for ending sequence)
+
03    = Data offset for triangle (from main address)
$0604 - Character's sound effects
+
04    = Data offset for square 2
$0605 - POW sound effects
+
05    = Data offset for noise
$0606 - Stores sound effect from $0603 played
 
$0607 - Stores sound effect from $0602 played
 
$0608 - Stores sound effect from $0601 played
 
$0609 - Stores music track from $0600 played
 
  
$0612 - Current music tempo
+
Note length tables:
 +
$8F00-8F0C = $03,03,04,04,06,09,08,08,0C,12,18,24,30
 +
$8F0D-8F1A = $03,04,05,04,07,0A,09,0A,0E,15,1C,2A,38,0B
 +
$8F1B-8F27 = $04,04,05,06,08,0C,0B,0A,10,18,20,30,40
 +
$8F28-8F36 = $04,05,06,06,09,0D,0C,0C,12,1B,24,36,48,0E,03
 +
$8F37-8F43 = $05,05,07,06,0A,0F,0D,0E,14,1E,28,3C,50
 +
$8F44-8F51 = $05,06,07,08,0B,10,0F,0E,16,21,2C,42,58,11
 +
$8F52-8F5f = $06,06,08,08,0C,12,10,10,18,24,30,48,60,02
 +
$8F50-8F6D = $06,07,09,08,0D,13,11,12,1A,27,34,4E,68,14
 +
$8F6E-8F7C = $07,07,09,0A,0E,15,13,12,1C,2A,38,54,70,03,04
 +
$8F7D-8F8A = $07,08,0A,0A,0F,16,14,14,1E,2D,3C,5A,78,17
 +
$8F8B-8F97 = $08,08,0B,0A,10,18,15,16,20,30,40,60,80
 +
$8F98-8FA5 = $08,09,0B,0C,11,19,15,16,22,33,44,60,88,1A
 +
$8FA6-8FB2 = $09,09,0C,0C,12,1B,18,18,24,36,48,6C,90
  
====Subspace Related Properites====
+
Music data:
 +
DF-$911E = Ending (1)
 +
E5-$919C = Ending (2)
 +
F7-$920D = Ending (5)
 +
EB-$9280 = Ending (3)
 +
F1-$92F2 = Ending (4)
 +
FD-$9376 = Ending (6)
 +
78-$9469 = Star
 +
6C-$94BD = Underground
 +
C7-$9550 = Subspace (1)
 +
CD-$95A3 = Subspace (2)
 +
D3-$95E0 = Subspace (3)
 +
D9-$960F = Subspace (4)
 +
B5-$963E = Intro (2)
 +
AF-$96A7 = Intro (1)
 +
BB-$9794 = Intro (3)
 +
C1-$9878 = Intro (4)
 +
2A-$98AD = Character select (1)
 +
30-$995C = Character select (2)
 +
36-$999A = Character select (3)
 +
3C-$999E = Character select (4)
 +
42-$9A26 = Character select (5)
 +
A9-$9A5D = Character select (8)
 +
9E-$9ADF = Character select (7)
 +
93-$9B93 = Character select (6)
 +
48-$9BD4 = Normal level (1)
 +
4E-$9C20 = Normal level (2)
 +
54-$9CF9 = Normal level (3)
 +
5A-$9D3F = Normal level (4)
 +
60-$9E00 = Normal level (5)
 +
66-$9E4D = Normal level (6)
 +
72-$9F1C = Boss
 +
7E-$9FC7 = Wart
 +
99-$A0BB = Bonus
 +
89-$A0CE = Game Over
 +
8E-$A0F2 = Boss Beaten
 +
84-$A148 = Bonus 2
 +
A4-$A16F = Die, lose
  
$0620 - Has 1-up been pulled? If yes, then it won't reappear.
+
$818F-8196 = Sound effect pointers
......00 - no
 
......01 - yes
 
$0621 - Number of times leaving Subspace aftering grabbing a coin
 
......00 - 1st chance to grab coins
 
......01 - 2nd chance to grab coins
 
......02 - No more chances, get vegetables.
 
  
$0628 - In subspace?
+
$8197-81B5 = Door appearing
......00 - no
+
$81B6-81DC = Throwing item
......02 - yes (doesn't work for vertical areas)
+
$81DD-81FB = Birdo spitting
$0629 - look into
+
$81FC-8202 = Selecting, getting cherry/heart
 +
$8203-8219 = Defeating enemy
 +
$821A-8233 = Clock ticking
 +
$8234-8265 = Hawkmouth opening
 +
$8266-828D = 1UP sound
  
====Collectable Counts====
+
$8397:B9 03 91  LDA $9103,Y  --Load the start part pointer
 +
$839A:8D EE 05  STA $05EE
 +
$839D:B9 0C 91  LDA $910C,Y  --Load the end part pointer
 +
$83A0:18        CLC
 +
$83A1:69 02    ADC #$02
 +
$83A3:8D EF 05  STA $05EF
 +
$83A6:B9 15 91  LDA $9115,Y  --Load the loop part pointer
 +
$83A9:8D F0 05  STA $05F0
  
$062A - Current number of cherries
+
And some old info from 2 years ago: (addresses without header, again)
$062B - Current number of coins pulled in Subspace (Slot machine currency)
 
$062C - Current number of BIG vegetables pulled for stop watch
 
  
====World Properites====
+
$4C3A -- Panser's spitting time
 +
$4C64 -- Grey panser's spitting direction
  
$0635 - Current World number (loads characteristics of world such as Ice)
+
$4D43 -- Jump height on coming out of jars
  
$06F2 - !!!!!
+
$4F98 -- Birdo's jump height
 +
$4FB3 -- Birdo's spitting time
 +
$4FC6 -- Birdo's speed (right)
 +
$4FCC -- Birdo's speed (left)
 +
$4FDA -- Birdo's spitting sound
  
$06F4 - look into!
+
$555C -- Snifit's jump height
 +
$5593 -- Snifit's spitting time
  
$06F6 - Character growing or shrinking
+
$6161 -- Clawglip's rock throwing time
 +
$61C5 -- Rock speed
  
====Graphics Tileset====
+
$65A0 -- Mouser's jump height
 +
$65AC -- Mouser's bomb holding time
 +
$65E4 -- Mouser's bomb throwing height
 +
$65EB -- Time before bomb explosion
 +
$65EF -- Mouser's bomb throwing speed
  
$06F7 - Current Level Tileset (1st half of the right Table)
+
$68AB -- Triclyde's spitting sound
$06F8 - Current Cycling Sprite Tileset (2nd half of the right Table)
 
$06F9 - Current Character (Appearance,not stats) (1st quarter of left Table)
 
......00 - Large Mario
 
......01 - Large Luigi
 
......02 - Large Princess
 
......03 - Large Toad
 
......04 - Small Mario
 
......05 - Small Luigi
 
......06 - Small Princess
 
......07 - Small Toad
 
$06FA - Current standard sprites (Snifits, Hawkmouth, etc.) (2nd quarter of left Table)
 
$06FB - Current standard sprites (1-Up, Birdo, etc.) (3rd quarter of left Table)
 
$06FC - Current changable sprites (Ostro, Pidget, Pokey, etc.) (4th quarter of left Table)
 
$06FD - Current animation of $06F8 (Cycling sprites)
 
  
====Level Layout (Jars/Subspace)====
+
$720D -- Wart's speed (left)
 +
$7213 -- Wart's speed (right)</pre>
  
$0700 ~ $07FF - Subspace and jars<br>
+
=References=
  
$14CA - Timer for crouch jump power (0 - 3C)<br>
+
http://www.tekhacks.net/forum - lost when forum was removed (recovered by internet archive)
 +
http://board.acmlm.org - lost when board was remade (recovered by internet archive)
 +
http://bmf.rustedmagick.com/
  
====Level Layout (Area)====
+
{{Internal Data|game=Super Mario Bros. 2}}
$6000 ~ $695F - Currently loaded level (Almost half the SRAM)
 

Latest revision as of 11:20, 24 March 2021

RAM

Counters

  • $04ED - Current number of lives
  • $05C5 - Current number of Continues
  • $062A - Current number of cherries
  • $062B - Current number of coins pulled in Subspace (Slot machine currency)
  • $062C - Current number of BIG vegetables pulled for stop watch
  • $062D - Number of levels finished as Mario
  • $062E - Number of levels finished as Princess
  • $062F - Number of levels finished as Toad
  • $0630 - Number of levels finished as Luigi

Sprite Related

  • $0014 - Page of main character's X position
  • $001E - Page of main character's Y position
  • $0638 - Player's Overalls Palette
  • $0639 - Player's Cap Palette
  • $063A - Player's Skin Palette

Position of sprites

X position on page

  • $0028 - main character
  • $0029 - enemy 5
  • $002A - enemy 4
  • $002B - enemy 3
  • $002C - enemy 2
  • $002D - enemy 1

Y position on page

  • $0033 - enemy 5
  • $0034 - enemy 4
  • $0035 - enemy 3
  • $0036 - enemy 2
  • $0037 - enemy 1

Speed of sprites (left/right)

  • $003C - Main character
  • $003D - Enemy 5
  • $003E - Enemy 4
  • $003F - Enemy 3
  • $0040 - Enemy 2
  • $0041 - Enemy 1

Jumping Physics

  • $0046 - main character
  • $0047 - enemy 5
  • $0048 - enemy 4
  • $0049 - enemy 3
  • $004A - Enemy 2
  • $004B - Enemy 1
  • $0050 - Is character on a vine?
00 - no
01 - yes

Misc. sprite addresses

  • $0051 - Enemy 5
  • $0052 - Enemy 4
  • $0053 - Enemy 3
  • $0054 - Enemy 2
  • $0055 - Enemy 1
00 - Invisible
01 - Visible
02 - Dead
  • $005A - Enemy 5's relation to main character/landscape
  • $005B - Enemy 4's relation to main character/landscape
  • $005C - Enemy 3's relation to main character/landscape
  • $005D - Enemy 2's relation to main character/landscape
  • $005E - Enemy 1's relation to main character/landscape
00 - not on the ground (could be jumping or being thrown)
04 - walking
05 - turn left because object blocks path
06 - turn right because object blocks path
20 - carrying main character when reaching an edge to turn around
24 - carrying main character with same speed as movement

Sprite's palette, mirroring, etc.

  • $0065 - Enemy 5
  • $0066 - Enemy 4
  • $0067 - Enemy 3
  • $0068 - Enemy 2
  • $0069 - Enemy 1

Sprite IDs

  • $008F - Character selected (appearance only, until defeated, then stats as well)
00 - Mario
01 - Princess
02 - Toad
03 - Luigi
  • $0090 - Enemy 5
  • $0091 - Enemy 4
  • $0092 - Enemy 3
  • $0093 - Enemy 2
  • $0094 - Enemy 1
  • $0096 - Item pulled up from ground
  • $0099 - Graphics for when main character jumps
  • $009A - Drop through
  • $009B - Graphics for when main character walks
  • $00C7 - Character's status

Sprite HP

  • $0465 - Enemy 5
  • $0466 - Enemy 4
  • $0467 - Enemy 3
  • $0468 - Enemy 2
  • $0469 - Enemy 1

Main character

  • $04C2 - Current life in the life meter
0F - One heart
1F - Two hearts
2F - Three hearts
3F - Four hearts
  • $04C3 - Number of bars in the life meter (for visual purposes only)
FF - One bar (doesn't work very well)
00 - Two bars (default)
01 - Three bars
02 - Four bars

Timers

  • $0085 - Amount of time left until main character becomes vulnerable
  • $0086 - Amount of time left for unknown
  • $0087 - Amount of time left before Bob Omb 5 explodes
  • $0088 - Amount of time left before Bob Omb 4 explodes
  • $0089 - Amount of time left before Bob Omb 3 explodes
  • $008A - Amount of time left before Bob Omb 2 explodes
  • $008B - Amount of time left before Bob Omb 1 explodes
  • $008C - Amount of time left before Bomb 1 explodes
  • $008D - Amount of time left before Bomb 2 explodes
  • $008E - Amount of time left before Bomb 3 explodes
  • $00B9 - Current time left to use Pidget's carpet
  • $04B7 - Amount of time left in subspace
  • $04E0 - Amount of time left as star Mario
  • $04FF - Current amount of time left from the stop watch
  • $14CA - Timer for crouch jump power (0 - 3C)

Item flags

  • $009C - Holding an item?
00 = no
01 = yes
  • $009D - Character's mirroring, etc. (not palette)
  • $00A3 - Changes once for everytime Tweeter jumps
  • $00AD - Is key held?
00 - no
01 - yes -  Key appears above head even if thrown, but then not chased.
  • $00AE - Item in hand height (used for different character sizes?)

Misc.

  • $002F - Bonus chance left card
  • $0030 - Bonus chance middle card
  • $0031 - Bonus chance right card
  • $00BA - Screen speed moving left and right
  • $0100 - (screen hold?)
  • $0415 - the rising of the heart
  • $0416 - Height of whale's spout after peaking.
  • $0456 - Current time left Hawkmouth (before Wart) is open
  • $04EC - Level Transition.
00 - normal game play
01 - begin the same level and area again (like dying revive)
02 - game over
03 - end level, go to bonus game
04 - warp
  • $06F6 - Character growing or shrinking


  • $0211 + $0215 = Slot machine Slot #1 (only during slot game)
  • $0219 + $021D = Slot machine Slot #2 (only during slot game)
  • $0221 + $0225 = Slot machine Slot #3 (only during slot game)
9, 9 = Star
1, 3 = Shy Guy
11, 11 = Radish
5, 7 = Cherry

Button Related

  • $00F5 - Button pressed (Controller 1)
  • $00F6 - Button pressed (Controller 2)
  • $00F7 - Button held (Controller 1)
  • $00F8 - Button held (Controller 2)
Directional Pad
*0 - no movement
*1 - Right
*2 - Left
*3 - Left + Right
*4 - Down
*5 - Down + Right
*6 - Down + Left
*7 - Down + Left + Right
*8 - Up
*9 - Up + Right
*A - Up + Left
*B - Up + Left + Right
*C - Up + Down
*D - Up + Down + Right
*E - Up + Down + Left
*F - Up + Down + Left + Right
Buttons
0* - not pressed
1* - Start
2* - Select
3* - Start + Select
4* - B
5* - Start + B
6* - Select + B
7* - Start + Select + B
8* - A
9* - Start + A
A* - Select + A
B* - Start + Select + A
C* - A + B
D* - Start + A + B
E* - Select + A + B
F* - Start + Select + A + B

Sprite Flags

  • $04B4 - Something to do with the Hawkmouth opening and closing
  • $04AD - Current number of enemies defeated to grab a heart.
  • $04B0 - Has Key been used on lock?
00 - no
01 - yes - If yes, then it won't reappear.
  • $04B4 - How wide Hawkmouth is open
  • $04B5 - Has the Crystal been obtained? If yes, effect will last while in area.
00 - no
01 - yes
  • $04B6 - look into
  • $04BE - Time counts up for how long the door takes to open
  • $04C4 - Amount of time left for the screen to shake after POW
  • $04C5 - Height to raise and lower the "level" for shake
  • $04C6 - Amount of time left for bomb flash in background
  • $04CA - Amount of time to build up to charged jump
  • $04E0 - Current Starman time length left

Regeneration properties

  • $04E7 - Area
  • $04E8 - Sub-area
  • $04E9 - Page

Mushroom Flags

  • $04FB - Has First Mushroom been pulled? If yes, then it won't reappear.
00 - no
01 - yes
  • $04FC - Has Second Mushroom been pulled? If yes, then it won't reappear.
00 - no
01 - yes
  • $0620 - Has 1-up been pulled?
00 - no
01 - yes - If yes, then it won't reappear.

Subspace Related Properties

  • $0621 - Number of times leaving Subspace after grabbing a coin
00 - 1st chance to grab coins
01 - 2nd chance to grab coins
02 - No more chances, get vegetables.
  • $0628 - In subspace?
00 - no
02 - yes (doesn't work for vertical areas)
  • $0629 - Possible subspace offset

Level in Memory

$0531 - Current level loaded

00 - 1-1
01 - 1-2
02 - 1-3
03 - 2-1
04 - 2-2
05 - 2-3
06 - 3-1
07 - 3-2
08 - 3-3
09 - 4-1
0A - 4-2
0B - 4-3
0C - 5-1
0D - 5-2
0E - 5-3
0F - 6-1
10 - 6-2
11 - 6-3
12 - 7-1
13 - 7-2

Character Properties

  • $0546 - Pickup Speed Animation 1
  • $0547 - Pickup Speed Animation 2
  • $0548 - Pickup Speed Animation 3
  • $0549 - Pickup Speed Animation 4
  • $054A - Pickup Speed Animation 5
  • $054B - Pickup Speed Animation 6
  • $054D - Standing Jump Height
  • $054E - Crouching Power Jump Height
  • $0550 - Running Jump Height
  • $0551 - Running Jump Height while carrying object
  • $0553 - Float Timer (set to 0 for everyone but Princess)
  • $0555 - Character's Jumping physics?

Music and Sound Properties

  • $05EE - Current music track?
  • $05EF - Current music track?
  • $0600 - Loads the current song track
  • $0601 - Plays a sound effect
  • $0602 - Plays a sound effect
  • $0603 - Plays a small clip of music (and also for ending sequence)
  • $0604 - Character's sound effects
  • $0605 - POW sound effects
  • $0606 - Stores sound effect from $0603 played
  • $0607 - Stores sound effect from $0602 played
  • $0608 - Stores sound effect from $0601 played
  • $0609 - Stores music track from $0600 played
  • $0612 - Current music tempo

World Properties

  • $0635 - Current World number (loads characteristics of world such as Ice)

Graphics Tileset

  • $06F7 - Current Level Tileset (1st half of the right Table)
10 - Grass
12 - Desert
14 - Sky
16 - Wart's Palace?
  • $06F8 - Current Cycling Sprite Tileset (2nd half of the right Table)
  • $06F9 - Current Character (Appearance, not stats) (1st quarter of left Table)
00 - Large Mario
01 - Large Luigi
02 - Large Princess
03 - Large Toad
04 - Small Mario
05 - Small Luigi
06 - Small Princess
07 - Small Toad
  • $06FA - Current standard sprites (Snifits, Hawkmouth, etc.) (2nd quarter of left Table)
  • $06FB - Current standard sprites (1-Up, Birdo, etc.) (3rd quarter of left Table)
  • $06FC - Current changeable sprites (Ostro, Pidget, Pokey, etc.) (4th quarter of left Table)
  • $06FD - Current animation of $06F8 (Cycling sprites)

Level Layout

  • $0700 ~ $07FF - Subspace and jars
  • $6000 - $695F - Currently loaded level (Almost half the SRAM)

Stuff posted by ACMLM on rustedmagick forums in 2002

SMB2's music ROM bank: ($8000-FFFF, Addresses not counting header)

----------
$8000-8119 = ?? (contains data such as the jump sound, climbing sound, falling sound (in 1-1))
$811A-8137 = Mushroom sound (notes in reverse order)
$8138-818E = ??
$818F-8196 = Pointers to sound effects
$8197-828D = Sound effects
$828E-8746 = ?? (must be the code that generates music from the data)
$8747-875E = Note frequency data (base scale)

$875F-8EFF = unused

$8F00-8FB2 = Note length tables
$8FB3-8FFF = unused (can be used to add note length tables)

$9000-9029 = Music part pointers
$902A-9102 = Music part headers
$9103-910B = Pointers to first music part (for each song)
$910C-9114 = Pointers to last music part
$9115-911D = Pointers to looping music part
$911E-A18D = Music data
$A18E-A3EE = Instrument sound data (square pulse property bits)

$A3EF-BFFF = unused
----------

Pointers to
first/last/loop part of:
$9103-910C-9115 = Normal level     ($10-16-11)
$9104-910D-9116 = Character select ($07-0F-08)
$9105-910E-9117 = Underground      ($29-29-29)
$9106-910F-9118 = Boss             ($17-17-17)
$9107-9110-9119 = Star             ($18-18-18)
$9108-9111-911A = Sub-space        ($1E-22-1E)
$9109-9112-911B = Wart             ($19-19-19)
$910A-9113-911C = Intro            ($1A-1D-00)
$910B-9114-911D = Ending           ($23-28-28)
--> pointing from $9000

$9000-9029 = Music part pointers
Default:
$9000      = Bonus (get mushroom) ($99)
$9001      = Boss beaten          ($8E)
$9002      = Bonus 2 (get ball)   ($84)
$9003      = Die, lose            ($A4)
$9004      = Game Over            ($89)
$9005      = Same as $9002        ($84)
$9006      = Same as $9000        ($99)
$9007-900F = Character select     ($2A,30,36,30,3C,42,A9,9E,93)
$9010-9016 = Normal level         ($48,4E,54,5A,54,60,66)
$9017      = Boss                 ($72)
$9018      = Star                 ($78)
$9019      = Wart                 ($7E)
$901A-901D = Intro                ($B5,AF,BB,C1)
$901E-9022 = Subspace             ($C7,CD,D3,CD,D9)
$9023-9028 = Ending               ($DF,EB,E5,F7,F1,FD)
$9029      = Underground          ($6C)
--> pointing from $9000

Music part headers:
$902A-902F \
$9030-9035 |
$9036-903B | Character select
$903C-9041 | (part 1)
$9042-9047 /
$9048-904D \ 
$904E-9053 |
$9054-9059 | Normal level
$905A-905F |
$9060-9065 |
$9066-906B /
$906C-9071 = Underground
$9072-9077 = Boss
$9078-907D = Star
$907E-9083 = Wart
$9084-9088 = Bonus 2
$9089-908D = Game Over
$908E-9092 = Boss beaten
$9093-9098 = Character select (2)
$9099-909D = Bonus
$909E-90A3 = Character select (3)
$90A4-90A8 = Die, lose
$90A9-90AE = Character select (4)
$90AF-90B4 \
$90B5-90BA | Intro
$90BB-90C0 |
$90C1-90C6 /
$90C7-90CC \
$90CD-90D2 | Subspace
$90D3-90D8 |
$90D9-90DE /
$90DF-90E4 \
$90E5-90EA |
$90EB-90F0 | Ending
$90F1-90F6 |
$90F7-90FC |
$90FD-9102 /

Music header bytes:
00    = Pointer to note length table (points from $8F00)
01-02 = Pointer for square 1 channel (main pointer)
03    = Data offset for triangle (from main address)
04    = Data offset for square 2
05    = Data offset for noise

Note length tables:
$8F00-8F0C = $03,03,04,04,06,09,08,08,0C,12,18,24,30
$8F0D-8F1A = $03,04,05,04,07,0A,09,0A,0E,15,1C,2A,38,0B
$8F1B-8F27 = $04,04,05,06,08,0C,0B,0A,10,18,20,30,40
$8F28-8F36 = $04,05,06,06,09,0D,0C,0C,12,1B,24,36,48,0E,03
$8F37-8F43 = $05,05,07,06,0A,0F,0D,0E,14,1E,28,3C,50
$8F44-8F51 = $05,06,07,08,0B,10,0F,0E,16,21,2C,42,58,11
$8F52-8F5f = $06,06,08,08,0C,12,10,10,18,24,30,48,60,02
$8F50-8F6D = $06,07,09,08,0D,13,11,12,1A,27,34,4E,68,14
$8F6E-8F7C = $07,07,09,0A,0E,15,13,12,1C,2A,38,54,70,03,04
$8F7D-8F8A = $07,08,0A,0A,0F,16,14,14,1E,2D,3C,5A,78,17
$8F8B-8F97 = $08,08,0B,0A,10,18,15,16,20,30,40,60,80
$8F98-8FA5 = $08,09,0B,0C,11,19,15,16,22,33,44,60,88,1A
$8FA6-8FB2 = $09,09,0C,0C,12,1B,18,18,24,36,48,6C,90

Music data:
DF-$911E = Ending (1)
E5-$919C = Ending (2)
F7-$920D = Ending (5)
EB-$9280 = Ending (3)
F1-$92F2 = Ending (4)
FD-$9376 = Ending (6)
78-$9469 = Star
6C-$94BD = Underground
C7-$9550 = Subspace (1)
CD-$95A3 = Subspace (2)
D3-$95E0 = Subspace (3)
D9-$960F = Subspace (4)
B5-$963E = Intro (2)
AF-$96A7 = Intro (1)
BB-$9794 = Intro (3)
C1-$9878 = Intro (4)
2A-$98AD = Character select (1)
30-$995C = Character select (2)
36-$999A = Character select (3)
3C-$999E = Character select (4)
42-$9A26 = Character select (5)
A9-$9A5D = Character select (8)
9E-$9ADF = Character select (7)
93-$9B93 = Character select (6)
48-$9BD4 = Normal level (1)
4E-$9C20 = Normal level (2)
54-$9CF9 = Normal level (3)
5A-$9D3F = Normal level (4)
60-$9E00 = Normal level (5)
66-$9E4D = Normal level (6)
72-$9F1C = Boss
7E-$9FC7 = Wart
99-$A0BB = Bonus
89-$A0CE = Game Over
8E-$A0F2 = Boss Beaten
84-$A148 = Bonus 2
A4-$A16F = Die, lose

$818F-8196 = Sound effect pointers

$8197-81B5 = Door appearing
$81B6-81DC = Throwing item
$81DD-81FB = Birdo spitting
$81FC-8202 = Selecting, getting cherry/heart
$8203-8219 = Defeating enemy
$821A-8233 = Clock ticking
$8234-8265 = Hawkmouth opening
$8266-828D = 1UP sound

$8397:B9 03 91  LDA $9103,Y  --Load the start part pointer
$839A:8D EE 05  STA $05EE
$839D:B9 0C 91  LDA $910C,Y  --Load the end part pointer
$83A0:18        CLC
$83A1:69 02     ADC #$02
$83A3:8D EF 05  STA $05EF
$83A6:B9 15 91  LDA $9115,Y  --Load the loop part pointer
$83A9:8D F0 05  STA $05F0

And some old info from 2 years ago: (addresses without header, again)

$4C3A -- Panser's spitting time
$4C64 -- Grey panser's spitting direction

$4D43 -- Jump height on coming out of jars

$4F98 -- Birdo's jump height
$4FB3 -- Birdo's spitting time
$4FC6 -- Birdo's speed (right)
$4FCC -- Birdo's speed (left)
$4FDA -- Birdo's spitting sound

$555C -- Snifit's jump height
$5593 -- Snifit's spitting time

$6161 -- Clawglip's rock throwing time
$61C5 -- Rock speed

$65A0 -- Mouser's jump height
$65AC -- Mouser's bomb holding time
$65E4 -- Mouser's bomb throwing height
$65EB -- Time before bomb explosion
$65EF -- Mouser's bomb throwing speed

$68AB -- Triclyde's spitting sound

$720D -- Wart's speed (left)
$7213 -- Wart's speed (right)

References

http://www.tekhacks.net/forum - lost when forum was removed (recovered by internet archive) http://board.acmlm.org - lost when board was remade (recovered by internet archive) http://bmf.rustedmagick.com/


Internal Data for Super Mario Bros. 2

ROM MapRAM MapText TableNotesTutorials