mGBA Link Cable — How to Trade Pokémon and Play GBA Multiplayer Games
I want to trade Pokémon or play multiplayer GBA games in mGBA, but I do not know how the link cable feature works. mGBA has a "Link" option in the menu but I cannot figure out how to connect two game instances together to actually trade. Do I need two ROMs? Two computers? Is there a way to do this on a single PC?
I am specifically trying to get Pokémon FireRed/LeafGreen/Emerald to recognize a second player so I can trade evolutions (Gengar, Alakazam, Machamp) or access the Union Room.
Solutions
solution #1015
mGBA supports link cable emulation between two instances running on the same PC. You do not need two computers or two copies of mGBA — just two windows, each with a ROM.
Step-by-step (single PC, two windows):
- Open two separate mGBA windows. On Windows: right-click the mGBA shortcut → Open a second time, or use Start Menu to open a second instance. On macOS, run
open -n /Applications/mGBA.appin Terminal for a second instance. - Load your Pokémon ROM in both windows (same ROM, or two different cartridge dumps of the same game — e.g., FireRed in both).
- In Window 1: go to File → Link → Connect to Link Server. A dialog asks for a hostname. Leave it as
127.0.0.1(localhost) and port12345. Click Connect. This window becomes the client and will wait. - In Window 2: go to File → Link → Start Link Server and accept the default port. This window becomes the server. The two instances handshake automatically.
- In each Pokémon game, walk to a Pokémon Center, go to the top floor, and enter the Union Room (GBA generation) or talk to the Cable Club attendant. Both instances must enter simultaneously.
Important timing note: mGBA link cable requires both instances to be in a compatible state at the same time. If one game is at the title screen while the other is already in the overworld, the link will timeout. Load both games and advance both to the Union Room entry point before initiating the cable exchange.
solution #1016
mGBA also supports link cable emulation over a local network (LAN) between two different PCs, useful when you want to trade with a friend in the same home.
Setup:
- On the host PC: open mGBA → File → Link → Start Link Server. Note the IP address of this PC (check with
ipconfigon Windows orifconfigon Linux/macOS) and the port (default 12345). - On the client PC: open mGBA → File → Link → Connect to Link Server. Enter the host PC's LAN IP address and port 12345.
- Both must load the same game. Proceed as in S1 — walk to the Union Room together.
Firewall note: if the connection fails, the host PC may have a firewall blocking port 12345. On Windows: go to Windows Defender Firewall → Advanced Settings → Inbound Rules → New Rule → Port → TCP → 12345 → Allow. Alternatively, temporarily disable the firewall to test.
Over the internet: mGBA's link cable is designed for LAN, not internet play. Latency over internet is too high for reliable synchronization. Use a VPN tool like ZeroTier or Hamachi to create a virtual LAN between distant PCs — this makes internet play behave like LAN from mGBA's perspective.
solution #1017
Not all GBA link cable features are equally well emulated. Here is what works reliably in mGBA as of 2026:
Confirmed working:
- Pokémon FireRed / LeafGreen: Trading via Cable Club and Union Room ✓, battling ✓, Wireless Adapter features (Union Room) partially ✓ via link emulation
- Pokémon Ruby / Sapphire / Emerald: Trading via Cable Club ✓, battling ✓
- Pokémon Mystery Dungeon: Red Rescue Team: Rescue passwords work in single-player; link trading limited
- Mario Kart: Super Circuit: Multiplayer races with one ROM (Single-Pak link) ✓
- F-Zero: Maximum Velocity: Link cable multiplayer ✓
Known limitations:
- Wireless Adapter emulation (FireRed/LeafGreen trading directly via the GBA Wireless Adapter protocol) is partially implemented. The standard Cable Club method is more reliable.
- e-Reader compatibility: scanning e-Reader cards and linking results to a main game has limited support.
Which cable protocol to test: In FireRed/LeafGreen, use the Cable Club on the 2nd floor of any Pokémon Center rather than the Union Room for the most reliable trade link. The Cable Club uses the standard serial link protocol that mGBA emulates most accurately.
solution #1018
Common link cable problems and their fixes:
mGBA instances won't connect:
- Make sure you start the server first (Window 2 in S1), then connect the client. Doing it in reverse order causes a connection refused error.
- Confirm both instances use the same mGBA version. Mismatched versions sometimes fail to handshake.
- On Windows, run mGBA as Administrator if the connection is refused — some Windows security settings block loopback connections from non-elevated processes.
Trade freezes at "Communicating…" screen:
- Both games must be in a compatible state. If one game shows the "Communicating" screen but the other has not yet initiated the trade (e.g., still on the Cable Club attendant dialogue), the trade will hang. Restart both instances and synchronize your actions.
- Try slowing the emulation speed temporarily: Emulation → Fast Forward off, ensure both run at 1× speed. Link cable emulation can desync if one instance runs ahead.
Pokémon appears in both games after trade (dupe glitch): This is a known mGBA link emulation issue when the connection drops mid-trade. The traded Pokémon may appear in both players' boxes. This is harmless for single-player play but is a known limitation of emulated link cable timing.
Comments (0)
Sign in to_leave_comment