mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-26 02:11:36 -04:00
bb2864bc60
A host built against a recomp-ui without the Internal resolution row (RECOMP_LAUNCHER_HAS_INTERNAL_RESOLUTION undefined) still seeded internal_resolution on first boot and applied it after the launcher. From a fresh start the seed was "native", so a Supersampling pick of 3x was reset to 1x and "native" was saved; on the netplay soft-return the sticky preset was re-applied at session_reboot. The legacy row stopped working. Both launcher exits now go through two pure helpers in internal_resolution.h: - psx_ir_launcher_seed_supersampling: with the row, the factor as before; without it, the factor itself when no preset is configured (the historical round trip), else the preset's scale capped at the row's 4x. - psx_ir_adopt_launcher: with the row, the row's preset as before; without it, a pick in the Supersampling row drops the preset, and an untouched row keeps a preset the player cannot see (game.toml or a hand-edited settings.toml). It also returns what settings.toml saves: no internal_resolution key unless a preset is kept. internal_resolution_test drives seed -> launcher -> adopt for both launcher kinds, first boot and soft-return, against a model of the legacy row (clamp to 1..4, cycle); keeping the old sticky preset fails it. gl_internal_scale_guards pins both exits to the helpers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>