From 1fd489d9a64736b8d154bd0fe4f699143a4a91fe Mon Sep 17 00:00:00 2001 From: Cyd Date: Sun, 12 Jul 2026 21:27:54 -0500 Subject: [PATCH] CLAUDE.md: mechlab windowed-mode spin root cause (parked cosmetic note) Co-Authored-By: Claude Fable 5 --- CLAUDE.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 641f1325..2326f805 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -712,3 +712,13 @@ fine on modern hardware — just verify fixed-size netcode buffers and run one l - [ ] (Optional) Curate remaining WIP content as features are exercised (editor loads dev `Content\`). - [ ] (Optional) Build Debug/Armor configs (need `dbg.bin`/`arm.bin` output dirs). - [ ] (Parked, NOT scheduled) Raise MP cap to 24 or 32 — see "Reference"/"PLAN" sections above. +- [ ] (Parked, minor, cosmetic-only) Mechlab background mech spins way too fast in **windowed** + mode while focused (normal fullscreen / when unfocused). Root cause diagnosed 2026-07-02: + `MechLab::Execute()` adds a fixed `yaw += 0.02f` **per frame** (`MechLab.cpp:285`, called + per-frame via `DoShellLogic`) — no frame-time scaling. Fullscreen is vsync-locked (~60 FPS, + flip chain) and unfocused-windowed gets GameOS's `Sleep(20)` (`Windows.cpp:391`), but + focused-windowed uses the unsynced Blt path (`DXRasterizer.cpp:1267`) → uncapped FPS on + modern GPUs → spin rate ∝ FPS. Not gameplay-affecting (in-game sim is time-based; this is + the shell's decorative turntable). Fix when convenient: scale by frame time (1.2 rad/s; + needs MW4.exe rebuild) or set `gos_Set_LoseFocusBehavior` mode 3 (built-in 60 Hz cap, + `Windows.cpp:407`) to pace the whole shell.