Autoboot into MAME Heaven

Create a self-booting CD to run your arcade games on any PC.

Thanks to enterprising hackers, you can now run MAME on your PC without even touching the contents of the hard drive. How? By using self-booting, Linux-based CDs created exclusively to run the arcade emulator. There are several advantages to this method; for example, you can give copies to less computer-savvy friends without worrying about complex installation and setup problems. The disc is also easily portable; if you want to play at a friend’s house, just take along your CD and pop it in her computer.

The Abundance of Self-Boot MAME Choices

There are several MAME-loving Linux CD kits around, so you actually have a choice. Each comes with its own advantages and disadvantages, which often include some practical problems you may run into trying to make them work. The following section details the most popular.

AdvanceCD

AdvanceCD is by far the most compact of the options; it packs a fully working autoboot MAME system into just 20 MB and leaves lots of room on the disc for ROMs. AdvanceCD uses the rather smart AdvanceMenu (http://advancemame.sourceforge.net/menu-readme.html) frontend ( [Hack #11] ), as well as the AdvanceMAME and AdvanceMESS emulators, which are particularly known for their custom code to produce the correct screen resolution. As the site explains:

The Advance versions are able to directly program the video board to always get a video mode with the correct size and frequency.

The AdvanceCD setup comes with three ROMs: Gridlee, Poly Play, and Robby Roto. The SYS2064 legal ROMs page (http://www.sys2064.com/legalroms.htm) describes these ROMs as freely distributable. If you’re feeling particularly adventurous, you can build AdvanceCD from source in Linux (http://advancemame.sourceforge.net/doc-buildcd.html).

Overall, this is one of the most attractive autobooting MAME packages, not least because it has frequent updates to keep in step with the new AdvanceMAME and AdvanceMenu releases. Although it’s not very customizable or full-featured in terms of the Linux side of things, you can switch to a Linux console by pressing Ctrl-Alt-F2 from within AdvanceCD.

For more information, see http://advancemame.sourceforge.net/cd-readme.html.

KnoppiXMAME

KnoppiXMAME is probably a second choice for most, but it’s still an excellent self-booting CD/DVD option. It has no games installed by default and uses nearly 150 MB for the installation without ROM files.

On the plus side, KnoppiXMAME is definitely more versatile because it uses the very customizable Knoppix Linux CD distribution (http://www.knoppix.net/), a great project in itself. It unfortunately lacks many of the more complex resolution-related features of AdvanceCD. Along with the footprint issues, this is less preferable than AdvanceCD, but is still an excellent effort.

Visit http://sourceforge.net/projects/knoppixmame/ to learn more.

XMAME on CD

XMAME on CD is mostly a roll-your-own project. It started in Japan and has spawned a separate site in the United Kingdom (http://www.phased.co.uk/xmame/) with step-by-step information on how to build your own self-booting XMAME CD from scratch (http://www.phased.co.uk/xmame/cookbook.html). Unfortunately, these instructions are old; they refer to Red Hat 6.2, released in March 2000.

Nonetheless, this provides an interesting guide to doing it yourself, particular with regard to making RAM disc images and creating a read-only filesystem in Linux. Maybe you could look at this page, pretend you understand it, and then download AdvanceCD.

See http://www15.big.or.jp/~yamamori/sun/tech-linux-2/index_e.html.

AdvanceCD Tips and Tricks

Since AdvanceCD is probably the best of the available options, let’s presume you will use it to make your own self-booting MAME CD. Here are some things you should know to make your games run with maximum efficiency.

Bundling and burning the image

To burn the CD image in Windows after you download it, unzip it to your hard drive, add all the ROMs into the correct directory (/image/arcade/), and then run makecd.bat to create the ISO (advcd.iso). Conventional CD-burning software should burn this correctly.

The procedure is similar for Linux users. Run ./makecd.sh instead of the batch file after putting the ROMs into /image/arcade/, then use your favorite Linux—not Windows—CD burning software. Cunning, huh?

Do be careful about the case of the filenames of your ROMs. Only lowercase names will work properly. This may be a problem; it’s easy to find ROMs with irregular filenames or all uppercase characters.

Running the CD

Even with intelligent, self-booting CDs, there are some known issues with a few video and audio cards. Onboard audio cards are the main culprits. AdvanceCD’s SourceForge page has a massive list of compatible video (http://advancemame.sourceforge.net/doc-cardcd.html) and audio (http://advancemame.sourceforge.net/doc-audiocd.html) setups. Read that ahead of time to forestall a nervous rush of confusion later.

This may be obvious, but it’s worth mentioning; if you have a relatively old machine, MAME may run into speed problems, even with self-boot versions. This is most evident on more complex and recent ROMs. You can’t just give the disc to your grandmother with the Pentium 90 and expect games to run at full frame-rate.

Study the manuals and details for AdvanceMAME and AdvanceMENU in detail to understand all the options for screenshots, flyers, background music, and so on. This advice isn’t specific to AdvanceCD; you can use these utilities on their own even outside of the self-booting CD. They are covered further in [Hack #11] .

Get Gaming Hacks now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.