It is currently Sat Dec 16, 2017 11:25 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 28 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Wed Dec 11, 2013 6:21 am 
Online
User avatar

Joined: Sat Sep 07, 2013 2:59 pm
Posts: 1516
Would a "Super Mario Bros." hack with a two-player simulatenous mode be possible? Let's assume Luigi shares his palette with the Koopa Troopa, could this actually be done?

_________________
Available now: My game "City Trouble".
Website: https://megacatstudios.com/products/city-trouble
Trailer: https://youtu.be/IYXpP59qSxA
Gameplay: https://youtu.be/Eee0yurkIW4
German Retro Gamer article: http://i67.tinypic.com/345o108.jpg


Top
 Profile  
 
PostPosted: Wed Dec 11, 2013 6:50 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19353
Location: NE Indiana, USA (NTSC)
It'd increase flicker when the "group of three Goombas" object and "moving platform" objects appear; these are six sprites wide. Whom would the scrolling follow? What palette would Luigi use when he gets the Fire Flower?

And here's the kicker about why it'd be easier to do it in a from-the-ground-up engine using SMB1's level data than in a hack of SMB1: Where in memory would Luigi's position and velocity be stored?


Top
 Profile  
 
PostPosted: Wed Dec 11, 2013 7:11 am 
Online
User avatar

Joined: Sat Sep 07, 2013 2:59 pm
Posts: 1516
tepples wrote:
It'd increase flicker when the "group of three Goombas" object and "moving platform" objects appear; these are six sprites wide.

Yeah, but that could be an afterthought.

tepples wrote:
Whom would the scrolling follow?

The player who is ahead. Or calculate the middle value of both x values.

tepples wrote:
What palette would Luigi use when he gets the Fire Flower?

Red Koopa Troopa.

tepples wrote:
And here's the kicker about why it'd be easier to do it in a from-the-ground-up engine using SMB1's level data than in a hack of SMB1: Where in memory would Luigi's position and velocity be stored?

I don't know. Some new variable.
Yeah, maybe one would have to disassemble the program and program the changes instead of altering the ROM directly.
But a completely new engine, this means that maybe not everything would necessarily work like in the original, right?

_________________
Available now: My game "City Trouble".
Website: https://megacatstudios.com/products/city-trouble
Trailer: https://youtu.be/IYXpP59qSxA
Gameplay: https://youtu.be/Eee0yurkIW4
German Retro Gamer article: http://i67.tinypic.com/345o108.jpg


Top
 Profile  
 
PostPosted: Wed Dec 11, 2013 7:57 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19353
Location: NE Indiana, USA (NTSC)
DRW wrote:
tepples wrote:
Where in memory would Luigi's position and velocity be stored?

I don't know. Some new variable.

If RAM is already full, wouldn't adding a new variable require adding an extra 6264 and 7420 to the cartridge board?

Quote:
But a completely new engine, this means that maybe not everything would necessarily work like in the original, right?

Not everything should work like in the original. Super Mario All-Stars fixes the minus world, for instance. But the jumping physics is documented. (I have to leave for work so I can't search exactly where right now.)


Top
 Profile  
 
PostPosted: Wed Dec 11, 2013 8:41 am 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10169
Location: Rio de Janeiro - Brazil
This has been discussed in the past: thread (spoiler: nothing interesting came out of it)


Top
 Profile  
 
PostPosted: Wed Dec 11, 2013 9:07 am 
Offline
User avatar

Joined: Wed Apr 02, 2008 2:09 pm
Posts: 1046
It's definitely possible to make a two player pretty exact clone of Super Mario Bros. Will it happen? Don't hold your breath.

_________________
https://kasumi.itch.io/indivisible


Top
 Profile  
 
PostPosted: Wed Dec 11, 2013 12:21 pm 
Offline

Joined: Mon Apr 07, 2008 6:08 pm
Posts: 328
Location: Missouri
The kiss of death for a two-player hack would be one player taking the wrong path in 4-4; there's no way to work around that without breaking the game rules. Both players would have to cooperate on every little movement to make the screen scroll properly. What might be interesting is a PC remake where the playfield stretches between both players ala NSMB Wii, but even that could look funky with the pattern castles, or just take the uncreative way out and do a split-screen ala Sonic 2.


Top
 Profile  
 
PostPosted: Wed Dec 11, 2013 1:02 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10169
Location: Rio de Janeiro - Brazil
strat wrote:
or just take the uncreative way out and do a split-screen ala Sonic 2.

There's at least 1 NES game that does this: Mappy Kids. With 4 screens you could even keep PPU updates mostly untouched, and an IRQ could be used to split the screen. Lowering the height of the viewport shouldn't cause much trouble, seeing as SMB DX did it successfully.

Palettes would still be an issue, and the positions for active sprites would have to be calculated twice, which could result in slowdowns. In fact, slowdowns should be a big concern, since the game already slows down as is.

BTW, I know you probably suggested this for a remake, but I figured it would be fun to consider something like this on the NES.


Top
 Profile  
 
PostPosted: Wed Dec 11, 2013 2:24 pm 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 5899
Location: Canada
In a split screen palettes wouldn't be an issue if you split the palette as well and didn't draw both players on both screens.

Slowdown might be obviated by doubling all the movement speeds and targeting a 30fps update, but for this to work you'll probably need that WRAM available as a render data buffer. (Also, having an IRQ available for the split would make it a lot easier on you.)


Top
 Profile  
 
PostPosted: Wed Dec 11, 2013 3:56 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19353
Location: NE Indiana, USA (NTSC)
tokumaru wrote:
strat wrote:
or just take the uncreative way out and do a split-screen ala Sonic 2.

There's at least 1 NES game that does this: Mappy Kids.

Bigfoot, Spy vs. Spy...

Quote:
With 4 screens you could even keep PPU updates mostly untouched, and an IRQ could be used to split the screen.

Which brings the problem of storing the collision map for the part of the screen where Mario is and the part where Luigi is, and remembering what blocks Luigi broke before Mario got there.

Quote:
Lowering the height of the viewport shouldn't cause much trouble, seeing as SMB DX did it successfully.

SMB DX also had 48K of RAM inside the console to work with. And though the 8.5 m tall viewport in Super Mario Land 2 and SMB DX isn't as tall as the roughly 12 m tall usable viewport of SMB1 for NES, it's still a lot better than the 6.5 m you'd get with a split screen. That's not even enough to show the top of Mario's jump curve. Mario jumps 4 m tall from still and about 5 m tall from running; combine that with Mario's 2 m height, and you'd need to scroll on every jump. Sonic 3 solves this by using separate multiplayer maps that are scaled differently, but that would introduce attribute problems unless some simpler-than-MMC5 circuit for ExGrafix can be invented.

rainwarrior wrote:
Also, having an IRQ available for the split would make it a lot easier on you

A simple split halfway down the map is the poster child for a DMC IRQ split.


Top
 Profile  
 
PostPosted: Wed Dec 11, 2013 4:32 pm 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 5899
Location: Canada
Now I want to see a remake of SMB that uses 8x8 tiles instead of 16x16. Tiny mario! (I loved the prehistoric section of Earthbound.)


Top
 Profile  
 
PostPosted: Wed Dec 11, 2013 4:39 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10169
Location: Rio de Janeiro - Brazil
tepples wrote:
Bigfoot, Spy vs. Spy...

I'll give you Bigfoot, but Spy vs. Spy is nothing like Sonic 2... Since the levels don't scroll there isn't even any need to program an actual split.

Quote:
Which brings the problem of storing the collision map for the part of the screen where Mario is and the part where Luigi is, and remembering what blocks Luigi broke before Mario got there.

Yeah, you'll definitely need more memory to keep track of things. As for remembering how the player who's ahead of the other has modified the levels, maybe it would be a good idea to have a single copy of the level in WRAM (I don't know how long SMB levels can be, but it sounds like 8KB might be enough for storing entire levels), that is progressively decompressed by whoever is ahead, without ever being erased.

Quote:
SMB DX also had 48K of RAM inside the console to work with.

And this has anything to do with how a narrowed viewport affects gameplay because...?

Quote:
And though the 8.5 m tall viewport in Super Mario Land 2 and SMB DX isn't as tall as the roughly 12 m tall usable viewport of SMB1 for NES, it's still a lot better than the 6.5 m you'd get with a split screen.

True. We'd have to try and see how that would work out. Maybe if the camera detected jumps and falls it could adjust itself faster than it normally would, giving you more time to react.

Quote:
Sonic 3 solves this by using separate multiplayer maps that are scaled differently, but that would introduce attribute problems unless some simpler-than-MMC5 circuit for ExGrafix can be invented.

Hell no, that would be too much trouble.

Quote:
A simple split halfway down the map is the poster child for a DMC IRQ split.

That or good old MMC3. You can even make use of other MMC3 features, like CHR bankswitching to animate the main characters and have Mario and Luigi look slightly different! Slim Luigi beats fat Luigi any day.

rainwarrior wrote:
Now I want to see a remake of SMB that uses 8x8 tiles instead of 16x16. Tiny mario! (I loved the prehistoric section of Earthbound.)

Then play Super Mario Land on the Game Boy! :lol:


Top
 Profile  
 
PostPosted: Wed Dec 11, 2013 5:08 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19353
Location: NE Indiana, USA (NTSC)
tokumaru wrote:
tepples wrote:
remembering what blocks Luigi broke before Mario got there.

Yeah, you'll definitely need more memory to keep track of things. As for remembering how the player who's ahead of the other has modified the levels, maybe it would be a good idea to have a single copy of the level in WRAM (I don't know how long SMB levels can be, but it sounds like 8KB might be enough for storing entire levels)

I'm not aware of any SMB1 level longer than about 32 screens, including all pipe and cloud areas. Each screen is about 16x12 tiles, making the whole map fit in 6 KiB. Or you might be able to get away with storing 192 bits of "has this tile been collected?" per screen for a total of 768 bytes.

Quote:
Quote:
SMB DX also had 48K of RAM inside the console to work with.

And this has anything to do with how a narrowed viewport affects gameplay because...?

It wasn't directly related to the narrowed viewport, just wanted to point out that SMB DX is an example of an engine that uses more memory for some purpose, although a lot of that purpose might relate to how it does The Lost Levels.

Quote:
Quote:
the 6.5 m you'd get with a split screen

True. We'd have to try and see how that would work out. Maybe if the camera detected jumps and falls it could adjust itself faster than it normally would, giving you more time to react.

Mostly it's to be able to see the apex so that the player knows he's not going to jump into a Bullet Bill or Spiny egg or something.


Top
 Profile  
 
PostPosted: Wed Dec 11, 2013 9:58 pm 
Offline
User avatar

Joined: Wed Apr 02, 2008 2:09 pm
Posts: 1046
The game I'm doing now has New Super Mario Bros. style co-op. Two players on one screen, they can stomp/shoot/grab each other. Game scrolls like a sonic game (eight way scrolling). The scrolling is an average of their positions, if they get too far apart, neither player can progress further horizontally. (There are more complex rules for when they get vertically far apart, but that wouldn't be an issue in Super Mario Bros.)

Now, you could just keep the players from making the screen go further backwards like the original, which solves the "what has been destroyed issue." You could also just save bits for that stuff in WRAM, it sounds like a total non issue to me.

Far jumps would suck when player 2 is keeping you from scrolling, yes, and the castle mazes would need to be changed or require extreme cooperative maneuvers yes. But nothing about the project seems that far fetched, since I'm already doing most of it in a brand new game. It would just take a lot of time. Really, the only thing that "saves" my game from the far jump issues (and would actually save it from the maze issue too) is that the players can pick each other up. So if your partner can't make a jump, you can just carry him across it. Or carry him across the maze level. Super Mario World added this sort of grabbing for enemies, I'd just add it to SMB for co-op players.

_________________
https://kasumi.itch.io/indivisible


Top
 Profile  
 
PostPosted: Wed Dec 11, 2013 10:13 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19353
Location: NE Indiana, USA (NTSC)
Kasumi wrote:
Far jumps would suck when player 2 is keeping you from scrolling, yes

I think it's less noticeable in NSMB Wii because of how far it's zoomed out and the fact that it's widescreen, so the viewport is more than 16 m wide. It's in fact closer to 32 m wide according to my measurement of a screenshot on Amazon.com, so multiplayer might need to be zoomed out like Super Mario Land. Use Mario's graphic from SML, put him on a diet to get Luigi, and use Toad from Wario's Woods to make Yvan and Wolley. This would require an attribute clash workaround, such as moving pipes to coincide with 2x2 m boundaries. Anyone up for a mockup of a few screens of SMB1 redrawn with 8x8 pixel metatiles?

Quote:
Really, the only thing that "saves" my game from the far jump issues (and would actually save it from the maze issue too) is that the players can pick each other up.

You mean like how Chip carries Dale?

Quote:
So if your partner can't make a jump, you can just carry him across it. Or carry him across the maze level. Super Mario World added this sort of grabbing for enemies

I thought Super Mario Bros. 2: Mario Madness had it first.


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

All times are UTC - 7 hours


Who is online

Users browsing this forum: Bing [Bot] 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