Emulator Issues #7098
closedGBA Connectivity Master Issue
0%
Description
For its time, The GameCube has a very unique feature of using Link Cables to connect its handheld counterpart, The Gameboy Advance, for additional game features. This feature was used mostly for additional features, transferring data and additional gameplay modes, and most of all, selling GBAs and link cables.
Usage and information:
For example, Pokemon Colosseum and XD both allowed you to battle in full 3D between two players that had GBAs. The screens kept all your battle options secret from your opponent, likely because they were too lazy to do what Pokemon Stadium 1 and 2 already perfected. Those two games and Pokemon Box also allowed you to transfer Pokemon into your Ruby, Sapphire and Emerald Pokemon games.
Wind Waker and others has the Tingle Tuner, connecting a GBA gets you extra options that enhance the main gameplay mode.
A few games used the GBA connectivity as their main hook. Four Swords Adventures and Final Fantasy: Crystal Chronicles are well known multiplayer games that use the GBAs as controllers and their extra screens for menus, notifications and even gameplay. Pacman VS and the aforementioned Pokemon Box go even further, using GBA connectivity as the sole way to play the games.
The Situation:
Due to latency concerns, it's likely impossible to connect a real GBA to dolphin. Even if we could, it'd require custom hardware for connecting and cause all kinds of headaches. The solution to that, of course, is to use a GBA emulator. As of this post, VBA-M can connect to dolphin, and a couple of the games that use these features work relatively well, and a few more at least connect.
Unfortunately, there are far more games with problems and even more that don't seem to work at all. To complicate matters further, because two emulators are involved, problems could be on both sides of the connection, VBA-M could have problems, Dolphin could have problems... or both!
The Problems:
Speed issues, in order for this issue to be closed, both emulators must run at full speed (or at least theoretically if on a fast enough computer.) Some games as of this posting run < 1 fps when set to default frame limiters. Messing around may improve, but never totally fix. Another example is if it requires one emulator to run far above full speed for the other to reach full speed.
Disconnection issues. It is not acceptable for the GBA Emulator to lose connection to dolphin.
Failure to connect issues. The GBA emulator or Dolphin lock up upon connecting to one another.
Further Information and Data
A total list of games that use the GBA Link Cable can be found here: https://wiki.dolphin-emu.org/index.php?title=Category:Game_Boy_Advance_%28Input_supported%29
A guide to connecting VBA-M to Dolphin (Edited from the Working Guide on the Wiki)
Game Boy connection support can be supported via joybus emulation. Such requires VBA-M (r947 or newer, latest should work) and a dump of GBA BIOS.
http://pastie.org/private/eojcrxqonhg35mziejka
1: Launch Dolphin and start the game you intending to play. Get to the point at which it prompts you to connect the GBA; or if it just intends it to be connected all along, just keep the game running.
2: In Dolphin, go to Config => GameCube and change the controller ports to GBA;
Launch VBA-M, go to Options => Emulator and uncheck "Pause When Inactive". Then, go to Options => Link => Joybus options, mark "Enable Joybus Connection" and use default settings (127.0.0.1)
3: After enabling joybus in VBA-M, Dolphin will freeze (don't panic, its OK!). Now load the GBA BIOS in VBA-M, after the splash screen Dolphin will recognize the joybus link and game will detect that a GBA was connected. Depending on the game, this can take upwards of five minutes. Enabling turbo mode in VBA-M and Dolphin (no frame limiter) can speed this up.
To connect other GBAs, just open another instance of VBA-M and repeat last instruction. Remember to unblock Dolphin and VBA-M in your firewall, some may block joybus link, leaving Dolphin stuck in connection screen. You can also refer to this video for more details.