9 Commits

Author SHA1 Message Date
evan 9b8c6ba925 wasm-emu: document compiled-store corruption as a nondeterministic race
E15/E16: runtime store-gating bisection plus repeated-run testing show the
0x4201e210 reader-open corruption is a race (identity-independent, config
alternates crash/pass), not a miscompiled TB. Blanket store-TCI suppresses it
in practice. Wire ?sthash and ?stcw/stcmask/stcval opt-in debug controls.
2026-07-22 20:57:01 -04:00
evan 080a264b5c perf(web): disable icount by default (4.7x faster book open)
icount throttled TCG and starved the guest watchdog. Measured book open dropped from 146s to 31s. Off by default; ?icount restores it, ?noicount removed in favor of the new default. Harness now reports open-file timing.
2026-07-21 20:19:46 -04:00
evan 223500ab09 test(web): seed SD before autoboot; document upstream store-TCI root cause
The file browser no longer auto-seeds, so the headless test seeds Test/example.txt into OPFS before autoboot. Docs corrected: store-containing-TB TCI is upstream qemu-wasm design (compiled store path is not rewind-safe), not a port bug.
2026-07-21 16:14:22 -04:00
evan 13f29177c1 fix(web): automate cold-boot power hold 2026-07-21 12:08:43 -04:00
evan 34de72680f fix(display): use deterministic X3 LUT classification 2026-07-21 11:42:08 -04:00
evan 68deac2d8f Reader renders correctly in WASM: grayscale persistence model
Bumps third_party/qemu to the X3 grayscale persistence render. The
in-browser reader now shows crisp black text on white (no inversion, no
muddle). Marks the grayscale defect resolved in ISSUES.
2026-07-21 10:27:36 -04:00
evan 376d302e1d Reader opens in WASM: bump QEMU store-TB workaround; document panic
Bumps third_party/qemu to the wasm32 store-TB TCI workaround so the
browser reader no longer panics in uzlib font decompression. Adds
docs/wasm-inflate-panic.md with the full investigation (native control,
non-deterministic reject, JIT promotion) and next steps. Updates ISSUES:
the panic is worked around; the reader now inverts into muddled
grayscale after the initial BW page (new top reader defect). tests
navigate the 4th Open press into the reader.
2026-07-21 09:16:40 -04:00
evan b22934fe0d Replace vvfat SD with browser-built raw FAT32 from OPFS
Browser SD files are persisted in OPFS (web/sdstore.js) and edited in the
Files tab. At boot the browser builds a deterministic 64 MiB FAT32 image
(web/fat32.js) with nested directories and VFAT long names, then mounts
it as a raw block device, bypassing QEMU's broken populated-vvfat WASM
coroutine path. Guest writes mutate only the ephemeral image.

Exposes a hidden #frame-generation indicator that increments on every
e-ink flush, so automation can wait on real display updates instead of
fixed sleeps. Adds tests/ with a Makefile runner: 'make test' for JS +
FAT32/mtools checks, 'make browser-test' for a headless-Firefox boot of
the official CrossPoint 1.4.1 firmware that navigates to
Test/example.txt. Bumps third_party/qemu to the SPI-SD/CMD13 fixes and
updates README/ROADMAP/ISSUES for the new architecture.
2026-07-21 07:43:07 -04:00
evan 1a782eef9e wip 2026-07-20 18:00:59 -04:00