It is currently Tue Nov 20, 2018 4:48 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 33 posts ]  Go to page 1, 2, 3  Next
Author Message
 Post subject: SMB 2-player Hack?
PostPosted: Fri Apr 04, 2008 10:00 pm 
Offline
User avatar

Joined: Thu Sep 07, 2006 1:08 pm
Posts: 575
Location: United States
Has anyone ever attempted to make SMB1 two players simultaneous? Like Super Mario Bros. Deluxe?

I asked this same question at Romhacking.net, where I was told that the sprites would have to look the same, the rom would probably need to be expanded, extra collision detection would need to be added, & extensive knowledge of ASM is required - which I agree, it's not something that any average hacker could pull off.

Is this something too far-fetched?


Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 04, 2008 10:31 pm 
Offline
User avatar

Joined: Sun Apr 01, 2007 2:10 pm
Posts: 215
Sounds possible. Expand the ROM, probably use a mapper, have more RAM space for an aditional character (luigi) to run their version of what mario's engine is. Make some type of cooperation scrolling, like one that checks if both players are in the scroll area then scrolling is available.

_________________
Image
Here to at least get an idea of how the NES works. I mean I know alot of the basic things, but this place'll help me grasp more how NES functions.
Major respect to NES developers.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 04, 2008 11:18 pm 
Offline
User avatar

Joined: Fri Jun 29, 2007 10:25 pm
Posts: 324
Location: Earth, Milkyway Galaxy, The Universe, M-Theory
IIRC they both have the same physics in SMB1.

_________________
Code:
          *=$0000
loop      JMP loop
          .eof


Top
 Profile  
 
 Post subject:
PostPosted: Sat Apr 05, 2008 12:11 am 
Offline
User avatar

Joined: Mon Aug 28, 2006 2:52 am
Posts: 407
You'd have to patch every single routine that handles player/object collisions--including potentially complex things like the flagpole and end-of-world sequences--to handle two different sets of player variables. SMB1 is also prone to (very glitchy) slowdown when too many things are happening, and that's with just one player...

It's not impossible, of course, but probably not very feasible with the existing game engine.

_________________
- BMF
RuSteD LOgIc


Top
 Profile  
 
 Post subject:
PostPosted: Sat Apr 05, 2008 12:13 am 
Offline
User avatar

Joined: Fri Nov 19, 2004 7:35 pm
Posts: 4105
then there's more practical questions...
How the hell would you scroll the screen with two players?

_________________
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!


Top
 Profile  
 
 Post subject:
PostPosted: Sat Apr 05, 2008 5:06 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20789
Location: NE Indiana, USA (NTSC)
Dwedit wrote:
then there's more practical questions...
How the hell would you scroll the screen with two players?

How did existing co-op games such as TMNT 2 and 3 do it?

The big difficulty I see with modding the engine of an NES game that doesn't already support two players is palette issues. There are four sprite palette spaces, and by the time you've put in Mario's palette and Luigi's palette, you've already taken up two of them, leaving one for a powerup and only one (instead of two) for enemies.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Apr 05, 2008 11:45 am 
Offline
User avatar

Joined: Thu Sep 07, 2006 1:08 pm
Posts: 575
Location: United States
Oh, oops! Der! :lol:

I was thinking maybe Mario or Luigi could share palettes with something else. But then that would screw things up when one of them gets a fireflower or star. I Didn't think of that. :p

Yeah, & the scrolling...

Perhaps when one player reaches the flagpole, the second player will just "lose control" & stand there while the screen focuses on the first player walking into the castle.

And do Mario & Luigi really need hit detection? It'd be fun bouncing on eachother, but it would kind of get annoying as well. How did SMB Deluxe handle this?


Top
 Profile  
 
 Post subject:
PostPosted: Sat Apr 05, 2008 12:26 pm 
Offline
User avatar

Joined: Wed Dec 06, 2006 8:18 pm
Posts: 2827
By being Gameboy Color and not NES? :p

I'm not familar with the GBC, but I imagine it has a faster CPU than the NES, perhaps a bigger available palette, etc. I think it would be quite a project to try to make it 2 player at once. But if you really wanted to I think you could make it work. But you'll need to expand it with a mapper, maybe get more CPU time by using an IRQ rather than Sprite #0 hit.

I don't think anyone is going to do it though.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Apr 05, 2008 12:39 pm 
Offline
User avatar

Joined: Thu Sep 07, 2006 1:08 pm
Posts: 575
Location: United States
MottZilla wrote:
By being Gameboy Color and not NES? :p

Sorry, I was talking about Mario & Luigi's collision detection. How was it handled in SMB Deluxe?


Top
 Profile  
 
 Post subject:
PostPosted: Sat Apr 05, 2008 2:44 pm 
Offline
User avatar

Joined: Fri Nov 19, 2004 7:35 pm
Posts: 4105
Luigi already uses the exact same colors as the green koopa troopa, but in a different order. Just rearrange mario's colors to match what Luigi's colors would be on a green koopa troopa palette.
Only problem would be that Green turns Gray underwater.

_________________
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!


Top
 Profile  
 
 Post subject:
PostPosted: Sat Apr 05, 2008 6:53 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10977
Location: Rio de Janeiro - Brazil
I don't think palettes are such a big issue. Even though the characters might not look exactly the same, I'd say you can definitely squeeze Mario and Luigi there.

It might even be possible to make them look better, if you separated the head from the rest of the body, the head could make use of another palette that has skin tones, while the body uses colors from the palette that is dedicated to the player, where you could fit the colors for the clothes of both characters (which could even be changed individually in the case of fire flowers). That would require some serious modifications to the code, though.

Of course, there is the easy way out: Flickering. You'd show only one of the players each frame, and you'd constantly change the palette between Mario's and Luigi's. It might be acceptable for a 2-player mode.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Apr 05, 2008 8:10 pm 
Offline
User avatar

Joined: Sun Jun 05, 2005 2:04 pm
Posts: 2150
Location: Minneapolis, Minnesota, United States
tokumaru wrote:
Of course, there is the easy way out: Flickering. You'd show only one of the players each frame, and you'd constantly change the palette between Mario's and Luigi's. It might be acceptable for a 2-player mode.


True, however, this is probably the sort of thing that puts the "Warning: This game may cause seizures" thing on games nowadays. This is visually unappealing.

And yeah, You could probably do something about green turning gray underwater. I would probably just edit that part out, and have whatever would use the gray scale palette make do with the green pallet.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Apr 07, 2008 6:08 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20789
Location: NE Indiana, USA (NTSC)
tokumaru wrote:
It might even be possible to make them look better, if you separated the head from the rest of the body, the head could make use of another palette that has skin tones, while the body uses colors from the palette that is dedicated to the player, where you could fit the colors for the clothes of both characters (which could even be changed individually in the case of fire flowers). That would require some serious modifications to the code, though.

That worked for Contra, and it worked for Kart Fighter. But Mario and Luigi change the color of their clothes too often for that to work. You could do something like Super Mario Land 2, where Mario's cap changes to indicate fire status, and something like Super Mario Bros. 3 and Sonic the Hedgehog 2, where more animations change to indicate invincibility.

Quote:
Of course, there is the easy way out: Flickering.

Pac-Man. Atari 2600. Do we want to relive that? I'm with Celius.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Apr 07, 2008 9:13 am 
Offline
User avatar

Joined: Sun Apr 01, 2007 2:10 pm
Posts: 215
Dwedit wrote:
then there's more practical questions...
How the hell would you scroll the screen with two players?


I told you, since it scrolls right whenever the player moves right from a certain point of the screen, it could have some code to detect if both players are going passed that point, then it would start to scroll, and if there's a player behind the point, it wont scroll.

_________________
Image
Here to at least get an idea of how the NES works. I mean I know alot of the basic things, but this place'll help me grasp more how NES functions.
Major respect to NES developers.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Apr 07, 2008 10:51 am 
Offline
User avatar

Joined: Sun Jun 05, 2005 2:04 pm
Posts: 2150
Location: Minneapolis, Minnesota, United States
Kind of like Everquest: Champions of Norath, if you've ever played it. You could see if a player was on the very left edge of the screen. If either Mario or Luigi is on the very left edge of the screen, it wouldn't scroll. But each character has the power to advance the scroll by running towards a certain point on the screen (Towards the middle probably). But I suppose it would be nice to have a system where the screen could completely stop scrolling if you wanted it to, and both Mario and Luigi could run around the entire screen if desired.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 33 posts ]  Go to page 1, 2, 3  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group