GBAdhoc 3.5.0 released: GBA Link Cable over WiFi (Mario Kart, Advance Wars), Game Boy Trades, New Menus, Button Remapping, and more!
GBAdhoc is a Game Boy Advance emulator for the PSP that also plays Game Boy and Game Boy Color. This release links two PSPs together like two consoles and a link cable, over the PSP's own ad-hoc WiFi: race in Mario Kart: Super Circuit, fight in Advance Wars 2, trade Pokémon from Red to Crystal. No cable, no router, no Internet. It still runs the hard ROM hacks at full speed on a PSP-1000, because the renderer lives on the console's second processor. Free, open source (GPL-2.0), no BIOS needed.
Download 3.5.0 · Source and README
What's new in 3.5.0
GBA link cable between two PSPs. The GBA's link-cable games, with no cable. Open the game on both PSPs; one picks Wireless → Host and keeps playing while it waits, the other picks Join: scan for rooms. A short LINKING screen, and both games carry on from where they are: nobody starts over. Your friend's moves play out on your screen exactly as two GBAs on a cable would show them, battle animations and all.
https://i.redd.it/wacua49wlgth1.gif
https://i.redd.it/ex5tlhrwlgth1.gif
How it works without a cable: a real link cable answers in microseconds and WiFi answers in milliseconds, so sending the cable over the air can't work, and GBAdhoc doesn't try. Each PSP runs both games: yours, on screen with sound, plus an invisible copy of your friend's, joined by a perfect cable in memory. The only thing that crosses the air is which buttons each player pressed, one tiny message per frame. Same buttons, same order, same result on both PSPs. No game needs special code: if it links by cable, it can link this way.
Safe by design. About once a second the two PSPs compare a fingerprint of both games. If they ever disagree, the link ends and nothing is saved. If the other PSP leaves, your game carries on.
Tested on two real consoles (a PSP-3000 hosting, a PSP-1000 joining): Advance Wars 2 at 59.2 fps, a Mario Kart: Super Circuit two-player race at 58.9 fps. Also passing in emulated pairs: Sonic Advance, Mario Tennis: Power Tour, and Pokémon Emerald's Cable Club. You need the same ROM on both PSPs; two players.
Game Boy and Game Boy Color link cable (from the 3.1 beta). Trades and battles between two PSPs, tested with Pokémon Red, Blue, Yellow, Gold, Silver and Crystal. Only one of you needs the cartridge: if your friend doesn't have it, it is sent over for the session, kept in memory and never written to their Memory Stick.
https://i.redd.it/il0zk71zlgth1.gif
A new in-game menu, over your paused game: Resume, Save states, Wireless, Settings, Quit to game list, Exit. Save states you can see: five slots, each with a picture and the time you saved; ✕ loads, □ saves, △ deletes.
https://i.redd.it/wbgq2p00mgth1.gif
Remap every button. Every game button and every shortcut (fast-forward, quick save/load, screenshot, Mystery Gift, the menu), or leave one blank to turn it off. HOME can open the menu if you want it to (START+SELECT stays the default).
Quit to game list in about a second. The game unloads inside the app and fades into your library, no relaunch, save written first.
Sharper pictures, per console. GBA, GB and GBC each remember their own picture: integer 2x, a sharp bilinear filter (crisp pixels, no shimmer), and Ambient bars that fill the sides with the game's own art. More accurate Game Boy Color colours too.
Also new: Settings and the loading screen sit over the game's art; fast-forward reworked (Unlimited draws 30 frames a second, Unlimited Smooth 60, the rest goes to the game); dynarec optimisations; a PSP-2000/3000/Go crash traced to the PSP firmware itself and worked around; audio that no longer drifts; Media Engine renderer fixes.
What it does
- Link play: GBA Link Cable and GB/GBC link cable between two PSPs (new), plus full AGB-015 Wireless Adapter emulation for Emerald, FireRed and LeafGreen: Union Room, Trade Center, link battles, Mystery Gift.
- Mystery Gift: real Gen-3 Wonder Cards from an Android phone (Mystery Gift Station).
- Two processors: the Media Engine draws every frame while the main CPU emulates the next. Full speed on a PSP-1000.
- GB and GBC: the same browser, save states, menus and remapping as GBA.
- A browser worth using: Marquee or Shelf, dark or light, one list per console, favourites, hero art.
- Wake from sleep: slide it shut, come back tomorrow, the game is exactly where it was.
- All three PSPs: 1000, 2000/3000 and Go, tested on hardware. Custom firmware needed (developed on ARK-4).
Linking: the three things to get right
- The WLAN switch must be on (on the Go it is a setting).
- Both PSPs on the same fixed ad-hoc channel, not Automatic: Settings → Network Settings → Ad Hoc Mode, pick 1, 6 or 11 on both, away from your router's channel.
- Start from the in-game menu: Wireless → Host on one PSP, Join: scan for rooms on the other. For GBA, both PSPs need the same ROM.
Install
- Unzip the release to the root of your Memory Stick; it lands in PSP/GAME/GBAdhoc.
- Put your .gba, .gb and .gbc files in GBAdhoc/roms/ (subfolders are fine).
- Launch it from the XMB. No BIOS needed. Upgrading: copy EBOOT.PBP, gbadhoc_me.prx and gbadhoc_home.prx over your install, always all three together. Your config.ini carries over.
Box art and hero art are optional and matched by filename; ready-made packs and the tool that renames them to your ROMs live in GBAdhoc-heroart.
This stands on other people's work. The Wireless Adapter reverse-engineering and emulation are davidgfnet's (gpSP); the GB/GBC core is TGB Dual by Hii, built to run two Game Boys on a cable, as ported to the PSP in Brunni's MasterBoy; sleep/wake with code on the Media Engine exists because of mcidclan's libraries. GBAdhoc is the PSP shell, the link and the radio transport around them. Full credits, the architecture notes and the changelog are in the README.
No ROMs, no BIOS, no game files are included or linked. Bug reports: GitHub issues, with your PSP model and the game.