The option was read at every change but acted on only when the game
was loaded, and said "(Restart Required)". It no longer does.
A cheat writes a few words of the game's memory every frame, most of
them constants of the game's program that the game never writes
again. Turning it on only needs the game's cheat looked up, as when
the game is loaded. Turning it off needs what the cheat wrote taken
out again, or the picture stays as the cheat made it.
So the cheat remembers what it finds: each frame, a word that is not
the cheat's value is the game's - the program as it was loaded, or a
value the game has just set - and is kept before it is written over.
(A word that is already the cheat's is no longer written again.)
Turned off, each word still holding the cheat's value gets the
game's back. The frontend is told the picture's new shape either
way.
One case is not put right: a word that has held the cheat's value
for as long as the cheat has been looking, as after loading a state
that was saved with the cheat on. There is nothing to put back, and
it stays until the game writes it.
The label loses its note in the six translations that had it.
Checked in the headless harness with a temporary cheat for the test
disc, not in this patch, on a word the boot loader writes after the
machine starts: on from the start, and turned on at frame 120, the
word holds the cheat's value; on from the start and turned off at
frame 200, it holds what the loader wrote again. No game with a
cheat was run. The live test passes on gl as far as it was run and
the headless test passes.