The Legend of Zelda: Four Swords Adventures

The Legend of Zelda: Four Swords Adventures is a video game in Nintendo's The Legend of Zelda series. It was released for the Nintendo GameCube in Japan on March 18, 2004; in North America on June 7, 2004; in Europe on January 7, 2005; and in Australia on April 7, 2005. The Game Boy Advance hand held game console can be used as a controller when using the Nintendo GameCube Game Boy Advance Cable bundled with the game.

Game Boy Player
Game Boy connection support can be supported via joybus emulation. Such requires VBA-M (r947 or newer) and a dump of GBA BIOS (see here for an excellent dump guide). To connect GBA:
 * 1) Launch Dolphin, start Legend of Zelda: Four Swords Adventures and choose multiplayer;
 * 2) While in connection screen, in Dolphin, go to Config => GameCube and change the controller ports to GBA;
 * 3) 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)
 * 4) 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.

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.

Freeze
Game can sometimes freeze up.

Moon Gate Crash
The game crashes when entering a Moon Gate, or operates very slowly under some versions. Can be resolved by enabling, Skip CPU EFB Access.

Can't Hold Button
In the game, there are events that require holding a button such as pulling a switch. It may not be possible to hold it for long enough because the button press is disrupted among frames. This problem can be avoided by disabling "idle skipping" in the configuration or by using VBA-M as the controller.

Pixel Shader from Byte Code
With and likely other revisions, restarting the game after play has started will generate the warning "CreatePixelShaderFromByteCode failed at Src\D3DShader.cpp 151".

HLE Sound Hang
With DSP HLE enabled, when the frame rate is below 60 FPS sometimes one soundtrack will loop or hang causing all other sounds to be muted. Refer. To avoid this, use DSP LLE. Fixed by.

Z-Order/Transparency Issues
Some sprites, primarily trees, are not ordered/transparent appropriately and layer on top of the player sprites. Refer. Fixed in.

Odd Glitches
Odd rendering glitches sometimes occur. Fixed recently likely in.

GBA Link Crash at Menu in Navi's Trackers mode (Japanese version)
Using Dolphin and VBA-M as detailed above, one can connect a GBA as a controller in Navi's Trackers mode exclusive to the Japanese version of the game. Connecting at least one GBA makes the game proceed, with Tetra presenting a tutorial followed by a stage select. The GBA screen tells you to look at TV, and disconnecting causes the game to go back to the "awaiting GBA connection" screen with Tetra. Once you select one stage, you're asked to write your name and focus is lost from TV. When you do, the GBA screen tells you to look at TV, yet the focus isn't back.

The game hangs effectively here, but with animations and music still running both on GBA and GC. The game won't respond if you disconnect a GBA at this stage. This bug makes reaching in-game in Navi Trackers mode with the Dolphin/VBA-M impossible.