mirror of
https://github.com/ARMSX2/ARMSX3.git
synced 2026-08-24 16:58:52 -07:00
Raw core overrides re-push after the curated settings, so a stale one silently beats the UI with nothing on screen to explain it: the settings screen read SPU Block Size = Safe for hours while config.yml read Mega. Mega is the one that mattered. It produces very large compilation units, and those are what fail AArch64 register allocation with "Cannot scavenge register without an emergency spill slot" -- which is what put SPU threads on the interpreter fallback at all. With it cleared, no block fails to compile and the fallback never engages. Every "cannot be compiled" chased in these sessions traces back to it. Cleared in every scope, because a title can pin a key the global also pins: Arkham City carried Accurate SPU Reservations true as a raw per-title override against false globally, so clearing one scope did nothing and the two readings looked contradictory. Per-title Accurate SPU Reservations values go too, except Web of Shadows, which is the title it was measured on. Off is off-spec -- it forces the SPURS scheduler to HLE and bypasses the reservation lock -- and a title left that way desyncs until its SPU threads execute whatever they land on, which is how Arkham City ended up dying with "Unknown STOP code: 0x0". Adds CoreSettingOverrides.forgetEverywhere for the all-scopes case.