Play Games on a Smartphone or PDA

Get your retro gaming fix in the palm of your hand.

From game watches to programmable calculators, people have always found ways to play video games on the sly. The steady advance of technology has served to increase the sophistication of these covert gaming efforts. The latest generations of smartphones and PDAs are capable of running console emulators, granting users the ability to run thousands of classic games from the Atari, NES, and SNES eras. Now, tech-savvy office workers can play classic console games wherever they happen to be. Not at work, of course.

The Emulation Scene on Handhelds

While the novelty factor of running console games on a handheld is a reward in and of itself, emulating games on a handheld (whether PDA or Smartphone) can be an iffy prospect. Typically, the longer a handheld’s operating system has been able to support emulators, the more likely you’ll find software for it.

The development community for handhelds is not as large as desktop platforms, so most of the emulators are not nearly as developed, robust, or intuitive as their cousins on other operating systems. Even finding the programs can be difficult, as some are hosted on personal pages that come and go. With some persistence and a decent search engine though, these programs can usually be found somewhere. There are a growing number of repositories for handheld emulators. Here are a few:


Although it hadn’t been updated in over a year at the time of writing, PalmEmu ( has a good list of emulators for Palm-powered handhelds. Zophar’s Domain also keeps a list at Tapwave Zodiac users should also check out Alternative Handheld Emulation, described later in the Symbian section.

Pocket PC

Pocket PC Freeware maintains a list of free emulators at You can also find a list at

If you’re one of the lucky folks with a Pocket PC that’s too fast for your emulator, you can slow your CPU down with a CPU speed application such as Pocket Hack Master (available at both and

Microsoft Smartphone

Being the youngest of this bunch, the Microsoft Smartphone operating system doesn’t have quite as many emulators for it. However, it’s a great platform for gaming, and you can find a list of free emulators at; we’ll also discuss a few of them in this hack.


Alternative Handheld Emulation ( keeps track of emulators for Symbian devices (UIQ, used primarily by Sony Ericsson and Series 60, used primarily by Nokia), but also includes emulators for the Tapwave Zodiac (a game-enhanced Palm-powered device). In the gaming world, Nokia’s N-Gage is perhaps the best known Symbian device, but the smartphones from Nokia and Sony Ericsson are powered by Symbian. Many other manufacturers make Symbian devices, including Panasonic, LG, Samsung, Sendo, Lenovo, and Siemens. For the best gaming experience, you’ll want a Nokia N-Gage or a newer phone. When in doubt, check the system requirements of the emulator you want to play.


You may find yourself visiting some dark corners of the Internet trying to find some of these programs. It’s important to remember to scan what you download for viruses before you run it or put it on your cell phone. Many a piece of malicious software has been disguised as entertainment software. If in doubt, don’t run it.

Even after you’ve gotten an emulator downloaded and running on your phone, the gaming experience is hardly ideal. The processors in many handhelds are barely adequate for emulation and the handheld itself does not make a comfortable gaming machine. Poor control response, limited support for diagonal movement, and cramped button layout can make reflexbased games a chore (however, gaming systems such as the Tapwave Zodiac and Nokia N-Gage can be a joy to use). Even RPGs and other turn-based games may be unplayable due to the limited resolution of most handheld screens, reducing onscreen text to an unreadable mash. That being said, if you’re still not daunted by the challenges of console emulation on a handheld, then read on. The most you’ll give up is the time it takes to download and play the game. If you don’t like it, you can always delete it! If you do like it, you’ve succeeded in moving the retro experience into the palm of your hand.

Installing Emulators and ROMs

When installing applications (e.g., an emulator) and ROMs, you have two choices: the handheld device’s internal storage or a removable storage card (e.g., MMC or SD). To install an application into internal storage, you must have the media card inserted when you run the installer. However, most handhelds use their internal storage space as both RAM and disk, so you should conserve internal storage as much as possible by using a storage card.

Using a memory card gives you plenty of room to store ROMs and, whenever possible, you should install the emulators themselves to the storage card (the installers for Palm, Pocket PC, Smartphone, and Symbian allow you to choose where to install software). Since some programs have trouble running from a storage card, you should check the documentation for your emulator to make sure it will work OK. Most newer Palms, Pocket PCs, Microsoft Smartphones, and Symbian smartphones have support for MMC and SD storage cards—and with prices around $15 for a 128 MB card (see, you can’t go wrong.

Let’s look at the installation options for some common handheld OSes:


Symbian installers (.SIS) files are typically beamed over to the phone using Bluetooth or Infrared, but they may also be downloaded using the built-in web browser on some phones, and are sometimes delivered as Over-the-Air (OTA) messages. When you run a Symbian installer on a phone with a memory card, you’ll be prompted to choose between the internal memory (“Ph. mem”) or the storage card (“M. card”).

Pocket PC and Smartphone

To install an application on a Pocket PC or Smartphone, you will usually run an executable (.EXE) on a Windows machine that has an ActiveSync partnership with the handheld. After you run the installer, you’ll be asked whether you want to install the software using the default application installation directory. You should say no, and then select Storage Card from the Destination Media dialog. Click OK and installation will continue.


To install an application to the storage device, install it as you normally would—it will go to internal memory. Then, tap the Home button to go to the Launcher, tap the menu button, and choose Copy. When the Copy dialog appears, make sure Copy From: is set to “Handheld,” and To: is set to your storage card. Select the application you want to copy, and tap Copy.

Once you are sure you can run the application from storage memory correctly, return to the Launcher, and delete the application from the handheld: tap the menu button, choose Delete, and the Delete dialog will appear. Make sure Delete From: is set to “Handheld,” choose the application, and tap Delete. Once you’ve moved an application to the storage card, you’ll need to select the storage card from the Launcher’s categories menu (the upper right menu) to find the application.

To install ROMs to the storage card, your best bet is to use a card reader on your desktop computer and place the ROMs in the location specified in the following sections (but double-check the documentation for the emulator you are using, since things often change). Although the synchronization utilities (Palm Desktop, Microsoft ActiveSync, and Nokia PC Suite) provide file transfer utilities, a card reader is cheap, fast, and easy.

Atari 2600

There are a few emulators for the Atari 2600 that can be used to run ROMs of classic and homebrew games [Hack #34] . At the time of this writing, the only Atari 2600 emulator available for Palm and Nokia Series 60 devices is Mobile Wizardry’s Atari Retro [Hack #16] , which also supports Pocket PC (all on one cross-platform MMC card). Unfortunately, you cannot add your own ROMs to this emulator; it is limited to the seven games that it ships with.

Microsoft Smartphone.

SmartVCS is a 2600 emulator for the Microsoft Smartphone. At the time of this writing, it could be found at the following locations:

Installing SmartVCS is as simple as copying the file using ActiveSync to your Smartphone along with any ROMs you intend to play. You’ll need to configure ActiveSync as per the instructions that came with your phone.

To launch SmartVCS on your phone, use File Explorer (if your SmartPhone doesn’t have this essential utility, check out SmartExplorer at to browse to the directory where you put smartvcs.exe, usually Storage\ or StorageCard\, and execute it. You can then load any Atari 2600 ROMs in the same directory as smartvcs.exe by using the Open command under the File menu. Once a ROM is loaded and running, you can use the phone’s directional pad as a joystick and the 4 key as the Fire button. Pressing 1 allows you to start/restart a game and pressing 2 stops emulation and returns you to the SmartVCS menu screen.

Microsoft Pocket PC.

PocketVCS is a free Atari 2600 emulator with great performance. You can find more information at and download it at sitesemulators for classic console gamesemulators.

Unlike SmartVCS, PocketVCS is distributed as an installer that puts PocketVCS in the right place, and even creates a Start Menu shortcut for you. To install it, run the installer on a PC that has a partnership with your Pocket PC, and let ActiveSync install PocketVCS on your Pocket PC. Figure 4-35 shows PocketVCS in action.

Oystron running on PocketVCS

Figure 4-35. Oystron running on PocketVCS


Both SmartVCS and PocketVCS allow you to configure various settings to optimize the appearance and performance of Atari ROMs. In particular, disabling sound and increasing frame skipping can improve the execution speed of lagging ROMs. Skipping a high number of frames may cause some objects, such as the explosions in Missile Command, to not appear because they happen to only be displayed during the skipped frames. Note that setting the frame skip to 0 frames may cause some versions of SmartVCS to crash.

Game Boy

GNUBoy, as the name implies, is a Nintendo Game Boy emulator that was produced under the GNU General Public License and has been ported to multiple operating systems, including the Windows Compact Edition line of OSes used in PocketPCs and Smartphones.

Microsoft Smartphone and Pocket PC.

The various permutations of GNUBoy can be hard to find at times, but the MS Smartphone version can, at the time of this writing, be found at, and the Pocket PC version was available at GNUBoy CE can load standard Game Boy (GB) and Game Boy Color (GBC) ROMs, but not Game Boy Advance (GBA) ROMs. Another option for Pocket PC users is the shareware MorphGear (, Aaron Oneal’s framework for running emulators based on Marat Fayzullin’s emulators.

These emulators are distributed as Windows-based installers that copy the applications onto your phone or Pocket PC. Instead of copying the down-loaded file, gnuboySetup.exe, directly to your phone, you run the installer on your PC while your phone is connected via ActiveSync. Once installation is complete, you should be able to launch the emulator from the Start or Programs menu on your phone.

When you launch GNUBoy CE, it presents a list of ROMS that it finds in the same directory as gnuboy.exe. By default, the GNUBoy CE directory is either Storage\Program Files\Games\gnuboy or Storage Card\Program Files\Games\gnuboy. MorphGear will load ROMS found in My Documents, a subdirectory of My Documents, or a subdirectory of your storage card.


On the Samsung i600, we found GNUBoy CE to be prone to frequent freezes. In particular, enabling sound and playing ROMs that allow you to save your game seem to cause the most problems. In the case of running savable games, GNUBoy CE seems to have trouble whenever it attempts to load or save a state file for the ROM. State files are used to record the state of an emulated game so it can be resumed from the same spot the next time the emulator is run—this is different from a save file, which lets you load a game that was saved using in-game menus. The first time a game loads, it is fine because its state file has yet to be created. Upon exiting, and on every subsequent load and exit, GnuBoy CE chokes on the state file. The way around this problem is to use File Explorer to go to the GNUBoy CE directory and delete the state file, usually named ROM_name.000. For example, if you were having trouble running Final Fantasy Legend, you would delete Final Fantasy Legend II.000. While this does destroy your state data, the in-game save that is recorded in ROM_name.sav works just fine, so you can start the game up, tell it to load your saved game, and pick up from there.


There are a few choices for Game Boy and Game Boy Color emulation on Palm-powered devices. Phoinix ( is an open source Game Boy emulator. We found that Phoinix would not run ROMs off of the memory card unless we had installed at least one game in the Palm’s internal memory. As with all other emulators, installing a ROM on a memory card is simply a matter of putting the file into the right place (in the case of Phoinix, it’s \Palm\Phoinix). However, to install a ROM into internal memory, you need to convert it with the converter available at

Another choice for Palm users is the shareware GBulator (, which emulates both the Game Boy and Game Boy Color. To install games to the memory card, place their ROMs in the \Palm\Programs\GBulator directory. Figure 4-36 shows a Game Boy remake of Activision’s classic Atari 2600 Boxing game.

A classic Atari 2600 remake, Game Boy style

Figure 4-36. A classic Atari 2600 remake, Game Boy style


GoBoy ( is a free Game Boy and Game Boy Color emulator for a number of Nokia phones. It has been ported to support UIQ devices (, and a newer shareware version, Super GoBoy (, is also available. GoBoy users can store their Game Boy and Game Boy Color ROMs in their storage card’s \GoBoy directory.

Play NES Games

The Nintendo Entertainment System (NES) provides a home for some of the most fondly remembered titles in console gaming.

Microsoft Smartphone.

SmartNES, or Smartphone NES, allows you to play your favorite NES titles anywhere using your Smartphone. SmartNES can be found, at the time of this writing, at the following sites:

Installing SmartNES is a simple process of unzipping the downloaded zip file on your PC and copying smartnes.exe to your phone using ActiveSync. When you run smartnes.exe, you will be able to load any NES ROMs that are located in the same directory on your phone as the executable via the File menu. While you are running a ROM, the Back button returns you to the SmartNES menu so you can adjust your options or load a new ROM.

In addition to the standard ROM loading and control configuration abilities, SmartNES also allows you to change the orientation at which a game is displayed on the screen. Using this feature, located under Options Rotation, you can set either the vertical or the horizontal axis to be the longer axis. Most console games are designed for screens that are wider than they are tall, so it can be quite beneficial to rotate the image on the tall Smartphone screen 90 degrees. Setting SmartNES to 90 degree counter-clockwise rotation will give you a decent setup with your controls to the right of your screen. This configuration allows you to manipulate the directional keys with your left thumb and the other buttons with your right, like a standard controller. Note that you will have to redefine your keys to take advantage of this new orientation. That is, unless you prefer the extra challenge of moving down when you press right.

Pocket PC.

There are a couple of good NES emulators for Pocket PC. At the time of this writing, PocketNester’s site ( had been replaced with a directNIC “under construction” page, suggesting that the domain name has expired. However, there is still the lovable PocketNES (, which is an excellent donationware NES emulator that plays well (although its sound was choppier than PocketNester’s, which delivered smooth gameplay all around). You can install ROMs for both emulators in a subdirectory of your Storage Card. Fortunately, Zophar’s Domain still had PocketNester available for download ( at the time of writing.


KalemSoft’s shareware NesEm ( is a full-featured NES emulator. It ran a bit slowly on the admittedly older Palm Tungsten T that we tested it with, and we got best performance with sound off. NesEm supports multiplayer games over Bluetooth, and can run games right off of a storage card (put your ROMs in \NesEm).


YewNes ( is a shareware Series 60 NES emulator that can play a lot of games. Although the audio was a bit choppy on the Nokia 3650 we tried this on, the emulator ran quite well. Nokia N-Gage users and those with new model phones should get better performance. To install ROMs, put them in the \yewsoft\nesroms directory on your storage card.

Many Symbian users can also use vNES (, a shareware NES emulator that runs on a lot more phones than just Symbian-powered ones. If you have a fairly fast phone with support for Java midlets, give this one a try. vNES also comes in a Symbian-specific version, so visit the vNES site to figure out which version is best for you.


Some combinations of programs and hardware can be rather picky about which simultaneous button presses they will accept. On the i600 we tested with, SmartNES seems unable to recognize any keys on the number pad being pressed when I’m pressing down on the directional pad, a definite handicap in shooters like Gradius. You may have to be flexible in trying to find the ideal key configuration for playing some games on your handheld.

Super Nintendo Entertainment System (SNES)

Once you get into SNES emulation on a handheld, you’re starting to push the limits of current devices. To get acceptable performance, you’re going to need something fairly fast. At the time of this writing, we couldn’t find an SNES emulator for the Palm, but there are some out there for other devices.

Pocket PC and Microsoft Smartphone.

PocketSNES is an open source Super Nintendo emulator based on the popular multi-platform SNES emulator, SNES9x. It provides surprisingly good performance and manages to keep many games running at a fairly playable pace. It’s available both for the Pocket PC ( and the Smartphone (

Unfortunately, in the Smartphone version, many features seem to be not yet or only partially implemented. In our testing, I was never able to enable sound or translucency effects. Although it lacks several features, the game- play is quite decent. As with other emulators, it allows you to load ROMs that are in the same directory as the executable (the Pocket PC version lets you store ROMs in subdirectories off of your storage card as well as other locations). Like SmartNES, PocketSNES allows you to rotate the display in order to have a wider viewing area. In a welcome improvement over SmartNES, PocketSNES automatically orients your directional keys with respect to the screen orientation, so pressing the key that is currently facing downward will actually move you down.


vSun ( is a shareware SNES emulator for Nokia Series 60 phones. Although the Nokia 3650 we use for testing is listed as supported, we were unable to free sufficient memory to run this emulator.

Play Doom on an MS Smartphone

Whenever a new piece of hardware or operating system comes around, it’s only a matter of time before someone attempts to port Doom ( to it. MS Smartphone is no exception. While it’s not necessarily a console game per se, Doom is a perennial classic and always worth having available right at your fingertips. There are two major versions of Doom available for MS Smartphone: DoomSPV and CellDoom. DoomSPV is the older application and provides a fairly decent Doom experience on most Smartphones, although its menu navigation leaves much to be desired. It has since been supplanted by the more feature-rich and stable CellDoom.

CellDoom can be found in several Smartphone software repositories, such as You can download it at You can then unzip the downloaded zip file, CellDoom, and run Installer.exe from your PC to install Cell-Doom on your phone.

Once CellDoom is installed, you can use it to load and play almost any Doom data file, called a WAD. CellDoom itself doesn’t include any data files. You will need to copy the data file from a commercial release of Doom to the directory on your Smartphone where CellDoom is installed. You can also use custom WAD files or the WAD file (doom1.wad) from the shareware version of Doom, which is available at various locations on the Internet, such as

With CellDoom and various console emulators, you are ready to turn your handheld into a covert gaming rig. Now you never have to go anywhere without some sort of gaming readily available at all times.

Brian Jepson and Robert Ota Dieterich

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.