mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-23 15:52:42 +02:00
M-29 docs: D156 in HANDOFF
This commit is contained in:
1 parent
390fdc50c5
commit
87d8e065d5
1 file changed
+15
@@ -449,6 +449,21 @@ C1 (mirrored HUD — user unsure it's worth it). Full plan +
|
||||
to 6 in `frametiming.c`. **Likely fixes a whole class of post-slow-load
|
||||
transition hangs** — de-risks the Track A campaign playtest (every level
|
||||
boundary loads assets). Confidence high (stack + arithmetic agree).
|
||||
- **`d656823e`+`b4a7fc2a` D156 — Facility outro hang, 2nd occurrence, the
|
||||
ACTUAL fix.** After D155 the user re-ran the playthrough → hung again at
|
||||
end of Facility, same stack but `frames=12962` **frozen constant** (true
|
||||
infinite loop, not D155's spiral). The `while(1)` at `model.c:3131`
|
||||
(`modelSetAnimFrame2WithChrStuff`) steps one anim frame at a time from
|
||||
`framea` to `frameb`; `frameb` = `modelTickAnim`'s accumulated `frame`. A
|
||||
cutscene anim transition with a near-zero blend/`timespeed`/`unkb0`
|
||||
denominator → huge/NaN `model->speed`/`playspeed` → `frameb` huge/NaN →
|
||||
`floorFloatToInt` garbage → ~2^31 iterations. `#ifdef PORT` guards: snap a
|
||||
non-finite/`|x|>=1e6` `frameb` to `framea`, and fall back `frame`/`frame2`
|
||||
to the pre-loop values in `modelTickAnim`. One-shot `stderr` diagnostic
|
||||
dumps the model speed fields when it fires. **User to re-verify the
|
||||
Facility outro.** If it still hangs OR the diagnostic prints, the NaN
|
||||
source is upstream (suspect a D100/D140-style misaligned `Model` field, or
|
||||
the cutscene data). §F D155+D156, PORT-LEARNINGS §E.
|
||||
- **D153 reminder cost real time this session:** back-to-back `-level_09`
|
||||
runs during builds boot-crash under machine thrash; only regression-test on
|
||||
a settled machine (clean run = 600+ frames fine).
|
||||
|
||||
Reference in new issue
Block a user