mirror of
https://github.com/ARMSX2/ARMSX2.git
synced 2026-08-24 16:50:16 -07:00
Three follow-ups from the graphics live-apply work. The two iOS guard tests had been failing with FileNotFoundError since the core moved out of platforms/ios -- both still pointed at app/src/main/cpp/pcsx2 and app/src/main/assets. Dead tests read as coverage, so repoint them. Repointing the True Crime one turned up a real regression. It guards "mvuFlag: 0 # Fixes texture flickering caused by the VU Flag Hack" on the six New York City serials, and that fix is gone: the iOS build used to bundle its own GameIndex.yaml carrying it, and when we converged on the overlay only the gameFixes came across. The speedHack has been missing ever since, unnoticed because the test that would have caught it broke in the same move. Restored in the overlay, which is where our GameDB changes live now, and the test follows it there. The renderer picker stayed live with a game loaded. Returning to the menu only pauses the VM, so you could switch renderer, change any other graphics setting, and have the next apply take GSUpdateConfig down the reopen path -- a full Metal teardown under a loaded game. The picker already said "Requires restart"; now it means it. applyOsdPreset and setPerformanceOverlayVisible wrote GSConfig and EmuConfig.GS from the UI thread. Those flags are bitfield members sharing storage with the GS device-restart flags, so a read-modify-write off-thread can write back a stale neighbour and flip RestartOptionsAreEqual -- the same teardown, from a stats toggle. Both compute their values up front and hand the writes to the CPU thread. isPerformanceOverlayVisible reads the INI now rather than GSConfig, which the setter no longer updates synchronously.