Skip to content

Normal transport

ACTIVE (14) + status bit 7 set. Control-byte layer for menus, setup, bulk data, and the phase barriers that gate gameplay.

Control bytes F0F7

Receiver subtracts F0, rejects > 7. Low 3 bits are flags:

Bit +val Meaning
0 1 phase-ready barrier (level, not a per-packet ack)
1 2 event toggle — flips peer state, reloads 60-tick timer
2 4 payload follows (count byte + ring bytes)

Base F0 normally, F1 during a barrier:

Value Meaning
F0 idle
F2 / F4 / F6 +event / +payload / +both
F1 F3 F5 F7 same, barrier base

Phase barrier

Bit 0 is a symmetric level barrier. Local ready bit snapshots to 0x5651, received to 0x5652; transition waits until both == 1. Base switches to F1 during the barrier. This is how the game crosses into F8 gameplay.

Bulk payload (ring buffer)

Bit 2 set → <control|4> <count:7> <count bytes>. TX ring at 0x566d, RX ring at 0x56ad, both 64 bytes (& 0x3f). BIOS COMCREATEBUFDATA/COMGETBUFDATA split at the ring boundary.

  • F9 — bulk ACK; sender clears its in-flight TX count on receipt.
  • FA — accepted mid-transfer but doesn't clear it; no producer in the ROM (receive-only/reserved).

RAM

Address Role
0x5653 base control (F0/F1)
0x5651 / 0x5652 local / received phase-ready
0x5655 peer event (bit 0), pending local event (bit 7)
0x5656 60-tick watchdog
0x5659 / 0x565b TX count / ring index
0x565d / 0x565e RX count / ring index

Event flag set → 0x5656 counts down; at 0 → timeout (0x564f = FF). Full map: RAM variables.