Files
goldeneye-pc-port/tools_pc/golden
James Dansereau d7b9371afb Docs: public copy, site presentation, release-gate review (D533, D534)
Public-copy language pass, homepage restructure and Documentation rename,
404 page, dead-anchor and permalink fixes, release-gate sign-off, and the
pre-release review fixes of the 2026-10-05 batch (probe-doc drift,
build-path hygiene, verify.sh and capture safety).

Refs: D533 D534
2026-10-06 18:35:44 -04:00
..

Golden baseline frames

<level>/<platform>/frame_NNNNNN.png: reference GE_PCDUMP captures for tools_pc/verify.sh, one folder per solo level (all 21, cuba = the ending) and per platform (win, and linux — 21 levels x 3 frames on each, captured 2026-10-05 at the same stems).

Recipe (2026-10-02 re-base; verify.sh applies all of it):

  • data/ge007.ini pinned to ONLY [Window] Width = 640, Height = 480 (every other option at its compiled-in default; verify.sh backs yours up).
  • GE_RSEED=0x0123456789abcdef (pinned PRNG).
  • GE_INPUTSCRIPT="20:START" (skips the intro flyby; the scripted pad is the only input). Window per level, exactly as verify.sh's golden_dump_for states it (D522 re-base 2026-10-05 — the 900 stem is NOT settled gameplay on every level: it fails the 1% limit on Surface 2 / Streets / Depot / Cradle and is still inside Dam's flyby): 900-1500:300 (900/1200/1500) on the 14 levels where 900 is settled, 1000-1400:200 (1000/1200/1400) on Surface 2 / Streets / Depot / Cradle / Frigate, 1500-1700:100 (1500/1600/1700) on Dam, and Cuba with no input (1:SNONE) and 300-900:300 (the ending cutscene; it returns to the boot screens before frame 1200). framediff walks the CANDIDATE frames, so a sweep's --dump must hit the golden stems exactly — never widen a stride.
  • The gate INSTALLS THE CANONICAL SAVE tools_pc/golden/ge007.eep (2 KB, in-tree; D523, superseded by D529): the frame depends on the save's content, not its presence — D523's "presence, not which save" claim (worst_cell 0.175625 on each of the four candidate saves, 21.557% with none) was only ever measured on Archives, and the 2026-10-05 A/B refutes it (facility 177.47 scene-level on the 2026-10-05 playtest save, 0.0-0.25 on every other candidate on disk). verify.sh and capture_p7.sh install the canonical eep the same way they pin the ini (snapshot the local file if any, install the canonical one, restore-or-remove on exit), so the gate is reproducible on a fresh clone and in CI. A local playtest save is never the gate's input. The linux 63-frame set was re-captured on the box under the canonical eep 2026-10-05 (D531; the 2026-10-05 re-round, D530, turned out to have run under the box-LOCAL save — the capture_p7.sh per-level re-pin bug, fixed in D531) and is valid.
  • Every run ends via GE_QUITFRAME (orderly quit; never a hard kill, D344).

Gate (two tiers): the structural framediff (cell means, coverage, phash) catches gross breakage; then a per-pixel --exact --tol 2 check with a per-level limit: 1% of pixels, 3% for Jungle and Surface 2, Cuba structural only. Measured run to run: <= 0.57% on 18 levels, Jungle 1.75%, Surface 2 2.33%, Cuba 36%; a global texture-filter switch measured 22%.

Cross-platform rule (D521, P7): a frame stem is comparable across platforms only if it is settled gameplay on every platform in the set. The intro flyby is wall-clock paced (D117): a box that cannot hold 60 fps stretches wall time without advancing the sim-frame counter, so the flyby settles at a different frame per box. On the Linux capture box (Mesa / Intel HD 3000; the golden stems rendered in 11.8-15.1 ms) frame 900 is still inside the flyby (it settles between ~830 and ~1130 run to run) while the win/ golden at 900 is settled -- linux/900 vs win/900 is a scene offset (92.863% over tol 2, phash 83 on Dam), NOT a renderer defect. After the 2026-10-05 re-round both platforms sit at the same stems and the cross-platform spread is 0.348-3.983% over tol 2 (structural tier 21/21 clean, phash <= 6 except cradle at 40; Cuba 23.7-36.3% is structural-tier-only) — informational only. The gate each platform ships is its own captures against its own goldens; never call the cross-platform spread a parity gate. 1200/1500 are settled on both and measure the real driver delta. GE_DETERM=1 is for Linux-vs-Linux regression runs only (it changes the frame -> sim mapping; against the win/ goldens it measures 15.788% at 900, 14.594% at 1200 and 16.171% at 1500, which is expected and must never be read as a delta).

Regenerate one level after a deliberate visual change: run tools_pc/verify.sh <level> twice to confirm the new look is stable, then capture with the recipe above and replace <level>/<platform>/*.png.

History

  • D531 (2026-10-05): capture_p7.sh's D529 adaptation was incomplete — the per-level re-pin restored the pre-capture LOCAL save (D524-era line), silently overwriting D529's pre-loop canonical install, so the 2026-10-05 box re-round (D530) ran under the box-local save, not the canonical one. Fixed (loop now re-pins the canonical save per level; cd "$ROOT" added) and re-captured: fresh 21/21 box round, 63 frames committed, replacing the D530 set (47/63 frames differ — save content demonstrably moves the frames; 16 byte-identical save-independent scenes).

  • D530 (2026-10-05, AMENDED BY D531): the linux set was re-rounded on the box (X220, tree 442eb2ff; ~/p7-reround.log hit P7 re-round DONE 2026-10-05 12:53 EDT, 21/21 rc=0) and committed, replacing the D525 cleared-eep set (51/63 frames differ; 12 save-independent scenes byte- identical). The "canonical eep" provenance claim was wrong — see D531.

  • D168 (2026-09-01): the GE_PCDUMP PPM writer emitted glReadPixels rows unreversed, so every capture — and this baseline set — was vertically flipped. Writer fixed (port/fast3d/gfx_opengl.cpp); this set regenerated from a fresh, correctly-oriented -level_09 run.

  • 2026-09-23 (v0.4.0): re-baselined. The 2026-09-09 (D215) set was captured while the port still rendered at 30 fps (2 sim ticks per frame); D248 moved it to 60 fps (1 tick/frame), so frame N now lands at half the sim time, and frames 200/320/440 fell in the intro cutscene, whose camera is nondeterministic (D117); two fresh captures disagreed at 440. The window moved to 640-1120:240, the same sim ticks the original set sampled. Two independent captures of it agree 3/3. The capture ini is now defaults-only, and verify.sh pins it the same way (it used to rewrite only Width/Height, which kept personal settings).

  • 2026-09-23 (later): window moved again, 400-880:240 → 640-1120:240. Frame 400 is the last beat of the intro cutscene (Bond in the shaft) and its camera is nondeterministic (D117): 1 in ~5 gate runs failed it (dmean 0.7 vs 20.7 run to run). All three frames are now settled gameplay; three independent captures agree (worst dmean ≤ 6.8).

  • 2026-10-02: re-based and extended to all 21 levels (<level>/win/), recipe above. The flat bunker1 set at the folder root was retired. Two independent 21-level passes agreed; noise per level measured as listed. verify.sh no longer hard-kills (taskkill of every ge007.x86_64.exe, including a maintainer's game); it quits via GE_QUITFRAME and only stops its own PID as a watchdog fallback.

  • 2026-10-04 (P7): first <level>/linux/ set captured (21 levels, the recipe above verbatim) on a real-GL Linux box; verify.sh's linux pixcount/ framediff skip is now driver-conditional (a glxinfo renderer probe, D521) -- llvmpipe/softpipe/swrast still skip, a real driver runs the full pixel gate. Structural framediff linux-vs-win: 19/21 clean; Dam (frame 900, the flyby) and Streets (frame 1200, a diagonal region delta) fail. Exact over- tol2: 1.1-6.6% on 17 levels; Archives 20-24.6% (a constant ~20 delta over the top 3 grid rows only), Cuba 10.7-26.4% (uniform d 3-6, cell means <= 11: dither noise floor), Jungle 5.9-6.6%, Streets 1200 9.6%. See D521.

  • 2026-10-05 (D522/D523 re-base): the win set's window moved on six levels — Surface 2 / Streets / Depot / Cradle / Frigate to 1000-1400:200, Dam to 1500-1700:100. Measured, same build, honest sequential passes: at 900 those levels fail the per-pixel limit (Dam 6.542% @900 worst_cell 12.11, Surface 2 3.752%, Streets 1.001%, Depot 1.267%, Cradle 1.754%, Frigate 8.391% on a later run) and Dam's 900 is still flyby (run-to-run 3.6-3.8% over tol 2, maxchan 168); Dam's 1200 looked settled on two runs (0.000%) then diverged 5.761% on a third, so it moved to 1500-1700 (1500/1700 0.000% across three runs, 1600 keeps ~40 moving pixels at 0.013%). At the new stems three independent runs agree within tol 2. verify.sh now pins the save file (D523). The <level>/linux/ set was stale everywhere, not only on those six levels: P7's 2026-10-04 round ran with data/ge007.eep cleared, and D523 measures that save-file presence moves ~every level (Archives 21.557% with none, 0.175625 worst_cell with any of four saves).

  • 2026-10-05 (P7b, linux re-round): the box re-captured all 21 levels (63 frames, 21/21 rc=0, frames=3, 25-29 s each) at the windows verify.sh carries, with the save pinned present, on the same real-GL box (Mesa 23.0.3 / Intel HD 3000). The set is now one frame per recipe stem on every level, both platforms. Cross-platform framediff (linux vs win, tol 2): structural 21/21 PASS (worst cell mean 4.43 on streets; phash <= 6 except cradle at 40, a hash tie with cell means 1.17), exact 0.348-3.983% on the 20 non-Cuba levels (Cuba 23.7-36.3%, structural tier only) — about half the stale set's 1.142-6.958%. D521's two residual bands are closed by this measurement: Archives 19.956-24.554% (cell means to 50.8, rows 0-2) is now 3.590-3.859% (worst cell 2.31, phash 1) and Streets 1200's 16.0-148.4 cell-mean band is now 3.616-3.983% (worst cell 4.43, phash 0) — both were the save-state difference, not a renderer. Dam's 900 (92.863%, phash 83) is out of the set; at 1500-1700 Dam measures 2.964-3.443%. Caveat: the box's own sweep is crash-detect only — glxinfo -B fails there (rc 255, "unable to open display :0" from a non-login ssh shell) so verify.sh's fail-closed probe keeps the pixcount/framediff skip even though the game's readback works; the cross-platform numbers are computed on Windows against the merged linux PNGs. See D525.