mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-24 00:02:45 +02:00
The frame-2 boot hang blamed on D117 flakiness since M-13 is a real bug: osSpTaskStartGo posted OS_EVENT_SP/DP with OS_MESG_NOBLOCK into the 8-slot scheduler interruptQ that the 60 Hz VI pacemaker also fills. A gfx task runs the whole frame synchronously on the sched thread, so a slow early frame lets retraces fill the queue and the done event is silently discarded -> curRSPTask never clears -> pendingGfx never clears -> permanent stall. portPostEventForce() drops the oldest (stale retrace) message and retries; portPostVIEvent reserves 2 slots. -level_09: 6/6 boots to frame 600, 0 heartbeats (pre-fix 1/3). Also hardens tools_pc/level_sweep.sh: 45s watchdog, lockdir serialization, stray-process kill, one retry on NO-FRAMES.