Files
goldeneye-pc-port/docs/dev/RELEASE-GATE.md
T
James Dansereau 162691a3f5 v0.6.0: issue fixes and v0.7.0 roll-ins before release
Issue fixes:
- D643 (#145 b/c, #149): Original control style is a strict virtual N64 pad
  (native buttons in stage/menu/watch/tank, per-seat Input.N64Pad remap,
  Input.N64StickFeel)
- D605 + D645 (#145 a): Invert look reaches the original styles; in Original
  it is the game's own Look up/down, synced with the F10 row
- D606 (#144): optional always-visible mission timer
- D644 (#146): IA4 decodes as the RDP's I3:A1 (file-select crest drew on a
  dark square)
- D581 (#151): open on the real primary monitor (SDL display 0) and centre
  every window placement in the display's global bounds; the earlier
  "display at (0,0)" rule still picked the left monitor
- D580 (#153, #156): runtime check of the propDef type/end-of-list fix
- D646: F10 dropdown popup stays inside the settings box

Frame rate (#148):
- D578: Auto follows the display up to 240 (4 presents per sim tick, the
  renderer's ceiling); 165 and 240 in the Frame rate cap row

Rolled in from release/v0.7.0:
- D632: release the GL context + window before exit (BSOD 0x119)
- D626: Windows per-monitor DPI awareness
- D639: exclusive fullscreen uses the desktop mode
- verify.sh: a frame-size mismatch fails; demobatch/flicker_scan harness

Release gate, licenses, docs:
- NOTICE: macOS packaging and pi/ coverage; runtime libraries bundled in
  the downloads (SDL2/SDL3, zlib, MinGW runtime, macOS GCC runtime)
- macOS package ships SDL3, GCC COPYING.RUNTIME and the GPL-3.0 text
  (tools_pc/dist/GPL-3.0.txt)
- README: release date 2026-10-13, "Why play this port", Legal (Apple,
  runtime licenses), frame-rate text; site date tokens
- tools_pc/release_gate.sh: one-command win/deck/mac release checks
- release notes, findings D578/D580/D581/D643-D646 + index, porting notes
2026-10-13 09:37:19 -04:00

1.1 KiB

Release gate driver

tools_pc/release_gate.sh runs the automatable pre-release checks and prints one PASS / FAIL / SKIPPED table. It wraps verify.sh (pixel gate) and levelbench.sh (scripted run, clean-quit and crash-log detection); every run ends through GE_QUITFRAME, nothing is hard-killed.

tools_pc/release_gate.sh --dry-run all       # print what would run
tools_pc/release_gate.sh win                 # sweep vs win goldens + fire smoke + exit path
tools_pc/release_gate.sh deck <host>         # 21 levels via deckrunner (shortcut must be up)
GE_MAC_DIR=<remote game dir> tools_pc/release_gate.sh mac <host>

Options: --secs N (per-level run length, default 30), --out DIR. Hosts and paths come only from arguments or env (GE_WIN_DIR, GE_DECK_HOST, GE_MAC_HOST, GE_MAC_DIR, GE_MAC_EXE, GE_MAC_BUILD_CMD, GE_GATE_SSH_OPTS). The Deck pixel compare is reported SKIPPED (640x480 goldens vs 1280x800 dumps); Mac has no goldens, so it is crash-free only. The fire smoke is GE_INPUTSCRIPT MLB1/MLB0 (D597, the D595 regression). Remote job, result and script files are deleted after the summaries are pulled.