mGBA and Dolphin Connectivity

Connecting multiple emulators together is a complicated and difficult task. This task becomes even more difficult when you consider connecting two different emulators together. You have to understand two different consoles, how these systems communicate with each other, adapt to latency restrictions, and have expertise across two different projects. In the case of GameCube to Game Boy Advance connectivity, we are incredibly lucky to have had talented developers from both GBA and GameCube circles create our current protocol for supporting "GBA" controllers. Dolphin's GBA connectivity has stagnated for some time with no major additions in well over half a decade. Recently, that has started to change as a second emulator has added support for connecting to Dolphin: mGBA! With the latest mGBA releases, you can now use the "Connect to Dolphin" feature to do just that! In addition, mGBA's lead developer endrift has added some key fixes on Dolphin's side that improves stability when connecting with any supported GBA emulator.


We test drive mGBA with Dolphin to see how various games perform!

mGBA support is immediate on Dolphin's side and even goes back to older builds. However, some new fixes are only available in the latest development builds, which will improve connectivity and stability in some of the more problematic titles. These fixes affect both VBA-M and mGBA, however, mGBA has some new features and feedback that simplifies GBA connectivity for the end user.

mGBA and Dolphin

For those that don't know, mGBA is an actively developed Game Boy Advance emulator primarily developed by endrift. It has a plethora of features and has become the gold standard for quality Game Boy Advance emulation. With support for the Solar Sensor, e-Reader, tilt sensors and GBA linking, it was only a matter of time before they tackled GameCube linking. To that end, endrift has contributed improvements to the GBA <-> GCN protocol on Dolphin's side in preparation for adding support to mGBA. Unfortunately, this has been delayed several times because emulating the GBA is a big enough task on its own without worrying about connecting to a completely different system.

mGBA has a simple GUI for connecting to Dolphin that even provides feedback on if the emulators are able to connect or if there are problems. This makes troubleshooting easier, especially when sometimes it's hard to know if the game is being troublesome or if the emulators haven't even connected. You can also manually connect or disconnect at any time, which can help with connecting to fickle games that don't like to work on the first try.

It really is that easy.

In most games, there's very little noticeable difference between either of the supported emulators. Nonetheless, mGBA's better emulation plays an especially important role in one particular game - The Legend of Zelda: Four Swords Plus. This is the Japanese version of The Legend of Zelda: Four Swords Adventures and features a special game mode called Navi Trackers. This Wind Waker themed bonus mode requires GBA connectivity as each player has their own screen with the main screen being used for commentary, events, and an overview of the map. This fast paced party game has players racing across a multitude of maps with Tetra and other characters from Wind Waker fully voiced and commenting on their progress. It's a very different experience from the standard The Legend of Zelda: Four Swords Adventures and stands out as one of the more unique games to make use of GBA connectivity.

VBA-M connects fine; however the GBA audio does not work properly. You end up with loud hums and nothing really intelligible, forcing you to mute the GBA emulator for a reasonable experience. This issue is completely resolved with mGBA and you are able to play rounds of Navi Trackers without any issues!

Navi Trackers is packed with minigames.
Win them for items to give you an edge in the main competition!
On the big screen, players compete on the same map to track down the crew, all fully voice acted and narrated by Tetra and other characters from Wind Waker.
Race on your own screen against other players.
You can even attack other players to give yourself an edge.

mGBA's easy to use connection GUI also comes into play with Pokemon Colosseum and Pokemon XD: Gale of Darkness! Due to problems with our GBA connection protocol, it's fairly difficult to get them to connect or even know when the GBA emulator is connected. By knowing when the emulators are actually communicating, it's easier to get these games to connect once in a while. We're continuing to investigate these connectivity issues to improve the situation regardless of what emulator you choose, but for now we do know they at least can connect.

Connecting to trade is harder than connecting to battle due to the lack of a retry connection option.

endrift has also worked on both sides of GBA <-> GCN connectivity to try and make Final Fantasy Crystal Chronicles work correctly. We're pleased to announce that we've got it connecting most of the time with mGBA. That isn't to say everything is fixed. The game still tends to drop inputs especially when the map is open or during transitions. If you switch away to a different menu, the game is playable though very technically demanding.

Having the map screen open causes input issues...
But they do provide helpful information.

The Future of GBA <-> GCN

At this point, it's safe to say we're reaching the limits of the current protocol. There are a lot of issues, hitches, and stutters that are simply a result of the protocol being insufficient for what we need. A good example of this is in The Legend of Zelda: The Wind Waker, where it will lag heavily when you connect a GBA before activating the Tingle Tuner. This is because the protocol has no way to differentiate between the GBA game itself being disconnected and other latency or lag issues. The lag disappears once the game is communicating with the GBA, but this can be a bit annoying. Other bugs, like Final Fantasy Crystal Chronicles input drops likely stem from other bugs in the communication protocol.

Latency is a big problem with the current protocol. We currently use TCP to communicate between the emulators. Since TCP works over the internet, this does mean you can actually connect a GBA emulator from a different computer to Dolphin to get an approximation of the original experience!... In theory. TCP has a base overhead that causes there to be enough latency that some games have trouble connecting or remaining full speed while connected even when run on the same computer. This is more noticeable in Windows than Linux, but it should go without saying that once you start adding in actual network latency the system doesn't work very well right now.

The good news is that we have a plan, one that goes beyond simply making adjustments to the current situation. By more closely integrating the emulators, we'll be able to achieve better latency and hook mGBA up with features like savestates, netplay, and more. If everything pans out, we may even be able to tackle the final frontier of Game Boy Advance <-> GameCube emulation...

Current Compatibility List

This is a list of titles tested with mGBA 0.9.1 and VBA-M 2.1.4 and the latest version of Dolphin as of this post. Other titles may work, but were not tested.

フォーラムでこの記事に対する反応を見る。

前の記事

内容の近い記事