mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-24 00:02:45 +02:00
In-between presents drew props at the tick's camera while rooms used the blended one, so props jumped against the world whenever the camera moved (doors and guards flickering at 90 fps, never at 60). The props' plain perspective now gets the room camera blend (P * R^-1 * Rb) from bgLevelRender up to the first-person gun. Port layer only (gfx_pc.cpp, interpportal.c).
76 KiB
76 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. | |||
| 3 | label | bucket | one_liner | status_raw |
| 4 | D24-D30 | RESOLVED | green threads / kernel / crash handler | resolved |
| 5 | D31-D42 | RESOLVED | boot ABI: ANIM_DATA, music seq-table, libaudio banks, Globalimagetable rebase, GL context, rsp toggle | resolved |
| 6 | D43-D50 | RESOLVED | model-file loading → offline sidecar "Plan B" (d43_emit.py); D50.6 texCopyGdls full-slot copy | resolved |
| 7 | D51-D58 | RESOLVED | font pixeldata, osGetCount tick rate, model RW pools, cseq BE header, synth slots, RLE menu bg, watch raw offsets, gun-barrel DL | resolved |
| 8 | D59-D68 | RESOLVED | intro render: blood-RLE clobber, DMA validate, OSMesgQueue, HEADS/BODIES sentinels, romCopy width, image_entry, Globalimagetable BE→LE | resolved |
| 9 | D70-D74 | RESOLVED | intro-logo pixels: C-array bswap, UV path, sinf/cosf DVAL(), texture-import truncation | resolved |
| 10 | D75 | FIXED | front-end 3D model transforms (D77 audio split out below — | FIXED 2026-10-02 (branch fix/fidelity-gaps; by-eye check owed): |
| 11 | D76 · D164 | FIXED | Legal 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). |
| 12 | D159 | FIXED | front-end wallet-Bond photo "interlaced"/combed (RC1 / D149) — | FIXED (#ifdef PORT no-op the swap in image.c) |
| 13 | D161 | FIXED | Depot (-level_30) ceiling = bright-blue speckle + radial rays (B2). | FIXED (port/fast3d/gfx_pc.cpp) |
| 14 | D165 · D166 | FIXED | Input-layer polish (M-31, port-only): | FIXED |
| 15 | D180 · D181 | FIXED | Native-PC input pass (QoL run): | FIXED (2026-09-26 bookkeeping: |
| 16 | D186 | CLOSED | Video.FpsCap throttles the sim, not just presentation (M-39 diag, M-42 clamp). | CLOSED (2026-09-28 bookkeeping: |
| 17 | D187 | FIXED | HUD 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 |
| 18 | D188 | FIXED | Linux -O2 boot crash: | FIXED (src/libultrare/libc/xprintf.c, src/sprintf.c, #ifdef PORT); PR #22 |
| 19 | D189 | FIXED | Linux -fstack-protector aborts on the decomp's latent stack-buffer overruns (M-48) — | FIXED (CMakeLists.txt, src/game/stan.c #ifdef PORT); PR #23 |
| 20 | D190 | CLOSED | Linux -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). |
| 21 | D191 | FIXED | Windows -O2 release-bundle crash: | FIXED + PLAYTEST-VERIFIED (M-79).… |
| 22 | D193 | FIXED | NPC AI locomotion is too slow — | FIXED + user-playtest-verified (M-81) —… |
| 23 | D194 | FIXED | Mouse input needs another tuning pass — | FIXED (2026-09-26: user reports the v0.3.0→v0.4.0 mouse changes feel solid and glitch-free; code-side validation owed). |
| 24 | D195 | FIXED | Transparency / alpha surfaces broken on Control (M-49, user playtest) — | FIXED (port/fast3d/gfx_pc.cpp, gfx_sp_vertex) —… |
| 25 | D197 | CLOSED | Character face/head textures wrap around the head, seen on Silo (M-49, user playtest). | CLOSED — user playtest v0.2.0-pre |
| 26 | D198 | FIXED | alAdpcmPull/_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) — |
| 27 | D199 | FIXED | Phase-3 software audio mixer: | FIXED (2026-09-26 bookkeeping: |
| 28 | D200 | FIXED | -level_09 segfault: reverb's ALDelay.input/output are u32 — | FIXED — 5-line cast in reverb.c (this session) |
| 29 | D196 | FIXED | OS mouse cursor stays visible after closing the F10 options overlay in click-to-lock mode (M-49, user playtest). | FIXED (6e758f1d, merged to main) —… |
| 30 | D192 | CLOSED | Front-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 |
| 31 | D221 | FIXED | SELECT FILE mouse hit-box offset — | FIXED (M-91) — explicit {min,max} coord2d pairs under #ifdef PORT; human mouse-playtest confirmed. |
| 32 | D222 | FIXED | High Video.FovScale breaks culling — | FIXED, awaiting visual verification (M-121). |
| 33 | D223 | FIXED | QoL ask: mouse-wheel weapon cycling should be directional like a normal PC shooter — | FIXED (M-105, port/src/input.c) —… |
| 34 | D224 | CLOSED | QoL gap (M-87, from a PD-PC-port survey): | CLOSED (2026-09-28 bookkeeping: |
| 35 | D225 | FIXED | Dev-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. |
| 36 | D226 | FIXED | QoL ask: player-adjustable HUD scale for the ammo counter, bottom-left pickup/item status text, and top-of-screen dialogue/subtitle text. | FIXED (2026-09-24): Game.HudScale 75–150% (user-verified, capped at 150) via fast3d G_HUDSCALE_EXT rect scaling about per-element anchors; dialogue/bottom messages width-capped. |
| 37 | D227 | FIXED | Sky renders as two independently-moving halves — | FIXED (M-100b, PR #43) — |
| 38 | D229 | FIXED | IsWater-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. |
| 39 | D230 | FIXED | In-level music quality: | FIXED (M-121, v0.2.0) — |
| 40 | D231 | CLOSED | QoL batch: mute-on-focus-loss + screenshot-hotkey productization (M-105, roadmap Tier 3, port-only). | CLOSED — PARKED/DEPRIORITIZED (user, 2026-09-25). |
| 41 | D233 | FIXED | All levels (intermittent): | FIXED (port/fast3d/gfx_pc.cpp, gfx_sp_tri1) —… |
| 42 | D234 | FIXED | Dam: guard towers along the dam structure invisible except the first one (M-106, user QA report). | VISUALLY VERIFIED FIXED (M-108) —… |
| 43 | D244 | OPEN | Self-hosted CI runner link failure: | OPEN, not yet fixed. Next… |
| 44 | D228 | FIXED | AK47 white missing-texture patches after D217's texpool fix — | FIXED (port/fast3d/gfx_pc.cpp, palette_to_rgba32) — |
| 45 | D204 | FIXED | PC 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) — |
| 46 | D203 | CLOSED | Steam Deck (SteamOS, x86_64 Linux) v0.1.0 release bundle: | CLOSED — root cause + fix in D253. |
| 47 | D201 | FIXED | src/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) — |
| 48 | D202 | FIXED | Silenced PPK "slap" + broader real-time mixer corruption (M-52→M-67). | FIXED (2026-09-26, user by-ear: |
| 49 | D206 | FIXED | PC played every SFX one bank slot too high — | FIXED (M-76, src/snd.c:1001, #ifdef PORT) — |
| 50 | D207 | CLOSED | Alarm klaxon starves combat SFX and doesn't recover after it stops (surfaced by D206, M-77). | CLOSED (2026-09-28 bookkeeping: |
| 51 | D208 | FIXED | Player weapon-fire sound goes permanently silent mid-firefight (all other SFX unaffected) — | FIXED + user playtest-verified (M-78d) — |
| 52 | D209 | FIXED | Every AI character in the game is locked to a *walk* animation regardless of the speed the ailist commands — | FIXED + user-playtest-verified (M-81). |
| 53 | D210 | FIXED | chrToPatrol() leaves act_patrol.lastvisible60 uninitialised on PC — | FIXED (chraction.c:3872, #ifdef PORT → self->act_patrol.lastvisible60 = -1;, N64 line under #else).… |
| 54 | D205 | CLOSED | PC 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. |
| 55 | D152+ | FIXED | D152 addendum (M-31): | FIXED (src/snd.c, port/src/libultra.c, #ifdef PORT) — |
| 56 | D168 | FIXED | GE_PCDUMP / F12 PPM captures were vertically flipped — | FIXED (port/fast3d/gfx_opengl.cpp); D114 / D116 reclassified as capture-orientation artifacts (below). |
| 57 | D169 | FIXED | Front-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). |
| 58 | D178 | FIXED | Pre-mission briefing screen: | FIXED (M-36) — high confidence |
| 59 | D175 | CLOSED | In-game stutter / brief hang during normal play — | CLOSED (v0.4.0 campaign sign-off 2026-09-28, user: |
| 60 | D176 | FIXED | Surface exterior renders wrong (-level_36), two independent defects. | FIXED (2026-09-29 bookkeeping: |
| 61 | D177 | FIXED | Ladders non-functional — | FIXED (M-36) — high confidence; interactive climb test owed Owed climb test considered cleared by the 2026-09-28 v0.4.0 campaign sign-off (ROADMAP §3 bookkeeping, 2026-10-01); reopen if seen. |
| 62 | D172 | FIXED | Bullet-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)… |
| 63 | D174 | CLOSED | "No blood effect" (user QA report). | CLOSED — faithful (2026-09-26, user side-by-side on 1964: |
| 64 | D183 | CLOSED | M-36 Family A ("texture line/pitch shear") is DISPROVEN for the Surface repro (-level_36). | CLOSED (2026-09-26, user-approved: |
| 65 | D173 | PARTIAL | Third-person Bond model spawns too high — | PARTIAL (2026-09-29 bookkeeping: |
| 66 | D179 | FIXED | Packaged build crashes after the logos — | Diagnosed, not fixed — |
| 67 | D180 | FIXED | Native-PC input pass (M-XX QoL run, qol/native-pc-input-menu, port-only). | FIXED (2026-09-26 bookkeeping: |
| 68 | D181 | FIXED | Game.ScreenShakeIntensity — | FIXED (2026-09-26 bookkeeping: |
| 69 | D184 | FIXED | F10 port-layer options overlay — | FIXED (2026-09-26 bookkeeping: |
| 70 | D211 | FIXED | PC FOV slider — Video.FovScale (M-83 QoL wave, port-only, WIDESCREEN-FOV-PLAN.md Phase 4). | FIXED (2026-09-26 bookkeeping: |
| 71 | D212 | FIXED | Anisotropic-filtering config wiring — | FIXED (2026-09-26 bookkeeping: |
| 72 | D213 | FIXED | On-screen FPS readout — | FIXED (2026-09-26 bookkeeping: |
| 73 | D214 | FIXED | Keyboard rebinding — [Input.Bind] config section (M-83, port-only, PD parity, Phase 4 debt). | FIXED (2026-09-26 bookkeeping: |
| 74 | D215 | FIXED | 1P weapon viewmodel never drew in-level — | FIXED (src/game/gunfire.c, #ifdef PORT). |
| 75 | D216 | FIXED | Game.SkipIntro — boot straight to the file-select menu (M-83, port + one #ifdef PORT game-code line, PD parity, Phase 4 quick win). | FIXED (2026-09-26 bookkeeping: |
| 76 | D217 | FIXED | 1P weapon viewmodel + 3P Bond model textures garbled — | FIXED + merged (PR #47 + PR #49); white residual split out as D228. |
| 77 | D218 | FIXED | Wide FOV exposes the per-level draw-distance / fog boundary — | FIXED (2026-09-26 reclassified; 2026-09-29 default corrected: |
| 78 | D219 | RESOLVED | PPK 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. |
| 79 | D220 | CLOSED | 1P muzzle flash position shifts upward at higher Video.FovScale (M-87, user QA, Jungle/M16). | CLOSED — merged into D303 (2026-09-26, user: |
| 80 | D85 | CLOSED | Room primary/secondary DL → texLoadFromGdl garbage. | CLOSED (2026-09-26, user-approved: |
| 81 | D86 · D87 | RESOLVED | modelInitRwData truncated ptr · attract-demo BE ramromfilestructure. | resolved |
| 82 | D88.4 | RESOLVED | propDefs polymorphic record stream not byteswapped → setupDoor crash. | resolved (d88_propdefs.py); layout audit M-20 → D132 |
| 83 | D132 | CLOSED | D88 propDefs layout audit (M-20): | CLOSED (2026-09-28 bookkeeping: |
| 84 | D157 | FIXED | Campaign never unlocks the next level (M-30, user bug — | FIXED (src/bondtypes.h, #ifdef PORT —… |
| 85 | D160 | FIXED | Dam level-end cutscene (Bond off the dam / bungee) never plays — | FIXED (user, 2026-09-26: |
| 86 | D89-D92 | RESOLVED | stage-load→frame: stan zero-fill overrun, portal address trunc, chr/AI spawn ptrs | resolved |
| 87 | D93-D102 | RESOLVED | struct-pun / hardcoded-size pass: | resolved (D95 pool bump partial) |
| 88 | D103-D107 | RESOLVED | BUNKER1 viewport height, depth-buffer clear (G_CLEAR_DEPTH_EXT), portal near-plane, LOD mip tile | resolved |
| 89 | D108-D112 | RESOLVED | skeletal models: d43_emit.py put_f32 byte-reversal bug | resolved |
| 90 | D113-D116 | FIXED | portal BFS ok · matrix chain ok · player raw-offset audit + gunfire.c THROW* · HUD text X-mirror | D114/D116 CLOSED — NOT A BUG (M-33, see D168): |
| 91 | D117 | CLOSED | Frame nondeterminism root-caused; GE_DETERM attempted, not achieved. | CLOSED (2026-09-28 bookkeeping: |
| 92 | D118 | RESOLVED | SDL input layer; M-24 mouse-look rework (mode-aware map, real INI); D118b/c FIXED. | resolved (D118a residual) |
| 93 | D150 | FIXED | watch OBJECTIVES / BRIEF page crash: | FIXED (src/str.c #ifdef PORT); interactive re-verify pending Owed re-verify considered cleared by the 2026-09-28 v0.4.0 campaign sign-off (ROADMAP §3 bookkeeping, 2026-10-01); reopen if seen. |
| 94 | D260-D265 | CLOSED | v0.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… | CLOSED (2026-09-26 bookkeeping: |
| 95 | D266-D269 | CLOSED | D236/D265 wall, second pass: | CLOSED (2026-09-26 bookkeeping: |
| 96 | D270 | CLOSED | Backfilled (M-132) — this label was never given its own row; only code comments and the HANDOFF archive documented it. | CLOSED (2026-09-26 bookkeeping: |
| 97 | D271 | CLOSED | D236 wall, third pass — | CLOSED (2026-09-29 bookkeeping: |
| 98 | D276 | CLOSED | D236 wall, eighth pass — | CLOSED (2026-09-26 bookkeeping: |
| 99 | D279 | CLOSED | Backfilled — this label was consumed by an undocumented partial session (2026-09-14 ~23:00) that left artifacts in scratch/ (d279_run.log… — | CLOSED (2026-09-26 bookkeeping: |
| 100 | D281 | FIXED | Game.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… — | FIXED (2026-09-23, port/src/libultra.c): |
| 101 | D282 | FIXED | QoL ask (v0.2.1 user testing, 2026-09-15): | FIXED (port/src/input.c, #ifdef not needed — |
| 102 | D283 | FIXED | Steam 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… — | FIXED (2026-09-30, port-only) — |
| 103 | D280 | CLOSED | D236 wall, ninth pass — | CLOSED (2026-09-26 bookkeeping: |
| 104 | D275 | CLOSED | D236 wall, eighth pass — | CLOSED (2026-09-26 bookkeeping: |
| 105 | D274 | CLOSED | D236 wall, seventh pass — | CLOSED (2026-09-26 bookkeeping: |
| 106 | D273 | CLOSED | D236 wall, fifth pass — | CLOSED (2026-09-26 bookkeeping: |
| 107 | D272 | CLOSED | D236 wall, fourth pass — | CLOSED (2026-09-26 bookkeeping: |
| 108 | D137 | FIXED | right-mouse (aim-sight) crash: | FIXED (src/game/gunfire.c #ifdef PORT — |
| 109 | D119 · D120 | FIXED | guard-attack weapons_held[]->chr pun crash · blood-stain PointUsage[] chain hang | D119 fixed · D120 FIXED (M-30) |
| 110 | D120 | FIXED | Blood-decal PointUsage[] chain — | FIXED (tools_pc/d43_emit.py). |
| 111 | D121 | RESOLVED | WS1 frictionless per-level boot (bare -level_XX injects its -m* row). | resolved |
| 112 | D122 | FIXED | per-level prop/item model-load crash (Dam/Facility/Runway modelLoad/modelInitRwData): | converter fixed; residual chr/fast3d crashes on those levels are separate |
| 113 | D123 | FIXED | crash 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) |
| 114 | D125 | RESOLVED | crash 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). |
| 115 | D126 | RESOLVED | crash 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. |
| 116 | D124 | FIXED | crash class C2: fast3d bad texture pointer. | Jungle fixed (port/src/gimgfixup.c); Facility → D130 |
| 117 | D131 | RESOLVED | crash 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).… |
| 118 | D133 | RESOLVED | intro render triage (M-20): | RESOLVED — not a regression, parked (D75/D76, GRAPHICS-BACKLOG.md) |
| 119 | D134 | FIXED | Frame-2 boot hang / sweep "NO-FRAMES" flakiness — | FIXED (port/src/libultra.c) |
| 120 | D135 | FIXED | Firefight crash — bgTestHitOnObj (propobj.c:8446) is an unported N64 GBI parser (M-22, WS6 playtest). | FIXED (src/game/propobj.c, #ifdef PORT —… |
| 121 | D136 | RESOLVED | Stage-unload crash — objFree obj->prop reads float garbage (M-22, WS6 Facility playthrough). | ROOT-CAUSED → D139 (it was NOT a layout bug — |
| 122 | D139 | FIXED | Stage-unload crash root cause + fix (M-23). | FIXED (src/game/cleanup_objects.c, #ifdef PORT —… |
| 123 | D140 | FIXED | Pause-menu crash (M-23 open → M-27 fixed). | FIXED (src/game/bondview.h, src/game/bondview2.c; #ifdef PORT). |
| 124 | D141 | FIXED | Watch-menu item-model crash (M-27), exposed by D140. | FIXED (src/game/gunfire.c, #ifdef PORT). |
| 125 | D152 | FIXED | Mission-failed / objective-failed → permanent black screen (M-28, user bug report — | FIXED (user, 2026-09-26: |
| 126 | D154 | CLOSED | bg.c room-geometry ray/hit-test GBI parser port (M-28, WRITTEN / UNVERIFIED / UNCOMMITTED). | CLOSED (2026-09-28 bookkeeping: |
| 127 | D156 | FIXED | Facility outro-cutscene "hang" — | FIXED (user, 2026-09-26: |
| 128 | D155 | FIXED | Facility outro-cutscene end → "hang" = unclamped deltaFrames spiral (M-29, user bug report). | FIXED (src/game/frametiming.c, #ifdef PORT —… |
| 129 | D153 | RESOLVED | -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. |
| 130 | D151 | FIXED | Watch data all blank — | FIXED (src/bondtypes.h, #ifdef PORT —… |
| 131 | D130 | RESOLVED | crash class C2 (Facility -level_34, Runway -level_35): | resolved — stage all 6 N64 fields in a local f[6] before writing any. |
| 132 | D164 | FIXED | Disclaimer / legal screen only draws the first line (D76 root cause, M-31). | FIXED — corrected 2026-09-18: |
| 133 | D165 | FIXED | Front-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). |
| 134 | D166 | FIXED | Hipfire mouse pitch is digital while yaw is analog — | FIXED (port/src/input.c).… |
| 135 | D235 | CLOSED | Wrong textures load after dying/restarting a level — | CLOSED (user, 2026-09-26: |
| 136 | D236 | CLOSED | Surface 1: 2D billboard trees render as a wall/sheet of tree texture instead of discrete camera-facing tree sprites (M-106, user QA report). | CLOSED (M-198, pass 26, 425237f9; probes stripped 0503d335): |
| 137 | D237 | FIXED | QoL ask (M-106, user QA): | FIXED (2026-09-23): category headers + 5 more settings (SkipIntro, Show FPS, pad invert/deadzone/trigger); wheel scroll already existed. |
| 138 | D238 | FIXED | QoL ask (M-106, user QA): | FIXED (2026-09-26: covered by D337/D338 aim work; user reports mouse feel good; code-side validation owed). |
| 139 | D239 | CLOSED | QoL ask (M-106, user QA): | CLOSED — executed in the v0.2.0 prep pass (port-only)… |
| 140 | D240 | CLOSED | Player gunshot SFX timing/cadence reportedly does not match the N64 original's rate (M-106, user QA report). | CLOSED (v0.4.0 campaign sign-off 2026-09-28, user: |
| 141 | D241 | CLOSED | Player gunshot SFX goes silent under some conditions — | CLOSED as the D207 family (v0.4.0 campaign sign-off 2026-09-28, user: |
| 142 | D242 | FIXED | Player-death sequence UX regression vs N64 original: | FIXED/CLOSED (2026-09-26, user: |
| 143 | D243 | FIXED | Dam 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). |
| 144 | D245 | FIXED | IsWater water: two competing patterns with a visible seam that moves as the player looks around (mouse/aim) — | FIXED (M-201, 2026-09-26, user-verified vs 1964): |
| 145 | D246 | FIXED | Tiny pixel strips at the left and right edges of the screen, "like overscan" — | FIXED (2026-09-18 session, port-only, Video.SafeAreaCrop). |
| 146 | D247 | FIXED | Black bars top and bottom of screen — | FIXED (2026-09-18 session, port-only, Video.SafeAreaCrop). |
| 147 | D248 | FIXED | Port 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). |
| 148 | D249 | CLOSED | LOD/culling breaks down on large open levels (Streets, Egyptian named specifically) at *default* FOV — | CLOSED (2026-09-28 bookkeeping: |
| 149 | D250 | FIXED | FPS 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. |
| 150 | D251 | FIXED | F10 options overlay QoL pass: | FIXED (port-only, port/src/optionsoverlay.c). |
| 151 | D252 | FIXED | Particle effects cycle through a rainbow palette (M-124, user playtest of the v0.2.0-pre candidate). | FIXED (M-201, 2026-09-26, user-verified): |
| 152 | D253 | FIXED | Facility (and any level with a FORCECROUCH/LADDER linked special tile) SIGSEGV on Linux/Steam Deck — | FIXED — Deck-verified: |
| 153 | D254 | FIXED | Linux crash handler destroyed its own logs: | FIXED — field-verified. |
| 154 | D255 | FIXED | Facility 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… |
| 155 | D256 | FIXED | Saves (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. |
| 156 | D257 | FIXED | New 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). |
| 157 | D259 | FIXED | Game.AllUnlocked (D257) breaks audio on a fresh save: | FIXED in v0.2.1 —… |
| 158 | D260 | FIXED | v0.2.1 (user request): | FIXED — build green; one-line branch swap, trivially reviewable. |
| 159 | D261 | FIXED | v0.2.1 (user request: | FIXED — feel-check received; W/S sensitivity follow-up logged above. |
| 160 | D262 | FIXED | v0.2.1 (user report): | FIXED (primary cause, D264) — |
| 161 | D264 | FIXED | D262's root cause (ABI/layout class, cf. | FIXED — build green, probes removed; visual confirmation pending. |
| 162 | D263 | RESOLVED | v0.2.1 (user report): | RESOLVED (not a bug), refined (v0.2.1 further user testing, 2026-09-15). |
| 163 | D265 | CLOSED | D236 investigation (port-layer, port/fast3d/gfx_pc.cpp): | CLOSED (2026-09-26 bookkeeping: |
| 164 | D258 | DEFERRED | PAL/JP asset conversion is broken at the source-data level — | DEFERRED (user call 2026-09-28: |
| 165 | D284 | FIXED | port/src/random.c's MIPS64 dsll32/dsrl32 shift helpers were backwards — | FIXED, 21-level sweep clean, no crashes — |
| 166 | D285 | FIXED | Steam Deck SIGSEGV during D255 live-testing = SEPARATE bug: | FIXED (user, 2026-09-26: |
| 167 | D286 | CLOSED | User-confirmed real ~8s frame freeze on Caverns, Steam Deck — | CLOSED (2026-09-26, user-approved: |
| 168 | D287 | FIXED | User-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… — | FIXED (user playtest 2026-09-26: |
| 169 | D288 | CLOSED | Silo 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 —… — | CLOSED — not reproduced on the current build (2026-09-23 capture) and the 2026-09-25 user Silo playtest confirms it gone ("silo fixed"). |
| 170 | D289 | FIXED | Dam: a crash in the computer room, not reproducible on a second attempt (M-141, Steam Deck user playtest). | FIXED (user, 2026-09-26: |
| 171 | D290 | FIXED | Watch's in-game "controller" section shows no control-pad graphic (M-141, Steam Deck user playtest). | FIXED (2026-09-23): D264-pattern template read in watchRenderController (flags read 0), plus 3 pointer-width/raw-Gfx sites on the same path; controller model verified rendering on Windows. |
| 172 | D291 | CLOSED | Dam: texture glitches when the truck drives past (M-141, Steam Deck user playtest). | CLOSED — duplicate of D306, faithful (M-201, 2026-09-26: |
| 173 | D292 | FIXED | Death animations are glitched — | MOSTLY FIXED as a side effect of D243 (2026-09-18, user-confirmed alongside D173) — |
| 174 | D293 | FIXED | QoL 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.… |
| 175 | D294 | PARTIAL | Statue: 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… — | PARTIAL -> fix landed pending by-eye check (2026-10-03: |
| 176 | D295 | FIXED | Campaign-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: |
| 177 | D296 | CLOSED | Control Center, 00 Agent: | CLOSED (2026-09-26, user-approved: |
| 178 | D297 | FIXED | v0.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: |
| 179 | D298 | CLOSED | Full HUD (not just the aim-mode crosshair) missing in a v0.3.0 dev build — | CLOSED (2026-09-26, user: |
| 180 | D299 | FIXED | Game.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… |
| 181 | D300 | FIXED | Hipfire look feels non-uniform (issue #89): | FIXED, user-confirmed live — |
| 182 | D301 | FIXED | fileGetIsCheatUnlocked() 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) — |
| 183 | D302 | FIXED | Render 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… |
| 184 | D303 | FIXED | Some muzzle flashes (M16 named specifically, "and some others") draw wrong — | FIXED (M-201, 2026-09-26): |
| 185 | D304 | FIXED | Mouse 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… |
| 186 | D305 | FIXED | Steam 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) — |
| 187 | D306 | CLOSED | Dam intro/truck wheels render with odd transparent-looking areas, possibly z-fighting (user QA, 2026-09-18). | CLOSED — faithful, confirmed on 1964 (M-201): |
| 188 | D307 | FIXED | In-level security camera entities can be flipped facing the wrong direction (backwards) on some levels, e.g. | FIXED (M-201, 2026-09-26, user-verified): |
| 189 | D308 | CLOSED | Occasional z-fighting confirmed on some levels' geometry, general/broader than the D306 truck-wheel instance (user QA, 2026-09-18). | CLOSED — faithful (2026-09-26, user: |
| 190 | D309 | FIXED | Complete 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). |
| 191 | D310 | FIXED | RULE-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: |
| 192 | D311 | FIXED | Complete freeze in modelSetAnimFrame2WithChrStuff root-motion loop — | FIXED — root cause D336 (bheadAdjustAnimation read never-written placeholder fields); the #ifdef PORT guard is retained as a safety net. |
| 193 | D312 | FIXED | Throwable 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): |
| 194 | D313 | FIXED | Bullet impacts do not appear on some walls/surfaces — | FIXED — same root cause as D312, merged diagnosis; same one-line fix. |
| 195 | D314 | FIXED | F10 menu items flicker randomly/intermittently (reported on the main-menu context, user report, v0.3.0 playtest build, 2026-09-18). | FIXED (user playtest 2026-09-26) — |
| 196 | D315 | CLOSED | Menu scaling differs between main menu and in-game — | CLOSED (2026-09-26, user: |
| 197 | D316 | FIXED | Mouse-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. |
| 198 | D317 | CLOSED | Crash 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). |
| 199 | D318 | FIXED | Facility (regular play path): | FIXED via D329 (2026-09-26 bookkeeping: |
| 200 | D319 | FIXED | Frame 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. |
| 201 | D320 | FIXED | D318-class sweep: aim-hold → _update AI lists in 8 levels carry the same as-authored softlock race (static analysis, 2026-09-20). | FIXED via D329 (2026-09-26 bookkeeping: |
| 202 | D321 | FIXED | D318 trigger chain fully mapped: | FIXED via D329 (2026-09-26 bookkeeping: |
| 203 | D322 | FIXED | Long-session audio degradation: | FIXED (Windows) for the periodic "garbled" bursts — |
| 204 | D323 | CLOSED | G_TL_LOD bindings of explicit-LOD textures: | CLOSED — parked as a fidelity enhancement, not a bug (2026-09-26, user-approved: |
| 205 | D324 | FIXED | GE's <stdlib.h> stub declares nothing, so TUs that include it get NO CRT prototypes — | FIXED (2026-09-22) — proven impact: |
| 206 | D325 | CLOSED | ROM-mod (xdelta) compatibility: | CLOSED as a question — |
| 207 | D326 | CLOSED | Random Eye randomizer repacks the ROM too — | CLOSED as a question — |
| 208 | D327 | RESOLVED | Mod support, resolved plan: | RESOLVED — superseded by D328; approach (a) is NOT ruled out (these scans missed the 1172-compressed data segment). |
| 209 | D328 | CLOSED | Mod support is viable and D327's "ruled out" was wrong: | CLOSED as a question — |
| 210 | D329 | FIXED | The D318/D320 guard anim pin is a tick-granularity divergence: | FIXED — Rule-2 high-FPS fix in model.c; clk=1 no longer pins (WSL + native Windows), 0 triggers at clk=2; bunker1 golden failure predates it (on/off A/B); user playtest confirms N64-matching Ourumov… |
| 211 | D330 | FIXED | #103 (v0.3.0, Win 11): | FIXED (port/src/input.c) — |
| 212 | D331 | FIXED | Ejected shell casings never rendered on PC: | FIXED (gunfire.c #ifdef PORT, explicit template); PP7 casing verified on native Windows (before: |
| 213 | D332 | FIXED | Reticule jitter in aim mode (RMB) — | FIXED (fix/mouse-pd-model) — |
| 214 | D333 | FIXED | #104 (v0.3.0, Linux): | FIXED (2026-09-26 bookkeeping: |
| 215 | D334 | FIXED | Native widescreen, world side (WIDESCREEN-FOV-PLAN Option B Phase 2): | FIXED (2026-09-26 bookkeeping: |
| 216 | D335 | FIXED | Native widescreen, HUD + front end (WIDESCREEN-FOV-PLAN Phase 3): | FIXED (2026-09-26 bookkeeping: |
| 217 | D336 | FIXED | Frigate (and any level) "all polygons break except the gun" after turning: | FIXED (src/game/bondhead.c #ifdef PORT, ABI/layout); headless repro (Runway → exit → Frigate → turn, D294 2× room pool) clean, D156 0 fires; golden 3/3; Win + Linux builds. |
| 218 | D337 | FIXED | Aim modes folded (user decision): | FIXED (2026-09-26 bookkeeping: |
| 219 | D338 | FIXED | Input.AimRange (F10 "Aim range"): | FIXED (2026-09-26 bookkeeping: |
| 220 | D339 | OPEN | #92 (low-end ~30 fps, Celeron N3060 / HD 400) — | OPEN (2026-09-26, user: |
| 221 | D341 | FIXED | Intro gun-barrel blood drip draws as static blocks/lines instead of dripping (user, v0.4.0, 2026-09-26; death blood fine). | FIXED (M-201, user-verified 2026-09-27): |
| 222 | D342 | FIXED | File select: folder bodies and Bond photos vanish after selecting a file and backing out (user, v0.4.0, 2026-09-26). | FIXED (M-201, user-verified): |
| 223 | D343 | FIXED | File select: PC "Options" label opens the settings overlay (v0.4.0 feature, M1 of the route-B options screen, 2026-09-27); also fixes F10 on file select jumpin… | FIXED (M1, closed): one Rule-2 #ifdef PORT draw hook (user sign-off 2026-09-27); headless + user-verified (mouse, F10, >30 s, widescreen, physical controller on the bottom-bar label and options scree… |
| 224 | D344 | FIXED | Host PC bugchecks (BSOD 0x119 VIDEO_SCHEDULER_INTERNAL_ERROR) during game test runs; probable cause: | FIXED (probable cause; orderly quit + GE_QUITFRAME), headless + user-verified; no dump, watch for recurrence. |
| 225 | D345 | FIXED | Front-end crosshair snaps away from the pointer on screen/page changes (file select → mode select setCursorPOSforMode(0), front.c:2516; every MENU_PC_OPTIONS p… | Port-only, user-verified (parts a–g): |
| 226 | D346 | CLOSED | PC-settings wording pass: | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 227 | D347 | FIXED | F10 overlay controller: | FIXED (port-only, optionsoverlay.c): |
| 228 | D348 | CLOSED | File-select "PC Options" label: | CLOSED (2026-09-28 bookkeeping: |
| 229 | D349 | CLOSED | GE watch settings ARE saved to the Bond file when the watch closes: | SUPERSEDED (2026-10-04, P2b correction): |
| 230 | D350 | CLOSED | Watch-backed PC options: | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 231 | D351 | FIXED | Existing D346 value/unit rows had positional initializers shifted into hidePtr: | FIXED (port-only): designated row initializers restore unit, deadzone divisor and hide-if-auto fields; build clean, headless smoke clean. |
| 232 | D352 | FIXED | D350 review of 1303c0eb: | FIXED (port-only, port/src/watchsettings.c): |
| 233 | D353 | FIXED | Turok-style settings regrouping: | FIXED (port-only, optionsoverlay.c/frontoptions.c): |
| 234 | D354 | FIXED | Front-end F10 Bond rows silently disabled: | FIXED (port-only, port/src/watchsettings.c): |
| 235 | D355 | FIXED | F10/options Music slider inaudible in-stage: | FIXED (port-only, port/src/watchsettings.c): |
| 236 | D356 | FIXED | Settings regroup: Turok-style pages renamed to functional sections (INPUT/GAMEPLAY/GRAPHICS/AUDIO/VIDEO) with PD-style "(File N)" scoping annotations, the redu… | FIXED (port-only, port/src/optionsoverlay.{h,c} + port/src/watchsettings.{h,c} + port/src/frontoptions.c; plan docs/dev/D356-SETTINGS-REGROUP-PLAN.md): |
| 237 | D358 | FIXED | D356 level-1 overlap: | FIXED (port-only, port/src/frontoptions.c): |
| 238 | D359 | CLOSED | Settings UI file terminology settled on the end-user term "Profile": | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 239 | D360 | CLOSED | F10 INPUT heading scrolled away; F10 navigation and distance defaults (2026-09-27). | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 240 | D361 | FIXED | Main-menu F10 Audio freezes the game: | FIXED (port-only, port/src/watchsettings.c + F10 probe in optionsoverlay.c): |
| 241 | D362 | CLOSED | F10 GoldenEye dossier-style visual refresh (2026-09-27). | CLOSED (superseded by D363 after user playtest): |
| 242 | D363 | FIXED | F10 return to a dark overlay with the N64 watch's green/Bank Gothic visual language (2026-09-27). | FIXED (palette/font user-approved, 2026-09-27); D364 follows up on profile tags, click alignment and slider calibration. |
| 243 | D364 | FIXED | Settings UI feedback: | FIXED (user mostly accepted; D365 follows up on annotation size and click targets). |
| 244 | D365 | CLOSED | F10 annotation hierarchy and visible mouse change targets (2026-09-27). | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 245 | D366 | CLOSED | Input calibration label: | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 246 | D367 | CLOSED | F10 full-width control boxes misaligned with their contents (2026-09-27). | CLOSED (2026-09-28 bookkeeping: |
| 247 | D368 | CLOSED | Simplify F10 click targets: | CLOSED (2026-09-28 bookkeeping: |
| 248 | D369 | FIXED | Remove F10 row boxes/strips entirely (2026-09-27). | FIXED (awaiting live acceptance): |
| 249 | D370 | CLOSED | F10 distance/volume drags hurt frame rate (2026-09-27). | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 250 | D371 | FIXED | GEPD key-layout preset + reload/crouch bindings, v0.4.0 modern options wave M3 (2026-09-27). | FIXED (headless-verified; awaiting user live accept): |
| 251 | D372 | FIXED | Low-end perf preset (v0.4.0 modern options wave M5, 2026-09-27). | FIXED (headless-verified; awaiting user live accept): |
| 252 | D373 | FIXED | In-game crosshair on/off + colour (v0.4.0 modern options wave M2, 2026-09-27). | FIXED (user live-tested; rule-2 sign-off recorded 2026-09-27): |
| 253 | D374 | FIXED | GEPD becomes the default key layout; preset layering fix (v0.4.0 M3 playtest feedback, 2026-09-27). | FIXED (headless + user live-tested): |
| 254 | D375 | CLOSED | Crouch wired to the wrong pad bit: | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 255 | D376 | CLOSED | Crouch follow-up + modern-options spot check (2026-09-27). | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 256 | D377 | FIXED | GEPD independent crouch (2026-09-27). | FIXED (2026-09-28 bookkeeping: |
| 257 | D378 | FIXED | GEPD use/reload separation (2026-09-27). | FIXED (2026-09-28 bookkeeping: |
| 258 | D379 | FIXED | Crosshair colour: authored texture is red (2026-09-27). | FIXED (2026-09-28 bookkeeping: |
| 259 | D380 | FIXED | One PC keyboard layout; PD-style rebind design (2026-09-27). | FIXED (follow-up D383): |
| 260 | D381 | CLOSED | RULE-2-SIGNOFF: opt-in RGB, size and Beta crosshair (2026-09-27). | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 261 | D382 | CLOSED | Crosshair menu placement and slider hitches (2026-09-27). | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 262 | D383 | CLOSED | PD-style keyboard rebinding in both options UIs (2026-09-27). | CLOSED (2026-09-28 bookkeeping: |
| 263 | D384 | CLOSED | Front PC Options key-bind navigation feedback + two-slot UI (2026-09-27). | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 264 | D385 | CLOSED | Real mouse 1–5 action rebinding in the two-slot editor (2026-09-27). | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 265 | D386 | CLOSED | Correct Aim default from SDL middle (Mouse 2) to right (Mouse 3) (2026-09-27). | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 266 | D387 | FIXED | M7 AllUnlocked's read-time fake unlocks leak into saved EEPROM (2026-09-27). | FIXED 2026-09-30 (port-only per-slot raw/seen merge on EEPROM write, libultra.c geD387MergeSlotWrite; isolated ON-vs-OFF byte-identity matrix passed). |
| 267 | D388 | CLOSED | Nest functional binding/HUD menus and remove redundant M5 toggle (2026-09-27). | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 268 | D389 | CLOSED | F10 footer clipping and ambiguous submenu links (2026-09-27). | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 269 | D390 | CLOSED | F10 pinned Back selection did not visibly change (2026-09-27). | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 270 | D391 | CLOSED | F10 click at glyph bottom could select next row (2026-09-27). | CLOSED (2026-09-28). Shipped in v0.4.0; accepted in the user's final review / campaign playtest. |
| 271 | D392 | FIXED | Train intro soldier hunched; hand intersects torso vs 1964 — | FIXED (#ifdef PORT ABI/layout in chraction.c); Train aim-angle probe confirms correction; user visually verified the soldier looks fixed against 1964. |
| 272 | D393 | FIXED | Controller B/Y both crouch; no in-game use button — | FIXED + user live-tested A use / X reload / Y weapon cycle. |
| 273 | D394 | PARTIAL | Xbox 1.1 Jinx controller parity — | PARTIAL (2026-09-28). |
| 274 | D395 | RESOLVED | Controller trapped in keyboard/mouse-only binding capture — | RESOLVED (v0.4.0 campaign sign-off 2026-09-28, user: |
| 275 | D396 | RESOLVED | F10 pad B/A used as slider decrement/increment, not back/select — | RESOLVED (v0.4.0 campaign sign-off 2026-09-28, user: |
| 276 | D397 | RESOLVED | SELECT FILE background + intro gun-barrel show an interlaced/comb look — | RESOLVED (2026-09-28): |
| 277 | D398 | CLOSED | PC Options label: D348's procedural slider glyph replaced with an existing mainfolderimages texture (2026-09-27). | SUPERSEDED by D400 (icon removed, text-only label; purple-hover bug moot; the D400 textMeasure arg-swap bug was found and fixed there). |
| 278 | D399 | CLOSED | File-select bottom row (SELECT FILE text + Copy/Erase + PC Options dot/label) shifted 15px left as a block (user sign-off 2026-09-27). | CLOSED (2026-09-28 bookkeeping: |
| 279 | D400 | CLOSED | File-select "PC Options" label: | CLOSED (2026-09-28 bookkeeping: |
| 280 | D401 | CLOSED | Rumble Pak → real gamepad haptics (re-promotes D224/M-87): | CLOSED (2026-09-28). Rumble shipped in v0.4.0 (D401); Steam Deck real-pad validation: |
| 281 | D402 | RESOLVED | First clean Linux (glibc / SteamOS) build of release/v0.4.0 broke in two port-layer include-resolution spots MinGW tolerated (bondconstants.h first-include cyc… | RESOLVED (Linux/Ubuntu-24.04 build → glibc-2.41-compatible binary for the Steam Deck): |
| 282 | D403 | RESOLVED | Deck v0.4.0-pre test: | RESOLVED (2026-09-27, user-confirmed on the Deck: |
| 283 | D404 | RESOLVED | "Aim style: Centred (PC)" (Input.AimMode=1, D333/D337) has no effect when aiming with a gamepad; the row's own doc comment over-promises ("applies to every aim… | RESOLVED (2026-09-28, port-layer only): |
| 284 | D405 | CLOSED | fast3d/OpenGL: MSAA above the driver max black-screens; two glBindFramebuffer calls pass an index where a GL name is required (PR #106, italoarruda, 2026-09-25… | CLOSED (2026-09-28). Merged from PR #106 (code file only; security-reviewed clean - port-layer GL state fixes, no external input, no allocations). |
| 285 | D406 | RESOLVED | front-end PC Options screen: | RESOLVED (2026-09-28, port-layer only, Steam Deck-validated): |
| 286 | D541 | PARTIAL | One A press advanced two menu screens on the Steam Deck (Desktop Mode) — | PARTIAL 2026-10-05 (mitigation landed, port-only: |
| 287 | D542 | OPEN | Stray polygons left of Bond's gun, frequent on foggy levels (Streets, Surface 2) — | OPEN 2026-10-05 (triage: |
| 288 | D543 | FIXED | Surface 2: lit area following Bond brighter than 1964 — | FIXED 2026-10-06 (CPU RSP-style near clip in gfx_sp_tri1 + per-vertex fog default; build-verified, by-eye vs 1964 at next playtest) |
| 289 | D544 | FIXED | OS cursor flickers with F10 open on the main menu — | FIXED 2026-10-05 (port-only, input.c; build-verified, maintainer mouse check owed) |
| 290 | D545 | FIXED | Player rockets can pass through the ground when fired near Bond's feet — | FIXED 2026-10-06 (AVOID_UB array, gun.c; maintainer Archives preset A/B: |
| 291 | D546 | FIXED | PC settings standardization: | FIXED 2026-10-05 (port-only; build + maintainer check owed; golden re-base batched with D543) |
| 292 | D547 | FIXED | Game.AllUnlocked applies live (no restart) — | FIXED 2026-10-05 (port-only, main.c/optionsoverlay.c; build-verified, maintainer mission-select check owed) |
| 293 | D548 | FIXED | Walls near rocket fire/explosions banded black/white/yellow/blue (Aztec dark corridor; also seen on Deck) — | FIXED 2026-10-06 (gfx_opengl.cpp input clamp; root fix = D543 CPU near clip; maintainer Aztec re-check owed) |
| 294 | D549 | FIXED | Thrown grenade/knife/object: | FIXED 2026-10-06 (AVOID_UB coord3d, gun.c x3; build-verified) |
| 295 | D550 | FIXED | Static title bar (no more per-second "NN fps" refresh) + project mark as favicon / window / taskbar icon — | FIXED 2026-10-17 (port + tooling only, video.c/gfx_sdl2.cpp/make_icon.py; ninja-command-verified + full build 249/249; maintainer live window/taskbar check owed) |
| 296 | D551 | ? | Opt-in update check (Game.CheckUpdates, default off): | ADDED 2026-10-06 (port layer only; live-verified Windows/Linux/Deck + F10 UI capture; security review fixes applied) |
| 297 | D552 | FIXED | Dam ending cutscene: the first camera shot no longer swivels up onto Bond — | FIXED 2026-10-06 (port-only addition removed; code path back to the decomp; maintainer-verified live) |
| 298 | D553 | FIXED | Surface 2: the haze around Bond brightened/darkened as he moved — | FIXED 2026-10-06 (fast3d: |
| 299 | D554 | OPEN | F10 settings menu: wording/casing pass + two-line tips — | DONE 2026-10-06 (port/src/optionsoverlay.c; maintainer by-eye check owed) |
| 300 | D555 | OPEN | Crosshair mouse pointer over the F10 / PC Options overlay — | DONE 2026-10-06 (port/src/input.c, optionsoverlay.c, tools_pc/make_icon.py; maintainer by-eye check owed) |
| 301 | D556 | OPEN | F10 feedback pass (tips trimmed, conditional-row order, wording fixes) + mouse scrollbar — | DONE 2026-10-06 (port/src/optionsoverlay.c; build only, by-eye check owed) |
| 302 | D557 | FIXED | New/blank profiles start with Look ahead OFF on PC (Rule-2 sign-off, maintainer 2026-10-06) — | FIXED 2026-10-06 (src/game/file2.h DEFAULT_OPTIONS under #ifdef PORT; existing saves untouched; win gate 21/21) |
| 303 | D558 | FIXED | F10 overlay tips cut off in a level (not on the front end) — | FIXED 2026-10-06 (optionsoverlay.c textRenderWide; verified by in-level capture) |
| 304 | D559 | FIXED | Look ahead off for untouched existing folders (maintainer-approved, port layer only) — | FIXED 2026-10-06 (watchsettings.c migrateUntouchedLookAhead) |
| 305 | D560 | FIXED | F10 copy pass 3 (maintainer line review) — | FIXED 2026-10-06 (optionsoverlay.c tips/labels/value names; display text only) |
| 306 | D561 | FIXED | F10: "Menu pointer" row removed (front-end-only legacy option; confused players) — | FIXED 2026-10-06 (row/tip/names removed; Input.MenuPointerMode ini key, Direct default and the legacy code path kept for one release) |
| 307 | D562 | FIXED | F10 crosshair pointer hidden while a pad/keyboard drives the menu — | FIXED 2026-10-06 (drawCrosshairPointer draws only while s_mouseActive) |
| 308 | D563 | FIXED | F10 root hub: Left/Right no longer open pages; held nav inputs latched on open/page change — | FIXED 2026-10-06 |
| 309 | D564 | FIXED | F10: game's own "Look up/down" row removed (dead for mouse and centred pad, stacked with Invert look); value pinned to factory; tip polish — | FIXED 2026-10-06 (port only; Mouse / Controller "Invert look" are the inversion controls) |
| 310 | D565 | FIXED | AI awareness followed two player render settings: | FIXED 2026-10-06 (maintainer decision: |
| 311 | D566 | FIXED | Steam Deck Game Mode showed the on-screen keyboard at every launch (SDL text input left on) — | FIXED 2026-10-06 (port only: |
| 312 | D567 | FIXED | Front-end PC Options with a pad pulled the game's crosshair to the top-left (overlay synced the cursor to the untouched OS mouse) — | FIXED 2026-10-06 (port only: |
| 313 | D568 | FIXED | F10 dropdown popup drawn empty and misplaced for a long list on a mid-page row (negative top) — | FIXED 2026-10-06 (port only: |
| 314 | D569 | ? | Crosshair color follows the PD port: | CHANGED 2026-10-06 (maintainer request; old presets migrate to Custom RGB) |
| 315 | D570 | FIXED | Scaled crosshair (Crosshair size != 100%) showed a faint copy of the top bar's tip under the bottom bar (WRAP tile flags) — | FIXED 2026-10-06 (port only: |
| 316 | D571 | ? | Project icon restyled to the in-game sight red as pixel art (exe, window, favicon) — | CHANGED 2026-10-06 (maintainer request; make_icon.py; social preview unchanged) |
| 317 | D572 | ? | Linux tarball glibc floor lowered from 2.38 to 2.31: | CHANGED 2026-10-07 (maintainer request; packaging only; X220 glibc 2.36 fresh install PASS) |
| 318 | D573 | FIXED | sndPlaySfx / langGet pointer guards used an absolute [64 KiB, 16 GiB) literal; replaced by portAddrIsMapped() (DRAM arena views + mapped cart image) — | FIXED 2026-10-07 (from #108, italoarruda; Windows build + golden: |
| 319 | D574 | FIXED | Legacy front-end menu-pointer Velocity mode deleted (Input.MenuPointerMode / Input.MenuPointerSpeed); retired ini keys dropped silently — | FIXED 2026-10-07 (D561 follow-up; build + ini runtime check) |
| 320 | D575 | FIXED | Update check (D551) gave no result on Linux/macOS when /releases/latest exceeded 64 KB (curl SIGPIPE); parse helpers moved to a header with an offline test — | FIXED 2026-10-07 (harness 19/19; live Linux/Deck matrix owed) |
| 321 | D576 | FIXED | ge007.log written next to the ini (previous run kept as ge007.prev.log, 8 MiB cap) — | FIXED 2026-10-07 (Windows runtime check) |
| 322 | D577 | FIXED | F10 slider labels ended in ".." at HUD 150: | FIXED 2026-10-07 (captures HUD 100 unchanged / HUD 150 whole) |
| 323 | D578 | OPEN | Frame interpolation above 60 fps (Video.FpsCap 90/120/144): | BUILT 2026-10-07 (Windows: |
| 324 | D579 | FIXED | Issue #150: hugging a wall makes geometry vanish (N64 native widescreen does not). | FIXED 2026-10-09 (maintainer-verified, Dam gate 16:9; golden sweep owed) |
| 325 | D583 | FIXED | 120 fps + VSync on G-Sync/VRR: | FIXED on PC 2026-10-09 (G-Sync OLED, maintainer by eye); Deck 90 good on most levels (per-level pass 2026-10-10); open: |
| 326 | D584 | FIXED | Cradle catwalk shadow flicker at every frame rate (regression from D579). | FIXED 2026-10-10 (maintainer Deck: |
| 327 | D614 | OPEN | Deck Bunker fight texture-cache thrash: | OPEN: measured, fix not shipped (2026-10-10) |
| 328 | D605 | FIXED | Issue #145 (v0.6.0): F10 "Invert look" never reached the look stick in the HONEY role (game styles 1.1/1.3 -- left stick looks, right stick is the digital move… | FIXED 2026-10-09 (v0.6.0 line; port-only: |
| 329 | D606 | FIXED | Issue #144 (v0.6.0 triage): | FIXED 2026-10-09 (v0.6.0 line; port-only in port/src/optionsoverlay.c, src/game zero-diff; off by default so goldens stay byte-identical; smoke-verified: |
| 330 | D407 | CLOSED | Tanks cannot be boarded/exited on PC — | CLOSED (2026-09-28 bookkeeping: |
| 331 | D408 | FIXED | Game.SkipIntro skips the post-mission failure dossier: | FIXED 2026-09-30 (SkipIntro hook gated to first boot; live dossier check owed). |
| 332 | D415 | FIXED | Shooting a light fixture does not "kill" its flickering light (Bunker, Caverns): | FIXED (2026-09-29 bookkeeping: |
| 333 | D416 | RESOLVED | 2-player split-screen crashes (issue #99, v0.3.0 4827bc8, fault addr 0xa43a0ed4, PC 0x14009e758): | RESOLVED in-harness (converter + D417 + D418 fix the 2P crash and split-screen flicker; 18/18 2P/3P/4P x 6-stage load runs clean; live pad play still owed). |
| 334 | D417 | RESOLVED | enum PROP unsigned on GCC: | RESOLVED (src/bondconstants.h PROP__PORT_SIGNED = -1, D3/D142 precedent; Rule-2 review done 2026-10-06: |
| 335 | D418 | RESOLVED | Split-screen: fast3d safe-area crop stretched the last-set (half-height) viewport over the whole window, so each player's view filled the screen and the last-d… | RESOLVED (gfx_set_split_screen, port-only). |
| 336 | D419 | RESOLVED | Split-screen input shared between players / P1 lost solo controls: | RESOLVED (per-slot slotPlayer(), port-only; no current-player swaps from the poll thread; live-tested OK). |
| 337 | D420 | FIXED | MP score / stats screen shows an odd big number (issue #99) — | FIXED 2026-10-01 (mp/virtual-seats); 2P/3P/4P watch-menu runs show 0s. |
| 338 | D421 | CLOSED | Gadget cycling (pad B / gadget key) disabled in 2+ player matches — | CLOSED 2026-10-01: moot, no MP inventory holds a gadget (mp_weapon.c); hook reviewed + reverted. |
| 339 | D422 | FIXED | P2+ have no centred-aim mode in split-screen (single-slot aim state) — | FIXED in tree (commit ac92e0ab: |
| 340 | D423 | CLOSED | Unidentified black arrowhead in P2's split-screen view (stage 38) — | CLOSED 2026-10-01: faithful (level shadow at a doorway top), maintainer-confirmed live. |
| 341 | D424 | FIXED | WeaponStats.RecoilSpeed/b44[] byte order: | FIXED in tree (WS_B44, port-guarded); user-verified vs GEPD/1964 2026-09-29. |
| 342 | D425 | FIXED | Tank run-over death sound loops: | FIXED (2026-09-29 bookkeeping: |
| 343 | D426 | RESOLVED | Tank cannot be steered with the mouse out of aim mode (issue #116). | RESOLVED (user 2026-09-29: |
| 344 | D427 | FIXED | Automatic fire cadence is frame-counted, ~2-3x faster than N64 at 60 fps (issue #114). | FIXED in tree (modulus scaled by ticks/frame; measured 6 ticks/shot at 30 and 60 cap); user-verified vs GEPD/1964 2026-09-29 (AK47 mag empties in ~3 s, Klobb normal). |
| 345 | D428 | FIXED | No gun turn-sway with direct mouse look (issue #117). | FIXED in tree (2nd pass: |
| 346 | D429 | CLOSED | Tank full pass: aim-mode (RMB) mouse behaviour and tank sticking forward/back (follow-up to D426). | CLOSED faithful (user 2026-09-29: |
| 347 | D430 | FIXED | Shot light fixtures do not go dark: | FIXED in tree (D154-style words.w0/.w1 decode); user-verified vs GEPD/1964 on Caverns 2026-09-29. |
| 348 | D431 | FIXED | Light fixtures never reached lightFixtureBreak on PC: | FIXED in tree (fixture table records the image id; bg.c hit code looks it up; free-slot guard); user-verified vs GEPD/1964 2026-09-29. |
| 349 | D432 | FIXED | Gunshot sounds "off" after D427: | FIXED in tree (gate offset rounded to odd at 1 tick/frame); measured shot/sound cadence identical to N64 rules; residual audible difference vs 1964 tracked as D433. |
| 350 | D433 | OPEN | Slight audible difference in automatic-gun shot sound vs GEPD/1964 after cadence was matched (user by-ear, Caverns). | OPEN (not a timing issue; audio layer suspected). |
| 351 | D434 | FIXED | Raw ((u8*)&g_Textures[n])[0] & 0xf hit-type reads are wrong on PC; latent OOB once D431 returned real texture ids (found by sub-agent review). | FIXED (.hitTexture at 3 sites, port-guarded); live check owed. |
| 352 | D440 | FIXED | "Original N64" / "Port defaults" one-press presets in the F10 overlay and front-end PC Options (+ -n64preset/-portpreset). | FIXED (port-only; headless-verified; user live accept owed). |
| 353 | D441 | PARTIAL | 64-bit pointer-width sweep (part 1): | PARTIAL (census + GE_HIGHARENA_BASE tier-1 build + 35 sites fixed + CI ratchet, 2026-10-03; tier-1 all-level sweep 21/21 PASS, 0 crashes, 2026-10-05; the above-4-GiB tier still owed). |
| 354 | D442 | FIXED | Game.AllUnlocked reworked into a pure RAM/query-time override: | FIXED; verified 2026-10-03 headless (mission select all 20 / only real progress when OFF, full cheat menu, eep byte-identical). |
| 355 | D443 | FIXED | D357 settings-display cleanup (mouse ×, whole-% deadzone and volume steps, FOV in horizontal degrees, MSAA 16×) plus a "Restart game" action (orderly D344 quit… | FIXED (port-only; reset probes pass; both-UI visual check and one Restart click owed; Linux relaunch path not compiled). |
| 356 | D454 | FIXED | Knife slash crashed on Windows: | FIXED (verified by maintainer live: |
| 357 | D461 | FIXED | Item-slot allocation overran into the next stage-bank block: | FIXED (maintainer-verified: |
| 358 | D462 | FIXED | vtxstore.c sized its two record tables with the N64 stride 0x14 for a 24-byte struct unk_09B7A0_struct_parent on PC (Vertex* unk00 widened); both are indexed a… | FIXED (build + solo -level_09 and 4P GE_STARTMP=4 smoke runs exit clean; no crash; by-eye owed in solo). |
| 359 | D444 | FIXED | Front-end PC Options: | FIXED (build-verified; human mouse test owed) |
| 360 | D455 | FIXED | Binary-first census of exe-static addresses truncated to 32 bits (D454 class) (2026-09-30). | FIXED/CLEAN (no further REAL site beyond D454) |
| 361 | D447 | FIXED | Pillarbox output mode (Video.AspectMode = Original) for the Original N64 preset; crop overscan no longer cancels Wide/Cinema. | FIXED (build + 3 captures verified; Wide/Cinema, 16:9 Ratio, mouse and 1964 comparison owed to a human) |
| 362 | D445 | FIXED | Crouched-rifle firing animation (crouched_rifle_firing_animation_groupA) never resolved on PC -> SIGSEGV in modelConstrainOrWrapAnimFrame when an MP player cro… | FIXED — layout only (§D5 linker adjacency, D164 class): |
| 363 | D446 | FIXED | Couch 2P watch-menu text (the MP pause page) differs by +-1-2 per channel between builds whose only difference is data layout (2026-09-29). | FIXED — port-only (fast3d): |
| 364 | D448 | PARTIAL | Split-screen pad seats: | PARTIAL (committed 918ac5f9 on feat/mp-splitscreen-99, build + 2P smoke OK; plug/unplug behaviour not exercised at runtime). |
| 365 | D456 | ? | Font-pointer / text-string-pointer slots retyped from s32 to real pointers (ABI/layout exception; front.c, options.c, language.c, bondview*, mpmenu.c, propobj.… | |
| 366 | D457 | ? | 64-bit ABI retypes part 2: | |
| 367 | D453 | ? | memp allocator API made 64-bit clean (D441 step 0; ABI/layout exception, §A1). | 2026-09-30 |
| 368 | D451 | FIXED | Automatic-fire gate at unsteady frame rates (D427 follow-up) and D173 residual. | FIXED (RULE-2-SIGNOFF, maintainer 2026-09-30: |
| 369 | D463 | FIXED | fast3d divided by zero (0xc0000094) importing a texture for a zero-area TextureRectangle on a tile with line = 0: | FIXED (port-layer guard in import_texture; 8 repeats of the crashing config + the 18-run sweep + solo -level_09 + menu boot all rc=0 with no crash; the guard fired in 3 of 8 repeats). |
| 370 | D464 | PARTIAL | GE_MEMPREDZONE=1: 64-byte red-zone checker for the memp bump allocator (all banks), side table + checks at level unload / every 60 frames / orderly quit; re-in… | TOOL LANDED (local, feat/memp-redzone); MP sweep owed. |
| 371 | D465 | FIXED | #127 Dam/Caverns/Complex water slid side to side: | FIXED 2026-10-01 (fix/d465-water-primlod, local); rate measured = N64; maintainer by-eye on Dam: |
| 372 | D466 | FIXED | #125 Xenia's boss fight on Jungle triggers early: | FIXED 2026-10-01 (fix/d466-drawdist-gameplay, local); RULE-2-SIGNOFF (port-feature leak fix; design-review approval); verified headless (room sets, on-screen counts), player-facing shot/autoaim/use/p… |
| 373 | D467 | CLOSED | #130 Golden Gun empty click with each shot: | CLOSED: faithful by code + log (audited 2026-10-01; by-ear check of held-trigger behaviour vs 1964 is maintainer-owned) |
| 374 | D468 | FIXED | AI view clamp: under ultrawide (> 16:9) or Video.FovScale > 100 the AI's on-screen tests used the wider rendered frustum; they now keep the cartridge-widest vi… | FIXED 2026-10-01 (feat/d468-ai-view-clamp, local); RULE-2-SIGNOFF (policy approved by the maintainer 2026-10-01); verified headless (clamp on/off switching + falsifier). |
| 375 | D469 | FIXED | Gamepad presets + per-seat controller rebinding (ROADMAP 5a; supersedes outside PR #109): | FIXED 2026-10-01 (merged into release/v0.4.1, local); preset 0 == old mapping proven (20,971,520 cases); live pad test owed (maintainer); Jinx 1.2/1.3 undefined (gap) |
| 376 | D470 | FIXED | Audio master volume + output-device selection (ROADMAP 5a): | FIXED (live listening test owed) |
| 377 | D471 | FIXED | Controller-family button names (no glyphs) in the PC menus + player-index LEDs: | FIXED 2026-10-01 (local); headless captures for Xbox/PS/Nintendo; live PS/Nintendo pad check owed |
| 378 | D472 | FIXED | F10 overlay polish: multi-pad ownership (audit G1-G3), widescreen pillarbox (D335b), red EXPERIMENTAL rows, unknown-ini-key warning. | FIXED 2026-10-01 (merged; port-only, no src/game). |
| 379 | D473 | FIXED | Uncached getenv("GE_D75V") on every G_VTX: | FIXED 2026-10-01 (local); Statue display-list CPU about -55% in steady windows |
| 380 | D474 | FIXED | fast3d micro-optimisations: | FIXED 2026-10-01 (local); output-identical by construction; measured gain on the dev machine within noise |
| 381 | D475 | OPEN | Statue/Cradle hitches diagnosed: | OPEN (diagnosed 2026-10-01): |
| 382 | D476 | FIXED | CI4 textures keyed on their own 16-entry palette bank instead of the whole 256-entry table (D217 hash): | FIXED 2026-10-02 (local); Statue sweep CI4 cache misses 189 -> 36 |
| 383 | D477 | ? | CI8 palette re-imports measured and ruled out as a CPU-side hitch cause: | MEASURED 2026-10-02 (local); premise of the D475/D476 follow-up refuted on the dev box; GPU/driver-side cost unmeasured |
| 384 | D478 | FIXED | D441 read-side census re-run (319 warnings, 129 outside the chr.c D34 initialisers) triaged against the current tree: | FIXED 2026-10-02 (local; snprintf bound); census triage recorded, Stage B items listed |
| 385 | D479 | FIXED | Split-screen GE_STARTMP harness hid the ammo counter: | FIXED 2026-10-02 (local); harness-only, 2P frame shows the counter in both halves |
| 386 | D480 | FIXED | Shader pre-warm: every created shader pair (shader_id0, shader_id1) is remembered in $S/ge007.shaders and compiled at the first frame of the next session, so a… | FIXED 2026-10-02 (local, perf/shader-prewarm); output-identical (menu frame exact), 0 in-play compiles on the warm run |
| 387 | D481 | FIXED | Low-end ~45/30 fps (#92): | FIXED 2026-10-02 (local, perf/render-worker); X220 (HD 3000) 44-46 -> 60.0 fps, GE_RENDERINLINE=1 falsifier restores 45.9 |
| 388 | D482 | FIXED | Lighter first-launch defaults on Atom/Celeron-class GPUs (#92 follow-up): | FIXED 2026-10-02 (local, perf/lowend-defaults); X220 forced-path: |
| 389 | D483 | FIXED | #136: the PC crouch key stood Bond up when he switched to the sniper rifle; the N64 keeps the stance (the weapon's DISABLE_CROUCH flag blocks both crouch-down… | FIXED 2026-10-02 (local, fix/d483-sniper); scripted crouch -> switch -> release keeps SQUAT |
| 390 | D484 | FIXED | #136: portScaleFovY's 20-degree floor raised the game's own zoom FOVs, capping sniper/camera magnification at 20 degrees instead of the N64's 7 (about a third… | FIXED 2026-10-02 (local, fix/d483-sniper, maintainer-approved 2026-10-02); full zoom renders at 7 degrees, normal views pixel-identical |
| 391 | D485 | FIXED | #136: sniper/camera zoom stepped once per game frame with no tick scaling, so at the port's 1 tick/frame it zoomed 2x faster in real time than the N64 at 2 tic… | FIXED 2026-10-02 (local, fix/d483-sniper); 15 -> 7 takes 16 frames at 60 fps (was 8) = the N64 at 30 fps |
| 392 | D486 | FIXED | #126: explosions dropped in heavy firefights (turrets on Cradle/Egypt/Aztec): | FIXED (a)(c)(d); drops + (b) faithful, closed. |
| 393 | D487 | FIXED | PAL: the in-level ammo counter was not drawn (only a small dot where the "7 / 93" counter should be) — | FIXED; maintainer PAL play check 2026-10-02: |
| 394 | D488 | FIXED | PAL build reported the Brazilian MPAL TV type instead of PAL (osTvType) — | FIXED |
| 395 | D489 | FIXED | FPS dropped sharply while adjusting F10 watch sliders (music/FX) with a pad or arrow keys: | FIXED 2026-10-02 (port-only UI layer, fix/d489-pad-slider-commit, merged into release/v0.4.1 2026-10-03); maintainer pad check passed 2026-10-03 |
| 396 | D490 | FIXED | Dam first-tower guard walked a small circle: | FIXED 2026-10-02 (fix/d490-glass-hull, merged into release/v0.4.1 2026-10-03); maintainer by-eye Dam check passed 2026-10-02 |
| 397 | D491 | FIXED | Struct reads across separately-declared adjacent globals (the D5/D215 class), found by the D24 overflow audit: | FIXED 2026-10-03 (fix/d491-adjacent-global-reads, local); builds clean, 900-frame -level_09 smoke clean; no by-eye effect expected beyond room-membership-driven behaviour |
| 398 | D492 | CLOSED | Emulator .eep saves are not drop-in compatible: | CLOSED (converter shipped 2026-10-04: |
| 399 | D493 | FIXED | Pad rumble kept going after quitting the game: | FIXED 2026-10-03, maintainer-verified in play (DualSense; Original-mode edges incl. |
| 400 | D494 | FIXED | Sniper rifle: the PC crouch key now crouches/stands freely with a disable-crouch weapon (GEPD parity), never injecting C-down for it; supersedes D483's stance… | FIXED 2026-10-03, maintainer-verified in play |
| 401 | D495 | FIXED | Tank: with the default pad preset X changed the tank weapon and Y left it, because in-tank faces fell back to the fixed menu faces; PadMapCtx.tank routes Next/… | FIXED 2026-10-03, maintainer-verified in play |
| 402 | D496 | FIXED | 3P/4P split-screen: weapon-pickup messages garbled and oversized — | FIXED 2026-10-03 (condensed 3+P text is faithful, maintainer-confirmed) |
| 403 | D497 | FIXED | PC Options paging now matches the game's dossiers: | FIXED 2026-10-03, maintainer-verified in play |
| 404 | D498 | FIXED | Xbox 1.2 Christmas / 1.3 Frost / 1.4 Elektra gamepad presets: | FIXED 2026-10-03, maintainer-verified with a pad |
| 405 | D499 | FIXED | Trilinear texture filter option: | FIXED 2026-10-03, maintainer-checked (no visible difference; kept) |
| 406 | D500 | FIXED | Aztec shuttle area: polygons "fell apart"; the per-frame vtx pool (dyn.c, no bounds check, Aztec -mvtx40) could overrun into the half the render worker draws;… | FIXED 2026-10-03, maintainer-verified at the Aztec spot |
| 407 | D501 | CLOSED | Ultrawide 16:9 pillarbox for cutscenes and the watch: | CLOSED (reverted 31ade91f) |
| 408 | D502 | FIXED | PC Options pad navigation: | FIXED 2026-10-03, maintainer-verified with a pad |
| 409 | D503 | PARTIAL | Surface: near-full-fog silhouettes on 32-bit output (fog snap applied); the remaining Surface dish is the widescreen frustum, 4:3 matches N64 — | FIX LANDED (by-eye pass owed) |
| 410 | D504 | FIXED | F10 / PC Options menu: | FIXED (port-only; by-eye pass vs the PD port owed) |
| 411 | D505 | FIXED | Menu wording pass: 27 maintainer-approved text edits across both PC options UIs — | FIXED (port-only; by-eye pass owed) |
| 412 | D506 | FIXED | Menu slider values standardized: | FIXED (port-only; by-eye pass owed) |
| 413 | D507 | FIXED | Menu: one-line description of the focused option in both PC options UIs — | FIXED (by-eye pass owed) |
| 414 | D508 | FIXED | Forced aspect ratios: | FIXED (by-eye pass owed) |
| 415 | D509 | FIXED | Held frames after an aspect-ratio change: | FIXED (by-eye pass owed) |
| 416 | D510 | FIXED | F10 overlay + FPS counter the same on-screen size on the front end and in a level — | FIXED (live check owed) |
| 417 | D511 | OPEN | Four PD-parity settings: | DONE headless (live checks owed) |
| 418 | D512 | OPEN | Game.HudScale also scales the F10 overlay and FPS counter — | DONE headless (live check owed) |
| 419 | D513 | OPEN | Input.ControlScheme: Modern / OG controls (#139, T7) — | DONE headless (pad pass owed) |
| 420 | D514 | OPEN | Emulator saves load directly: | DONE headless (by-eye mission select owed) |
| 421 | D515 | FIXED | Empty arch tag from a fresh build dir: | FIXED (headless-verified) |
| 422 | D516 | FIXED | Control style Original shows the game's own N64 styles (1.1-2.4, per seat, saved to the Bond file) instead of the D498 presets — | FIXED (live pass 2026-10-04 incl. |
| 423 | D517 | FIXED | Holding left/right on a Bond settings row dropped the fps: | FIXED (live pass 2026-10-04) |
| 424 | D518 | FIXED | Pad layout preset was one global value: | FIXED (live pass 2026-10-04 incl. |
| 425 | D519 | FIXED | One PC options UI: the file-select "PC Options" entry opens the F10 overlay; the MENU_PC_OPTIONS screen is deleted — | FIXED (headless-verified 2026-10-04; by-eye pass owed) |
| 426 | D520 | FIXED | F10 overlay slider wedge, slider marker and dropdown arrow antialiased (they stepped in whole canvas pixels that grow with the window) — | FIXED (headless before/after capture; by-eye owed) |
| 427 | D521 | PARTIAL | A fixed-frame golden window that overlaps the intro flyby is platform-nondeterministic (cross-platform goldens); verify.sh's linux pixel-gate skip is driver-co… | PARTIAL (rule recorded 2026-10-04; the two residual bands CLOSED 2026-10-05 by D525's box re-round — |
| 428 | D522 | FIXED | The golden window's frame-900 stem is not settled gameplay on several levels — | FIXED 2026-10-05 (recipe-side re-base: |
| 429 | D523 | CLOSED | The golden recipe does not pin save state: | SUPERSEDED by D529 (2026-10-05) — |
| 430 | D524 | FIXED | The golden tooling was destructive and drift-prone: | FIXED 2026-10-05 (both pins idempotent — |
| 431 | D525 | FIXED | The whole <level>/linux/ golden set was stale, not just on the six re-based levels — | FIXED 2026-10-05 (21-level box re-round, 63 frames, save pinned present; structural parity 21/21, Archives/Streets bands attributed to save state, not a renderer) |
| 432 | D526 | CLOSED | P13 Dam-ending grate / edge-railing transparency is faithful N64 behaviour (port == 1964/GEPD); the per-triangle census probe is retained as a generic draw-sta… | CLOSED — faithful, confirmed on 1964/GEPD (2026-10-05): |
| 433 | D527 | OPEN | GE_PCDUMP written first:last (a colon where the dash belongs) silently dumps EVERY frame — | OPEN (harness documentation; a log-or-fail-closed fix is owed in the port layer) |
| 434 | D528 | OPEN | GE_STARTMENU skips the EEPROM read, so front-end-only sessions never import the emulator save — | OPEN (harness documentation; the D514 imported-save test must run from a normal boot; a log-or-import fix is owed in the port layer) |
| 435 | D529 | FIXED | The golden gate depends on the save file's CONTENT — | FIXED 2026-10-05 (canonical save in-tree at tools_pc/golden/ge007.eep; verify.sh installs it like the ini pin; all 21 win sets re-captured under it — |
| 436 | D530 | ? | The box (X220) linux golden re-round landed — | AMENDED BY D531 (2026-10-05) — |
| 437 | D531 | FIXED | capture_p7.sh's D529 adaptation was incomplete — | FIXED 2026-10-05 (loop re-pins the canonical save per level + cd "$ROOT"; fresh 21/21 box re-capture committed — |
| 438 | D532 | FIXED | The three P12 U5 should-fixes applied — | FIXED 2026-10-05 (tooling-only: |
| 439 | D533 | FIXED | The probe-doc drift that would have failed CI, plus three tracked-file accuracy/hygiene fixes (release-sweep spot-check) — | FIXED 2026-10-05 (GE-ENV-PROBES.md missing the GE_D526 family → gen_env_probes.py --check rc 1 = a CI-failing step; build-pc.sh local MSYS2 root in two messages; docs/fidelity.md og line; release-not… |
| 440 | D534 | FIXED | Pre-release review of the 2026-10-05 local batch — | FIXED 2026-10-05 (verify.sh/capture_p7.sh INT/TERM trap; release-notes linux-gate wording; dead security-and-fidelity-status.md links; future-dated 2026-10-07 labels normalised; D526 probe dangling-e… |
| 441 | D540 | FIXED | Fog rework (Deck playtest): | FIXED 2026-10-05 (port: |
| 442 | D450 | FIXED | Unplugging and replugging a controller was not picked up (user, GameSir-G7 Pro; 2026-09-29). | FIXED — port-only: the render thread's gfx_sdl_handle_events drains the same SDL queue as video.c's host pump but had no case for SDL_CONTROLLERDEVICEADDED/REMOVED, so it usually swallowed them and i… |
| 443 | D436 | FIXED | Persistent (hipfire) crosshair, opt-in: | FIXED (shipped 2026-09-29; rule-2 sign-off: |
| 444 | D617 | OPEN | The HD pack's ge007.tdb is the emulator's full per-draw key list, not the pack's PNG list — | OPEN — plan written (docs/dev/TEXPACK-RICE-DRAW-PLAN.md); whole-texture recipe confirmed correct by 9 tdb hits with exact ;WxH agreement; PNG-filename and brute-force param searches are dead ends |
| 445 | D618 | ? | The community HD pack's non-CI keys are per-draw rects partly unreachable from N64 tile state (440x1 strips), and a rect key cannot land in the whole-texture p… | STOPPED 2026-10-06 — tdb ;WxH are per-draw rects (440x1 ×301 over tmem's 128-byte pitch = recompile-side); ~100 byte-domain variants score 0 hits; content-join does not discriminate; rect-keyed repla… |
| 446 | D619 | ? | The community HD pack's remaining 1790 PNGs are blocked by four independent causes (recompile-side rect keys, wrong hash domain, rect-vs-whole-texture format,… | WRITTEN UP 2026-10-06 — |
| 447 | D620 | OPEN | The HD pack's non-CI keys hash the pack's own re-encoded content — | MEASURED 2026-10-07 — |
| 448 | D621 | PARTIAL | The PD dabs-mod texture-pack notes mine: | PLAN LANDED 2026-10-07 — |
| 449 | D622 | ? | B0 sprite-bank confirmation — | PASS 2026-10-07 — two human-driven GE_TEXNUMDUMP+GE_TEXDUMP runs (front end 377 unique texnums / 521 dumps, -level_09 combat 321 / 316; evidence scratch/b0/): |
| 450 | D623 | OPEN | Phase B1–B3 measured: | MEASURED 2026-10-07 — |
| 451 | D624 | OPEN | B4 content scorer built + tuned: | BUILT 2026-10-07 — 5-stage pipeline (geometric prefilter → content rank → GT-tuned auto-accept → vision judge → human queue) per the 2026-10-07 decision (commits 512e6d57, 95d38637). |
| 452 | D625 | ? | texpack A5: downscale-to-GL-max instead of the D615 vanilla fallback, plus first-use decode-stall metering — | BUILT 2026-10-10, not yet A/B-verified — |
| 453 | D626 | FIXED | Windows DPI awareness was never declared: | FIXED 2026-10-10 (gfx_sdl2.cpp: |
| 454 | D627 | FIXED | DexDrive / GameFAQs .n64 saves import directly: | FIXED 2026-10-10 (eepimport.c + eep_convert.py dexdrive-to-pc); byte-identical to the reference extraction, malformed inputs rejected untouched; by-eye mission select owed |
| 455 | D628 | RESOLVED | The exact-CRC CI half of the GoldenEye-007-HD join is sound (256 texnums, independently re-verified), but its structural half was scored against GE_TEXDUMP cap… | CI HALF ACCEPTED 2026-10-10 (256/256 (crc,fmt,siz) agreement with the rice census, 256 distinct texnums, palette-variant collision resolved by ROM palcrc, builder resolves all 256 sources); structura… |
| 456 | D632 | OPEN | Exit BSOD 0x119 recurred (2026-10-10) despite D344; the first minidump shows it fires in the kernel's process-exit GPU cleanup (DXGPROCESS::Destroy -> DXGCONTE… | FIX BUILT 2026-10-10 (fix/d632-exit-teardown): |
| 457 | D636 | FIXED | Non-CI pack textures ARE fingerprint-keyed: | FIXED 2026-10-10 (feat/texpack-fp): |
| 458 | D637 | ? | Fingerprint fallback in the loader: | BUILT 2026-10-10 (feat/texpack-fp); C CRC == Python on 80 ROM glyphs; not run-verified (game runs on hold) |
| 459 | D638 | FIXED | HD-pack ammo icon cut off: | FIXED 2026-10-10 (chore/v070-agentic-batch): |
| 460 | D639 | OPEN | Exclusive fullscreen picked the wrong resolution: | FIX BUILT 2026-10-10 (chore/v070-agentic-batch): |
| 461 | D643 | FIXED | Issues #145 (b)(c) / #149: | FIXED 2026-10-12 (port-only; GE_PADMAPTEST PASS; maintainer pad pass vs the #145/#149 reports; 1:1 N64-pad stick check owed when an adapter is available) |
| 462 | D644 | FIXED | File-select royal crest drew on an opaque dark square (#146): | FIXED 2026-10-12 (import_texture_ia4; 1964-confirmed symptom, maintainer-verified; Win sweep unchanged) |
| 463 | D645 | FIXED | Original 1.1: F10 "Invert look" did not invert vertical look (#145 a): | FIXED 2026-10-12 (F10 row and watch row synced in Original; maintainer-verified) |
| 464 | D646 | FIXED | F10 dropdown popup drew over the hint/tooltip panel (popup bounded by the screen edge, not the settings box) — | FIXED 2026-10-12 (ddGeom bounded to the box; maintainer-verified) |
| 465 | D951 | OPEN | v0.6.0 release gate: Windows golden sweep flags are timing noise in the test, not rendering changes — | OPEN (test-side; 2026-10-13) |
| 466 | D952 | FIXED | macOS: black window, no frame, when the game starts while the display is asleep (SDL3 Cocoa VSync waits forever on a CVDisplayLink that never started) — | FIXED 2026-10-13 (port-only, gfx_sdl2.cpp; Mac A/B: |
| 467 | D954 | FIXED | Doors and guards flicker at 90 fps, not at 60: | FIXED 2026-10-13 (port-only, gfx_pc.cpp + interpportal.c; Windows-measured; Deck check owed) |
| 468 | D607 | OPEN | Address model unified into one header: | DONE 2026-10-07 (macos branch; Windows identity gate: |
| 469 | D608 | FIXED | D34 ANIM_DATA_x re-basing guard in assets/animationtable_data.h was __x86_64__-only: | FIXED 2026-10-07 (macos branch; mechanical guard widening, arm64 link clean) |
| 470 | D609 | FIXED | macOS arm64 SIGKILL at exec: | FIXED 2026-10-07 (macos branch; probe-confirmed; arm64 keeps the 4 GiB pagezero, floor 11.0) |
| 471 | D610 | FIXED | GE_MEMPOOL_CEILING (port/src/n64stubs.c) hard-coded the D441 base-0 arena top; now #if PORT_ADDR_BASE != 0-keyed so arm64 gets the arena-relative ceiling and b… | FIXED 2026-10-07 (macos branch; base-0 identity by construction) |
| 472 | D611 | FIXED | Mempool arena start is truncated to 32 bits at three carriers (osVirtualToPhysical, PHYS_TO_K0, src/boss.c:168 u32 start) so arm64 macOS banks live at arena-re… | DIAGNOSED 2026-10-07 (macos branch; arena-start leg fixed as D612, rest owed with the #95 re-application) |
| 473 | D612 | PARTIAL | Arena-start leg fixed (src/boss.c: | PARTIAL 2026-10-07 (macos branch: |
| 474 | D613 | FIXED | PR #95 (macos branch) re-applied onto release/v0.5.1 — | FIXED 2026-10-07 (macos branch) |
| 475 | D586 | FIXED | Apple gen_macho_syms.py --base parse was dead code (undefined args), the shifted literals emitted bare (assembler "expected newline"), and the generated .s dir… | FIXED 2026-10-07 (macos branch) |
| 476 | D587 | FIXED | macos sweep: 9 of the first 13 levels SIGSEGV at one site — | FIXED 2026-10-07 (macos branch) |
| 477 | D588 | FIXED | Windows x86_64 SIGSEGV (deterministic 3/3) in texReadBits under lvlStageLoad: | FIXED 2026-10-07 (macos branch) |
| 478 | D589 | RESOLVED | macOS arm64: wide-pixel (32-bit RGBA / 16-bit) textures render as colourful static / confetti (the Surface 1/2 billboard trees) while x86_64 renders them corre… | RESOLVED 2026-10-08 (macos branch; byte order fixed+verified = D591; the SECOND CAUSE D592 is CLOSED as a non-issue — |
| 479 | D590 | FIXED | Windows x86_64 deterministic SIGSEGV in load_bg_file (bg-load worker thread, 4/4 incl. | FIXED 2026-10-08 (macos branch) |
| 480 | D591 | FIXED | arm64 macOS fast3d mis-classifies every DRAM/cart texture source as a “C-compiled array” and byte-swaps it — | FIXED + Mac A/B VERIFIED 2026-10-08 (macos branch; 9c59cbe7) — |
| 481 | D592 | CLOSED | arm64 macOS — the "rock striping" (the remaining cross-platform frame diff after the D591 byte-order fix) is a VHF-metric FALSE-POSITIVE, not a GL-layer defect. | CLOSED (non-issue) 2026-10-08 (macos branch; VHF-metric false-positive — |
| 482 | D593 | OPEN | Windows x86_64 — an occasional render-thread stall fired the kernel's "no frame rendered for N ms" watchdog (observed once, 8001 ms, on an NVIDIA RTX 5090 duri… | OPEN 2026-10-08 (Windows; single observation; repro + root-cause owed) |
| 483 | D594 | FIXED | arm64 macOS — partial input: | FIXED 2026-10-08 (macos branch; actHeld menu gate + macOS reconcileGrab focus gate → PD MLOCK_ON; LMB fire verified on the Mac; unblocked D595) |
| 484 | D595 | FIXED | arm64 macOS — deterministic SIGSEGV in modelSetAnimFrame when an AI plays a hit/stagger/death animation (fire → triggered_on_shot_hit → modelSetAnimation2); th… | FIXED 2026-10-08 (macos branch; read the base at full pointer width — |
| 485 | D596 | FIXED | the win/ golden set predates D565/D569/D570, so verify.sh on the macos branch (and the main tip) reported a REGRESSION worst_cell=3.106875 that is a stale refe… | FIXED 2026-10-08 (macos branch; win goldens regenerated from e0a2d4b9, 21/21 PASS; recipe-side only, no game-code change; the linux/deck sets need their own re-capture round before any new cross-plat… |
| 486 | D597 | FIXED | GE_INPUTSCRIPT gains MLB<n>/MRB<n> (sustained mouse-button tokens, slot 0): | FIXED 2026-10-08 (macos branch; Windows menu + forced-level keylog checks; Mac sweep-fire no-crash run + no-env no-op run; the live E1 LMB fire is the struck-animation ground truth; cmd-wrapper gotch… |
| 487 | D598 | RESOLVED | arm64 macOS gameplay is "a bit choppy" on heavy levels (Cradle-class) — | RESOLVED 2026-10-08 by D600 (display-locked retrace tick; live playtest confirmation owed) |
| 488 | D599 | FIXED | arm64 macOS: SIGBUS (signal 10) the moment a game controller is connected — | FIXED 2026-10-08 (macos branch; Mac M3 re-run with a connected Xbox pad: |
| 489 | D600 | FIXED | VSync-on frame pacing: | FIXED + LIVE-CONFIRMED 2026-10-08 (macos branch; Mac M3: |
| 490 | D601 | FIXED | Long-session hang at stage load (macOS playtest, Archives): | FIXED + LIVE-CONFIRMED 2026-10-08 (macos branch; #ifdef PORT guard, D152/D285 class; evidence = live lldb read of the hung process; maintainer full-campaign completion incl. |
| 491 | D602 | OPEN | macOS end-credits SIGBUS: | MITIGATED 2026-10-08, OPEN (macos branch; langGet returns NULL for offset > 1 MiB and logs the bank state once as D602:; needs one natural-flow re-trigger to diagnose) |
| 492 | D603 | FIXED | arm64 macOS multiplayer (2P, stage 38) SIGSEGV in modelSetAnimFrame via playerTick: | FIXED 2026-10-08, live confirmation owed (macos branch; identity at PORT_ADDR_BASE==0; headless 2/3/4P + solo smoke clean but the death/firing-animation path is not reachable headlessly) |
| 493 | D604 | FIXED | arm64 macOS multiplayer respawn SIGSEGV: | FIXED + LIVE-CONFIRMED 2026-10-08 (macos branch; maintainer 2P respawn OK; identity at PORT_ADDR_BASE==0) |