Analysis updated 2026-07-26
Play Neo Geo Pocket Color link cable games online with a friend through your web browser.
Self-host your own instance of the web-based emulator to play linked games on your local network.
Study the fully documented reverse-engineered link protocol for your own hardware or emulation projects.
Build the custom circuit board to capture and analyze traffic between two real NGPC consoles.
| caioluders/ngp-link | amichail-1/orbination-whisper-ai | andrewrk/libogg | |
|---|---|---|---|
| Stars | 3 | 3 | 3 |
| Language | C | C | C |
| Last pushed | — | — | 2026-03-31 |
| Maintenance | — | — | Maintained |
| Setup difficulty | hard | easy | easy |
| Complexity | 5/5 | 4/5 | 2/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Building the WebAssembly core requires emscripten, and you must supply your own legally obtained game files.
For over 25 years, the Neo Geo Pocket Color's link cable port went undocumented. This project reverse-engineers how that link works from end to end, then uses that knowledge to let people play linked NGPC games online through a web browser. You load a compatible game file in your browser, share a room code with a friend, and connect over the internet. The repository contains several distinct pieces. There is a custom printed circuit board design that physically taps into a live link between two real consoles so a logic analyzer can record the traffic. There is a full set of documentation covering the handshake, transport, memory layout, and controller communication. There are also reverse-engineering tools, including a disassembler for the NGPC's CPU and scripts that analyze captured logic data. The protocol itself was validated three independent ways, and all three agree. A physical capture records real traffic between two consoles. Static disassembly pulls the link logic straight from the game code. Dynamic emulation runs the real game's link code in a headless environment and matches the output to the recorded wire data. Because the connection is bridged at the BIOS communication level rather than per game, the online play works with any link-capable cartridge without needing game-specific code. The browser-based emulator runs the full NGPC core compiled to WebAssembly, with WebRTC handling the peer-to-peer connection for netplay. A signaling server deployed on Cloudflare Workers handles matchmaking. You can play directly on the project's website or self-host the web build locally. Building the WebAssembly core requires emscripten, and the documentation site can be built and previewed with standard make commands. The project is multi-licensed. Original work is MIT for code, CERN-OHL-P for hardware, and CC-BY-4.0 for documentation. The vendored RACE emulator core is GPL-2.0, and a vendored MAME disassembler is BSD-3-Clause. No game files are included, you must supply your own legally obtained cartridge dumps.
Reverse-engineers the link cable protocol of the Neo Geo Pocket Color console, enabling online multiplayer for linked games through a web browser using WebRTC and WebAssembly.
Mainly C. The stack also includes C, WebAssembly, WebRTC.
Original code is MIT, hardware is CERN-OHL-P, docs are CC-BY-4.0, the bundled emulator core is GPL-2.0 and the disassembler is BSD-3-Clause.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.