How it works
- Flash Fat Chip GB v0.3 or newer and connect the Game Boy to your MIDI adapter as usual.
- On the Game Boy: B for Setup, go down to LINK TEST, press A. Press A again to zero the counters.
- Here: connect, pick the output that feeds the Game Boy, and press Zero so both sides start from nothing.
- Run the tests one at a time (or all of them) and compare the Game Boy's screen with the expected screen on this page.
The tests play on a channel no Game Boy voice listens to (6 by default, since Fat Chip GB's voices start on 1–5), so they're silent. Some adapters only pass certain channels: Arduinoboy-based ones (Teensyboy included) in mGB mode map channels 1–15 by default and leave 16 out unless it's remapped in the Arduinoboy Editor. The Channel sweep checks all 16. Nothing is saved on the Game Boy.
MIDI
Not connected.
Tests
Channel sweep
16 notes on channel 1, a 3-second pause, then channel 2, and so on to 16 (one message per 2 ms). Watch NOTE ONS: it should rise by 16 for every channel the adapter passes. Where it stops rising, that channel didn't arrive.
Load test
64 note on/off pairs on the test channel (a pair every 20 ms) while a flood of pitch bends goes to other channels, the way NES glides would. NOTE ONS short = the flood made the adapter drop Game Boy messages. BENDS shows whether the flood channels reach the Game Boy at all (flood on channel 16 = another check on 16).
Game Boy should read
If your interface uses running status, BYTES can be a bit lower; if it sends active sensing, BYTES is higher by the SENSE count. Neither is a problem. The other numbers should match exactly.
Reading the results
| Everything matches | The adapter passes notes, clock and SysEx cleanly. Fat Chip can use MIDI clock and SysEx with the Game Boy. |
|---|---|
| SYSEX F0 / F7 stay at 0 | The adapter doesn't forward SysEx. Fat Chip will talk to the Game Boy with notes, CCs, bends and program changes only (that's the current plan anyway). |
| SysEx counts rise but LEN or SUM are wrong | SysEx gets through but bytes are lost or changed. Try the short one: if it's right and the long ones aren't, the adapter's buffer is too small for long messages. |
| CLOCK stays at 0 | The adapter filters MIDI clock. Fat Chip GB will keep its own tempo and follow the C64's downbeat CC instead. |
| "Clock between / inside" loses NOTE ONS, or NO STATUS goes above 0 | The adapter drops a byte after each clock (a known stock-Arduinoboy problem). Don't send clock to the Game Boy port. |
| NOTE ONS short on the plain notes test, NO STATUS still 0 | Whole messages are being dropped: usually the adapter's buffer overflowing because MIDI arrives faster than it can pass bytes to the Game Boy. Try a slower send speed and find the fastest one where nothing is lost; that's the safe rate for anything sending to the Game Boy. |
| NOTE ONS short and NO STATUS above 0 | Single bytes are being lost (not whole messages): check cables, and that nothing else is sending to the same port. |