Files
goldeneye-pc-port/docs/dev/findings-index.csv
T
James Dansereau 2d9e673129 D322: log issue #87 long-session audio degradation + ship GE_D322 pool-telemetry probe
User report (v0.3.0 full campaign): audio progressively degrades from Silo;
by Caverns/Cradle the OST is inaudible and SFX come and go; restarting the
game restores it. Logged as D322 with static triage: level teardown audit
clean, mixer stateless per frame, D202's covered leak class is one shape
only (ownerless count==-1 loops) validated single-level only, and D305
already records a pool/list accounting desync. Ranked hypotheses:
voice-pool exhaustion/counter drift > queue starvation > evtq saturation.

Probe: GE_D322=1 prints sfx=n/8 (SFX soft cap), evtq=n/64, pv free/lame/alloc
(24 physical synth voices) + pipeline depth/drops every 5 s of wall clock,
read with GE_D204. sndD322PoolSummary() walks the ALSynth lists under the
D285 lock; NB drvr is a pointer field (first build faulted on &drvr).
Smoke-tested 40 s headless -level_09: pools coherent, no crash.

Also adds the missing D321 row to the findings index (entry existed at file
tail with no table row, so it was absent from the CSV too).
2026-09-20 23:09:03 -04:00

31 KiB

1# GENERATED by tools_pc/gen_findings_index.py -- do not hand-edit.
2# Grep this to pick which findings.md entries to read; it is not authoritative.
3labelbucketone_linerstatus_raw
4D24-D30RESOLVEDgreen threads / kernel / crash handlerresolved
5D31-D42RESOLVEDboot ABI: ANIM_DATA, music seq-table, libaudio banks, Globalimagetable rebase, GL context, rsp toggleresolved
6D43-D50RESOLVEDmodel-file loading → offline sidecar "Plan B" (d43_emit.py); D50.6 texCopyGdls full-slot copyresolved
7D51-D58RESOLVEDfont pixeldata, osGetCount tick rate, model RW pools, cseq BE header, synth slots, RLE menu bg, watch raw offsets, gun-barrel DLresolved
8D59-D68RESOLVEDintro render: blood-RLE clobber, DMA validate, OSMesgQueue, HEADS/BODIES sentinels, romCopy width, image_entry, Globalimagetable BE→LEresolved
9D70-D74RESOLVEDintro-logo pixels: C-array bswap, UV path, sinf/cosf DVAL(), texture-import truncationresolved
10D75OPENfront-end 3D model transforms (D77 audio split out below —OPEN (parked). M-32 triage (see §F "D75 ADDENDUM"):
11D76 · D164FIXEDLegal screen only draws line 1 —FIXED — this row and the ## D164 entry below were stale; the proposed one-line #ifdef PORT fix was actually committed 8dfc578f4 (2026-08-31), well before this correction (2026-09-18).
12D159FIXEDfront-end wallet-Bond photo "interlaced"/combed (RC1 / D149) —FIXED (#ifdef PORT no-op the swap in image.c)
13D161FIXEDDepot (-level_30) ceiling = bright-blue speckle + radial rays (B2).FIXED (port/fast3d/gfx_pc.cpp)
14D165 · D166FIXEDInput-layer polish (M-31, port-only):FIXED
15D180 · D181PARTIALNative-PC input pass (QoL run):LANDED, config-gated, feel-checks owed
16D186PARTIALVideo.FpsCap throttles the sim, not just presentation (M-39 diag, M-42 clamp).CLAMP LANDED (port/fast3d/gfx_sdl2.cpp, port/src/video.c); real fix owed
17D187FIXEDHUD ammo-type/weapon icon vanished at -O2 (M-46 root-cause, M-47 fix + verify).FIXED (src/game/gunfire.c, #ifdef AVOID_UB); PR #19
18D188FIXEDLinux -O2 boot crash:FIXED (src/libultrare/libc/xprintf.c, src/sprintf.c, #ifdef PORT); PR #22
19D189FIXEDLinux -fstack-protector aborts on the decomp's latent stack-buffer overruns (M-48) —FIXED (CMakeLists.txt, src/game/stan.c #ifdef PORT); PR #23
20D190CLOSEDLinux -level_45 SIGSEGV at load in add_ptr_to_objective (objective.c:64) (M-48, open).CLOSED — not a port bug; level 45 is MP-only and has no solo setup file in the ROM (root-caused M-105, reproduced on Windows).
21D191FIXEDWindows -O2 release-bundle crash:FIXED + PLAYTEST-VERIFIED (M-79).…
22D193FIXEDNPC AI locomotion is too slow —FIXED + user-playtest-verified (M-81) —…
23D194PARTIALMouse input needs another tuning pass —PARTIAL — M-120 human playtest…
24D195FIXEDTransparency / alpha surfaces broken on Control (M-49, user playtest) —FIXED (port/fast3d/gfx_pc.cpp, gfx_sp_vertex) —…
25D197CLOSEDCharacter face/head textures wrap around the head, seen on Silo (M-49, user playtest).CLOSED — user playtest v0.2.0-pre
26D198FIXEDalAdpcmPull/_decodeChunk used K0_TO_PHYS (an unconditional & 0x1FFFFFFF mask) on 64-bit heap pointers (src/libultra/audio/load.c).FIXED (src/libultra/audio/load.c) —
27D199PARTIALPhase-3 software audio mixer:LANDED (port/src/mixer.c, port/include/mixer.h, include/PR/abi.h) —
28D200FIXED-level_09 segfault: reverb's ALDelay.input/output are u32 —FIXED — 5-line cast in reverb.c (this session)
29D196FIXEDOS mouse cursor stays visible after closing the F10 options overlay in click-to-lock mode (M-49, user playtest).FIXED (6e758f1d, merged to main) —…
30D192CLOSEDFront-end mission/level-select grid pointer still can't reach the outer cells —CLOSED — the buggy mode 0 was removed entirely in the v0.2.0 prep pass (see D239); click-to-lock is now the only capture mode, so the unreachable-cells path no longer exists
31D221FIXEDSELECT FILE mouse hit-box offset —FIXED (M-91) — explicit {min,max} coord2d pairs under #ifdef PORT; human mouse-playtest confirmed.
32D222FIXEDHigh Video.FovScale breaks culling —FIXED, awaiting visual verification (M-121).
33D223FIXEDQoL ask: mouse-wheel weapon cycling should be directional like a normal PC shooter —FIXED (M-105, port/src/input.c) —…
34D224?QoL gap (M-87, from a PD-PC-port survey):DEPRIORITIZED (M-87, user call).
35D225FIXEDDev-tooling QoL (M-87, user ask):FIXED (2026-09-18) — GE_DEBUG_UNLOCKALL=1 short-circuits fileGetIsCheatUnlocked() (src/game/file2.c, #ifdef PORT, cached getenv) to always return TRUE; default off, no save mutation.
36D226OPENQoL ask: player-adjustable HUD scale for the ammo counter, bottom-left pickup/item status text, and top-of-screen dialogue/subtitle text.OPEN — root cause / call sites identified, not designed or implemented.
37D227FIXEDSky renders as two independently-moving halves —FIXED (M-100b, PR #43) —
38D229FIXEDIsWater-level water renders green, pulses blue<->green (M-101; Frigate -level_26).FIXED (port-layer) — ZLIB+CI8 water image now imports via the CI8 palette path (gfx_pc.cpp); Frigate verified live ("looks better"); sweep + Surface 2 by-eye still owed.
39D230FIXEDIn-level music quality:FIXED (M-121, v0.2.0) —
40D233FIXEDAll levels (intermittent):FIXED (port/fast3d/gfx_pc.cpp, gfx_sp_tri1) —…
41D234FIXEDDam: guard towers along the dam structure invisible except the first one (M-106, user QA report).VISUALLY VERIFIED FIXED (M-108) —…
42D244OPENSelf-hosted CI runner (corpyvt6agent01) link failure:OPEN, not yet fixed. Next…
43D228FIXEDAK47 white missing-texture patches after D217's texpool fix —FIXED (port/fast3d/gfx_pc.cpp, palette_to_rgba32) —
44D204FIXEDPC audio ran ~2 % below real time permanently (AI feedback loop's 3 ms setpoint vs PC jitter).FIXED (port/src/audio.c, port/src/libultra.c, port/include/audio.h) —
45D203CLOSEDSteam Deck (SteamOS, x86_64 Linux) v0.1.0 release bundle:CLOSED — root cause + fix in D253.
46D201FIXEDsrc/libultra/audio/bnkf.c bank/instrument/sound/wavetable relocation offsets were s32, truncating the real 64-bit base pointer.FIXED (src/libultra/audio/bnkf.c) —
47D202?Silenced PPK "slap" + broader real-time mixer corruption (M-52→M-67).ROOT CAUSE ESTABLISHED (M-66); Disposition C implemented + measured (M-66b) —
48D206FIXEDPC played every SFX one bank slot too high —FIXED (M-76, src/snd.c:1001, #ifdef PORT) —
49D207?Alarm klaxon starves combat SFX and doesn't recover after it stops (surfaced by D206, M-77).MONITORING (M-77c: user reports the alarm is acceptable in play after D206; no fix shipped) —
50D208FIXEDPlayer weapon-fire sound goes permanently silent mid-firefight (all other SFX unaffected) —FIXED + user playtest-verified (M-78d) —
51D209FIXEDEvery AI character in the game is locked to a *walk* animation regardless of the speed the ailist commands —FIXED + user-playtest-verified (M-81).
52D210FIXEDchrToPatrol() leaves act_patrol.lastvisible60 uninitialised on PC —FIXED (chraction.c:3872, #ifdef PORT → self->act_patrol.lastvisible60 = -1;, N64 line under #else).…
53D205CLOSEDPC plays wrong/extra SFX for gameplay events (gunfire slap layer, explosion→scream, armour pickup, melee→Klobb idx 106) —CLOSED (M-78) — root cause was D206; all four symptoms resolved + user-confirmed by ear.
54D152+FIXEDD152 addendum (M-31):FIXED (src/snd.c, port/src/libultra.c, #ifdef PORT) —
55D168FIXEDGE_PCDUMP / F12 PPM captures were vertically flipped —FIXED (port/fast3d/gfx_opengl.cpp); D114 / D116 reclassified as capture-orientation artifacts (below).
56D169FIXEDFront-end mouse pointer can't reach the outer cells of the mission/level-select grid —FIXED (M-33, port/src/input.c, port-only, no #ifdef PORT).
57D178FIXEDPre-mission briefing screen:FIXED (M-36) — high confidence
58D175OPENIn-game stutter / brief hang during normal play —OPEN — observed, not investigated
59D176FIXEDSurface exterior renders wrong (-level_36), two independent defects.(a) scroll-speed FIXED (fidelity pass; HIGH confidence on root cause, MODERATE on N64 parity); M-93 playtest + M-98 Defect-2 starburst screenshot in the sections.
60D177FIXEDLadders non-functional —FIXED (M-36) — high confidence; interactive climb test owed
61D172FIXEDBullet-impact / blood / spark particles render magenta or cyan instead of dark red (M-82, ROOT CAUSE FOUND + FIXED).FIXED (port/fast3d/gfx_pc.cpp gfx_lod_tile_offset)…
62D174OPEN"No blood effect" (user QA report).OPEN — observed; first step = BUNKER1 firefight with regenerated sidecars
63D183OPENM-36 Family A ("texture line/pitch shear") is DISPROVEN for the Surface repro (-level_36).Hypothesis DISPROVEN + diagnostics shipped; D176(b)/D182(2) still OPEN
64D173FIXEDThird-person Bond model spawns too high —MOSTLY FIXED as a side effect of D243 (2026-09-18, user-confirmed).
65D179FIXEDPackaged build crashes after the logos —Diagnosed, not fixed —
66D180PARTIALNative-PC input pass (M-XX QoL run, qol/native-pc-input-menu, port-only).LANDED, port-only, no #ifdef PORT.…
67D181?Game.ScreenShakeIntensity —Menu row pulled (v0.2.1, user testing).
68D184PARTIALF10 port-layer options overlay —LANDED, port-only, no #ifdef PORT in src/.
69D211PARTIALPC FOV slider — Video.FovScale (M-83 QoL wave, port-only, WIDESCREEN-FOV-PLAN.md Phase 4).PARTIAL — M-84 refix…
70D212PARTIALAnisotropic-filtering config wiring —LANDED, port-only. Build clean.
71D213PARTIALOn-screen FPS readout —LANDED, port-only. Build clean; bunker1 no-op confirmed.
72D214PARTIALKeyboard rebinding — [Input.Bind] config section (M-83, port-only, PD parity, Phase 4 debt).PARTIAL — M-84: code PASS (alt/ctrl); one doc-only fix.
73D215FIXED1P weapon viewmodel never drew in-level —FIXED (src/game/gunfire.c, #ifdef PORT).
74D216PARTIALGame.SkipIntro — boot straight to the file-select menu (M-83, port + one #ifdef PORT game-code line, PD parity, Phase 4 quick win).LANDED + VERIFIED this session.
75D217FIXED1P weapon viewmodel + 3P Bond model textures garbled —FIXED + merged (PR #47 + PR #49); white residual split out as D228.
76D218PROPOSEDWide FOV exposes the per-level draw-distance / fog boundary —Logged (M-84), fix proposed + parked.
77D219RESOLVEDPPK explosions render purple on Dam (M-87, user QA, "not 3D but noting").RESOLVED (M-115, 2026-09-12) for the original PPK-purple symptom.
78D220PARTIAL1P muzzle flash position shifts upward at higher Video.FovScale (M-87, user QA, Jungle/M16).ANALYZED (M-91) — the suspected unscaled-viewmodel root does NOT hold; this is correct perspective behavior, likely cosmetic/QoL.
79D85OPENRoom primary/secondary DL → texLoadFromGdl garbage.OPEN (safety-netted; widen/pool fixes landed, geometry now renders)
80D86 · D87RESOLVEDmodelInitRwData truncated ptr · attract-demo BE ramromfilestructure.resolved
81D88.4RESOLVEDpropDefs polymorphic record stream not byteswapped → setupDoor crash.resolved (d88_propdefs.py); layout audit M-20 → D132
82D132PROPOSEDD88 propDefs layout audit (M-20):proposed fix (not applied) —
83D157FIXEDCampaign never unlocks the next level (M-30, user bug —FIXED (src/bondtypes.h, #ifdef PORT —…
84D160PARTIALDam level-end cutscene (Bond off the dam / bungee) never plays —DIAGNOSTIC SHIPPED, not root-caused (c95713f5, #ifdef PORT + GE_D160=1)…
85D89-D92RESOLVEDstage-load→frame: stan zero-fill overrun, portal address trunc, chr/AI spawn ptrsresolved
86D93-D102RESOLVEDstruct-pun / hardcoded-size pass:resolved (D95 pool bump partial)
87D103-D107RESOLVEDBUNKER1 viewport height, depth-buffer clear (G_CLEAR_DEPTH_EXT), portal near-plane, LOD mip tileresolved
88D108-D112RESOLVEDskeletal models: d43_emit.py put_f32 byte-reversal bugresolved
89D113-D116FIXEDportal BFS ok · matrix chain ok · player raw-offset audit + gunfire.c THROW* · HUD text X-mirrorD114/D116 CLOSED — NOT A BUG (M-33, see D168):
90D117OPENFrame nondeterminism root-caused; GE_DETERM attempted, not achieved.OPEN (mode attempted, not achieved)
91D118RESOLVEDSDL input layer; M-24 mouse-look rework (mode-aware map, real INI); D118b/c FIXED.resolved (D118a residual)
92D150FIXEDwatch OBJECTIVES / BRIEF page crash:FIXED (src/str.c #ifdef PORT); interactive re-verify pending
93D260-D265PARTIALv0.2.1 hotfix batch: D260 wheel direction swap (fixed) · D261 watch-menu nav auto-repeat (fixed, feel-check owed) · D262 watch item-preview model missing → roo…partial — see rows
94D266-D269OPEND236/D265 wall, second pass:OPEN (the wall itself) —
95D270?Backfilled (M-132) — this label was never given its own row; only code comments and the HANDOFF archive documented it.dead-ended into D271/D272; infrastructure kept in tree
96D271FIXEDD236 wall, third pass —FIXED-but-insufficient (src/game/bg.c #ifdef PORT) —
97D276OPEND236 wall, eighth pass —REFRAMED — oml=0xc81049d8/fmt=3 is the primary suspect now, not D269's CI8 pair; 0x0c184b50 unattributed; wall still open, see D236
98D279?Backfilled — this label was consumed by an undocumented partial session (2026-09-14 ~23:00) that left artifacts in scratch/ (d279_run.log… —undocumented — artifacts only
99D281OPENGame.AllUnlocked (D257) still breaks audio, and can also break right-mouse aim, when enabled before any save has ever been written (v0.2.1 user testing… —OPEN — user-reported regression, not root-caused; mitigation is user-facing guidance only (release notes:
100D282FIXEDQoL ask (v0.2.1 user testing, 2026-09-15):FIXED (port/src/input.c, #ifdef not needed —
101D283OPENSteam Deck first-run preset (D-unnumbered in port/src/video.c/main.c, videoApplySteamOSDefaults()) did not apply for a user who added the game via Steam… —OPEN — mechanism understood, root cause (Desktop-vs-Game-Mode STEAMOS env var difference) unverified on real hardware; user-facing workaround documented in README/release notes.
102D280?D236 wall, ninth pass —REFRAMED again — no fix; next steps in detail section, see D236
103D275?D236 wall, eighth pass —done — probes live, uncommitted; see D276 for what they found
104D274OPEND236 wall, seventh pass —d267_slot_addr fix live (always-on); content/decode question CLOSED; mip-presence CLOSED; wall still open, see D236/D276
105D273OPEND236 wall, fifth pass —RULED OUT (port/fast3d/gfx_pc.cpp palette_to_rgba32, pre-existing/uncommitted GE_D273) —
106D272OPEND236 wall, fourth pass —OPEN — probe GE_D272 added to port/fast3d/gfx_pc.cpp (env-gated, uncommitted); wall still open, see D236
107D137FIXEDright-mouse (aim-sight) crash:FIXED (src/game/gunfire.c #ifdef PORT —
108D119 · D120FIXEDguard-attack weapons_held[]->chr pun crash · blood-stain PointUsage[] chain hangD119 fixed · D120 FIXED (M-30)
109D120FIXEDBlood-decal PointUsage[] chain —FIXED (tools_pc/d43_emit.py).
110D121RESOLVEDWS1 frictionless per-level boot (bare -level_XX injects its -m* row).resolved
111D122FIXEDper-level prop/item model-load crash (Dam/Facility/Runway modelLoad/modelInitRwData):converter fixed; residual chr/fast3d crashes on those levels are separate
112D123FIXEDcrash class C1: chrIsNotDeadOrShot NULL deref on 6 levels (Dam/Runway/Frigate/Statue/Streets/Cradle).converter fixed (OBJ_ID_WORDS); C1 cleared on all 6, residual crashes are fast3d (C2)
113D125RESOLVEDcrash classes C3+C6 (Aztec/Bunker2/Surface2):resolved (M-16b) — line 374 → 8 NULs; all 21 sidecars regen'd; Aztec -level_28 now PASSES (was C3 CRASH).
114D126RESOLVEDcrash classes C3r/C4/C6 (Bunker2 -level_27 door7F054FB4 propobj.c:13523, Depot -level_30 prop.c:902, Surface2 -level_43 loadobjectmodel.c:393):resolved — d88_propdefs.py PROPDEF_PC_BYTES[30/32/33/35]=24 + typed handler; loadobjectmodel.c sizepropdef PORT returns 6.
115D124FIXEDcrash class C2: fast3d bad texture pointer.Jungle fixed (port/src/gimgfixup.c); Facility → D130
116D131RESOLVEDcrash class C2m (Jungle -level_37):resolved — seg_addr() restores the module high word for any fallthrough w1 in [0x40000000, 0x70000000) (module fixed-based at 0x140000000, no ASLR; DRAM/KSEG0/segmented/phys all handled earlier).…
117D133RESOLVEDintro render triage (M-20):RESOLVED — not a regression, parked (D75/D76, GRAPHICS-BACKLOG.md)
118D134FIXEDFrame-2 boot hang / sweep "NO-FRAMES" flakiness —FIXED (port/src/libultra.c)
119D135FIXEDFirefight crash — bgTestHitOnObj (propobj.c:8446) is an unported N64 GBI parser (M-22, WS6 playtest).FIXED (src/game/propobj.c, #ifdef PORT —…
120D136RESOLVEDStage-unload crash — objFree obj->prop reads float garbage (M-22, WS6 Facility playthrough).ROOT-CAUSED → D139 (it was NOT a layout bug —
121D139FIXEDStage-unload crash root cause + fix (M-23).FIXED (src/game/cleanup_objects.c, #ifdef PORT —…
122D140FIXEDPause-menu crash (M-23 open → M-27 fixed).FIXED (src/game/bondview.h, src/game/bondview2.c; #ifdef PORT).
123D141FIXEDWatch-menu item-model crash (M-27), exposed by D140.FIXED (src/game/gunfire.c, #ifdef PORT).
124D152?Mission-failed / objective-failed → permanent black screen (M-28, user bug report —MITIGATED (port/src/libultra.c, M-28, #ifdef PORT/port-only).…
125D154?bg.c room-geometry ray/hit-test GBI parser port (M-28, WRITTEN / UNVERIFIED / UNCOMMITTED).M-30 re-audit + fixes (still playtest-gated for final verify).
126D156PARTIALFacility outro-cutscene "hang" —GUARDED (src/game/model.c, #ifdef PORT)…
127D155FIXEDFacility outro-cutscene end → "hang" = unclamped deltaFrames spiral (M-29, user bug report).FIXED (src/game/frametiming.c, #ifdef PORT —…
128D153RESOLVED-level_09 frame ~900–1400 0xc0000005 = D117/D134 load flakiness, NOT a bug (M-28).NOT A BUG — closed. Run anchors on a quiet machine.
129D151FIXEDWatch data all blank —FIXED (src/bondtypes.h, #ifdef PORT —…
130D130RESOLVEDcrash class C2 (Facility -level_34, Runway -level_35):resolved — stage all 6 N64 fields in a local f[6] before writing any.
131D164FIXEDDisclaimer / legal screen only draws the first line (D76 root cause, M-31).FIXED — corrected 2026-09-18:
132D165FIXEDFront-end menu cursor doesn't feel like a mouse pointer (M-31, user bug B5 follow-up).FIXED (port/src/input.c; Input.MenuPointerMode, Input.HipfirePitchSpeed added).
133D166FIXEDHipfire mouse pitch is digital while yaw is analog —FIXED (port/src/input.c).…
134D235OPENWrong textures load after dying/restarting a level —OPEN — needs: does it repro on a *fresh* level boot (rules out reload-state) vs only after death/restart (confirms it); which surfaces; a screenshot.…
135D236OPENSurface 1: 2D billboard trees render as a wall/sheet of tree texture instead of discrete camera-facing tree sprites (M-106, user QA report).OPEN, sixteenth pass (2026-09-18) —
136D237OPENQoL ask (M-106, user QA):OPEN — not designed; port-only
137D238OPENQoL ask (M-106, user QA):OPEN — not designed; port-only (port/src/input.c + config.c)
138D239CLOSEDQoL ask (M-106, user QA):CLOSED — executed in the v0.2.0 prep pass (port-only)…
139D240OPENPlayer gunshot SFX timing/cadence reportedly does not match the N64 original's rate (M-106, user QA report).OPEN — not root-caused; static call-site tracing only, no runtime verification possible in this environment.
140D241OPENPlayer gunshot SFX goes silent under some conditions —OPEN — not newly root-caused; high confidence this is D207 reproduced, not an independent bug.
141D242?Player-death sequence UX regression vs N64 original:NOT A PORT-LOGIC BUG as far as static analysis can tell.
142D243FIXEDDam end-of-level cutscene (the abseil/bungee sequence, D148/D160's subject):FIXED, live-confirmed by the user (M-189/M-190, 2026-09-18).
143D245OPENIsWater water: two competing patterns with a visible seam that moves as the player looks around (mouse/aim) —OPEN — REOPENED, M-142 headless probe found the tc-shift k measurably flips during ordinary view rotation (new root-cause evidence); an opt-in GE_D245_FIXEDSHIFT candidate is build-verified but needs…
144D246FIXEDTiny pixel strips at the left and right edges of the screen, "like overscan" —FIXED (2026-09-18 session, port-only, Video.SafeAreaCrop).
145D247FIXEDBlack bars top and bottom of screen —FIXED (2026-09-18 session, port-only, Video.SafeAreaCrop).
146D248FIXEDPort runs a stable 30 FPS instead of 60 FPS game-wide (M-117, user asked to verify FPS after the D209 timing-keystone fixes).FIXED, root-caused to a genuine pointer-width ABI bug in src/sched.c (compiled for the PC build, not excluded).
147D249OPENLOD/culling breaks down on large open levels (Streets, Egyptian named specifically) at *default* FOV —OPEN — M-142 static review ruled out the unscaled-far-clip and LOD-multiplier suspects (both already correct); narrowed to the portal/room-visibility BFS, needs a live screenshot+location, not more c…
148D250FIXEDFPS is inconsistent/low on many levels after 60 Hz shipped (M-119, user QA; D248 follow-on).FIXED — per-call getenv() cost was the bottleneck; rock-steady 60-61 fps after, user re-tested 1440p/4K clean.
149D251FIXEDF10 options overlay QoL pass:FIXED (port-only, port/src/optionsoverlay.c).
150D252PARTIALParticle effects cycle through a rainbow palette (M-124, user playtest of the v0.2.0-pre candidate).PARTIALLY FIXED — a real, distinct manifestation was found and fixed, but the bug family is not fully closed, and is intermittent on BOTH platforms, not Deck-specific (corrected 2026-09-18).
151D253FIXEDFacility (and any level with a FORCECROUCH/LADDER linked special tile) SIGSEGV on Linux/Steam Deck —FIXED — Deck-verified:
152D254FIXEDLinux crash handler destroyed its own logs:FIXED — field-verified.
153D255FIXEDFacility firefight SIGSEGV on Steam Deck (v0.2.0-pre CI bundle; D253 fix confirmed working).FIXED (M-140) — D3x-class 32-bit pointer truncation (vtxstore_fix_refs read Model* through the mistyped ChrRecord.chrflags 4-byte-enum alias instead of ObjectRecord.model), not the destroy-path race…
154D256FIXEDSaves (and config) silently failed to persist on Linux whenever the game was not launched from the directory containing data/ —FIXED (path half) — save-flow detail still owed from the user.
155D257FIXEDNew Game.AllUnlocked option (F10; default flipped OFF for v0.2.0 —FIXED — verified by user playtest (PR #79 merged); default flipped OFF for v0.2.0 (D259).
156D259FIXEDGame.AllUnlocked (D257) breaks audio on a fresh save:FIXED in v0.2.1 —…
157D260FIXEDv0.2.1 (user request):FIXED — build green; one-line branch swap, trivially reviewable.
158D261FIXEDv0.2.1 (user request:FIXED — feel-check received; W/S sensitivity follow-up logged above.
159D262FIXEDv0.2.1 (user report):FIXED (primary cause, D264) —
160D264FIXEDD262's root cause (ABI/layout class, cf.FIXED — build green, probes removed; visual confirmation pending.
161D263RESOLVEDv0.2.1 (user report):RESOLVED (not a bug), refined (v0.2.1 further user testing, 2026-09-15).
162D265?D236 investigation (port-layer, port/fast3d/gfx_pc.cpp):PARKED — reverted to baseline; evidence + suspect list above.
163D258OPENPAL/JP asset conversion is broken at the source-data level —OPEN — repair path verified, not applied (out of v0.2.0 scope).
164D284FIXEDport/src/random.c's MIPS64 dsll32/dsrl32 shift helpers were backwards —FIXED, 21-level sweep clean, no crashes —
165D285PARTIALSteam Deck SIGSEGV during D255 live-testing = SEPARATE bug:PARTIALLY FIXED, RECURRED PAST THE FIX (see D305, 2026-09-18).
166D286OPENUser-confirmed real ~8s frame freeze on Caverns, Steam Deck —OPEN — one confirmed occurrence, no repro trigger identified, not root-caused; distinct from D255/D285.
167D287OPENUser-confirmed real, non-self-recovering freeze on Windows (M-141, 2026-09-15/16) after ~15-20 minutes with no input, triggered by clicking back into the… —OPEN — one confirmed occurrence, real (not self-recovering), not root-caused; gfxFrameMsgQ full is a lead, not a confirmed cause.
168D288OPENSilo intro: a huge, flat-shaded, untextured brown/tan triangle sweeps across the frame during the camera pan down the missile shaft (M-141, user report —… —OPEN — visually confirmed and precisely bounded (frames ~562-741 of a bare -level_20 boot), root cause not yet identified; promoted from the long-parked GRAP… |
169D289OPENDam: a crash in the computer room, not reproducible on a second attempt (M-141, Steam Deck user playtest).OPEN — needs a human re-test specifically on a build with the D255 fix (this session's release/v0.3.0, not any earlier build) to see if it still happens.…
170D290OPENWatch's in-game "controller" section shows no control-pad graphic (M-141, Steam Deck user playtest).OPEN — observed, not investigated.
171D291OPENDam: texture glitches when the truck drives past (M-141, Steam Deck user playtest).OPEN — observed, not investigated.
172D292FIXEDDeath animations are glitched —MOSTLY FIXED as a side effect of D243 (2026-09-18, user-confirmed alongside D173) —
173D293FIXEDQoL ask: no discoverable way to quit the game from the UI (M-141, Steam Deck user playtest —FIXED (M-141) — "Quit to desktop" row added to the F10 overlay; build-verified Win+Linux, not yet live-confirmed.…
174D294OPENStatue: ground geometry near the large CCCP/hammer-and-sickle monument briefly renders solid black over a wide area, then self-recovers 10-30 seconds later… —OPEN — not investigated.…
175D295FIXEDCampaign-halting crash at the end of Control Center on 00 Agent difficulty, then a crash on every subsequent relaunch/resume (GitHub #87, user campaign playtes…FIXED (M-149) — M-148 root-caused + reproduced on HEAD; fix landed:
176D296OPENControl Center, 00 Agent:OPEN — single live report, un-triaged; observed only under a gdb-attached debug-harness launch (tools_pc/debug.ps1), not the packaged release artifact —
177D297FIXEDv0.3.0 silently wipes ALL pre-fix player saves on first launch (D284 side effect; found during D295/M-148).FIXED (M-150) — migration shim landed:
178D298?Full HUD (not just the aim-mode crosshair) missing in a v0.3.0 dev build —s — regression reported 2026-09-16 during v0.3.0 work (build ce8427cf); user says "don't fix, just for context"; not yet investigated —
179D299FIXEDGame.SkipIntro crashed selecting any save slot except one —FIXED — fileValidateSaves() (only called from the skipped legal screen) never ran under SkipIntro, leaving saves[] all-zero; added the missing call to the SkipIntro shortcut (src/game/lv.c, #ifdef PO…
180D300FIXEDHipfire look feels non-uniform (issue #89):FIXED, user-confirmed live —
181D301FIXEDfileGetIsCheatUnlocked() NULL-deref, unguarded on every call site, not just the D299/SkipIntro one (GitHub #87, two reports with an identical crash PC/fault ad…FIXED locally on release/v0.3.0 (not pushed) —
182D302FIXEDRender FPS regression to ~40-45fps on release/v0.3.0 (user QA on the local v0.3.0 pre-release build, 2026-09-18) —FIXED — 4 uncached getenv() calls added by D236 passes 10/12/14/16 directly inside gfx_sp_tri1 (port/fast3d/gfx_pc.cpp, per-triangle) cached with the same static int x = -1 pattern D250 established e…
183D303OPENSome muzzle flashes (M16 named specifically, "and some others") draw wrong —OPEN — reported only, not yet investigated.
184D304FIXEDMouse sensitivity menu overhaul (user request, 2026-09-18):FIXED — see full entry for both the range/parity pass and the same-day follow-up (collapsed to a single Input.MouseSensitivity menu row + fixed overlayUpdateScroll()'s unconditional bottom-anchor, th…
185D305FIXEDSteam Deck SIGSEGV on the v0.3.0 pre-release build (Cavern, early in the level, Game.AllUnlocked previously enabled on the session/save) —FIXED (defensive guard) —
186D306OPENDam intro/truck wheels render with odd transparent-looking areas, possibly z-fighting (user QA, 2026-09-18).OPEN — reported only, not investigated.
187D307OPENIn-level security camera entities can be flipped facing the wrong direction (backwards) on some levels, e.g.OPEN — reported only, not investigated.
188D308OPENOccasional z-fighting confirmed on some levels' geometry, general/broader than the D306 truck-wheel instance (user QA, 2026-09-18).OPEN — reported/confirmed by the user, not investigated.
189D309FIXEDComplete non-self-recovering freeze (Windows) returning from Caverns to the intro screen —FIXED via D310 — user-playtest-confirmed 2026-09-18 (Caverns→intro clean; the spin record itself observed resuming correctly in the post-fix probe log).
190D310FIXEDRULE-2-SIGNOFF: chraiitemsize() mis-sizes 1-byte AI_PRINT records (NUL-scans forward), corrupting AI execution for any list containing an active PRINT —FIXED — user-playtest-confirmed 2026-09-18 (v2:
191D311PARTIALComplete freeze in modelSetAnimFrame2WithChrStuff root-motion loop —GUARDED (#ifdef PORT, D156-guard extension in the same file) —
192D312FIXEDThrowable items (mines, grenades, etc.) can clip through walls in certain spots (user report, v0.3.0 pre-release playtest, 2026-09-18).FIXED — bgBuildRoomVtxBounds mis-reads the G_VTX vertex count on PC (Gfx_le.dma.par bit-layout shift):
193D313FIXEDBullet impacts do not appear on some walls/surfaces —FIXED — same root cause as D312, merged diagnosis; same one-line fix.
194D314OPENF10 menu items flicker randomly/intermittently (reported on the main-menu context, user report, v0.3.0 playtest build, 2026-09-18).OPEN — confirmed still present post-D316 fix (2026-09-18); user deprioritized chasing it further for now.
195D315OPENMenu scaling differs between main menu and in-game —OPEN — disclosed as a known issue, deferred to v0.3.1 (bigger design question, not a mechanical fix).
196D316FIXEDMouse-clicking some menu items glitches and lands on the item below instead (user report, v0.3.0 playtest build, 2026-09-18).FIXED — root-caused to two compounding bugs (naive mouse->logical mapping ignoring the safe-area crop; asymmetric row hit-test band) in port/src/optionsoverlay.c + port/fast3d/gfx_pc.cpp.
197D317CLOSEDCrash when toggling Game.AllUnlocked back and forth in-game (user report, v0.3.0 playtest build, 2026-09-18) —CLOSED — symptom of D316 (confirmed instant window close, no WER report; the D316 hit-band bias let a click on "All unlocked" fall through to the adjacent "Quit to desktop" row).
198D318RESOLVEDFacility (regular play path):RESOLVED (2026-09-19):
199D319FIXEDFrame cap slider was mostly a dead zone; replaced with a plain 30/60 toggle (user ask, 2026-09-18).FIXED — new ROW_FPSCAP cycle (30/60 only) in port/src/optionsoverlay.c; default changed to 60 in port/src/video.c.
200D320OPEND318-class sweep: aim-hold → _update AI lists in 8 levels carry the same as-authored softlock race (static analysis, 2026-09-20).OPEN — static sweep complete (Facility ai_19, Control ai_9, Depot ai_12 flagged high/med-high; Bond-combat loops likely safe); no live confirmation beyond D318 itself; probe-verify path + generalized…
201D321CLOSEDD318 trigger chain fully mapped:CLOSED — trigger chain mapped and faithful; D318 watchdog validated in live play.
202D322OPENLong-session audio degradation:OPEN — static triage done (teardown audit, mixer statelessness, D202-coverage check); ranked hypotheses: