Connecting two Game Boy Advances directly over the internet is impossible due to strict timing requirements. GB-Link solves this with a relay architecture that decouples game data from real-time link timing.

SIO Multi-Player Mode

The Game Boy Advance serial interface supports several transmission modes. GB-Link firmware emulates SIO Multi-Player Mode.

In this mode:

  • One console acts as Leader
  • Up to three others act as Followers
  • Under normal use, the Leader is determined by which plug on the link cable is used (one plug pulls a pin to ground)

The firmware allows the connected GBA to be configured dynamically as either Leader or Follower. A server can switch the connected GBA into whichever role is currently required.

The timing problem

Game Boy systems must adhere to very precise timing when exchanging link data. Direct internet connections cannot meet these requirements — packets would arrive too late and the link would desync.

The relay solution

GB-Link keeps the Game Boys in an idle communication loop, making each device appear connected to its partners. This decouples game data from strict timing:

GBA ←→ RP2040 (firmware) ←→ USB ←→ Web client ←→ Server ←→ Other player
  1. The firmware maintains the link idle state with the GBA
  2. Game data received from the GBA is relayed to the server
  3. Data from the server is forwarded back to the GBA
  4. The GBA never knows its partner is across the internet

Game support requirements

This technique is not game-agnostic. Each game protocol requires reverse engineering. It works best for:

  • Turn-based strategy games (Advance Wars)
  • Trading systems with structured exchanges (Pokémon)
  • Games with predictable, pausable communication patterns

It does not work well for real-time action games with continuous sync requirements.

Currently supported games

  • Pokémon Ruby, Sapphire, FireRed, LeafGreen, Emerald
  • Advance Wars 1
  • Advance Wars 2

Further reading