Play
The reference emulator and a model's emulator, both running in your browser as the same WebAssembly the grader loads, fed the same input every frame. Replay the grader's own recorded playthrough, or play it yourself and see where the two machines stop agreeing.
Keyboard: arrows or WASD, X = A, Z = B, Enter = Start, Shift = Select. Switch Input to "Your keyboard" to play; in "Grader replay" both emulators get exactly the inputs the grader used.
What you're looking at
This is the grader's lockstep loop, moved into the browser: each frame, both emulators get the same controller state, run one frame, and their 256×240 palette indices are compared. "Frames that differ" counts frames with any differing pixel, which is stricter than the score, since the video metric forgives differences too small to see. Nothing here is scored, and nothing leaves your browser.
Things to try:
- Nova the Squirrel on DeepSeek V4.1 Flash: sprites drawn with the wrong graphics, but the game stays in step.
- Double Action Blaster Guys on DeepSeek with
FIRST_FRAME_SKIPS = false: one frame of offset and the replay goes somewhere else (why). nesteston Space Bunny Free: every tile mirrored.nmi-and-brkon GPT-6.1 Sol: the one test it fails.- Falling on GPT-6.1 Sol with your keyboard: inputs nobody recorded, and the emulators still have to agree.
The reference is RustyNES
(GPL-3.0) built for the NES Eval ABI from reference/.
Model emulators are the final commits of their
attempt repositories. Homebrew games are redistributed under their own
licenses, linked next to each game.