Super Mario Bros. autostart!

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems.

Moderator: Moderators

Post Reply
User avatar
Kreese
Posts: 65
Joined: Sat Sep 22, 2007 3:42 pm

Super Mario Bros. autostart!

Post by Kreese »

I'd like to modify two Super Mario Bros. cart so they autostart...

When pressing reset, the game start in 1 player mode automaticly.

Why? Because every year we hold a competition in Super Mario Bros. where people speedrun against each other. Modifying two carts with this, would make it easier to start the two NES systems at the same time.

Would it be possible? The version I'd like to hack is the European (PAL-B) version.

Eproms and stuff is no problem, but the hacking of the rom would be really nice if someone could help me with!
3gengames
Formerly 65024U
Posts: 2281
Joined: Sat Mar 27, 2010 12:57 pm

Post by 3gengames »

Well, trap the program that reads the controller, and then find the program that puts the main menu up on the screen. Then on the menu, trap the variable from the controller read, and slow it down and press START and then see where it goes and read through the code.

I believe there's also a detailed disassembly of SMB out there, maybe look there and you can do it better and neater. Good luck. I'm not much into hacking.
User avatar
koitsu
Posts: 4203
Joined: Sun Sep 19, 2004 9:28 pm
Location: A world gone mad

Re: Super Mario Bros. autostart!

Post by koitsu »

Kreese wrote:I'd like to modify two Super Mario Bros. cart so they autostart...

When pressing reset, the game start in 1 player mode automaticly.

Why? Because every year we hold a competition in Super Mario Bros. where people speedrun against each other. Modifying two carts with this, would make it easier to start the two NES systems at the same time.

Would it be possible? The version I'd like to hack is the European (PAL-B) version.

Eproms and stuff is no problem, but the hacking of the rom would be really nice if someone could help me with!
Fully possible.
User avatar
tokumaru
Posts: 12106
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru »

I just did this by changing the bytes at $824D (CPU addressing, the ROM offset would be $025D I think) to $A9, $00 (LDA #$00). Obviously I can't post a ROM, but you can surely do this modification in a few seconds in FCEUX or even an hex editor.
User avatar
Kreese
Posts: 65
Joined: Sat Sep 22, 2007 3:42 pm

Post by Kreese »

I used a Hexeditor and changed:
$025D from C9 to A9
$025E from 10 to 00

in the rom file (Super Mario Bros. (E) (REVA) [!].nes)

Worked fine i think! Have to try it on real carts. Thanks alot!
User avatar
Dwedit
Posts: 4470
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Post by Dwedit »

PAL Super Mario Bros is an abomination to mankind and everything good about Nintendo.

Seriously, it's a terrible conversion of SMB1 for the Europe region. The music plays like you're always out of time, and the game physics are off. At least Nintendo bothered to correct the music pitch, but couldn't bother to do the same for the sound effects.

That said, I think the file "Super Mario Bros. (E) (REVA) [!].nes" is probably a fake, it's likely a graphical hack of SMB1 which has nothing to do with the actual European version.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!
pinge80
Posts: 12
Joined: Mon Jan 25, 2010 1:30 pm
Location: Sweden

Post by pinge80 »

Great that it was possible and thanks for the help!

Is it also possible to change the sprite or color so that one of the carts plays as Luigi?
User avatar
Kreese
Posts: 65
Joined: Sat Sep 22, 2007 3:42 pm

Post by Kreese »

Great idea Pinge! Using Luigi's sprite colors on Mario would do the trick. It should be possible. Hacking the name of Mario and change to "Luigi" should I manage to do on my own...

The colors would be really nice if someone helped me/us with.

http://www.pimpmynintendo.com/images/su ... -sheet.png

Would look really cool with two NES, side by side, Mario vs. Lugi! Feels like the ultimate speed run competition.
User avatar
tokumaru
Posts: 12106
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru »

Hacking palettes in SMB is super easy. You can do it with just an hex editor. Just open the game in an emulator that allows you to view the palette, then take note of the 3 non-transparent colors (i.e. skip the first color, which is transparent for sprites) of the palette you want to change.

Search for those 3 bytes using an hex editor and change them to whatever you want. Just be sure to back up the ROM before changing bytes, just in case the 3-byte string you are replacing happens to appear more than once in the ROM. If you make the change but the colors stay the same, restore your back up and try modifying the next match. Whenever the changes don't have the desired effect, restore the backup!
Post Reply