mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-24 00:02:45 +02:00
Static/tooling slice of docs/dev/notes/AGENTIC-SPEEDUPS-PLAN.md — no build or
runtime environment needed to verify any of it.
- Step 6 / N7: add a VERIFY: line to the investigation-brief template
(docs/dev-process.md) and the CLAUDE.md dispatch-preflight checklist — the
brief must now name the exact probe/verify invocation that proves the task
done, or state that runtime verification is impossible here.
- Step 4 / N2: tools_pc/README.md — indexes the ~60 scripts with a
living vs artifact marker so closed-finding artifacts can be archived.
- Step 4 / R8: tools_pc/gen_findings_index.py -> docs/dev/findings-index.csv
(label, bucket, one_liner, status_raw) — grep-before-you-read aid for the
~200 KB finding log. Heuristic parser of the §F/§H tables.
- Step 4 / R9: tools_pc/gen_env_probes.py — re-greps live getenv("GE_*")
sites and reports NEW/GONE drift vs docs/dev/GE-ENV-PROBES.md (keeps the
curated prose, only checks the site map). Doc reconciled: 7 new probes
added, GE_D54 kept as a tombstone.
- CI: validate job now runs both generators with --check.
Step 1 / N1 (HANDOFF preflight) applied in the local-only docs/HANDOFF.md.
Step 2 (verify.sh) and the HANDOFF/HANDOFF-ARCHIVE trim are left for a
session with a build environment.
9.7 KiB
9.7 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 · D77 | OPEN | front-end 3D model transforms · audio | OPEN (parked). M-32 triage (see §F "D75 ADDENDUM"): |
| 11 | D76 · D164 | PROPOSED | disclaimer/legal screen only draws line 1 — | fix proposed (not applied — |
| 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, port/src/input.c): | FIXED |
| 15 | D180 · D181 | PARTIAL | native-PC input pass (QoL run, qol/native-pc-input-menu): | LANDED, config-gated, feel-checks owed |
| 16 | D186 | PARTIAL | Video.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 |
| 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 | OPEN | Linux -level_45 SIGSEGV at load in add_ptr_to_objective (objective.c:64) (M-48, open). | OPEN — not investigated (M-48) |
| 21 | D191 | OPEN | Windows -O2 release-bundle crash: | OPEN — not investigated (M-49). |
| 22 | D193 | OPEN | NPC AI locomotion is too slow — | OPEN — root-cause hypothesis (timing family), not investigated (M-49). |
| 23 | D194 | OPEN | Mouse input needs another tuning pass — | OPEN — root-caused, not fixed (M-49) |
| 24 | D196 | OPEN | OS mouse cursor stays visible after closing the F10 options overlay in click-to-lock mode (M-49, user playtest). | OPEN — root-caused, 1-line fix identified, not applied (M-49) |
| 25 | D192 | OPEN | Front-end mission/level-select grid pointer still can't reach the outer cells — | OPEN — root-caused, not fixed (M-49) |
| 26 | D152+ | FIXED | D152 addendum (M-31): | FIXED (src/snd.c, port/src/libultra.c, #ifdef PORT) — |
| 27 | D168 | FIXED | GE_PCDUMP / F12 PPM captures were vertically flipped — | FIXED (port/fast3d/gfx_opengl.cpp); D114 / D116 reclassified as capture-orientation artifacts (below). |
| 28 | 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). |
| 29 | D178 | FIXED | Pre-mission briefing screen: | FIXED (M-36) — high confidence |
| 30 | D175 | ? | In-game stutter / brief hang during normal play (user QA report): | Observed, not investigated |
| 31 | D176 | OPEN | Surface exterior renders wrong (-level_36), two independent defects. | (a) root-caused, fix owed / (b) open |
| 32 | D177 | FIXED | Ladders non-functional — | FIXED (M-36) — high confidence; interactive climb test owed |
| 33 | D174 | ? | "No blood effect" (user QA report). | Observed; first step = BUNKER1 firefight with regenerated sidecars |
| 34 | D183 | OPEN | M-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 |
| 35 | D173 | ? | Third-person Bond model spawns too high (user QA report): | Observed, not investigated |
| 36 | D179 | FIXED | Packaged build crashes after the logos — | Diagnosed, not fixed — |
| 37 | D180 | PARTIAL | Native-PC input pass (M-XX QoL run, qol/native-pc-input-menu, port-only). | LANDED, port-only, no #ifdef PORT. |
| 38 | D181 | PARTIAL | Game.ScreenShakeIntensity — | LANDED behind config, default = original. |
| 39 | D184 | PARTIAL | F10 port-layer options overlay — | LANDED, port-only, no #ifdef PORT in src/. |
| 40 | D85 | OPEN | room primary/secondary DL → texLoadFromGdl garbage | OPEN (safety-netted; widen/pool fixes landed, geometry now renders) |
| 41 | D86 · D87 | RESOLVED | modelInitRwData truncated ptr · attract-demo BE ramromfilestructure | resolved |
| 42 | D88.4 | RESOLVED | propDefs polymorphic record stream not byteswapped → setupDoor crash | resolved (d88_propdefs.py); layout audit M-20 → D132 |
| 43 | D132 | PROPOSED | D88 propDefs layout audit (M-20): | proposed fix (not applied) — |
| 44 | D157 | FIXED | Campaign never unlocks the next level (M-30, user bug — | FIXED (src/bondtypes.h, #ifdef PORT — |
| 45 | D160 | ? | Dam level-end cutscene (Bond off the dam / bungee) never plays — | DIAGNOSTIC SHIPPED, not root-caused (c95713f5, #ifdef PORT + GE_D160=1): |
| 46 | D89-D92 | RESOLVED | stage-load→frame: stan zero-fill overrun, portal address trunc, chr/AI spawn ptrs | resolved |
| 47 | D93-D102 | RESOLVED | struct-pun / hardcoded-size pass: | resolved (D95 pool bump partial) |
| 48 | D103-D107 | RESOLVED | BUNKER1 viewport height, depth-buffer clear (G_CLEAR_DEPTH_EXT), portal near-plane, LOD mip tile | resolved |
| 49 | D108-D112 | RESOLVED | skeletal models: d43_emit.py put_f32 byte-reversal bug | resolved |
| 50 | 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): |
| 51 | D117 | RESOLVED | frame nondeterminism root-caused; GE_DETERM deferred; framediff.py structural | resolved (mode deferred) |
| 52 | D118 | RESOLVED | SDL input layer (port/src/input.c); M-24 mouse-look rework: | resolved (D118a residual) |
| 53 | D150 | FIXED | watch OBJECTIVES / BRIEF page crash: | FIXED (src/str.c #ifdef PORT); interactive re-verify pending |
| 54 | D137 | FIXED | right-mouse (aim-sight) crash: | FIXED (src/game/gunfire.c #ifdef PORT — |
| 55 | D119 · D120 | FIXED | guard-attack weapons_held[]->chr pun crash · blood-stain PointUsage[] chain hang | D119 fixed · D120 FIXED (M-30) |
| 56 | D120 | FIXED | Blood-decal PointUsage[] chain — | FIXED (tools_pc/d43_emit.py). |
| 57 | D121 | RESOLVED | WS1 frictionless per-level boot: | resolved |
| 58 | 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 |
| 59 | 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) |
| 60 | 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). |
| 61 | 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. |
| 62 | D124 | FIXED | crash class C2: fast3d bad texture pointer. | Jungle fixed (port/src/gimgfixup.c); Facility → D130 |
| 63 | 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). |
| 64 | D133 | ? | intro render triage (M-20): | not a regression — parked (D75/D76, GRAPHICS-BACKLOG.md) |
| 65 | D134 | FIXED | Frame-2 boot hang / sweep "NO-FRAMES" flakiness — | FIXED (port/src/libultra.c) |
| 66 | 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 — |
| 67 | D136 | ? | Stage-unload crash — objFree obj->prop reads float garbage (M-22, WS6 Facility playthrough). | ROOT-CAUSED → D139 (it was NOT a layout bug — |
| 68 | D139 | FIXED | Stage-unload crash root cause + fix (M-23). | FIXED (src/game/cleanup_objects.c, #ifdef PORT — |
| 69 | D140 | FIXED | Pause-menu crash (M-23 open → M-27 fixed). | FIXED (src/game/bondview.h, src/game/bondview2.c; #ifdef PORT). |
| 70 | D141 | FIXED | Watch-menu item-model crash (M-27), exposed by D140. | FIXED (src/game/gunfire.c, #ifdef PORT). |
| 71 | D152 | OPEN | Mission-failed / objective-failed → permanent black screen (M-28, user bug report — | MITIGATED (port/src/libultra.c, M-28, #ifdef PORT/port-only). |
| 72 | D154 | FIXED | 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). |
| 73 | D156 | ? | Facility outro-cutscene "hang" — | GUARDED (src/game/model.c, #ifdef PORT): |
| 74 | D155 | FIXED | Facility outro-cutscene end → "hang" = unclamped deltaFrames spiral (M-29, user bug report). | FIXED (src/game/frametiming.c, #ifdef PORT — |
| 75 | D153 | ? | -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. |
| 76 | D151 | FIXED | Watch data all blank — | FIXED (src/bondtypes.h, #ifdef PORT — |
| 77 | 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. |
| 78 | D164 | PROPOSED | Disclaimer / legal screen only draws the first line (D76 root cause, M-31). | FIX PROPOSED, NOT APPLIED (front.c is owned by another agent this session). |
| 79 | 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). |
| 80 | D166 | FIXED | Hipfire mouse pitch is digital while yaw is analog — | FIXED (port/src/input.c). |