Finding an undocumented Atari Slapstic side-channel by differential debugging in TypeScript
← Marble Love (live demo & project page)
A 126-byte mismatch in a playfield buffer, at exactly one frame, turned
out to be a 40-year-old hardware security chip leaking state through
the CPU's instruction prefetch. Here is how a function-by-function
reimplementation of Marble Madness (Atari, 1984), checked
against MAME byte for byte, surfaced a behavior that is not in the MAME
source or any datasheet I could find.
The project, briefly
Marble Love is a
from-scratch reimplementation of Marble Madne...
Read more at magno73.github.io