Ever Wanted to Play Gameboy Advance Games on your PDA?

Gameboy Advance (GBA) games can be very fun to play and may offer much better experience than native Pocket PC games because

  1. the GBA market is much more lucrative and bigger (way over 25 million sold units) than that of the Pocket PC; this also means thousands of games
  2. the GBA hardware is pretty good for gaming and it, therefore, has much better games than the technically much less advanced platforms (NES, GB, GBC etc), even with today's 2D/pseudo-3D gaming standards

Therefore, emulating GBA has always been in the focal point of Pocket PC developers. This is why there're no less than four GBA emulators for the Pocket PC. I discuss them in the order I recommend them.

PocketGBA

This free (!) emulator is, if you don't need, say, full screen mode, the best emulator, speed-wise. Its homepage can be found here. Being the best GBA emulator right now, wxcellent Pocket PC gaming sites like PocketGamer will most definitely frontpage any PocketGBA-related news (as will my blog). In addition, the Games forum at AximSite is really worth following: it's mostly there that the latest PocketGBA-related news is first announced and most emulation-related discussions can be read.

If you have a pre-WM5 QVGA device, go to here and get either ARMRel.zip or ARMRel_noSound.zip (both are at the top of the page), depending on whether you want sound support or not. The current version of this QVGA version is rel0.5.051011.

If you, on the other hand, have a VGA or a WM5 device, you will need to download this test build instead (also see this PG/AximSite thread on this version) – the "official", non-test version just crashes on all VGA devices after choosing the ROM to load. The current date of PocketGBA_test.exe inside is 11/25/2005.

As of now, PocketGBA is clearly the best emulator out there, speed- and sound-wise. Compared to Morphgear, the other, well-known and recommended emulator, it's speedier and has much better sound. It's also faster and more compatible compared to PocketAdvance, which, earlier, was the GBA emulator of choice for many because of its speed.

It has some problems with some VGA devices, though: the on-screen controller isn't shown on some VGA devices (for example, the WM2003SE PL720), unlike on QVGA ones. The Dell Axim x51v isn't affected by this bug. Also, it lacks the full-screen streching capabilities of Morphgear, but, if you take into account the superior emulation speed and its being free, you will definitely like it.

MorphGear

MorphGear (MG for short) is an all-in-one emulator. Its basic (8-bit) modules are free; the GBA module, on the other hand, isn't (each add-on module (GBC, GBA, NES, SEGA MS) costs $20), and must be separately downloaded/installed. To do this, download the basic engine (see this page for a list) and the Marat modules, including the GBA emulator (see this page for a list).

The current version of the emulator is 2.3.0.2 and it seems it won't receive updates in the near future as all the people involved in the delevopment have other things to do.

(Side installation note for people using Mad Programmer's File Dialog Changer: MorphGearPPC2003.ARM.cab dislikes HKEY_LOCAL_MACHINE\SOFTWARE\Apps\Microsoft Application Installer\fAskDest to be non-zero (that is, any kind of redirection – for example, when you use File Dialog Changer). You won't be, therefore, able to install it on WM2003SE devices if you use any kind of CAB installation redirection. If you encounter constant resets upon installation attempts, keep this in mind.)

As has already been pointed out, the overall speed and sound synthesization capabilities of PocketGBA are definitely better than that of MorphGear. The latter has few advantages over PocketGBA; most important is probably the full-screen streching mode. It, on the other hand, has resulted in appr. 5% performance loss in all the test Pocket PC's so you may want to avoid using it. Note that you can also fine-tune for example CPU throgling and thread priority; they, however, will not really make the emulation run any faster. PocketGBA has always been faster in my tests, no matter how I've tried to tune up MG.

If you still choose MG and want to fine-tune the settings, you will want to know that they are separated to global ones (see this screenshot) and module-specific ones. For example, the GBA module has these settings. An example of the drop-down menus here, showing how MorphGear should be switched to the full-screen mode, which is unique to the MG GBA module is here.

PocketAdvance

This free emulator (dowloadable here; latest version 0.49, last updated on 04/29/2003; therefore, it seems it's no longer maintained) was pretty famous in the past. Now, however, it doesn't really have anything to show off: it's slower than PocketGBA, has no fine-tuning capabilities (unlike PocketGBA and, particularly, MG), has problems with the colors in some games and completely lacks sound support.

If for some reason you still want to stick to it, you must be aware of a bug that has already been mentioned in some Pocket PC forums (for example this one but, so far, noone has published a way to actually fix it.

The bug is as follows: It's not guaraneteed you'll see the configuration bar at the top of the screen. It's only on my iPAQ 2210 that I was able to see it (in not all the cases – sometimes I had to reset the PDA and restart the emulator to be able to see it again) but not on my iPAQ 3660 or Pocket Loox 720. On them, I either saw a gray band without any menus on it (Pocket Loox 720) or just the standard program bar with the name of the application as can be seen here.

Having access to this menu is essential as it's there that you must configure the hardware button assignments Without doing that (or using the configuration file / description I'll provide soon), you won't be able to control any of the games because buttons are not pre-assigned and, as opposed to the above two titles, there's no on-screen controller either.

On devices that just don't display the menu bar correctly (this, again, includes all VGA devices), you can still define your keys with some manual hacking.

First, you must know that the emulator saves the key assignment configuration in a file Keys.cfg in the root directory of your PDA. This is a very simple file containing the 16-bit keycodes of the given buttons in the order of Up – Down – Left – Right – A – B – Select – Start – L – R. If you have problems accessing the menu, download this file and copy it in the root directory of your PDA.

If this button assignment is not optimal with you and you can't access the menubar either, you will need to get a hexadecimal editor and edit Keys.cfg. It's much easier than you think: you just change the one-byte keycodes at the given position to another one. No problem if you mess up the file; you won't kill your PDA.

The following must be known about the keycodes in Pocket PC's: the standard four application button and D-Pad (the latter with the Action button) keycodes are as follows (these are all in decimal):

ButtonKeycode
Calendar193
Contacts194
Pocket Inbox (c2i on F-S devices)195
iTask (Today on F-S devices)196
Left37
Up38
Right39
Down40
Action13

These keycodes are the same on all Pocket PC's. With Pocket PC's more than four hardware buttons, the other buttons are numbered starting with 197. For example, on old iPAQ's with an additional Record button at the left side, it has the keycode 197. On Pocket PC's with two additional buttons (for example, the Pocket Loox 7xx), they will have the keycode 197 and 198 (with the Loox, the latter being the keycode of the Record button on the right). Also note that the jog dial (if present) has the keycodes of Up/Down/Action. I haven't elaborated on the keycodes of press-and-hold keys on, say, the Pocket Loox 7xx series as the two additional keys on the Pocket Loox is perfectly enough for configuring all original GBA buttons.

Here's a screenshot after assigning all the four hardware buttons + the D-Pad to these keys on an iPAQ 2210. As can be seen, the five (taking into the Action button into account) hardware buttons of the iPAQ 2210 aren't sufficient for a full mapping; this is why I've left the seldom-used Right button unmapped (it's mapped in the Keys.cfg I've provided to key 197 - that is, the first additional key). Again, there're no on-screen buttons in PocketAdvance to overcome this limitation.

Note that the emulator doesn't have an English homepage (he has no time to maintain it), only a Korean one. You can reach its author via a PocketGamer account (or directly via tylor5 AT hanmail.net ); see this thread to be able to contact him via PocketGamer.

More (albeit pretty outdated) information can be found in this, this and this threads.

VBAdvanceCE

I, along with a lot of other people, haven't been able to make this emulator work with any of my test 32, 64 and 256 Mbit ROM images (it exists right after selecting the ROM file to load – tested on the Pocket Loox 720, the iPAQ 2210 and the x51v) and, therefore, couldn't test it. It, however, is pretty old and doesn't offer much, speed-wise. It has no sound support either. The latest version, 0.10 (last touched on 2005/05/01) can be downloaded here (also see this page). It, unlike all the other three apps, doesn't support PPC2k2. (Not that there were any point in running GBA emulators on PPC2k2 devices: they are really slow: for example, the otherwise pretty quick iPAQ 3660 is about two times slower at emulating GBA than even the iPAQ 2210.)

Verdict & recommendation

First, go for PocketGBA. If you have some time, you can also give a try to MorphGear but I'm pretty sure you'll prefer PocketGBA over it unless you also want to have emulators of other consoles too. Then, MorphGear may become a decent alternative (but, again, not strictly at GBA emulation).

Important note

None of the emulators are able to run 32Mbyte (256 Mbit) ROM's (I've tested them with a 32M ROM image (Shamu's Deep Sea Adventures) too), not even on devices with plenty of free RAM (the Pocket Loox had about 120 Mbytes of RAM free). See the results and the screenshots in the two rows starting with "32M ROM test" in the comparison chart.

Comparison chart

Finally, a comparison chart with extensive benchmarking data. As can clearly be seen, PocketGBA clearly outperforms both MorphGear and PocketAdvance:

Emulator:PocketGBAMorphGearPocketAdvance
PricefreeMorphGear itself is free; GBA module is $20free
Op. system compliancePPC2k2+; tested on iPAQ 3660, 2210 and Pocket Loox 720 (PL720).PPC2k - WM2003SE for sure; tested on iPAQ 2210 and PL720PPC2k - WM2003SE for sure; tested on iPAQ 3660, 2210 and PL720. Has problems with the menubar on VGA devices.
WM5 compliance+++; menubar not shown during game
32M ROM test (x50v WM5)-; no error messages shown--
32M ROM test (WM2003SE PL720)-; no error messages shown (24M max.)-; as can be seen on this MG console screenshot, there was more than enough dynamic RAM (64M) for this test-
VGA complianceNot compatible with native VGA (clicks registered in upper left quarter); SE VGA is OKFlawless; also in native VGA mode.Not flawless - see the lack of the menus on the menu bar
On-screen controller+ on QVGA devices; invisible on WM2003SE Pocket Loox 720, visible on WM5 x51v+-
Hardware button assignment+; all HW buttons usable+; all HW buttons usable+; all HW buttons usable
Full screeen mode-; you can, however, switch to landscape mode ("Vertical drawing"). On VGA devices, the screen occupies the entire width of the screen.+, excellent; ~95% speed-
Sound++; definitely worse than in PocketGBA-
F-14 Tomcat briefing screen2f skip (default), no sound: x51v WM5: 109-110%; iPAQ 2210: 86-87%; PL720: 108-109%; iPAQ 3660: 38-40%;No sound: iPAQ 2210: 40/60 fps (fskip 3; 100% view); 38/60 fps (fskip 3; Window size streching); 36-37/60 fps (fskip 2, 100%). PL720: 52/60 (100%), 49-50/60 (100%, Window size streching)iPAQ 2210: 62-64%; iPAQ 3660: 29-32%; PL720: 88-92%
Mario Kart Advance (J)68% w/ sound, 80% w/o sound; latter perfectly playable (iPAQ 2210: 48%; with 4 frames skipping: 66%; no sound: 73%)38/60 w/ (very bad) sound; 43/60 w/o it (both measured without CPU throttle enabled and normal priority)n/t
Castlevania - Circle Of The Moon85-95%n/tn/t
F-14 Tomcat110%; w/ sound: 98%; very good with sound!53/60 fps with 11 kHz sound, CPU throttle enabled and 'higher than average' priorityn/t
Super Mario Advance85%n/tn/t

Other threads/articles on this subject

GBA Emulator roundup from PDA Game Guide.com – this was the only really worthful article on GBA emulators I could find. Note that it's pretty outdated; for example, its MG section contains a lot of stuff that is no longer topical. Also, times have really been changed in the meantime: PocketAdvance is in no way the fastest emulator any more.

An old PDArcade thread (note that this thread is pretty old too; for example, PocketGBA now supports sound).

AximSite - The state of GBA emulation -- best emu?

Is there a working gba emulater for the axim x51v

PDAi - What Is The Best Gba Emulator?

Problems with FF Tactics on PocketAdvance (it's mostly on the legal status of GBA emulation – this is why I recommend it).

EDIT (Apr/18/2006): a new version of PocketGBA has just been released - now, with 32Mbyte cartridge support. Please see this for more info.

UPDATE (06/01/2006): a new version has been released in the meatime. Make sure you upgrade to it!

Werner Ruotsalainen's picture

Both MG and PocketGBA are WM5-compatible. On a 195 MHz Pocket PC most games would be pretty sluggish; that is, I don't think you'd enjoy playing them.

Syndicate content