Acmlm's Board - I2 Archive - Rom Hacking - The Ultimate SMB1 Hacking Data Thread
User | Post |
frantik
Posts: 2/66 |
that would be awesome if you could dig up that info DD. and thanks for that document on level data, i've used it quite a bit in my new hack i'm working on
Darkmatt thanks thats one of the things that was lost recently
other threads: smb pallette info mario's TSA info
|
Darkmatt
Posts: 11/212 |
I would also like to point out the SMB misc. hacking document I recorded.
http://www.angelfire.com/stars3/cyber/
C&P, and find that link to the hacking document. |
DahrkDaiz
Posts: 1/885 |
I would like to point my SMB hacking document which details the level data format, enemy data format, and how pipes work.
http://dahrkdaiz.panicus.org/smb.txt
I had a lot of data back when I worked on Mario Seasons, maybe I'll find that data again and post it here |
frantik
Posts: 1/66 |
In honor of Acmlm's relaunch, i'm sharing a couple days worth of RAM analysis/corrupting please feel free to add to this address list, and also share ROM addresses and any other information you have on SMB1. Once the backup comes online, i'll pull the old information and either link it or repost it, as i have like 6 old threads from this site bookmarked and i had a heart attack when the board went down and i hadnt saved it. anyways, the address list:
* means you can edit it (i forgot to mark some (especially in the 0700+ range) so try it with unmarked ones if you like)
RAM - Purpose 0002 - Current y (vert) pos 0005 - Current x (horz) pos 000A - Button State (4 - A, 8 - B) 000B - Vertical direction pad State (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 cant 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 - power up state (small/big/fire) 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)
have fun |
|