DeepSeek V4.1 Flash

Replays real games almost perfectly (four of six score 0.9998 or better) but fails five test ROMs outright: the four Holy Mapperel board tests and blargg's official-opcode suite. One constant in its frame loop, fitted to the reference, is worth 0.36 of its score; see the post on reward hacking.

ModelDeepSeek V4.1 Flash
Harnessomp 18.11.0
Thinkingmax
Time limit24 hours
EnvironmentNES Eval 77c709b
Code7,329 lines of Rust; 92 commits; 59 Python tools of its own
Tool calls3,422; 190 shell commands invoking the oracle directly
Tokens27.7M input, 4.25M output (3.12M reasoning), 1.59B cache reads; about $9
Agent sessions72 (omp -p ends each turn; median 8.8 minutes)
Sourcegithub.com/IlyaasK/nes-eval-attempt-deepseek-v4.1-flash
Playrun it next to the reference in your browser

Score

CheckpointOverallProceduralReplayAudio
4h00m0.55640.22000.60270.7543
8h00m0.88800.70000.99550.7536
12h00m0.89340.70000.99550.7804
16h00m0.91320.70000.99550.8794
20h00m0.92720.77000.99550.8799
final0.92720.77000.99550.8797

Replays

The strip under each game is the per-frame penalty: empty means the frame matched the reference, a full-height mark means it scored zero.

Falling 0.9998

46 of 5,800 frames differ, the first at frame 3 · audio 0.9206

Thwaite 0.9894

73 of 6,000 frames differ, the first at frame 4 · audio 0.9120

Double Action Blaster Guys 1.0000

167 of 5,400 frames differ, the first at frame 2 · audio 0.9988

Minekart Madness 1.0000

83 of 5,400 frames differ, the first at frame 2 · audio 0.9853

Nova the Squirrel 0.9835

4,973 of 5,400 frames differ, the first at frame 16 · audio 0.9952

Concentration Room 1.0000

15 of 6,000 frames differ, the first at frame 2 · audio 0.9999

Procedural

Test ROMSubsystemScore
nestestcpu1.0000
instr-officialcpu0.0000
cpu-timingcpu1.0000
instr-misccpu1.0000
nmi-and-brkcpu1.0000
vbl-basicsppu1.0000
nmi-timingppu1.0000
sprite0-basicsppu1.0000
sprite0-timingppu1.0000
sprite-overflowppu1.0000
oam-readppu1.0000
apu-len-ctrapu1.0000
apu-irq-flagapu1.0000
apu-dmc-basicsapu1.0000
mmc3-clockingmapper1.0000
holy-mapperel-mmc1mapper0.0000
holy-mapperel-uxrommapper0.0000
holy-mapperel-cnrommapper0.0000
holy-mapperel-mmc3mapper0.0000
apu-mixer-squareapu1.0000
apu-mixer-triangleapu1.0000
apu-mixer-noiseapu1.0000
apu-mixer-dmcapu1.0000

Failed verdict screens

Reference on the left, this candidate on the right.

instr-official blargg instr_test-v5 official_only: results of all 151 official opcodes, including flags and addressing modes.

reference end screen
candidate end screen

holy-mapperel-mmc1 Holy Mapperel MMC1 128K PRG / 8K CHR-RAM: banking and mirroring report.

reference end screen
candidate end screen

holy-mapperel-uxrom Holy Mapperel UxROM 128K: banking and mirroring report.

reference end screen
candidate end screen

holy-mapperel-cnrom Holy Mapperel CNROM 32K/32K: CHR banking report.

reference end screen
candidate end screen

holy-mapperel-mmc3 Holy Mapperel MMC3 128K PRG / 8K CHR-RAM: banking and mirroring report.

reference end screen
candidate end screen