From 840208b58db46cdcac4b9b71a11937fc127d6d3c Mon Sep 17 00:00:00 2001 From: James Dansereau <106631954+jkdansereau@users.noreply.github.com> Date: Mon, 31 Aug 2026 12:42:38 -0400 Subject: [PATCH] D75 triage (M-32): rule out D73 gu-scope gap; split into fast3d-mirror + dynAllocate-arena leads Static-only pass. (a) D73 scope gap DISPROVEN: src/libultra/gu/* and matrixmath.c are all endian-clean; the Rareware logo exercises the full gu pipeline front-end and renders correctly. D75 now splits into two independent bugs: - Bug 1 (Nintendo/GE logo transform, wallet/Bond-photo 180deg): the parked D114/D116 shared fast3d viewport/MP-matrix mirror. Not game code; static tracing banned per PORT-LEARNINGS D2. - Bug 2 (gun-barrel Bond + cast models entirely absent): category (b), independent of any transform. In-level skeletal models render via the identical joint path, so the discriminator is the front-end setup: render_pos pointed at a transient dynAllocate gfx arena (D115 MED #5) is the lead suspect and an in-scope #ifdef PORT fix candidate. docs only: PCPortResearch.md D75 ADDENDUM + index row; PORT-LEARNINGS section C (D73/gu scope now settled - stop re-auditing). --- docs/PCPortResearch.md | 115 ++++++++++++++++++++++++++++++++++++++++- docs/PORT-LEARNINGS.md | 10 ++++ 2 files changed, 124 insertions(+), 1 deletion(-) diff --git a/docs/PCPortResearch.md b/docs/PCPortResearch.md index 1277b072..9cc52b24 100644 --- a/docs/PCPortResearch.md +++ b/docs/PCPortResearch.md @@ -802,7 +802,7 @@ covers D24–D69; the log continues in §H (D32 procedure, D70–D121). | D59–D68 | intro render: blood-RLE clobber, DMA validate, OSMesgQueue, HEADS/BODIES sentinels, romCopy width, image_entry, Globalimagetable BE→LE | resolved | | D69 · D78–D84 | stage load (`load_bg_file`): bg/stan offline sidecar (`d69_emit.py`) + StandTile/bg_room_data ABI | resolved | | D70–D74 | intro-logo pixels: C-array bswap, UV path, sinf/cosf `DVAL()`, texture-import truncation | resolved | -| D75 · D77 | front-end 3D model transforms · audio | OPEN (parked, `GRAPHICS-BACKLOG.md`) | +| D75 · D77 | front-end 3D model transforms · audio | OPEN (parked). **M-32 triage (see §F "D75 ADDENDUM"): (a) D73-scope-gap RULED OUT (gu tree fully endian-clean). Splits in two: Bug 1 = logo/photo transform = the parked D114/D116 fast3d viewport mirror (not game code). Bug 2 = absent animated models = category (b), lead suspect `render_pos`=transient `dynAllocate` arena (D115 MED #5), in-scope fix candidate.** | | D76 · D164 | disclaimer/legal screen only draws line 1 — **root-caused (M-31)**: `constructor_menu00_legalscreen` text loop bounds `legal_text_end` on `&legalscreen_MRD`, a linker-adjacency assumption that mingw breaks (`legalscreen_MRD` links 0x60 *before* `legalpage_text_array`) → `do{}while(ptr