Accuracy, word by word
Project rule: what is not measured is written “not measured”. This table summarises docs/ACCURACY.md.
| Component | Status |
|---|---|
| 65C02 core (state, RAM, cycles, bus sequence) | measured: 100% of the oracle, 2,540,000 cases |
Interrupts, RESET, WAI/STP | functional, not measured by the oracle |
| Firmware API | exact by construction (same code as the board); call latency 0 cycles by default |
| Pace (6.25 MHz, 60 Hz frame, 100 Hz timer) | modelled, not measured on the board |
| Video 320 × 240 and palette | pixel-identical to the official emulator (5 cases); vertical position of the image in the board’s frame: not modelled |
| 80 × 25 colour text mode | screenshot byte-identical to the official emulator |
| Sound | the firmware’s generator, exact by construction; analogue volume and filtering not modelled |
| Keyboard, mouse, gamepad | functional, bits identical to the firmware’s code; one gamepad, no analogue |
| Storage | host folder, identical to the official emulator; SD card speed not simulated |
| Paths and current directory | resolved like FatFs; error codes for a missing intermediate directory: not aligned |
| File names | Latin-1 on the 6502 side, UTF-8 on the host, as on the board; case of accented letters not tested |
| USB serial (group 14) | identical to the official emulator; USB speed and latency not modelled |
| Storage chosen in the menu (folder or real USB stick) | a host folder, without FatFs’s rules: the host file system’s semantics (case, allowed characters, permissions, ext4 / exFAT / NTFS instead of FAT); capacity, speed and USB enumeration not modelled; an unmounted stick is not supported (--floppy) |
| Menu modem | software modem (Hayes + ESP-AT, real TCP connections) or host tty, through NEO_CDC_TTY; not compared with a real Pico W; network speed and latency not modelled |
| SWD | not modelled (only --gdb exists, on the 65C02 side) |
| Save state | exact resume, including randomness (rand() counted then replayed) and the 100 Hz timer’s phase; same binary only; floppy mode not covered; the storage folder’s contents are not in the state |
| Co-simulation | faithful for the bus and the API; latencies in ARM steps; DVI, USB and sound simulated coarsely |
Not modelled
The DVI signal, USB enumeration and timing, the extension UART, I2C, SPI, GPIO, Trinity’s boot menu (it runs before the processor’s first cycle), the reload firmware’s Apple II.