FastRIO v2 bench: CLEAN — ACK-wait widening eliminates the retry storm

192s mash at 31250 with the $D9E7 wait fix: framing 5655 -> 54
(-99.4%), AbandonCount 65 -> +0, duplicate replies gone (215% -> 88.6%
of poll slots — identical to the healthy 9600 profile, the structural
$D758 drop-gate ratio), zero wedges, counters perfectly flat. The
byte-clocked ACK-wait theory is confirmed end to end: disassembly
predicted the mechanism, one operand byte fixed it, the wire went
quiet. Evidence log archived; results table in ANALYSIS.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-07-18 11:13:38 -05:00
co-authored by Claude Fable 5
parent 9a12b779bb
commit 61778ec3f1
2 changed files with 54 additions and 0 deletions
+22
View File
@@ -282,3 +282,25 @@ sha256 `420d4cfc6b513651687982a70db2daeecda7bd00a5324321e272f35b95dca753`,
25 bytes vs original; re-disassembly diff vs the v1 31250 image is exactly
the one CMPA operand line. Expected on the bench: framing 5655 → ~0,
Abandon 65 → ~0, wedges 0 → 0.
### 31250 v2 bench results (2026-07-18) — CLEAN. Byte-clock theory confirmed.
`testlogs/riomash-patched-31250v2-20260718-110853.log` (192s mash):
| metric | v1 @31250 | v2 @31250 (ACK-wait $28) |
|-------------------|----------------|--------------------------|
| framing resyncs | 5655 (~45/s) | **54 (~0.3/s, -99.4%)** |
| Abandon delta | 65 | **+0** |
| Restart delta | 2 | **+0** |
| analog vs polls | 215% (dupes) | **88.6% (no dupes)** |
| wedge events | 0 | **0** |
| worst mid-run gap | 0.09s (steady) | 0.14s (tail <100ms) |
The 88.6% delivery ratio equals the healthy 9600 patched profile (87.5%)
— the deficit is the $D758 in-flight drop gate, identical at both rates,
i.e. structural, not a v2 artifact. Counters perfectly flat: the board
never entered retry escalation in 192s. FastRIO is now *clean*, not
just survivable. To actually harvest the bandwidth, the next dial is
host-side: drop the 55ms analog poll interval (the board now answers in
~4.6ms of wire time). Cabinet adoption still gated on game-side baud
patches; 9600 patched chip remains the production standard meanwhile.
@@ -0,0 +1,32 @@
== RIO mash test :: COM1 @ 31250 8N1, 300s, chip label 'patched-31250v2' ==
lamp echo ON (drives reply/lamp collisions), wedge threshold 2.0s, app auto-recovery DISABLED
log: C:\VWE\riojoy\riomash-patched-31250v2-20260718-110853.log
firmware: 4.2
counters before: RestartCount=0 AbandonCount=0 FullBufferCount=0 [board/lamp faults reported!]
>>> MASH NOW: two hands, 8 lamp buttons, as fast as you can. <<<
>>> Test runs 300s. A wedge alarm will beep + banner. <<<
>>> Ctrl+C ends the run early and still prints the summary. <<<
[ 33.03s] progress: presses=63 (63/min) analog=523 maxGap=0.28s wedges=0
[ 63.05s] progress: presses=165 (157/min) analog=1002 maxGap=0.28s wedges=0
[ 93.08s] progress: presses=185 (119/min) analog=1481 maxGap=0.28s wedges=0
[ 123.11s] progress: presses=347 (169/min) analog=1958 maxGap=0.28s wedges=0
[ 153.22s] progress: presses=504 (197/min) analog=2440 maxGap=0.28s wedges=0
[ 183.26s] progress: presses=763 (250/min) analog=2919 maxGap=0.28s wedges=0
[ 191.98s] operator stop (Ctrl+C) — ending run, snapshotting counters...
== MASH SUMMARY [patched-31250v2] ==
run : 191s on COM1, lamps on, wedge threshold 2.0s
firmware : 4.2
presses/releases : 775 / 775 (241 presses/min)
analog replies : 3076 (~3472 poll slots; 88.6%), sentinels 0
framing / NAK : 54 / 5
gap histogram : <100ms:3068 100-250ms:5 250-500ms:2 0.5-1s:0 1-2s:0 2-5s:0 >5s:0
longest gaps : 0.30s@192.0s, 0.28s@1.8s, 0.14s@57.2s, 0.13s@107.8s, 0.12s@98.5s, 0.11s@130.9s, 0.10s@165.4s, 0.10s@24.5s, 0.10s@151.9s, 0.10s@167.4s
wedge events : 0
counters before : RestartCount=0 AbandonCount=0 FullBufferCount=0 [board/lamp faults reported!]
counters after : RestartCount=0 AbandonCount=0 FullBufferCount=0 [board/lamp faults reported!]
counter delta : RestartCount=+0 AbandonCount=+0 FullBufferCount=+0
verdict : PASS — no wedge; compare gap histogram + counter delta to baseline
log file : C:\VWE\riojoy\riomash-patched-31250v2-20260718-110853.log