hraness

saved

My quest to see all of Tetris

by Bill GrieserAntithesispublished

Hraness cites a source capture. The source author remains the source.

gist

Bill Grieser recounts how Antithesis used its deterministic fuzzer to chase NES Tetris “rebirth”—rolling the level counter past 255 back to 0 after teenage players outpaced an earlier “win” at level 41. Graph-aware search and a hand-tuned objective function pushed past the old kill screen and maxed the score, then stalled at level 160 until a six-year-old BCD misread of the line counter scored line 1600 as regression. One fix unlocked rebirth and a catalog of deep-game glitches, framed as a metaphor for hunting software’s unexplored corners.

ideas

  • Beat games by searching interesting states, not scripting them. Antithesis trials random inputs from saved states, scores outcomes, and returns to promising moments—the same replay model its deterministic hypervisor offers for ordinary programs.
  • The goal moved with the teenagers. Level 29, then 41, then human rebirth at 255 redefined “beaten”; hypertapping and rolling kept rewriting the scoreboard Antithesis thought it had closed.
  • Objective functions encode what you can keep. Graph-aware buckets plus Tetris-readiness, bubble penalties, and score terms drove Project 999999 until a wrong LinesCleared reading refused every state past 1599.
  • Proven code can hide the wall. Treating the high-order line-count byte as BCD worked until line 1600; printing intermediates exposed a self-authored 2020 bug, not a rare game glitch.
  • Deep exploration is the product lesson. Past the happy path, software (like Tetris) grows crashes, palette corruption, and broken counters; Antithesis hunts them by remembering interesting states and pushing a little further each time.

quotes

You can exactly recreate any moment from a test execution by replaying the randomness we injected into the system to get there.

Bill Grieser, explaining deterministic replay.

We had been closer to success than we had known. It was just a bug fix in “proven” code away.

Bill Grieser, on the level-160 wall.

The high order byte was not BCD.

Bill Grieser, naming the LinesCleared misread.

Most software has weird corners like this once you explore away from the happy path.

Bill Grieser, stating the product analogy.