System: Swap back gamesettings->safe mode order

Fixes e.g. round texcoords warning being shown on games that need it.

But don't display CD speedup warnings if the gamedb will disable them.
This commit is contained in:
Stenzek 2025-05-17 21:45:58 +10:00
parent 9b17e1485d
commit 5eedecd811
No known key found for this signature in database

View File

@ -1222,14 +1222,14 @@ void System::LoadSettings(bool display_osd_messages)
InputManager::ReloadSources(controller_si, lock);
InputManager::ReloadBindings(controller_si, hotkey_si);
// apply compatibility settings
if (g_settings.apply_compatibility_settings && s_state.running_game_entry)
s_state.running_game_entry->ApplySettings(g_settings, display_osd_messages);
// show safe mode warning if it's toggled on, or on startup
if (IsValidOrInitializing() && (display_osd_messages || (!previous_safe_mode && g_settings.disable_all_enhancements)))
WarnAboutUnsafeSettings();
// apply compatibility settings
if (g_settings.apply_compatibility_settings && s_state.running_game_entry)
s_state.running_game_entry->ApplySettings(g_settings, display_osd_messages);
// patch overrides take precedence over compat settings
Cheats::ApplySettingOverrides();
@ -4753,6 +4753,10 @@ void System::WarnAboutUnsafeSettings()
messages.append_vformat(fmt, fmt::make_format_args(args...));
messages.append('\n');
};
const auto has_trait = [](GameDatabase::Trait trait) {
return (g_settings.apply_compatibility_settings && s_state.running_game_entry &&
s_state.running_game_entry->HasTrait(trait));
};
if (!g_settings.disable_all_enhancements)
{
@ -4762,8 +4766,11 @@ void System::WarnAboutUnsafeSettings()
ICON_EMOJI_WARNING, TRANSLATE_FS("System", "CPU clock speed is set to {}% ({} / {}). This may crash games."),
g_settings.GetCPUOverclockPercent(), g_settings.cpu_overclock_numerator, g_settings.cpu_overclock_denominator);
}
if (g_settings.cdrom_read_speedup != 1 || g_settings.cdrom_seek_speedup != 1)
if ((g_settings.cdrom_read_speedup != 1 && !has_trait(GameDatabase::Trait::DisableCDROMReadSpeedup)) ||
(g_settings.cdrom_seek_speedup != 1 && !has_trait(GameDatabase::Trait::DisableCDROMSeekSpeedup)))
{
append(ICON_EMOJI_WARNING, TRANSLATE_SV("System", "CD-ROM read/seek speedup is enabled. This may crash games."));
}
if (g_settings.gpu_force_video_timing != ForceVideoTimingMode::Disabled)
append(ICON_FA_TV,
TRANSLATE_SV("System", "Frame rate is not set to automatic. Games may run at incorrect speeds."));