You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 835bc45
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/STATUS.md
+38-2Lines changed: 38 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,40 @@ implemented (`v0.4.0`, unit-tested only — no commercial dump in the local corp
21
21
Save-states (`v0.2.0`), rewind, run-ahead, PAL region auto-detection, and ExLoROM (all `v0.3.0`)
22
22
are implemented and shipped — see the frontend and memory-map-model tables below.
23
23
24
+
## Accuracy dashboard
25
+
26
+
RustySNES doesn't have one monolithic all-in-one oracle ROM the way RustyNES's AccuracyCoin does.
27
+
An early skeleton for exactly that approach exists (`rustysnes-test-harness::accuracy_battery`,
28
+
ticket T-04) but was never implemented and has since been superseded — no publicly available
29
+
SNES ROM plays the AccuracyCoin role, and the composed multi-suite approach below is what
30
+
actually shipped; that skeleton is tracked as dead code to remove in a follow-up, not a competing
31
+
source of truth. The accuracy story here is instead a **composed multi-layer battery** across
32
+
independently-sourced suites (`docs/testing-strategy.md`). Rather than force these heterogeneous
33
+
suites into one artificial summed fraction (a 5.12M-case CPU oracle would swamp a 4-ROM audio
34
+
suite in any raw sum, which would be misleading, not informative — this project's honesty-gate
35
+
posture, `docs/adr/0003`, applies to how numbers are presented too), each layer's own status is
36
+
tracked here, always current, reaffirmed every release:
37
+
38
+
| Layer | Status | Detail |
39
+
|---|---|---|
40
+
| CPU (65C816) per-opcode oracle | ✅ **0-diff vs. reference**| 5,119,999 / 5,120,000 (SingleStepTests/65816; the one residual is a documented inter-reference divergence, `docs/adr/0002`, not a bug — not literally 0 of 5,120,000, but 0 against the chosen reference behavior every other test vector agrees on) |
| BestEffort coprocessors, real-title validated | ✅ **6 / 9**| DSP-2, DSP-4, ST010, S-DD1, CX4, OBC1 — each boots a real commercial title to real gameplay content |
47
+
| BestEffort coprocessors, unit-test only | ⚠️ **3 / 9**| SPC7110 (wired against its one available ROM but doesn't reach a bootable screen — the addressing-bug fix in `v0.4.0` improved but didn't close this), ST018, S-RTC (neither has a commercial dump in the local corpus) |
48
+
| Determinism contract | ✅ **proven**| bit-identical framebuffer/audio across runs; save-state round-trip proven across all three board tiers (no-coprocessor, Curated, BestEffort) |
49
+
50
+
**Named residuals, tracked not hidden:** the 65816 `e1.e` divergence (`docs/adr/0002`); DSP-3 and
51
+
ST011 have no board wired (no verified board/window entry to pin against, `necdsp_variant.rs`);
52
+
SPC7110's post-`RTI` WRAM-population gap (`docs/cart.md` §SPC7110); PAL and ExLoROM both lack
53
+
golden-ROM-boot proof (no ROM in the local corpus for either). `v0.5.0 "Fidelity"` is where the
54
+
next layer — a named hardware-gotcha regression suite (DRAM refresh, HDMA mid-scanline placement,
55
+
the DMA/HDMA-collision crash quirk, open-bus-via-HDMA-latch, true mid-dot writes, hi-res
56
+
color-math precision, the `$4203` double-write edge case) — gets added to this table.
57
+
24
58
## Subsystem progress
25
59
26
60
| Crate | Chip | State |
@@ -97,8 +131,10 @@ are implemented and shipped — see the frontend and memory-map-model tables bel
97
131
determinism proxy). The per-opcode SPC700 (oracle 0-diff) + per-tick S-DSP math is correct.
0 commit comments