mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-28 10:59:16 -04:00
fe923c22f0
The flow-control fix did not change the symptom, and the reason is in game.toml: no disc_speed is configured, so the divisor is 1 and accelerated_read_active() is never true. The sector is being lost at AUTHENTIC cadence -- the guest has a full sector period and still misses -- which makes this a timing divergence, not a pacing-enhancement bug. The flow-control commit stands (it is correct for accelerated configs); the theory that it explained THIS failure was wrong. Also learned by reading: cd_read_log stamps entries with the game's last SetLoc (s_setloc_lba updates only in the SetLoc handler), so '125111 -> 125113' means the GAME issued those two requests itself. Earlier pairs in the log share one LBA across two destinations (one SetLoc, multi-sector read); the failing pair does not. Either an INT1 loss desynced the game's own sector bookkeeping, or its request stream diverged for another reason -- the per-sector delivery records decide. cdrom_timing_dump exposes the existing L1.5 ring per record: LBA, due / buffer / irq-arm / INTC cycle stamps, data/dma/pended/lost flags, filterable by LBA. cd_verify.py arms it, waits for the table load, and reports all three layers from one run: the request stream and its gaps, delivery records around LBA 125112 (read at all? pended? lost?), and whether the table ended up correct. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>