golden: move bunker1 window to 640-1120:240 (frame 400 sat on the nondeterministic intro camera; 3 captures agree)

This commit is contained in:
James Dansereau committed 2026-09-23 13:32:20 -04:00
1 parent 971c2d9f62
commit c728c42e81
7 files changed
+13 -8

No files matched your search

+1 -1
View File
@@ -51,7 +51,7 @@ threshold, 1 = at least one frame/region over threshold, 2 = usage / IO
error (e.g. a golden frame with no candidate).
Regenerate the golden set (after a deliberate visual change):
GE_PCDUMP="400-880:240" ./build-pc/ge007.x86_64.exe -level_09
GE_PCDUMP="640-1120:240" ./build-pc/ge007.x86_64.exe -level_09
(with data/ge007.ini = only [Window] Width=640 Height=480; see
tools_pc/golden/README.md)
python tools_pc/framediff.py ppm --update
+8 -3
View File
@@ -1,7 +1,7 @@
# Golden baseline frames
`frame_NNNNNN.png` — reference `GE_PCDUMP` captures for `framediff.py`
(`-level_09` BUNKER1: end of the intro + settled gameplay). Compared structurally, not exactly — the port
(`-level_09` BUNKER1: settled gameplay after the intro). Compared structurally, not exactly — the port
is not frame-deterministic (see `docs/internals.md` "D117").
Regenerate after a deliberate visual change:
@@ -13,7 +13,7 @@ printf '[Window]
Width = 640
Height = 480
' > data/ge007.ini
GE_PCDUMP="400-880:240" ./build-pc/ge007.x86_64.exe -level_09
GE_PCDUMP="640-1120:240" ./build-pc/ge007.x86_64.exe -level_09
python tools_pc/framediff.py ppm --update # then git rm any stale stems
```
@@ -30,7 +30,12 @@ python tools_pc/framediff.py ppm --update # then git rm any stale stems
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 `400-880:240`, the same sim ticks the original set sampled.
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).
Binary file not shown.

Before

Width:  |  Height:  |  Size: 317 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 KiB

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 KiB

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

+4 -4
View File
@@ -18,7 +18,7 @@
#
# Options:
# --platform win|linux default: autodetect via `uname -s`
# --dump lo-hi:step GE_PCDUMP window (default: 400-880:240 single level,
# --dump lo-hi:step GE_PCDUMP window (default: 640-1120:240 single level,
# 80-400:40 sweep — matches the existing golden set
# and level_sweep.sh respectively)
# --script "..." GE_INPUTSCRIPT passthrough (scripted input)
@@ -284,7 +284,7 @@ except Exception:
# exit 1 = a real per-frame threshold fail (pixel/cell/hash delta).
# exit 2 = a structural mismatch (missing/size) -- most commonly the
# golden's frame stems don't line up with this run's --dump window
# (today's only golden, level_09, was captured at 400-880:240; a
# (today's only golden, level_09, was captured at 640-1120:240; a
# sweep using a different stride has nothing to compare against
# rather than a real regression). Only exit 1 is a verdict fail.
case "$fexit" in
@@ -327,7 +327,7 @@ case "$MODE" in
name="${resolved%%:*}"; num="${resolved##*:}"
[ "${resolved%%:*}" = num ] && name=$(name_for_num "$num")
pin_ini_640x480 2>/dev/null || true
verify_level "$name" "$num" "${DUMP:-400-880:240}"
verify_level "$name" "$num" "${DUMP:-640-1120:240}"
;;
sweep)
@@ -375,7 +375,7 @@ case "$MODE" in
[ -z "$resolved" ] && { echo "unknown level '$LEVEL_ARG'" >&2; exit 2; }
name="${resolved%%:*}"; num="${resolved##*:}"
pin_ini_640x480 2>/dev/null || true
run_one "$name" "$num" "${DUMP:-400-880:240}" 90
run_one "$name" "$num" "${DUMP:-640-1120:240}" 90
if [ "$R_STATUS" != PASS ]; then
emit_verdict "$name" "$R_STATUS" "$R_FRAMES" "" "$R_SYM"
rm -rf "$CAPDIR"; exit 1