Super Mario Bros./RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(Fixed the line breaks)
(Table'd. Added some clarity to the powerup state.)
Line 1: Line 1:
This data was found by acmlm board member frantik. It is currently posted here exactly as it was posted on the acmlm board.
This data was found by acmlm board member frantik. It is currently posted here exactly as it was posted on the acmlm board.


RAM - Purpose
''(With minor updates. - 47)''


0002 - Current y (vert) pos 


0005 - Current x (horz) pos  
{| border="1" cellpadding="1"
 
|'''RAM'''  || '''Purpose'''
000A - Button State (4 - A, 8 - B)  
|-
 
|0002 || Current y (vert) pos
000B - Vertical direction pad State (4 - Down, 8 - Up)  
|-
 
|0005 || Current x (horz) pos
000D - Button State (4 - A, 8 - B)  
|-
 
|000A || Button State (4 - A, 8 - B)  
000E*- Mario mode (00 - move mario to left side of screen, 01 - climbing up vine, 02 - went in pipe, 03 - pipe2, 04,05 - autowalk, 06 - mario dies, 08 - normal, 09 - mario cant move, higher numbers crash emu)
|-
 
|000B || Pad State - Vertical (4 - Down, 8 - Up)  
000F*- Enemy mode (00 - not shown, 01 - shown)  
|-
|000D || Button State (4 - A, 8 - B)  
0014*- Show sprite (bool)
|-
 
|000E*|| Mario mode
0016*- Current Enemy type 06 - goomba; 11 - lakitu; 2a - surfing lift
{|border="1" cellpadding="1"
 
|00||Move Mario to left side of screen.
001B*- Current power up 2E - Mushroom/fire
|-
 
|01||Climbing up vine.
001D - 00 when standing, 01 when jumping, 02 when falling, 03 when sliding down flagpole
|-
 
|02||Went in pipe.
0023 - set to 80 when a power up on screen. if set above 06, game will run power up checking routine
|-
 
|03||Pipe2
002A*- Coin anim (?)
|-
 
|04,05||Autowalk
002B*- Coin anim (?)
|-
 
|06||Mario dies.
002C*- Coin anim (?)
|-
 
|08||Normal
002D*- Coin anim (?)
|-
 
|09||Mario can't move.
002E*- Coin anim (?)
|-
 
|}
002F*- Coin anim (?)
Higher numbers crash emu.
 
|-
0030*- Coin anim (?)
|000F*|| Enemy mode (00 - not shown, 01 - shown)  
 
|-
0031*- Coin anim (?)
|0014*|| Show sprite (bool)
 
|-
0032*- Run 200pts animation or throw hammer (?)
|0016*|| Current Enemy type 06 - goomba; 11 - lakitu; 2a - surfing lift
 
|-
0033*- 00 to F1: face right, F2 - FF face left
|001B*|| Current power up 2E - Mushroom/fire
 
|-
0039*- Power up type on screen (00 - mushroom, 01 - fire flower, 02 - starman, 03 - 1UP)
|001D || 00 when standing, 01 when jumping, 02 when falling, 03 when sliding down flagpole
 
|-
0045 - Mario Direction (01 - Right, 02 - Left)
|0023 || set to 80 when a power up on screen. if set above 06, game will run power up checking routine
 
|-
0046 - Enemy Direction
|002A*|| Coin anim (?)
 
|-
0047 - Enemy Direction
|002B*|| Coin anim (?)
 
|-
004B - Mushroom Sprite Direction (01 - Right, 02 - Left)
|002C*|| Coin anim (?)
 
|-
0057 - horizontal speed (pos/neg)
|002D*|| Coin anim (?)
 
|-
0058 - enemy speed (pos/neg)
|002E*|| Coin anim (?)
 
|-
0059 - enemy speed (pos/neg)
|002F*|| Coin anim (?)
 
|-
005A - enemy speed (pos/neg)
|0030*|| Coin anim (?)
 
|-
006D*- Horitonal position (?)
|0031*|| Coin anim (?)
 
|-
0070 - current page (?)
|0032*|| Run 200pts animation or throw hammer (?)
 
|-
0071 - current page (?)
|0033*|| 00 to F1: face right, F2 - FF face left
 
|-
0072 - current page (?)
|0039*|| Power up type on screen (00 - mushroom, 01 - fire flower, 02 - starman, 03 - 1UP)
 
|-
0073 - current page - 1 (?)
|0045 || Mario Direction (01 - Right, 02 - Left)
 
|-
0086*- Mario x location
|0046 || Enemy Direction
 
|-
0087*- current enemy 1 sprite x location
|0047 || Enemy Direction
 
|-
0088*- current enemy 2 sprite x location
|004B || Mushroom Sprite Direction (01 - Right, 02 - Left)
 
|-
008C*- current power up sprite x location
|0057 || horizontal speed (pos/neg)
 
|-
009F - Vertical speed
|0058 || enemy speed (pos/neg)
 
|-
00B5 - appears to be the screen height multiplier (ie [mario's y location at 00CE] * [this byte] = [mario's true y val])
|0059 || enemy speed (pos/neg)
 
|-
00CE*- Mario sprite y pos
|005A || enemy speed (pos/neg)
 
|-
00CF*- enemy 1 sprite y pos
|006D*|| Horitonal position (?)
 
|-
00D0*- enemy 2 sprite y pos
|0070 || current page (?)
 
|-
00D4*- Power up sprite y pos
|0071 || current page (?)
 
|-
03AD - mario x pos
|0072 || current page (?)
 
|-
03AE - enemy x pos
|0073 || current page - 1 (?)
 
|-
03B8 - mario vertical pos
|0086*|| Mario x location
 
|-
03B9 - enemy vertical pos
|0087*|| current enemy 1 sprite x location
 
|-
03C4*- mario palette #
|0088*|| current enemy 2 sprite x location
 
|-
0400 - horizontal movement counter
|008C*|| current power up sprite x location
 
|-
0416 - mario vert position
|009F || Vertical speed
 
|-
0433 - Mario vertical speed
|00B5 || appears to be the screen height multiplier (ie [mario's y location at 00CE] * [this byte] = [mario's true y val])
 
|-
0450 - F8 if running
|00CE*|| Mario sprite y pos
 
|-
0456 - 28 if running
|00CF*|| enemy 1 sprite y pos
 
|-
0490*- FF normal game play allows horizontal movement
|00D0*|| enemy 2 sprite y pos
 
|-
04C4 - power up location 1
|00D4*|| Power up sprite y pos
 
|-
04C6 - power up location 2
|03AD || mario x pos
 
|-
06CE - fire ball counter (?) increases when fireball thrown
|03AE || enemy x pos
 
|-
06D4 - gold color cycle
|03B8 || mario vertical pos
 
|-
06D5 - Mario state (?) (B8 - small stand, [60, 70, 80] - small walk cycle, C8 - big stand, 20 - big jump, [00, 10, 20] - bigwalk cycle, 50 - crouch)
|03B9 || enemy vertical pos
 
|-
06FC - buttons pressed
|03C4*|| mario palette #
 
|-
0700 - x speed
|0400 || horizontal movement counter
 
|-
0701 - is skidding
|0416 || mario vert position
 
|-
0702 - E4 - is running, 30 - skidding, 98 normal
|0433 || Mario vertical speed
 
|-
0705 - some kind of horizontal movement counter, doesnt count while in air
|0450 || F8 if running
 
|-
070B - if true, runs big-small animation (doesnt affect state though)
|0456 || 28 if running
 
|-
0714*- 04 when crouching
|0490*|| FF normal game play allows horizontal movement
 
|-
071A - current level room
|04C4 || power up location 1
 
|-
071B - next level room
|04C6 || power up location 2
 
|-
071C*- affects marios Horiz pos (on screen only though?)
|06CE || fire ball counter (?) increases when fireball thrown
 
|-
071D*- affects marios Horiz pos (on screen only though?)
|06D4 || gold color cycle
 
|-
071F - scroll speed?
|06D5 || Mario state (?) (B8 - small stand, [60, 70, 80] - small walk cycle, C8 - big stand, 20 - big jump, [00, 10, 20] - bigwalk cycle, 50 - crouch)
 
|-
0743 - if true, is cloud level (game sets to $03), can be set mid level
|06FC || buttons pressed
 
|-
0744 - affects background color
|0700 || x speed
 
|-
0747 - timer (?) pauses enemies while set
|0701 || is skidding
 
|-
074A - Buttons pressed
|0702 || E4 - is running, 30 - skidding, 98 normal
 
|-
074E - "Gold" block pallette - 00 turns blocks into water world and makes bubble, but no swimming
|0705 || some kind of horizontal movement counter, doesnt count while in air
 
|-
0752 - if not 00 will crash game when level load
|070B || if true, runs big-small animation (doesnt affect state though)
 
|-
0753 - affects mario/luigi if set before level load, but prevents movement in level if not 00
|0714*|| 04 when crouching
 
|-
0754 - if true, is small
|071A || current level room
 
|-
0756 - power up state (small/big/fire)
|071B || next level room
 
|-
0757 - set to 01 during "prelevel" screen
|071C*|| affects marios Horiz pos (on screen only though?)
 
|-
075A - lives
|071D*|| affects marios Horiz pos (on screen only though?)
 
|-
075E - coins
|071F || scroll speed?
 
|-
0770*- game mode (00 - demo, 01 - normal, 02 - End World, 03 - End Game (?) ) (set to 01 at the title screen and you start the game with the title screen showing )
|0743 || if true, is cloud level (game sets to $03), can be set mid level
 
|-
0771
|0744 || affects background color
 
|-
0772*- 00 restarts level
|0747 || timer (?) pauses enemies while set
 
|-
0773*- Level palette (00 - normal, 01 - underwater, 02 - night, 03 - underground, 04 - castle)
|074A || Buttons pressed
 
|-
0774 - ?? changes on game and level start. crashes game if changed
|074E || "Gold" block pallette - 00 turns blocks into water world and makes bubble, but no swimming
 
|-
0775 - scroll speed (?)
|0752 || if not 00 will crash game when level load
 
|-
0776*- is paused (bool)
|0753 || affects mario/luigi if set before level load, but prevents movement in level if not 00
 
|-
0777 - timer (set when pausing/unpausing
|0754 || if true, is small
 
|-
0778*- affects blocks
|0756 || Player Power-Up State
 
{| border="1" cellpadding="1"
0779*- affects colors.. most values crash, 1E default, 1F makes it grey scale
|0||Small Mario
 
|-
077A*- if true, will load luigi when mario dies. you have to unset 0753 to move with luigi though
|1||Big Mario
 
|-
0780*- timer - (all timers count down from whatever value they are set to)
|2>||Fire Flower Mario
 
|-
0781*- timer - fired when fireball shot
|}
 
Does not alter sprite or color palette ''(i.e. small Mario fires fireballs)''
0782*- timer - fired when jumping
|-
 
|0757 || set to 01 during "prelevel" screen
0783*- timer
|-
 
|075A || lives
0784*- timer
|-
 
|075E || coins
0785*- timer
|-
 
|0770*|| game mode (00 - demo, 01 - normal, 02 - End World, 03 - End Game (?) ) (set to 01 at the title screen and you start the game with the title screen showing )
0786*- timer
|-
 
|0771 ||
0787 - ??
|-
 
|0772*|| 00 restarts level
0788*- timer
|-
 
|0773*|| Level palette (00 - normal, 01 - underwater, 02 - night, 03 - underground, 04 - castle)
0789 - ??
|-
 
|0774 || ?? changes on game and level start. crashes game if changed
078A*- timer
|-
 
|0775 || scroll speed (?)
078B*- timer
|-
 
|0776*|| is paused (bool)
078C*- timer
|-
 
|0777 || timer (set when pausing/unpausing
078D*- timer
|-
 
|0778*|| affects blocks
078E*- timer
|-
 
|0779*|| affects colors.. most values crash, 1E default, 1F makes it grey scale
078F*- timer
|-
 
|077A*|| if true, will load luigi when mario dies. you have to unset 0753 to move with luigi though
0790*- timer
|-
 
|0780*|| timer - (all timers count down from whatever value they are set to)
0791*- timer -
|-
 
|0781*|| timer - fired when fireball shot
0792*- timer
|-
 
|0782*|| timer - fired when jumping
0793*- timer
|-
 
|0783*|| timer
0794*- timer
|-
 
|0784*|| timer
0795*- timer - fired when you fall down a pit
|-
 
|0785*|| timer
0796*- timer -
|-
 
|0786*|| timer
0797*- timer
|-
 
|0787 || ??
0798*- timer
|-
 
|0788*|| timer
0799*- timer
|-
 
|0789 || ??
079A*- timer
|-
 
|078A*|| timer
079B*- timer
|-
 
|078B*|| timer
079C*- timer
|-
 
|078C*|| timer
079D*- timer
|-
 
|078D*|| timer
079E*- flashing timer (when you get hit and are invincible for a short while)
|-
 
|078E*|| timer
079F*- starman timer
|-
 
|078F*|| timer
07A0*- timer - "prelevel" screen timer, fired again when level starts
|-
 
|0790*|| timer
07A1*- timer
|-
 
|0791*|| timer  
07A2*- timer - counts how long before demo is run on main screen
|-
 
|0792*|| timer
07A7 - ?? rapidly changing even when paused
|-
 
|0793*|| timer
07A8 - ?? rapidly changing even when paused
|-
 
|0794*|| timer
07A9 - ?? rapidly changing even when paused
|-
 
|0795*|| timer - fired when you fall down a pit
07AA - ?? rapidly changing even when paused
|-
 
|0796*|| timer
07AB - ?? rapidly changing even when paused
|-
 
|-
07AC - ?? rapidly changing even when paused
|0797*|| timer
 
|-
07AD - ?? rapidly changing even when paused
|0798*|| timer
 
|-
07B1*- if true, you wont "die" after falling or getting hit while small. you will be unable to move at the bottom of the screen though until you set it to 00)
|0799*|| timer
 
|-
07BD*- timer (?) 10 when mushroom/fireflower block last hit (fired when power up grabbed or coin block hit)
|079A*|| timer
 
|-
07D7*- high score - 1000000s
|079B*|| timer
 
|-
07D8*- high score - 100000s
|079C*|| timer
 
|-
07D9*- high score - 10000s
|079D*|| timer
 
|-
07DA*- high score - 1000s
|079E*|| flashing timer (when you get hit and are invincible for a short while)
 
|-
07DB*- high score - 100s
|079F*|| starman timer
 
|-
07DC*- high score - 10s
|07A0*|| timer - "prelevel" screen timer, fired again when level starts
 
|-
07DD*- mario score 1000000s
|07A1*|| timer
 
|-
07DE*- mario score - 100000s
|07A2*|| timer - counts how long before demo is run on main screen
 
|-
07DF*- mario score - 10000s
|07A7 || ?? rapidly changing even when paused
 
|-
07E0*- mario score - 1000s
|07A8 || ?? rapidly changing even when paused
 
|-
07E1*- mario score - 100s
|07A9 || ?? rapidly changing even when paused
 
|-
07E2*- mario score - 10s
|07AA || ?? rapidly changing even when paused
 
|-
07E3*- luigi score 1000000s
|07AB || ?? rapidly changing even when paused
 
|-
07E4*- luigi score - 100000s
|07AC || ?? rapidly changing even when paused
 
|-
07E5*- luigi score - 10000s
|07AD || ?? rapidly changing even when paused
 
|-
07E6*- luigi score - 1000s
|07B1*|| if true, you wont "die" after falling or getting hit while small. you will be unable to move at the bottom of the screen though until you set it to 00)
 
|-
07E7*- luigi score - 100s
|07BD*|| timer (?) 10 when mushroom/fireflower block last hit (fired when power up grabbed or coin block hit)
 
|-
07E8*- luigi score - 10s
|07D7*|| high score - 1000000s
 
|-
07ED*- coins 10s (on screen only)
|07D8*|| high score - 100000s
 
|-
07EE*- coins 1s (on screen only)
|07D9*|| high score - 10000s
 
|-
07F8*- time - 100s
|07DA*|| high score - 1000s
 
|-
07F9*- time - 10s
|07DB*|| high score - 100s
 
|-
07FA*- time - 1s
|07DC*|| high score - 10s
 
|-
07FC*- if true, game is harder (set after you beat the game)
|07DD*|| mario score - 1000000s
|-
|07DE*|| mario score - 100000s
|-
|07DF*|| mario score - 10000s
|-
|07E0*|| mario score - 1000s
|-
|07E1*|| mario score - 100s
|-
|07E2*|| mario score - 10s
|-
|07E3*|| luigi score - 1000000s
|-
|07E4*|| luigi score - 100000s
|-
|07E5*|| luigi score - 10000s
|-
|07E6*|| luigi score - 1000s
|-
|07E7*|| luigi score - 100s
|-
|07E8*|| luigi score - 10s
|-
|07ED*|| coins 10s (on screen only)
|-
|07EE*|| coins 1s (on screen only)
|-
|07F8*|| time - 100s
|-
|07F9*|| time - 10s
|-
|07FA*|| time - 1s
|-
|07FC*|| if true, game is harder (set after you beat the game)
|-
|}

Revision as of 19:01, 23 October 2005

This data was found by acmlm board member frantik. It is currently posted here exactly as it was posted on the acmlm board.

(With minor updates. - 47)


RAM Purpose
0002 Current y (vert) pos
0005 Current x (horz) pos
000A Button State (4 - A, 8 - B)
000B Pad State - Vertical (4 - Down, 8 - Up)
000D Button State (4 - A, 8 - B)
000E* Mario mode
00 Move Mario to left side of screen.
01 Climbing up vine.
02 Went in pipe.
03 Pipe2
04,05 Autowalk
06 Mario dies.
08 Normal
09 Mario can't move.

Higher numbers crash emu.

000F* Enemy mode (00 - not shown, 01 - shown)
0014* Show sprite (bool)
0016* Current Enemy type 06 - goomba; 11 - lakitu; 2a - surfing lift
001B* Current power up 2E - Mushroom/fire
001D 00 when standing, 01 when jumping, 02 when falling, 03 when sliding down flagpole
0023 set to 80 when a power up on screen. if set above 06, game will run power up checking routine
002A* Coin anim (?)
002B* Coin anim (?)
002C* Coin anim (?)
002D* Coin anim (?)
002E* Coin anim (?)
002F* Coin anim (?)
0030* Coin anim (?)
0031* Coin anim (?)
0032* Run 200pts animation or throw hammer (?)
0033* 00 to F1: face right, F2 - FF face left
0039* Power up type on screen (00 - mushroom, 01 - fire flower, 02 - starman, 03 - 1UP)
0045 Mario Direction (01 - Right, 02 - Left)
0046 Enemy Direction
0047 Enemy Direction
004B Mushroom Sprite Direction (01 - Right, 02 - Left)
0057 horizontal speed (pos/neg)
0058 enemy speed (pos/neg)
0059 enemy speed (pos/neg)
005A enemy speed (pos/neg)
006D* Horitonal position (?)
0070 current page (?)
0071 current page (?)
0072 current page (?)
0073 current page - 1 (?)
0086* Mario x location
0087* current enemy 1 sprite x location
0088* current enemy 2 sprite x location
008C* current power up sprite x location
009F Vertical speed
00B5 appears to be the screen height multiplier (ie [mario's y location at 00CE] * [this byte] = [mario's true y val])
00CE* Mario sprite y pos
00CF* enemy 1 sprite y pos
00D0* enemy 2 sprite y pos
00D4* Power up sprite y pos
03AD mario x pos
03AE enemy x pos
03B8 mario vertical pos
03B9 enemy vertical pos
03C4* mario palette #
0400 horizontal movement counter
0416 mario vert position
0433 Mario vertical speed
0450 F8 if running
0456 28 if running
0490* FF normal game play allows horizontal movement
04C4 power up location 1
04C6 power up location 2
06CE fire ball counter (?) increases when fireball thrown
06D4 gold color cycle
06D5 Mario state (?) (B8 - small stand, [60, 70, 80] - small walk cycle, C8 - big stand, 20 - big jump, [00, 10, 20] - bigwalk cycle, 50 - crouch)
06FC buttons pressed
0700 x speed
0701 is skidding
0702 E4 - is running, 30 - skidding, 98 normal
0705 some kind of horizontal movement counter, doesnt count while in air
070B if true, runs big-small animation (doesnt affect state though)
0714* 04 when crouching
071A current level room
071B next level room
071C* affects marios Horiz pos (on screen only though?)
071D* affects marios Horiz pos (on screen only though?)
071F scroll speed?
0743 if true, is cloud level (game sets to $03), can be set mid level
0744 affects background color
0747 timer (?) pauses enemies while set
074A Buttons pressed
074E "Gold" block pallette - 00 turns blocks into water world and makes bubble, but no swimming
0752 if not 00 will crash game when level load
0753 affects mario/luigi if set before level load, but prevents movement in level if not 00
0754 if true, is small
0756 Player Power-Up State
0 Small Mario
1 Big Mario
2> Fire Flower Mario

Does not alter sprite or color palette (i.e. small Mario fires fireballs)

0757 set to 01 during "prelevel" screen
075A lives
075E coins
0770* game mode (00 - demo, 01 - normal, 02 - End World, 03 - End Game (?) ) (set to 01 at the title screen and you start the game with the title screen showing )
0771
0772* 00 restarts level
0773* Level palette (00 - normal, 01 - underwater, 02 - night, 03 - underground, 04 - castle)
0774 ?? changes on game and level start. crashes game if changed
0775 scroll speed (?)
0776* is paused (bool)
0777 timer (set when pausing/unpausing
0778* affects blocks
0779* affects colors.. most values crash, 1E default, 1F makes it grey scale
077A* if true, will load luigi when mario dies. you have to unset 0753 to move with luigi though
0780* timer - (all timers count down from whatever value they are set to)
0781* timer - fired when fireball shot
0782* timer - fired when jumping
0783* timer
0784* timer
0785* timer
0786* timer
0787 ??
0788* timer
0789 ??
078A* timer
078B* timer
078C* timer
078D* timer
078E* timer
078F* timer
0790* timer
0791* timer
0792* timer
0793* timer
0794* timer
0795* timer - fired when you fall down a pit
0796* timer
0797* timer
0798* timer
0799* timer
079A* timer
079B* timer
079C* timer
079D* timer
079E* flashing timer (when you get hit and are invincible for a short while)
079F* starman timer
07A0* timer - "prelevel" screen timer, fired again when level starts
07A1* timer
07A2* timer - counts how long before demo is run on main screen
07A7 ?? rapidly changing even when paused
07A8 ?? rapidly changing even when paused
07A9 ?? rapidly changing even when paused
07AA ?? rapidly changing even when paused
07AB ?? rapidly changing even when paused
07AC ?? rapidly changing even when paused
07AD ?? rapidly changing even when paused
07B1* if true, you wont "die" after falling or getting hit while small. you will be unable to move at the bottom of the screen though until you set it to 00)
07BD* timer (?) 10 when mushroom/fireflower block last hit (fired when power up grabbed or coin block hit)
07D7* high score - 1000000s
07D8* high score - 100000s
07D9* high score - 10000s
07DA* high score - 1000s
07DB* high score - 100s
07DC* high score - 10s
07DD* mario score - 1000000s
07DE* mario score - 100000s
07DF* mario score - 10000s
07E0* mario score - 1000s
07E1* mario score - 100s
07E2* mario score - 10s
07E3* luigi score - 1000000s
07E4* luigi score - 100000s
07E5* luigi score - 10000s
07E6* luigi score - 1000s
07E7* luigi score - 100s
07E8* luigi score - 10s
07ED* coins 10s (on screen only)
07EE* coins 1s (on screen only)
07F8* time - 100s
07F9* time - 10s
07FA* time - 1s
07FC* if true, game is harder (set after you beat the game)