mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-28 19:07:47 -04:00
8610a40d65
The command history settled the request stream: near the file tail the game switches to per-sector Setloc+ReadN (105..109 in one frame, INT1s pended behind the command INT3s -- normal), then requests 111 and 113, having consumed 110 and 112 as ReadN continuations. So 'the game asks for the wrong sector' was wrong too: the request stream is a normal streaming pattern, and the question is which DELIVERED sector each DMA actually drained -- the table ends with 113's bytes where 112's belong. The DMA log only stamped the game's last SetLoc, which cannot answer that. Each entry now also records the sector actually in the buffer at DMA time (continuations differ from the SetLoc stamp), the frame, and the first 8 bytes of the transferred data for ISO matching -- ground truth for dest <- which sector, one replay to capture. Trace-ring lesson recorded: per-byte FIFO reads flood the 64K register ring to ~1.5 frames of history during loads; the command-history ring (473 entries, flood-immune) is what survived to answer the request-side question. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>