Files
psxrecomp/runtime
Martin Penkava e6809ccf7d runtime: fix boot freeze from overlay-loader init race + discovery gap
Two deterministic boot hangs (WWF SmackDown! 2, SLUS-01234):

1. overlay_loader_dispatch()/is_candidate()/call_native() ran during
   early BIOS kernel init (0xBFC0DB10 memcard polling loop) before
   overlay_loader_init() built the range-index structures, walking
   uninitialized lists until a PC=0 trap (froze at cycle 208195 every
   boot). Guard all three entry points on s_active.

2. Code at 0x800D1F28 (boot-text populated by bulk host transfer that
   bypassed the RAM write-marking hooks) was neither compiled, dirty,
   nor overlay -> unknown-dispatch fail at frame 1340. Add a fallback:
   an address above overlay_region_floor whose word decodes as valid
   MIPS is marked executable and handed to the dirty-RAM interpreter.

Validated 5/5 reproducible boots, 2000+ frame sustained runs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 16:54:02 +02:00
..