RIOv4_3rc1 candidate: wedge fix + E0 threshold + check-display repaint; archive prior images
New edit 6 (--checkrepaint, requires --e0thresh): hooks the CheckRequest handler's final notify ($C5E4) through a 10-byte cave at $E020 that repaints F0000000 after the self-test and re-renders the E0 readout only when a counter is at/over threshold — no more stale 04000000 after status checks. Candidate = 9600 native-game-compatible base + edits 1-2/5/6, 68 bytes vs stock, disassembly-verified, awaiting burn; on verification it will be christened RIO 4.3. All prior patched generations (wedge-only, 31250/31250v2, 62500/125000 science builds, e0t5 pair) moved to rio-firmware/archive/ with their disassemblies; RIOv4_2.bin stays at top level as the pristine patch source. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -41,22 +41,37 @@ the SCI state machine (protocol constants FC=ACK FD=NAK FE=RESTART
|
||||
FF=IDLE, idle-reload-4 patterns), patch the early-ACK/error wedge path or
|
||||
widen its window, burn a new EPROM, keep this original safe.
|
||||
|
||||
## Patched images (built by make_patch.py; see RIOv4_2-ANALYSIS.md)
|
||||
## Current work candidate — `RIOv4_3rc1.bin`
|
||||
|
||||
- **`RIOv4_2_patched.bin`** — the reply-latch wedge fix, 23 bytes changed.
|
||||
sha256 `3fc8170caf60e2580641724ff995176c93c4f2e706f31487beded8233142493f`.
|
||||
- **`RIOv4_2_patched_31250.bin`** (`make_patch.py --baud31250`) — wedge fix
|
||||
+ SCI retuned 9600 → 31250 baud (one more byte, `$D62B: 30→02`).
|
||||
sha256 `9f866cf353d04906e1d3e3847b6375eaae251c987b656f68f093e61ba1bd545b`.
|
||||
Bench/RIOJoy-only until the native games get baud patches; needs an
|
||||
FTDI-class adapter (16550s can't make 31250). Test tools take `--baud 31250`.
|
||||
- **Speed-ladder variants** (`_31250v2`, `_62500`, `_125000`) and bench
|
||||
verdicts: see RIOv4_2-ANALYSIS.md — 31250v2 is the certified FastRIO
|
||||
build; 62500/125000 were science runs (CPU is the wall).
|
||||
- **`RIOv4_2_patched_e0t5.bin` / `RIOv4_2_patched_31250v2_e0t5.bin`**
|
||||
(`--e0thresh=5`) — adds a threshold to the cockpit display's `E0`
|
||||
serial-error readout, which stock firmware paints on the *first*
|
||||
counter event (`E0000001` forever after one benign give-up). Display
|
||||
stays `F0000000` until any error counter reaches 5; counters still
|
||||
accumulate. 30-byte cave at `$E000`, disassembly-verified, **not yet
|
||||
burned/bench-verified**. Details in RIOv4_2-ANALYSIS.md.
|
||||
Built by `make_patch.py --e0thresh=5 --checkrepaint RIOv4_2.bin
|
||||
RIOv4_3rc1.bin`; sha256
|
||||
`dc59bd51cae34781cf42f338e44a020b249a4030acc3c584af916aee9ca881e3`
|
||||
(68 bytes changed vs stock). 9600 baud, native-game compatible. On the
|
||||
stock v4.2 base it carries:
|
||||
|
||||
1. **Reply-latch wedge fix** (edits 1-2) — bench-certified.
|
||||
2. **E0-display threshold, N=5** (edit 5) — bench-certified 2026-07-19
|
||||
(held `F0000000` sub-threshold, flipped to `E0000105` at the 5th
|
||||
teardown; mash regression clean).
|
||||
3. **Check self-test display repaint** (edit 6, NEW) — the CheckRequest
|
||||
handler previously left a stale `04000000` frame on the display; a
|
||||
10-byte cave at `$E020` now repaints `F0000000` after every check,
|
||||
then re-renders the `E0` readout only if a counter is at/over
|
||||
threshold. **Needs on-hardware verification**: after a burn, any
|
||||
version+check exchange (tray connect, monitor, mash start) must
|
||||
leave the display reading `F0000000`, not `04000000`; then re-run
|
||||
`--e0test` (expect the certified behavior unchanged) and a mash
|
||||
spot-check.
|
||||
|
||||
Once edit 6 is verified on the cockpit, this image is christened
|
||||
**RIO 4.3**.
|
||||
|
||||
## Archive
|
||||
|
||||
All prior generations live in [`archive/`](archive/) with their
|
||||
disassemblies: `RIOv4_2_patched` (wedge fix only), `_31250`/`_31250v2`
|
||||
(FastRIO speed builds), `_62500`/`_125000` (speed-ladder science runs),
|
||||
and the `_e0t5` pair (threshold without check-repaint; the 9600 one is
|
||||
in the socket as of 2026-07-19 until rc1 is burned). Bench verdicts and
|
||||
per-edit history: RIOv4_2-ANALYSIS.md. The pristine dump `RIOv4_2.bin`
|
||||
stays at top level — it is the source every patch builds from.
|
||||
|
||||
Reference in New Issue
Block a user