The sixteen bits
Offsets 53 (high byte) and 54 (low byte) of the header hold a 16-bit big-endian number. The bit names are those js7800 prints when it reads a header; the page test compares each of them with the text of its source.
| Bit | Where | Meaning |
|---|---|---|
| 0 | offset 54, value 1 | POKEY at $4000 |
| 1 | offset 54, value 2 | SuperGame bank switching |
| 2 | offset 54, value 4 | SuperGame RAM at $4000 |
| 3 | offset 54, value 8 | ROM at $4000 |
| 4 | offset 54, value $10 | Bank 6 at $4000 |
| 5 | offset 54, value $20 | Banked RAM |
| 6 | offset 54, value $40 | POKEY at $0450 |
| 7 | offset 54, value $80 | Mirror RAM at $4000 |
| 8 | offset 53, value 1 | Activision banking |
| 9 | offset 53, value 2 | Absolute banking |
| 10 | offset 53, value 4 | POKEY at $0440 |
| 11 | offset 53, value 8 | YM2151 at $0460/$0461 |
| 12 | offset 53, value $10 | SOUPER |
| 13 | offset 53, value $20 | Banksets |
| 14 | offset 53, value $40 | Halt banked RAM |
| 15 | offset 53, value $80 | POKEY at $0800 |
From the bits to a cartridge type
The explorer picks the layout the way js7800’s reader does, in this order (the first that matches wins). The options bar shows the result as “Auto” and lets you choose another type.
| If | Cartridge type |
|---|---|
| absolute banking (bit 9) | Absolute |
| Activision banking (bit 8) | Activision: shown as plain 16 KiB banks, not modelled |
| SOUPER (bit 12) | SOUPER |
| bits 1 and 3 | SuperGame large |
| bits 1 and 4 | SuperGame with bank 6 at $4000 |
| bits 1 and 2 | SuperGame with RAM at $4000 |
| bit 1 | SuperGame |
| bit 2 and ROM up to 64 KiB | Normal with RAM at $4000 |
| none of these | by size: up to 64 KiB normal; 144 KiB SuperGame large; 128 KiB SuperGame with bank 6; any other size SuperGame |
The same size rule is used when there is no header. Banksets (bit 13) halve the ROM that is mapped: the file holds two sets and only the first is shown.
POKEY
A cartridge that carries a POKEY sound chip has it at one of four addresses, chosen by a bit: $4000-$400F (bit 0), $0450-$045F (bit 6),
$0440-$044F (bit 10), $0800-$080F (bit 15). The explorer names the POKEY registers at the address the header says (see
the memory map).
Not described
Known, not yet covered
- Viewer: the effect of “mirror RAM” (bit 7), “banked RAM” (bit 5) and “halt banked RAM” (bit 14) on what the CPU sees is not modelled; the bits are listed only.
Unknown
- Reference: js7800 reads bit 3 of the high byte as the YM2151 and bit 3 of the low byte as “ROM at $4000”; that is how they are written here. Whether other emulators number them the same way was not checked.