May 27 2010

Context: I built a vintage video arcade cabinet about two years ago. It ran Ubuntu Linux and the MAME arcade emulator on an old off-the-shelf PC I had laying around.  About six months ago, that PC died. To be fair, it was at least a decade old.  I bought a new PC and set it up with Windows XP.

Using Windows presented several challenges, the primary one being Windows’ relative inflexibility. For example, under Linux, I had a soundtrack of classic arcade sounds running whenever the machine was on. I could configure Linux to automatically pause the soundtrack when the screen saver came on, and play when returning from the screen saver, so I wasn’t driven crazy by a 24-hour video arcade.  That’s not so simple under Windows.

Windows does have the advantage of ubiquitous support, so I could be more ambitious in other ways.

My arcade cabinet now runs about four hundred arcade, Sega Genesis, NES, Super Nintendo, Nintendo 64, ColecoVision, and SCUMM (LucasArts PC) games.  It’s all controlled from one customized interface, which lets me switch between any system.

The Emulators

MameWah is a generic, customizable front-end for any emulator application. It completely takes over the screen, and presents no standard GUI widgets.  It can be controlled using any keyboard keys you designate, and you can put in your own background images, logos, etc.

I’ve installed the following game system emulators:

  • Arcade games — MAME (standard Windows client)
  • Sega Genesis — wgens
  • NES fceux
  • Super Nintendo — zsnes
  • Nintendo 64 — Project64
  • ColecoVision — mess
  • SCUMM ScummVM

MameWah is configured using INI files; you create a new folder for each emulator within mamewah’s config folder, and drop a set of default INI files into that folder.  MameWah scans its config folder upon startup and sets itself up using the INI files in there.

The Games

The games themselves are stored as ROM files.  There are two main approaches to building one’s ROM collection:

  1. Hunt down and install just the games you want.
  2. Download a big archive of several hundred games, then find any games you want that aren’t included.  The internet being what it is, you can download collections of just about every game ever released for a system.  The disadvantages here are clutter (scrolling through lots of games you don’t want to play) and quality (some of the ROMs may be old versions, corrupted, etc.).

Galaga (c) Midway

For the systems  I’m not familiar with (like the N64), I followed the latter route; I just grabbed a huge collection of games.  For the others, I consulted “best of” lists, and downloaded ROMs for the games on those lists.  Of course, I also made sure to get any games I wanted (my number one most important arcade game is Galaga).

To find ROMs, use Google. I ain’t linking to them here.  Besides, ROM sites appear and disappear like gnomes.

The Setup

I installed each of the emulators in C:\Program Files, and all of the ROMs are in C:\ROMs\[console] (so I have C:\ROMs\NES, C:\ROMS\Genesis, etc.).  I’ve also got all the original installation packages for each emulator in My Documents.

I need to back this all up, and to do so I’m going to back up each of the emulators application folders, as well as the installation packages, and the entire contents of C:\ROMs.

If I were to set it up again, I’d create an emulators folder in C:\Program Files and install each emulator within that folder, for easier backups. In fact, I may still do that before I do the backup.

To restore, I’ll restore C:\ROMs, re-install each application, then copy the backed-up application folder on top of the new installation (thus restoring all the settings stored within it).

The Hardware

This is unchanged from before: A hand-made black cabinet, with a platform holding an X-Arcade controller and trackball. The PC is a $200 desktop device, hooked up to the X-Arcade, trackball, basic speakers (mounted inside the cabinet behind several drilled holes), and a 21″ CRT screen that I got for free through Freecycle.

The Conclusion

It took me quite a few hours to get all this working. It was fun, and tiring, and occasionally frustrating. I’m very happy with it.

If you  have any questions, feel free to post in the comments.

No responses yet

I work for Amazon. The content on this site is my own and doesn’t necessarily represent Amazon’s position.