Released in 1989, the Game Boy version of Tetris is notable for being the first game to support multiplayer via the so-called “Game Link Cable” accessory. So it’s fitting that, 32 years later, that same game is now playable with others over the Internet thanks to an open source USB adapter from [stacksmashing].
As explained in the video below, the adapter is essentially just a Raspberry Pi Pico paired with some level shifters so that it can talk to the Game Boy’s link port. That said, the custom PCB does implement some very clever edge connectors that let you plug it right into the Link Cable for the original “brick” Game Boy as well as the later Color and Advance variants. This keeps you from having to cut up a Link Cable just to get a male end, which is what [stacksmashing] had to do during the prototyping phase.
Of course, the hardware is only one half of the equation. There’s also an open source software stack which includes a Python server and WebUSB frontend that handles communicating with the Game Boy and connecting players. While the original game only supported a two person head-to-head mode, the relatively simplistic nature of the multiplayer gameplay allowed [stacksmashing] to expand that to an arbitrary number of players with his code. The core rules haven’t changed, and each client Game Boy still thinks it’s in a two player match, but the web interface will show the progress of other players and who ends up on top at the end.
To be clear, this isn’t some transparent Link Cable to TCP/IP solution. While something like that could potentially be possible with the hardware, as of right now, the software [stacksmashing] has put together only works for Tetris. So if you want to battle Pokemon over the net, you’ll have to do your own reverse engineering (or at least wait for somebody else to inevitably do it).
The Link Cable port on the Game Boy, especially on the later versions of the hardware, is a surprisingly versatile interface capable of much more than just multiplayer gaming. While we’re certainly keen to see [stacksmashing] develop this project farther, we’re equally excited to see the non-gaming applications of such an easy to use computer interface for the iconic handheld.
[Thanks to Mark for the tip.]
Fantastic! And honestly I’d love to see it updated for use with Pokemon, especially if it could talk to the 3DS virtual console ports of the games, but I imagine that’s tricky. I found an emulator that was supposed to have virtual link cable support, but trying to trade or battle pokemon with it always resulted in getting corrupt data…
It’s my understanding that GB Pokemon games are very time/latency sensitive for it’s link coms, so this is unlikely to work in that case. In fact i the the 3ds versions replaced the link code with it’s own because of this.
Still waiting for S.t.a.l.k.e.r COOP mod
Could this be used to connect a GBA to a PC and use it with an emulated four swords adventure (with dolphin emulator)? It would be a lot better then using a GBA emulator and having multiple windows open.