mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-23 15:52:42 +02:00
Two third-party reviews caught a real flaw in the earlier M-161 negative experiment: it restored prop->pos AFTER chrTick() returned, but render_pos/field_488.pos are computed INSIDE that same call -- so M-161's "no change" result never actually tested M-160's overwrite hypothesis. Verified this directly against the capture data (a clean period-4 same-frame before/after-chrTick offset proves the lane-advance happens entirely inside chrTick) before accepting the review. M-162: corrected save/restore placement (chr.c), Z-only. Live playtest confirmed the mechanism -- Z went smooth in the log -- but the visible glitch persisted because that capture's chr cycled on Y instead. M-163: widened the experiment to the whole prop->pos vector. Built and smoke-tested; not yet live-playtested (exe was busy/user stepped away) -- this is the ready-to-test build for the next session. M-164/M-165/M-166 (static tracing, no build needed): chrUpdateAnim reads the model's root-joint position back into prop->pos after advancing whatever animation is attached (getsuboffset) -- not an arbitrary overwrite. The cutscene's teleport (AI_TRYTeleportingChrToPad) re-anchors the root joint but never touches animation state; the real rappel animation commands target a separate invisible driver chr (M-145), not the visible one. Traced the Dam exit script (UsetupdamZ.c) directly and found no animation-set command for Bond anywhere in it -- his head animation gets forced back to an idle/walk loop by bondviewFrozenMoveBond's own tick, but the *phase* within that loop is inherited, not reset. This raises a real possibility that the mechanism is decomp-faithful and the actual PC/N64 divergence is upstream of the cutscene code entirely (which animation phase Bond happens to be on when the cutscene grabs him). Extended D243M: onscreen with aidx=/animframe= (reusing GE_D193A's reverse-resolve technique) so the next live capture can test this directly. Docs updated throughout (findings.md, findings-index.csv, GE-ENV-PROBES.md); HANDOFF.md refreshed with full session state (local, gitignored).