Q: Can I upgrade MeBoy without losing my saved games?
A: Yes. The following works for most phones I know about, but I can't guarantee it will work on yours (if it doesn't work for your phone, please let me know):
Run the new MeBoyBuilder.jar, adding the same ROM files (and with the same filenames) as the previous time. Install the new MeBoy.jar file on the phone.
DO *NOT* UNINSTALL THE OLD VERSION BEFORE INSTALLING THE NEW VERSION. Most phones will remove all settings, including saved games, if you uninstall MeBoy. Instead, let the phone automatically replace the old version when you install the new version.
MeBoy 2.0 and later use a new savegame format, but they will upgrade savegames from version 1.3 or later, which in most cases should happen automatically. If you have not included the same ROM files in the MeBoy 2.x jar file, the missing games' savegames will not be upgraded. However, if you "upgrade" again to version 2.x with the additional games, the remaining savegames will be upgraded and added to the list.
Make sure to not rename the ROM files between updates, or MeBoy will think that you've added different files. (Using "Rename" in MeBoyBuilder is fine, as long as you don't change the name of the actual file.)
Q: MeBoy doesn't work on my phone. Can you help me?
A: I don't have the means to test MeBoy on different phone models, so I can't help regarding specific phone models or error messages. Even if your phone model is listed as compatible in the list, I have not verified that information, and the submitter could have made an error.
Here are the common problems I know how to solve:
If your phone doesn't let you install MeBoy, one reason can be that the .jar file is too big. Most of the size is the games you have included, so try to include only one, small game and see if it helps. Notably, most Nokia phones have a 1MB limit for jar files. Please see My Nokia phone limits jar files... below.
One common problem is that your phone may not have enough memory for MeBoy. You can also go to "Settings" and change the "Max loaded cart size kB" to a smaller value, such as 320. This reduces the amount of memory MeBoy uses.
Another issue could be that your phone does not support some optional Java features that MeBoy 2.0 and later use. If so, you can give MeBoy 1.6 a try.
If none of these suggestions work for you, I'm afraid MeBoy is just not compatible with your phone.
Q: [Game] crashes/freezes/doesn't start. Can you help me?
A: Unfortunately, MeBoy doesn't perfectly emulate the Gameboy hardware, although I try to get as close as I can. Most games work, but some use special features that MeBoy doesn't emulate, or features that MeBoy only emulates approximately. In general is no setting or similar that you can change to make a non-working game work (but see the previous question in case the problem is between MeBoy and your phone).
One difference between MeBoy and a real Gameboy is that MeBoy takes certain "shortcuts" in order to improve performance, at the expense of correctness. For instance, all graphics is drawn in blocks of 8x8 pixels with simplified "layering" techniques, because it is faster than handling pixels one at a time and usually gives correct (or almost correct) results. (The 8x8 blocks are not used in the "Advanced graphics" setting.) Shortcuts in the CPU emulation are usually less visible and for the most part harmless, but they can lead to bugs and crashes in certain games.
Also, MeBoy likely differs from a real Gameboy due to programming mistakes, or because I have misunderstood how a certain aspect of the hardware should be emulated.
Unfortunately, a common result of MeBoy shortcuts/bugs is that some byte in the Gameboy's memory gets the wrong value, but the game will run seemingly correctly for seconds or even minutes, until suddenly it crashes or behaves strangely. This makes it very hard to find and correct bugs, because they can be in completely different parts of the code from where the crash eventually happens.
If a game doesn't work, feel free to update the game compatibility list and explain what happens.
Q: My Nokia phone limits jar files to 1 MB - can I get around that?
A: Yes, there are 2 ways to do that:
First, if you want to include many small games, you can install multiple copies of MeBoy by selecting a different name than MeBoy.jar when creating the file in MeBoyBuilder. You will get a warning that savegames and settings are not shared between the different versions, but if you accept your custom filename, you can install as many different MeBoys as you want on your phone. (Unfortunately, this does not help for games that are 2MB or more, so read on.)
Alternatively, you can check out MeBoy-F, which is a modified version of MeBoy. It's written by kFYatek and it allows you to store the ROM files on the phone's filesystem, so the jar file itself is very small. Please see the above link for details. (Note that MeBoy-F requires that your phone supports "JSR-75" aka. FileConnection, which was rare when MeBoy was first written, but is very common now.)
Q: How do I use the savegames with an emulator on my PC, such as VisualBoyAdvance?
A: First, transfer the cart-RAM to your PC using Bluetooth (see the guide). Please note that suspended games (with extension ".meboy") are not compatible with other emulators. Also, please note that Bluetooth support is required to transfer savegames (although I hope to eventually support other methods).
After transferring the cart-RAM, put the file (extension ".sav") in the same directory as your ".gb" or ".gbc" file, with the same filename before the dot. Then open the ".gb"/".gbc" file from VisualBoyAdvance, and it should load the savegame.
Please note that if you send a ".sav" file to MeBoy, you need to start the game with "New Game", not "Resume Game". If you use "Resume Game", the cart-RAM from the suspended game will overwrite any other cart-RAM.
Unfortunately, not all ".sav" files are compatible with MeBoy. See the next question.
Q: MeBoy tells me "The file you selected is not a valid savegame file". Why is that?
A: There are several file formats all using the extension ".sav". MeBoy/MeBoyBuilder only understands one of them, and if your ".sav" file is of a different format, MeBoyBuilder will reject it as "not valid". In particular, VisualBoy Advance uses different formats for games with and without "real time clock" (and MeBoy only understands the format without "real time clock").
I'll try to make MeBoyBuilder understand more different formats in a future version.
Q: Can you make a version that emulates the "Link cable" by using Bluetooth?
A: Unfortunately, that's impossible due to the differences between how the Link cable and Bluetooth works.
Specifically, Bluetooth is made for sending relatively large chunks of data, but the Link cable sends only a single byte at a time. As a result, only about 10-15 bytes per second can be transmitted, compared to 1,000 bytes for real Gameboys, or up to 65,000 bytes for Gameboy Colors.
As an example, when starting a 2-player game, Tetris sends 350 bytes in less than 1 second on real Gameboys, but it would take about half a minute for MeBoy using Bluetooth. The game itself would of course also run much much slower than on a real Gameboy.
Q: Can you make MeBoy emulate the Super Gameboy color mode?
A: Unfortunately, the way Super Gameboy handles colors is very different from how Gameboy Color does it, and it's not straightforward to add Super Gameboy support to MeBoy, because of the different implementations.
Q: Can you make a version that supports GameShark?
A: Maybe later, but not now. I plan on emulating all possible aspects of the real Gameboy before emulating accessories.
Q: Why is there no sound?
A: MeBoy supports sound since version 2.0, but you need to turn it on in the Settings screen. Also make sure your phone is not in "silent" mode.
If you have turned on the "Experimental features" in the MeBoy sound settings, your phone must support the "Square wave" MIDI instrument to make a sound, so try turning off the "Experimental features" if you're not sure.
If you still don't get any sound, your phone probably doesn't support the optional Java functions MeBoy uses for playing sounds ("JSR 135: Mobile Media API"). If so, there's nothing you can do to get sound to work on your phone.
Q: I have a phone with a touchscreen, and MeBoy doesn't work (well) on it. Can you make a touchscreen-optimized version?
A: Sorry, no. I don't have a touchscreen phone with J2ME myself, so I'm not able to develop a good touch-based user interface. On the other hand, MeBoy is open source, so if you know (or are!) a deveoper with such a phone, please feel free to make a touchscreen-optimized version (and let me know so I can link to it!)
Q: MeBoy tells me a java.lang.NoClassDefFoundError has happened, what is that?
A: See the info about MeBoy 1.6.
Q: MeBoyBuilder doesn't run on my computer. Can you help me?
A: If you run Windows, the most likely cause is that your system doesn't have the correct settings for the ".jar" file. Please see here for a discussion about this problem.
Q: When is the next version coming?
A: I don't know. I don't have a schedule for working on (or releasing) MeBoy, and the amount of time I spend on it very much depends on how much else is going on in my life. I do have plans for future releases, but I can't say when the next version is coming, and what features will be included. On average, I've released 2 new versions per year so far.
Q: Are there any plans for supporting Gameboy Advance/Nintendo DS games?
A: No. I believe that for the forseeable future, those systems will be too powerful to emulate at any reasonable speed using Mobile Java. There is a GBA emulator for J2ME is called iGBA (link to Russian forum post), but even on modern phones it doesn't run fast enough to play games.
Q: Where can I find ROM files?
A: You can find noncommercial ROMs here: pdroms.de. (If this doesn't answer your question, please don't ask again.)
Q: My question is not in this list. How do I contact you?
A: I'm currently not working on MeBoy (which includes responding to email), so you can't send me email. Sorry.