Fybertech Forums

Projects and Development => Fybertech Projects => Topic started by: FyberOptic on August 20, 2006, 02:31:53 am

Title: Swing your arms, from side to side
Post by: FyberOptic on August 20, 2006, 02:31:53 am
LJ Crosspost (8-15-06):

A couple weeks ago I got interested in finding out the differences between the arcade version of Super Mario Bros. and the NES one, so I thought I'd share my findings.  As it would turn out, they're nearly identical, right down to the hardware used to run the arcade machines.  I had always thought the arcade version had better graphics or something, but as you can see from the tile comparison I put together, the graphics are pretty much the same. 


You might notice however that the font tiles are shadowed on the arcade version.  That's because they are in fact shadowed, and in my opinion, look nicer.  If you want to see how they actually look in the game, I grabbed some screenshots of each:

(http://www.fybertech.com/images/smbtitle.gif) (http://www.fybertech.com/images/vssmbtitle.gif)

You might notice the colors are just slightly different, as well.  That's because in the VS machines, they each used custom versions of the PPU (picture processing unit, aka graphics processor) which had different palettes.  The color differences you see aren't the actual differences, though, that's apparently just how the emulator is interpreting the colors.  The actual palette difference looks like:


This was most likely done to prevent arcade vendors from copying the roms from a popular VS machine and putting them in one of a shitty cheaper one, and/or prevent Asian companies from just cloning one board for all of'em.  Each VS machine seems to have a different palette from what I've found.  The other nice thing about the VS system PPU's are that they had RGB output to run to an arcade monitor, making them look much nicer than an NES on a television.

Anyhoo, the only difference in the character roms aside from the shadowed font is the fact that the VS version adds a few more tiles on the end of the background tiles section (which is empty random garbage in the NES version), to add the "VS" to the logo, and to do the continue and top score screens.

(http://www.fybertech.com/images/vssmb_start.gif) (http://www.fybertech.com/images/vssmb_continue.gif) (http://www.fybertech.com/images/vssmb_scores.gif)

What's odd though is that the VS machine uses 16kb of character rom (tile storage), where as the NES only uses the standard 8kb.  Loading up the other 8kb rom image in a tile viewer just shows garble.  So I'm still confused what this is for.  The only thing that even remotely comes to mind is that maybe it's not image data, but program/level/sound/etc data, which they read into system memory via the PPU for execution or use, though that would be kind of a strange place to store it.

Gameplay is still mostly identical, though the levels are generally different.  Some slightly, some almost entirely.  The VS version is made to be harder in general, giving less 1up's, has an adjustable amount as to how many coins earn one, etc.  The VS version has dip switch settings which gives the arcade vendor the ability to adjust the various difficulty aspects (timer speed, coins per extra life, how many lives you get, etc), as well as change how many credits to play.

Mind you that there's yet another arcade version of SMB as well, in the PlayChoice 10 machines.  These machines though pretty much run standard NES games (except on small plug-in boards instead of cartridges), giving you a menu to select which you play (out of 10), and work based on how long you play, not how good you do.  You can even switch games while it's running, as long as you've got time left to play.  Putting in another quarter gives you more time to play.  As far as I know, the PlayChoice version of SMB is the same as the NES one, but I haven't found a rom of it yet to find out for sure.

Anyhoo, I thought somebody might find the arcade and home comparison interesting.  The VS machine is really just an NES spread out on a big board with the game roms mounted into it, and has extra system memory installed, pretty much.  One could even replace the font in the NES version with the shadowed version fairly easily if they wanted, and get the best of both worlds.  Or yet still, an intrepid modder could convert an actual NES into a dedicated VS machine (requiring a few modifications to the NES system board), but you'd have to patch the rom to display the palette correctly.

If you take a notion to check out the VS SMB rom, good luck finding it.  All I found were the rom chip dumps for use with MAME, but I don't care much for how it looks on that, so I turned the individual roms into one standard .nes rom file to play in FCE Ultra (which supports VS system roms).  There might be one floating around out there though in that form too if you poke around enough.

In the meantime, I'm going to look around for a Playchoice 10 version rom, and also disassemble the VS version to see what it's using that extra 8k of character rom for~!

UPDATE:  I went and forgot part of what I meant to post.  I've been fiddling around with NES programmery the last few days, and using the VS SMB character rom, I whipped together some junk to try out animation and palette rotation and such.  You can get the rom here (http://www.fybertech.com/misc/nestest.nes), or even view the source (http://www.fybertech.com/misc/nestest.asm) if you want.
Title: Re: Swing your arms, from side to side
Post by: FyberOptic on August 20, 2006, 02:32:12 am
More crosspost:

Just a brief post to add to my last one.  I found the PlayChoice-10 rom of SMB, and it's apparently identical to the NES version, graphics included.


That's a MAME capture, mind you, so I resized it, which blurred it a little.  Pixel resizing didn't look quite right due to how MAME drew it.

Anyway, the top screen always showed instructions and switched to the game select screen when you pressed a particular button.  Apparently there were also just PlayChoice machines, which housed single games, but used the same modular rom boards, so you could plug any PlayChoice game into'em just as you would a PlayChoice-10 machine.