Controller bitmap¶
Each gameplay input byte is a 7-bit controller bitmask (the top bit is masked off
with & 0x7f). This map is used both on the wire (F8 frames) and in the input
slots 0x570d / 0x5715.
| Bit | Mask | Button |
|---|---|---|
| 0 | 0x01 |
Up |
| 1 | 0x02 |
Down |
| 2 | 0x04 |
Left |
| 3 | 0x08 |
Right |
| 4 | 0x10 |
A |
| 5 | 0x20 |
B |
| 6 | 0x40 |
Option |
| 7 | 0x80 |
(masked, unused on the wire) |
Examples¶
| Value | Buttons |
|---|---|
0x00 |
(none) |
0x08 |
Right |
0x10 |
A |
0x18 |
Right + A |
0x14 |
Left + A |
0x30 |
A + B |
0x24 |
Left + B |
Provenance¶
Independently established three ways:
- Physical capture — single-bit values
0x01/0x04/0x08/0x10/0x20plus plausible direction+attack combos in theF8stream. - Disassembly — the input slots
0x570d/0x5715and theand …,0x7fmasking around0x2074bf. - Emulated ROM — feeding scripted inputs and reading the decoded slots back
under live data (e.g. peer
A=0x10→0x570d, localRight=0x08→0x5715).