mirror of
https://github.com/libretro/parallel-dc.git
synced 2026-11-07 12:37:53 -10:00
A game waiting on the beam reads SPG_STATUS hundreds of times a line, and each read found the next line due and divided twice to place the beam. spg_beam() now keeps what it found - the line, the pending event's end, the cycles that bound the line - and answers a read on the same line, aimed by the same event, with a subtraction. Aiming the event, a timing change or a state loaded starts it afresh. The headless disc runs 3000 frames in 11.5 s, from 17.8 s. tools/pvr/spg_beam_test.sh makes every read twice, kept and afresh, straight and with every frame run ahead, and fails where they differ.