mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-26 02:11:36 -04:00
d5fc43d802
A title may declare [quality.low|medium|high|ultra] tables of [video] keys. On first launch, and when the hardware fingerprint changes while a preset is in force, psxrecomp detects the CPU, threads, RAM and GPU (OS facts; a hidden 1x1 GL window reads GL_RENDERER only when a detection is due and the OS did not name the GPU), picks the matching preset and saves quality_preset, quality_base, quality_hardware and quality_detected to settings.toml. - Each preset is the whole game.toml re-parsed with its keys over [video], so every [video] key works in a preset with its usual validation. - A preset in force owns its keys: saved settings.toml values for them are ignored. Custom (the player changed a governed setting in the launcher) applies the player's values over quality_base and is never overridden; new hardware under Custom is only reported. - Launcher: GameInfo.quality_* (offered mask, detected preset, hardware summary, quality_apply / quality_redetect callbacks) and Settings.quality_preset/quality_base, behind RECOMP_LAUNCHER_HAS_QUALITY_PRESETS. - PSX_QUALITY=<preset> for one run, PSX_QUALITY_REDETECT=1. - Titles without [quality.*] are unchanged. Rules (quality_tier.c) and the decision are unit-tested in quality_presets_test; docs/QUALITY_PRESETS.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>