Bluetooth Guide

MeBoy 2.0 adds support for transferring savegames between phones and to/from a PC (using MeBoyBuilder.jar). MeBoy supports 2 kinds of savegames, and they are transferred separately:

Both cart-RAM and suspended games can be transferred via Bluetooth. Suspended games are added to the list, but since there is only one copy of cart-RAM per game, it's overwritten when received. Beware: If you resume a suspended game, it will also overwrite the cart-RAM for that game.

To transfer a savegame, follow these instructions:

  1. On the receiving phone: Select "Bluetooth"->"Receive savegame". Your phone will probably ask you if you allow the application to use Bluetooth, so select "Allow" or similar. The phone is now waiting for a savegame.
  2. On the sending phone: Select "Bluetooth" and the preferred send command. Select the savegame you want to transfer. MeBoy will start looking for other devices, which takes a few seconds. Select the device you want to send to. You'll probably have to give permission for MeBoy to use Bluetooth, so do that. MeBoy will now transfer the savegame.
If you want to transfer savegames to/from a PC, launch MeBoyBuilder.jar and click "Bluetooth". MeBoyBuilder is immediately ready to receive a savegame, and also starts looking for phones to send savegames to. When they show up in the window, you can select them and click "Send savegame". Bluetooth support in MeBoyBuilder uses the opensource BlueCove library.

There is no "standard" file format for savegames, but the cart-RAM is compatible with some other emulators, and use the file name extension ".sav". The suspended games rely heavily on the implementation details of MeBoy, and are not compatible with other emulators, and use the file name extension ".meboy".

Troubleshooting

There are many things that can go wrong with Bluetooth, here are the most common ones:

Problem: There's no "Bluetooth" in the main menu of MeBoy. You phone does not support Bluetooth access from Java ("JSR 82"). See here for details.

Problem: "No Bluetooth devices found." Check that Bluetooth is enabled on both phones, and that you set up the receiving phone first. Even if you do this correctly, you may have to try 2 or 3 times. If this problem persists, one of the phones probably has a Java-Bluetooth implementation that is not compatible with other phone, or with MeBoy.

Problem: "Could not connect to MeBoy on the device." The phones could find each other, but MeBoy could not connect. Check that the receiving phone is waiting to receive a savegame. Even if you do this correctly, you may have to try 2 or 3 times. If this problem persists, one of the phones probably has a Java-Bluetooth implementation that is not compatible with other phone, or with MeBoy.

Problem: "The savegame could not be received because it does not match any installed game." When MeBoy receives a savegame, it must match it to one of the installed games. If it can find no match, it will not accept the savegame. Between 2 phones, this is done using the unique cartridge identifier, so even if you have changed the game name on one phone, it should work correctly. When transferring a cart-RAM between a PC and MeBoy, you'll need to match the file name exactly, otherwise MeBoy will not be able to match the game.

Problem: The "Bluetooth" button is disabled in MeBoyBuilder. If your PC does not support Bluetooth, or has a Bluetooth implementation that's not compatible with BlueCove, the Bluetooth button will be disabled, since MeBoyBuilder needs BlueCove to use Bluetooth.

Problem: Selecting Bluetooth in the main menu of MeBoy 2.0 does nothing. You phone probably does not support JSR 82 (see here for details). A "bug" in MeBoy 2.0 is that it does not hide the Bluetooth menu item if Bluetooth is not supported, but 2.1 fixes this.

Not every problem is listed above, but those are the ones I know how to solve or explain. Some problems are transient, and trying 2 or 3 times solves them, whereas others are persistent. There are unfortunately too many subtle things that can go wrong in the interaction between two phones, their Bluetooth support and Java versions.