MeBoy | Sudoku | WormWars | Applets | Midlets | Misc |
MeBoy in action

MeBoy is a Gameboy emulator for mobile phones (which means you can use it to play Gameboy games on a mobile phone). It only works on phones with support for Java Micro Edition, specifically MIDP 2.0. (Your phone manufacturer's web site can tell you if this includes your phone.)

Unfortunately, neither of the components (emulation, Java, and mobile phones) is known as being very fast, and putting them all together doesn't help either. MeBoy is very optimized however, and the speed depends on the processor inside your phone, which may or may not be fast enough. MeBoy also needs at least 120kB memory for the emulator, plus the size of the ROM file. Since the Gameboy has a screen with 160x144 pixels, MeBoy needs that as well.

You need a ROM file for the game you want to play. A ROM file contains the information from the game cartridge. Commercial ROMs can be found on various sites around the net, and may or may not be legal to download in your jurisdiction. Noncommercial ROMs are available as well.

Since mobile phones don't handle files in the same way computers do, you must include the ROM files in the game's ".jar" file before playing. Don't worry though, MeBoyBuilder makes it easy:

  1. Make sure you have Java installed on your computer.
  2. Download and run MeBoyBuilder.jar.
  3. In the file dialogs, select ROM files you want to include, then hit Cancel after the last ROM.
  4. The file MeBoy.jar has been created for you (in the same directory as MeBoyBuilder.jar). Copy it to your phone.

MeBoy is a port of JavaBoy by Neil Millstone, which is a Java-based Gameboy emulator for PCs.

Speed

The primary reason MeBoy is slower than most Gameboy emulators for Symbian phones is that it's an emulator (for Gameboy) inside an emulator (for Java). There is a lot of overhead in each step, and MeBoy can only control and optimize the Gameboy-to-Java step. (On the flip side, using Java means MeBoy can run on more phones.)

However, MeBoy is much faster than MJavaBoy (which is another JavaBoy port), and it can play several puzzle games adequately on a Sony Ericsson k700i (my "reference platform"). With the default frame skip (3), it can play simpler action games like Super Mario Land and Dr. Mario at around 60-100% of actual speed (75-80% typical), and more advanced games such as Zelda IV at around 30-40% of actual speed.

Since the CPU and graphics chip in a real Gameboy run (more or less) independently, the frame skip setting can be used to control how many of the screen redraws (frames) to skip between actually drawing to the screen. Higher values will result in jerkier but faster emulation. The real Gameboy draws 60 frames per second (fps), so MeBoy with frame skip set to 3 will draw (at least) every fourth frame. If possible, more frames are drawn, but never less. Instead, the emulation will run slower.

MeBoy has a performance issue with games fading the screen, since this wreaks havoc on the image drawing code. This is probably something that will remain, because any alternative would slow down the non-fading graphics routines too much.

Compatibility

Phones that have successfully run MeBoy: Sony Ericsson D750i, K700i, K750i, K800i, S700i, W800i, and (buggy) W550i.

Phones that have failed to run MeBoy: Siemens C75 (will not install), Sony Ericsson z530i.

Saving

MeBoy supports games with battery-backed memory. MeBoy also supports saving at an arbitrary point in a game, by using the Suspend command. The emulator will pause and save a "snapshot" of your progress in the game, and can restore that when you select Resume on the Select Game screen.

Known bugs/limitations

Source code

The source for MeBoy is available under the GPL. Please note that you will need a development kit for Java 2 Micro Edition (as opposed to the more common Java 2 Standard Edition) to compile it. J2ME development kits are available from Sun, the MeBoy source is linked below.

Version History

Version 1.1 - 2 nov 2005 (source, jar)

Version 1.0 - 22 jul 2005 (source, jar)