Emulate the Game Boy on Your PC

Make the classic portable not so portable.

Although Nintendo has been producing home video game consoles since the 1970s, soon after the introduction of its portable Game Boy system in 1989, gaming on the go has become the company’s main moneymaker. The latest in the line, the Game Boy Advance SP, can play every Game Boy game going all the way back to the original black-and-white cartridges. So there’s still quite a bit of nostalgia, even at Nintendo, for the classics.

In fact, the Game Boy (GB) evokes such heartfelt feelings in its fans that there are a tremendous number of homebrew games and tech demos available at public domain ROM sites like http://www.pdroms.de—over 300 for the original GB and 700 for the Game Boy Advance! If you’d like to play these games quickly and easily, you’ll need to use a Game Boy emulator for your personal computer. And with the right equipment and software, you can even play them on a real Game Boy Advance [Hack #47] .

Emulating the Game Boy and Game Boy Color

When selecting an emulator, you’ll want to make sure that it can emulate all three iterations of the first Game Boy hardware—Game Boy, Super Game Boy, and Game Boy Color. The Super Game Boy was an add-on to the Super Nintendo Entertainment System that let users play GB games on the system, and certain GB games were programmed with Super Game Boy-specific color palettes and extra features such as backgrounds and hidden games.

Although a staggering amount of Game Boy emulators have been developed and are listed on emulation portals such as Zophar’s Domain (http://www.zophar.net), I recommend you stick with an emulator called BGB. It does all of the above, can use the Game Genie cheat add-on, and it runs pretty much any ROM you can throw at it. You can read more about BGB and download the emulator at http://bgb.bircd.org/. There are a couple of other emulators that Linux [Hack #43] and Mac OS X [Hack #42] users should check out.

Setting up BGB.

You’ll have to unzip the BGB archive into a new directory, but if the ROMs that you download are zipped, you can leave them that way. Run the BGB program, then right-click inside the window to bring up a menu. Click Load ROM and you’ll be able to open the ROMs you have saved (see Figure 4-34).

BGB running a homebrew combat game

Figure 4-34. BGB running a homebrew combat game

If you want to explore one of BGB’s more advanced features, you might try playing the games online. If you and your friends all have a ROM that allows for multi-player support, you can play it online. You’ll need each others’ IP addresses. One player will host the game (select the Link option from the main menu, then select connect), and others will join in (select Link, then listen). At the appropriate prompts you’ll put in the IP addresses as requested.

If you want to configure your controller or display settings, you can enter the robust Options menu by right-clicking and selecting Options. Most of the stuff in here is better left untouched unless you know what you’re doing, and it’s likely you’ll never need most of it anyway. You might try messing with the display scheme. The original Game Boy games can only display four colors, but you can pick which colors those are. Select the GB Colors option. Once there, you can use the sliders to tweak the colors some more if you wish. Five pre-set palettes are available by using the Scheme drop-down box, and you can add your own.

Select the Graphics tab and you can enable Super Game Boy borders for games that support them, like Donkey Kong and Space Invaders. Also in this tab, you can resize the game play window. Note that if you pick Full Screen Stretched, you’ll lose the Super Game Boy backgrounds, but the gameplay area will fill up your monitor, making for a very different experience indeed!

Another useful option is the ability to save your position at any time during gameplay. It’s a quick and painless process. Right click, then look for the seventh option down, State, and click Quick Save. To load, first boot up the ROM and click Quick Load.

Emulating the Game Boy Advance

Nintendo’s Game Boy Advance is one of the most popular game consoles in the history of the industry, so is it any doubt that a thriving emulation and homebrew community exists for the console? Over 700 homebrew Game Boy Advance games and demos are available at the public domain ROMs site http://www.pdroms.de.

Although there are many different GBA emulators for Windows, I’ll narrow the field down to two excellent choices: BoycottAdvance (http://boycottadvance.emuunlim.com/), which doesn’t really require anything other than Windows to get started, and VisualBoyAdvance (http://vba.ngemu.com/). Neither has been updated all that recently, but both seem to fully support any new software. Of the two, Boycott seems to be a bit more stable, is a notch easier to use, and it even comes with a free game. That’s not a bad place to start.

Deeper into Boycott.

Download and unzip the Boycott archive, and everything should be ready to go. The game Pongfighter v1.2 will be automatically placed into the ROM subfolder. You’ll need at least a Pentium III to really run things smoothly, though you should be able to choke decent performance out of a fast Pentium II. Having the latest version of Direct X will help a bit, too.

If you have a joystick hooked up to your system, head into the Options menu and set that up first. The drop-down menus are a little inconvenient if your joystick’s buttons are not labeled, but you should be able to set it up correctly with some trial and error.

It’s much easier to get a keyboard set up, but not easier to play a game using one. You can configure the keys any which way you want, although you’ll probably find that the default settings are acceptable. For certain games, having the auto-fire option turned on can be easier on the thumbs.

Let’s play a game of Pongfighter to get things moving. Click File Load ROM, and you’ll arrive at the default ROM folder. There you should see the game’s file, still zipped. (The emulator also supports ROMs archived in .rar format.) Double-click it to play a GBA version of the classic Pong, augmented with a musical theme from the game Street Fighter II. (Can you guess what character’s music it is?)

If games aren’t running fast enough for you, there are some options you can toy around with. As is the case with most emulators, skipping frames of animation (done by raising the Frameskip value) can speed things up. You can usually get away with setting it to just 1 or 2, and not lose very much of the detail in the process. You can also resize the window. The smaller the window, the less graphic data there is to process, and the faster the emulation.

A feature unique to Boycott is the ability to adjust accuracy versus speed on a sliding scale. Taking accuracy will make things run smoother, but sacrifice speed. Obviously, speed will try and make things run faster but the game will look “choppier” when it animates. It’s a personal choice depending on what you feel is more important. If you’re unsure of whether or not the game is running properly (some games look choppy even on the GBA hardware, of course), you can check the frame rate with Show FPS. If it’s over or at 60, you’re not losing any speed and the game’s probably just not very well-programmed. Finally, turning off sound emulation with Sound Enable will lessen the load on the PC, although you might feel that playing a game without the music and sound effects isn’t exactly a worthwhile experience.

If you find a game isn’t working right and you’re sure it’s not your PC, check the History file under Help. There will be a list of games that are known to not work correctly with that version of the emulator. Downloading the last revision as of this writing, version 0.2.8, should remedy all problems.

GBA on Mac OS X and Linux.

There are Mac OS X ports [Hack #42] available of both Boycott Advance and VisualBoyAdvance. Boycott Advance requires major horsepower under the hood (at least a G4) to get things running smoothly. If you want to add full features to Boycott Advance, you’ll need to get the emulator enhancer available at http://www.bannister.org/software/ee.htm. This shareware program enables joystick support, fullscreen gameplay, and more. VisualBoyAdvance has a few nice bonuses, including the ability to play Game Boy and Game Boy Color games (which it does quite well).

There is also no need for an enhancer, and it doesn’t have the massive hardware requirements either.

There is no shortage of emulators available for Linux users [Hack #43] , either.

Matt Paprocki

Get Retro Gaming Hacks now with O’Reilly online learning.

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