Integrated GBA

Since, Dolphin has the ability to run its own instances of mGBA directly. These mGBA instances can connect to GameCube games in a deterministic and consistent matter, that allows for full compatibility among GBA <-> GCN connectivity titles. Unlike TCP GBAs, no external emulator is necessary. This feature is currently only supported on Desktop versions of Dolphin.

Introduction and Handling the Integrated GBA
Games connect to an Integrated GBA in many different ways. Regardless of how the game connects to the Integrated GBA, a GBA BIOS is required. It can be configured in the Options -> Configuration -> GameCube tab under "GBA Settings". You must also configure the Integrated GBA to a controller port, however this can be done at any point. If the game requires input from the Integrated GBA, you may need to configure the Integrated GBA's controls to an input device. The Integrated GBA has an in-game menu you can access by right-clicking the Integrated GBA window, which allows for changing various things while running the game, including resetting the GBA and loading different GBA roms, GBA savestates, and more. GBA savestates are compatible with mGBA, and you can even load savestates from mGBA into the Integrated GBA. A similar version of mGBA to the one in the Integrated GBA may be required.

Connecting games that communicate to a GBA with no Game
Many GBA connnectivity GCN titles simply connect to a GBA. If you've followed the previous instructions and configured the BIOS, this is a relatively simple process.


 * Proceed in the game to the point in which it's time to connect a GBA. Many times this is enough to get connectivity started.
 * If connectivity does not automatically start, you may need to reset the Integrated GBA to restart the BIOS.
 * If the game can connect multiple GBAs, simply configure as many GBAs as needed in the same manner.

Examples


 * Animal Crossing
 * Crash Bandicoot: Wrath of Cortex
 * Mega Man X: Command Mission
 * Nintendo Puzzle Collection
 * Star Wars: Rogue Squadron III
 * The Legend of Zelda: Four Swords Adventures
 * The Legend of Zelda: The Wind Waker

Connecting games that communicate with specific GBA games
Connecting to specific GBA games is also possible, but adds some complications. For typical setting a default GBA game for each port, you can use the GBA Settings menu under Options -> Configuration -> GameCube. Otherwise, the process is remarkably similar.


 * Proceed to the point in the game where the GameCube title wants you to connect the Integrated GBA.
 * If the game does not automatically connect, simply reset the Integrated GBA and follow instructions from the GameCube title.

Managing Save Files for GBA Games in Dolphin
If a GameCube game interacts with a GBA game in the manner where the GBA game needs savedata, it's entirely possible to configure one or more savefiles to work in Dolphin. Dolphin's Integrated GBA will automatically create savefiles if you play the game directly in Dolphin, but if you wish to move around savefiles or use a savefile from a regular GBA emulator, there is a simple naming scheme difference. Most GBA emulators have GBA save data as the name of the rom.sav. So if I have a rom named "PokemonSapphire.gba", my savefile would be "PokemonSapphire.sav". This will not work out of the box with Dolphin, as it's missing a key piece of data - the port number! If you are loading "PokemonSapphire.gba" into GameCube controller slot 2, then you need to affix a "-2" to the end of the savefile. This will make it "PokemonSapphire-2.gba" This rule applies to each controller port, -1 through -4. This means if you are trading pokemon between two instances of the same ROM, they can each have different savefiles.

Examples


 * Pokemon Box
 * Pokemon Colosseum
 * Pokemon XD: Gale of Darkness
 * Sonic Adventure
 * Sonic Adventure 2

Save Locations
You have two options for managing save files for GBA games. By default, Dolphin will bulk store GBA save files in a folder that can be set in the Options -> Configuration -> GameCube menu under the "GBA" section called "Saves". This acts much like a GCI folder, and allows users to put all of their GBA save files in one dedicated location. Dolphin can *also* store the savefile alongside the GBA ROM, much like most GBA emulators allow. To do this, simply check "Save in Same Directory as ROM" just above the Save Folder option.



The Integrated GBA and Netplay
One of the more interesting features of the Integrated GBA is that it can be used on netplay. In this setup, the Host computer controls most of what is going on, including the savefiles for Every GBA. This means if you are doing a Pokemon battle via Pokemon Colosseum or Pokemon XD, all players involved should send their GBA saves to the host, and every player must have each of the GBA games in a path that dolphin can find. The host is also responsible for renaming the savefiles to refer to each port. In order to enable GBA controllers for netplay, the must configure the netplay controllers and checkmark the "GBA" option for each port that is meant to be a GBA.

During netplay, each player is responsible for actions done on "their" GBA. This means they can reset their own GBA, change ROMs, and do other actions that may be necessary. If you're playing a game where other players are not meant to see the GBA data of each other player, make sure to enable "Hide Remote GBAs" in the Netplay options menu.

"When I start up my game, the Integrated GBA just shows a blackscreen. What did I do wrong"
Either your GBA BIOS is missing or improperly configured. Please confirm that it's working.

"My save file isn't working."
Please make sure it is correctly named for the port that the Integrated GBA is plugged into and in the correct folder based on your configuration of the GBA save folder.

"Can I run the Integrated GBA without the GameCube game?"
No, Dolphin is a GameCube emulator and the Integrated GBA is tied to GameCube emulation. If you want to run GBA games, go find a GBA emulator.

"My game is very shaky, what's going on?"
Some GBA games use interframe blending. You can enable this in Dolphin through the Integrated GBA right click menu under Interframe Blending.