"Super Mario Bros." hack with a two-player simulatenous mode

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

Moderator: Moderators

modology
Posts: 16
Joined: Sun Jul 01, 2012 12:57 am

Re: "Super Mario Bros." hack with a two-player simulatenous

Post by modology » Sat Oct 27, 2018 3:44 am

Have not seen any graphic hack to make Luigi has his own sprites. Is it feasibly possible?

User avatar
DRW
Posts: 2007
Joined: Sat Sep 07, 2013 2:59 pm

Re: "Super Mario Bros." hack with a two-player simulatenous

Post by DRW » Sat Oct 27, 2018 4:00 am

Since "Super Mario Bros." is an NROM game, the graphics are fixed. And they are completely full, so there's no room for more. (There are no unused sprite tiles that could be filled.)

If you simply want regular "Super Mario Bros.", but with Luigi's own sprite, one could probably hack the game into a CNROM game where you can replace the whole graphics at once with a second version. In this version, you could draw Luigi's sprite in the place where Mario's is. Then you needed to switch to this alternate graphics bank whenever it's Luigi's turn.

If you want the two player hack with Luigi's own sprite, this would be a bit more complicated:
Since Mario and Luigi are on screen at once, you need both versions of their sprites on the screen, so you would have to use the different graphics banks not for switching between Mario and Luigi, but to switch the enemies in and out.
And this requires an analyzation which enemy combinations will never share a screen with each other, so that you can load the enemies that are visible in this level and omit the ones that aren't.
My game "City Trouble": www.denny-r-walter.de/city.htm

Drakim
Posts: 85
Joined: Mon Apr 04, 2016 3:19 am

Re: "Super Mario Bros." hack with a two-player simulatenous

Post by Drakim » Sun Oct 28, 2018 6:07 am

You could theoretically also convert SMB1 to the MMC5 mapper which gives you double the sprite pages to work with (in 8x16 sprite mode), thus giving room for Luigi. You'd have to rewrite a pretty big part of the game at this point though, it might be easier to just faithfully recreate most of it from scratch instead.

tepples
Posts: 22147
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: "Super Mario Bros." hack with a two-player simulatenous

Post by tepples » Sun Oct 28, 2018 6:22 am

How much vblank time is open in SMB? Given that enemies are never bigger than 6 tiles (96 bytes of tile data) nor player characters bigger than 8, I imagine a lot of the stuff that doesn't fit could be buffered in CHR RAM like how Battletoads does the player characters and Haunted: Halloween '85 does everything.

Going to UNROM would solve so many problems. Imagine a unique design and name for each of the seven Toads. Imagine a 21-world monster incorporating both Super Mario Bros. and The Lost Levels.

lidnariq
Posts: 9849
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: "Super Mario Bros." hack with a two-player simulatenous

Post by lidnariq » Sun Oct 28, 2018 2:30 pm

This ROM hack already targets the VRC6.

strat
Posts: 376
Joined: Mon Apr 07, 2008 6:08 pm
Location: Missouri

Re: "Super Mario Bros." hack with a two-player simulatenous

Post by strat » Sun Oct 28, 2018 5:59 pm

tepples wrote:Going to UNROM would solve so many problems. Imagine a unique design and name for each of the seven Toads. Imagine a 21-world monster incorporating both Super Mario Bros. and The Lost Levels.
Just like Super Mario Bros. Deluxe on GBC. Except they forgot to put the bounce-off-enemy physics in the Lost Levels, making 7-2 a chore to beat with Mario.
https://youtu.be/3gI6SiaEvKA?t=1572

Almost forgot SMB-D omits world 9 and worlds A-D. Though partially complete versions can be played with Gameshark. Blah.

pwnskar
Posts: 119
Joined: Tue Oct 16, 2018 5:46 am
Location: Gothenburg, Sweden

Re: "Super Mario Bros." hack with a two-player simulatenous

Post by pwnskar » Mon Oct 29, 2018 2:15 am

DRW wrote:If you want the two player hack with Luigi's own sprite, this would be a bit more complicated:
Since Mario and Luigi are on screen at once, you need both versions of their sprites on the screen, so you would have to use the different graphics banks not for switching between Mario and Luigi, but to switch the enemies in and out.
And this requires an analyzation which enemy combinations will never share a screen with each other, so that you can load the enemies that are visible in this level and omit the ones that aren't.
You could also keep track of what enemies are on screen by making a list in RAM and switch out the unused tiles whenever you needed to load a new enemy type. The list could be something simple like one byte for enemy id and one for instances on screen. There aren't too many enemy types in the game so the list should only require a few bytes.

I'm sure this technique is used in lots of games? Playing an MMC5 game like Batman in an emulator will show you tiles being switched every now and then just from walking back and forth in a level. And they don't always load into the same slots as before, so the game must be keeping track of unused tiles and entities in some way.

EDIT: I guess you would also have to have one more byte in the list for what slot the first tile of the enemy is loaded into, so you could use that as an offset for when you load the sprites into OAM.

pwnskar
Posts: 119
Joined: Tue Oct 16, 2018 5:46 am
Location: Gothenburg, Sweden

Re: "Super Mario Bros." hack with a two-player simulatenous

Post by pwnskar » Fri Nov 02, 2018 8:08 am


User avatar
never-obsolete
Posts: 386
Joined: Wed Sep 07, 2005 9:55 am
Location: Phoenix, AZ

Re: "Super Mario Bros." hack with a two-player simulatenous

Post by never-obsolete » Fri Nov 02, 2018 9:22 am

With some rearranging of tiles, you can take the 2-frame enemies and put each frame in a different bank and animate with switching. The drawback is that all enemies of the same type would animate together.

Combine that with 8x16 sprites and and swapping the font in and out for the status bar will net you some space to squeeze in Luigi's tiles, or other things like a nicer looking castle.
Attachments
smb.PNG
. That's just like, your opinion, man .

Post Reply