mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-26 18:25:35 -04:00
2c8e853ae7
Continues backporting onto this branch rather than moving to feat/rbengine, keeping the known-good race performance while recovering fixes that landed after the branch point. pc=0 cluster (the mid-race 'crash' was a silent top-level GUEST_EXIT): -6ead85c9honor IRQ redirects at compiled leaders + pc0 escape journal. THE root cause: every emitted block-leader IRQ check overwrote whatever resume PC the exception epilogue published, so a guest RFE to a non-EPC target (card-ISR handlers, SetCustomExitFromException, thread switch) lost its continuation and a later jr through a null pointer surfaced as PC=0. Its own message names this title and the static bake. -21a8457ethe IRQ-redirect guard must CONSUME the benign same-site resume. - (2edce1b6and the async-RFE latch hunks landed in the previous commit.) - cpu_state.h pc0-journal declarations, which the cherry-picks reference. Overlay/autocompile correctness: -d31953femissing cull-widen ABI symbols; PGXP hooks swallowed by an #endif. -45f9d0f8pin the overlay flavor through the spawn env — the same --flavor-defaults-to-0 trap that silently fills a cache this PGXP build cannot load. -8b323ffecoverage_vault 8 MB dev-RAM aware bounds. Deliberately NOT taken:249057f9/ada331a4(exact-sign NCLIP + GTE clamp rescue) — broadens PGXP arming and adds a per-vertex RTPS push, and is the leading suspect for the race-FPS regression this branch exists to avoid; and3b698682/95a56e23(image-edge tail-transfer), which 4532ad2f later gated to CPS-only — this game emits non-CPS, where the legacy behaviour this branch already has is the correct one. Emitters rebuilt and game+BIOS regenerated (56 shards changed). Verified: 8 MB mod plan applies, 60 Hz NTSC at 1.00x, no PC=0 exit. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UoSNLFj7kvarYHEV9PCZpV