Skip to content

Game link compatibility

How every NGPC cartridge drives the EXT link, and how the netplay bridge carries it. Classified statically with tools/link_isr_scan.py over a full ROM set, then spot-confirmed in the emulator. Two hardware mechanisms move link bytes and the bridge supports both — see the netplay transport.

  • BIOS-COM — the game uses only the BIOS COM services. The bridge HLEs these onto a faithful UART transport with /RTS-/CTS flow control.
  • Own-ISR — the game sets up SIO channel 0 via COMINIT, then installs its own serial RX/TX interrupt handlers (RAM vectors 0x6FE4/0x6FE8) that read/write SC0BUF directly and read the ring back through COMGETDATA. Needs the emulated SIO device + serial interrupts + the COMGETDATA ring bridge.

The finding

Of the link-capable library, only three games run their own serial ISR, and all three use byte-identical SNK link code with the same ring (0x6cc0 data, 0x6d01 count, 0x6d03 read-pointer). Every other link game is pure BIOS-COM. So two code paths cover the whole library.

Legend: ✅ confirmed linking in the emulator · 🟢 same mechanism as a confirmed game, not yet play-tested.

Own-ISR games (emulated SIO + COMGETDATA ring bridge)

Game RX ISR Ring Status
SNK vs Capcom — Match of the Millennium 0x202761 0x6cc0 ✅ confirmed
King of Fighters R-1 0x201a61 0x6cc0 🟢 identical link code; boots
King of Fighters R-2 0x202565 0x6cc0 🟢 identical link code; boots

BIOS-COM games (faithful UART transport)

All go through the COM services; the transport supplies real COMSENDSTATUS back-pressure and /RTS-/CTS flow control.

Samurai Shodown! 2 ✅ · Samurai Shodown! · Baseball Stars Color · Biomotor Unitron · Card Fighters' Clash (SNK / Capcom) · Card Fighters' Clash 2 · Dark Arms: Beast Buster 1999 · Delta Warp · Dynamite Slugger · Evolution: Eternal Dungeons · Faselei! · Fatal Fury: First Contact · Fire Pro Wrestling · The Last Blade: Beyond the Destiny · Magical Drop Pocket · Neo Turf Masters / Big Tournament Golf · Nige-Ronpa · Ogre Battle · Pocket Tennis Color · Puyo Pop · Puzzle Link · Puzzle Link 2 · Rockman Battle & Fighters · Shanghai Mini · SNK Gals' Fighters · Sonic Pocket Adventure (all 🟢 except Samsho 2).

Non-link titles (Metal Slug 1st/2nd Mission, Pac-Man, Cotton, Crush Roller, Cool Boarders, …) have no link code and are out of scope.

Reproducing

make disassembler
python3 tools/link_isr_scan.py /path/to/rom-or-dir   # BIOS-COM vs own-ISR + ring
python3 tools/link_compat.py   /path/to/rom-or-dir   # per-game COM-service usage

No ROMs are distributed with this project. An own-ISR game outside this set would work automatically if it uses the standard 0x6cc0 ring; the scanner prints the ring so any outlier is easy to spot.