From aafa86d1805b882d0a41d751debaa6f395a44f94 Mon Sep 17 00:00:00 2001 From: James Dansereau <106631954+jkdansereau@users.noreply.github.com> Date: Sun, 30 Aug 2026 12:46:07 -0400 Subject: [PATCH] docs: M-25 QoL session summary + re-sweep (20/21, Silo freeze clarified) --- docs/HANDOFF.md | 25 +++++++++++++++++++++++++ docs/LEVEL-STATUS.md | 10 ++++++++++ 2 files changed, 35 insertions(+) diff --git a/docs/HANDOFF.md b/docs/HANDOFF.md index 3af46573..d2632c8b 100644 --- a/docs/HANDOFF.md +++ b/docs/HANDOFF.md @@ -284,6 +284,31 @@ risk, verification, what to check by playing). Committed `f3ec5170`, - **Still TODO (not started):** key rebinding, on-screen (in-render) FPS overlay, in-game options menu. +## Done this session (M-25) — 3 commits, port-layer QoL + +Free-roam QoL pass, `port/` only, zero `src/` / game-logic change. Full +review sheet: **`docs/M-25-QOL-REVIEW.md`**. All defaults reproduce prior +behavior exactly. + +- **`9ebed821` — `[Video]` ge007.ini knobs.** `Video.VSync` / `FpsCap` / + `MSAA` (1/2/4/8) / `TextureFilter` (0 nearest, 1 bilinear) / `Fullscreen`, + wired in `video.c videoInit`. Plus **config auto-migration**: `config.c` + now rewrites `ge007.ini` once when the build registers a key the file + never had (so a new section actually appears) — an up-to-date file with a + user comment is left untouched. +- **`5a7a1035` — `tools_pc/playtest.sh`** takes a level *name* + (`playtest.sh bunker2`) or number, `--list` prints the 21-level table, and + a crash now auto-runs `addr2line` on the faulting PCs. +- **`863f436b` — `[Input]` ge007.ini knobs.** `MouseYScale`, + `MouseSmoothing` (0 = off = today), `PadDeadzone` (7000), `PadTriggerPct` + (23), `PadLookInvertY`. +- Verified per commit: build green, `-level_09` crash-free to frame 620 @ + 91.6% (unregressed), `-level_20` crash-free. +- **New bug logged (not fixed — out of scope):** Silo `-level_20` freezes + ~3 s in on the silo→Bond camera descent (no crash; capture wedges + ~frame 320). Reproduces on a clean pre-M-25 build. User-reported. Goes + with the in-level playtest / camera-transition work. + ## Next task (M-24 — Opus 5) **Scope call (user, M-23):** D139 (stage unload) + D140 (pause menu / watch) diff --git a/docs/LEVEL-STATUS.md b/docs/LEVEL-STATUS.md index 10b5947b..8301ab9e 100644 --- a/docs/LEVEL-STATUS.md +++ b/docs/LEVEL-STATUS.md @@ -7,6 +7,16 @@ auto-injected, D121), `GE_PCDUMP="80-260:40"`, ~24 s watchdog then 0x140000000). "render %" = `tools_pc/pixcount.py` non-clear on the last captured frame. Binary at `f2beae4b` + this session's build. +M-25 re-sweep (2026-08-30, port-QoL build `863f436b`): **20 / 21 PASS**, +unchanged. Caverns (39) flagged CRASH `0xc000001d` once under sweep load → +2/2 clean on retry (D117/D134 concurrent-load flakiness, not a regression). +Cuba (54) still the only real crash (known D129 credits path, parked). +**Silo (20) caveat:** the sweep reports PASS because it early-exits on the +first rendered frames, but a full-length capture wedges consistently at +~frame 320 on the silo→Bond camera descent (user-reported M-25; +reproduces identically on a pre-M-25 baseline). Real bug, belongs with the +camera-transition / in-level playtest work — not caught by a boot sweep. + Last full re-sweep: 2026-08-29 (M-22), after D134 landed (SP/DP task-done event no longer dropped into a full sched interruptQ — the "frame-2 hang" that M-13..M-21 wrote off as D117/machine-load flakiness). Build = HEAD