The one piece of real arithmetic in the legacy reader is cycle widening: the
old formats count in 32 bits and wrap about every 14.6 seconds of emulated
time, so a counter has to be widened by its signed distance to its domain's
own cycle count, not zero-extended. Getting that wrong reschedules an overdue
event billions of cycles into the future, which is the kind of bug that
presents as "the game just hangs sometimes". Cover both wrap directions.
Also tell the player when a state came in through this path, since nothing
writes the format any more: saving again is what converts it, and the audio
and controller state we could not carry over is better said than discovered.