> I have always wondered if it's possible to run Gameboy Advance games in DS Mode (and thus access the DS mode hardware)
It is! GBARunner2 is a DS homebrew hypervisor that can run (a lot of) GBA games in DS mode [1]. It can e.g. be used to run GBA games on the Nintendo DSi, which lacked the GBA slot and AGB mode, or run GBA games directly from a DS flashcard.
> and patch the GBA Link Cable serial comms to instead use the Nintendo DS's Wi-Fi connection.
It isn't - practically at least. There have been attempts and it works as a proof of concept with special builds of GBARunner2 [2]. Sadly the game logic in almost all GBA games does not appear to accept the huge added latency for wireless connections, compared to the almost nonexisting latency for a serial cable. This is also a problem for GBA emulators like mGBA, which only support game linking on the same computer and not e.g. on the network [3]. Games made only for the Link Cable (and not the niche Wireless Adapter) just can't deal with network latency.
Sounds like the easiest way to solve the problem you describe and play multiplayer Zelda Four Swords Adventure over the internet (without modifying the code itself) is for the "server" (Gamecube game) and the client (the Gameboy Advance console) to be physically closeby and then stream the (emulated) GBA and (emulated) Gamecube video output framebuffer across the internet using something like the SteamLink so that the 100ms of latency would not cause the Link Cable to timeout.
Yeah this is going to be very hard to accomplish unfortunately. I'm guessing the only possible option to do this over the internet at the moment is using Dolphin and VBA-M on the same machine and some complex streaming setup. Dolphin supports linking to the VBA-M GBA emulator, and while this link setup is prone to bugs there are reports it works with Four Swords Adventures [1].
It's 100% possible to play with all the emulators running on the same computer. I worked my way through most of game with multiple players. There was a little bit of input lag but not too bad (and the game is pretty forgiving). If you have a couple friends who are into LoZ games I definitely recommend it.
We also just embraced screen-peeking as everything was up on the same screen for everyone to see.
It was definitely a bit of a pain to set up each time. Something like a batch script that automates setting the emulators to a known-good config, configuring the controls, opening up the emulators, and starting the game would be possible and would make it a lot easier.
Yeah I've played through about 20% of Four Swords Adventures with a PC running Dolphin and 3 emulated VBA-M instances, a TV, and 3 monitors, and 3 game controllers. Once up and running it's a great experience, but requires a lot of planning and setup (just like running on real hardware).
It's a shame so few people get to play that kind of game. It's a very social experience and exactly what the Wii U was intended for.
Ooh, very cool! I remember using a very experimental emulator at some point a couple years back and it was sadly too broken to be usable (likely resource constraints?). Will have to dig up the old DS Lite and a flashcart to try this one out.
Just be aware that it sometimes requires some per game tinkering with the four different GBARunner "flavors" to get things to work, and some games have annoying problems regardless of the flavor you pick. Overall it works well enough that it's a very convenient thing to have on your DS though :)
It is! GBARunner2 is a DS homebrew hypervisor that can run (a lot of) GBA games in DS mode [1]. It can e.g. be used to run GBA games on the Nintendo DSi, which lacked the GBA slot and AGB mode, or run GBA games directly from a DS flashcard.
> and patch the GBA Link Cable serial comms to instead use the Nintendo DS's Wi-Fi connection.
It isn't - practically at least. There have been attempts and it works as a proof of concept with special builds of GBARunner2 [2]. Sadly the game logic in almost all GBA games does not appear to accept the huge added latency for wireless connections, compared to the almost nonexisting latency for a serial cable. This is also a problem for GBA emulators like mGBA, which only support game linking on the same computer and not e.g. on the network [3]. Games made only for the Link Cable (and not the niche Wireless Adapter) just can't deal with network latency.
[1]: https://wiki.gbatemp.net/wiki/GBARunner2 and https://github.com/Gericom/GBARunner2
[2]: https://wiki.gbatemp.net/wiki/GBARunner2/Link
[3]: https://github.com/mgba-emu/mgba/blob/0.8/README.md