CLAUDE.md: mechlab windowed-mode spin root cause (parked cosmetic note)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-07-12 21:27:54 -05:00
co-authored by Claude Fable 5
parent 2f17631081
commit 1fd489d9a6
+10
View File
@@ -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.