O'Reilly logo

Retro Gaming Hacks by Chris Kohler

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Play Classic Systems on the GBA

Embark on retro adventures using your Game Boy Advance.

Considering that it shipped in early 2001 for under a hundred bucks, the Game Boy Advance is a pretty powerful piece of hardware. It’s so powerful in fact, that you can actually use it to emulate other classic gaming consoles. And indeed, many such emulators are available online.

“But wait,” you interrupt. “Why would I want to run an emulator within an emulator?” You’re right: the only reason you’d want to emulate a system within another emulator is for the pure hacker spirit of seeing if it can be done. And I’m sure there are quite a few people reading this right now to whom that sounds perfectly reasonable. But there is a goal here for even the casual hacker—by using rewriteable flash cartridges [Hack #46] , you can run the emulators and ROMs on your actual Game Boy Advance, Nintendo DS, or even a Nintendo GameCube equipped with a Game Boy Player attachment.

By far one of the most appealing uses of GBA emulation is to run games on the go that used to be tethered to a home system. And though you might instantly think of the Nintendo Entertainment System, there are also a wealth of other emulators for the GBA that are currently being developed. Most of these can be found at Zophar’s Domain, on the page http://www.zophar.net/consoles/gameboy.html.

PocketNES

By far the most popular GBA emulator is PocketNES, which allows you to run classic NES games on the portable. As is the case with the rest of the emulators described in this section, the executable files that you download with PocketNES will run a Windows program that lets you create a GBA ROM from a selection of NES ROMs. A built-in menu will be included in the ROM file that the program generates. So you will only have to copy one file to your GBA flash card.

After you have unzipped the PocketNES files to a directory, you’ll have to copy the NES ROMs you want to use into that same directory. Then when you run the main PocketNES executable, it will automatically generate a list of the ROMs it finds. To add ROMs to this list you will have to copy them into the PocketNES directory, then click Refresh (see Figure 4-39).

The PocketNES Menu Maker window

Figure 4-39. The PocketNES Menu Maker window

PocketNES allows you to individually determine how each game shows up in the menu when you play the ROM; click the Menu radio button in the lower left-hand corner of the window to edit the names. If during this process you decide that you don’t want certain ROMs to be included, you can click the Exclude ROM checkbox. Note that the program keeps track, in the lower right-hand corner, of the size of the output ROM that you will create.

When you are done editing names, click the Make ROM button to generate a ROM (a .gba file) that can be loaded in a GBA emulator or on a flash cart in a real GBA. Note that an internal menu inside PocketNES can be used to fiddle with the video settings—you can squash the display or display it at full size (but you’ll only be able to see part of the screen at once).

SNESAdvance

As the name so aptly implies, SNESAdvance will allow you to play Super Nintendo Entertainment System games on your GBA. The emulator currently has limited compatibility—at the time of this writing, only about 50 games will work. A complete compatibility listing, as well as all the files and documentation you will need to run the program, are located at the project’s official home page: http://www.snesadvance.org.

After you install and run SNESAdvance, you’ll see the screen shown in Figure 4-40.

The SNESAdvance main window

Figure 4-40. The SNESAdvance main window

Click the Open icon (the folder with an arrow above it) to select the ROMs you’d like to use. When the ROMs are loaded you will be able to select each one in the left side of the window, then alter settings for them individually. The Scale and Offset values, for example, will alter how the game’s graphic display shows up on the Game Boy Advance screen. Other settings will be set automatically by the program for each specific game. Consult the documents included with the program for more information.

Once you are satisfied with your list, click the Save button and SNESAdvance will create a file, default name SNESAdvance.gba, that can be loaded in a GBA emulator. When you boot the file, a built-in menu will allow you to select the game. Now for the downsides: most of the introductory cinematics are messed up, there’s no sound emulation, and the speed of the gameplay—although workable—is still slow.

That’s what you get for playing with the leading edge of hacker tech, kids.

DrSMS

Bored with hot Nintendo-on-Nintendo action? Then try some games that nobody ever figured they’d see on a Game Boy system. DrSMS lets you play Sega Master System ROMs on your GBA. The downloadable archive at Zophar’s Domain is simple enough, since it only contains two files: the readme file and the executable program. Run the program and you’ll see the screen shown in Figure 4-41.

The DRSMS main window

Figure 4-41. The DRSMS main window

Note that you can drag-and-drop ROM files into the top window or click the Add button to browse your hard drive. The bottom part of the window will constantly keep you apprised of how large your ROM file is growing; this is important if you want to preserve the space on your flash cart.

Once your window is filled with games, you’ll have to type a name for the ROM you will create. Be sure to manually type in the .gba extension so you can keep track of it later. Then click Create GBA Rom and within seconds your ROM will be created in the directory you placed the DrSMS executable.

While playing a game (which will probably run with excellent speed and perfect sound), you can press Select to access the menu, which will let you select a new game or fuss with the settings to your heart’s content.

Goomba

Named after the first enemy that shows up in Super Mario Bros., Goomba (http://www.webpersona.com/goomba/) is a Game Boy emulator for the Game Boy Advance. This might sound completely useless, as the Game Boy Advance already plays regular Game Boy and Game Boy Color games. But in fact, it comes in handy for two major reasons. First, it lets you run homebrew GB ROMs without using that obscure dongle known as the GB Bridge [Hack #46] . Second, and perhaps most important, it lets you play classic Game Boy games on the new Nintendo DS system, which features a GBA media port but does not include support for classic Game Boy and Game Boy Color software.

If you can use the emulators listed earlier in this hack, you’ll be able to figure out Goomba.

GBAGI

The final emulator I will discuss in this section is perhaps the most interesting, and definitely my personal favorite. Brian Provinciano, the creator of the NES homebrew Grand Theftendo [Hack #84] , has created an emulator that runs many of Sierra’s classic PC adventure games on the GBA. The new version 2.0 allows for full text input via a virtual keyboard (the original release only allowed you to select from an automatically generated list of terms).

The project’s official web page, http://www.bripro.com/gbagi/index.php , has the program, called GBAGI (AGIis short for Adventure Game Interpreter, the common software that Sierra used to create and distribute its games from King’s Quest on), as well as extensive documentation. Source code and demo ROMs can also be downloaded from this page.

What’s great about GBAGI is that if you still have your old Sierra games in the closet (or find them on eBay) you can copy the files off the original disks and use them with the emulator. You can even create your own AGI games, or edit Sierra’s to your own tastes, by using a separate program called AGI Studio, available at http://agidev.com/download/.

GBAGI supports the following titles:

King’s Quest
King’s Quest II
King’s Quest III
King’s Quest IV
Leisure Suit Larry
Manhunter: New York
Manhunter 2: San Francisco
Police Quest
Space Quest
Space Quest 2
Gold Rush!
Mixed Up Mother Goose
Disney’s The Black Cauldron
Donald Duck’s Playground

Tip

Donald Duck’s Playground can be downloaded, for free, at designer (and Retro Gaming Hacks foreword author) Al Lowe’s web site (http://www.allowe.com/More/download.htm). I’m sure that’s not the first game you thought to play with GBAGI, but them’s the breaks.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required