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:
- Cart-RAM: This is supported for the games that, when run on a real GameBoy, support saving. This data is stored in RAM on the game cartridge ("cart"), and is sometimes referred to as "battery-backed" savegame or memory. This is automatically read and written by MeBoy when you select "New game" or "Exit".
- Suspended games: Produced by selecting "Suspend" while playing a game, and support saving even for games that don't support cart-RAM. Suspended games have no counterpart in a real GameBoy.
To transfer a savegame, follow these instructions:
- 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.
- 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.
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".
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.