From 2043128f983a2dbe39068fdb7f93ebe9d7a2bf0d Mon Sep 17 00:00:00 2001 From: Stenzek Date: Tue, 29 Oct 2024 22:15:42 +1000 Subject: [PATCH] System: Fix per-game fast boot applying too late --- src/core/system.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/core/system.cpp b/src/core/system.cpp index 1b5826c98..6573cd13d 100644 --- a/src/core/system.cpp +++ b/src/core/system.cpp @@ -1717,16 +1717,6 @@ bool System::BootSystem(SystemBootParameters parameters, Error* error) Settings::GetDiscRegionName(disc_region), Settings::GetConsoleRegionName(s_state.region)); } } - - const bool wants_fast_boot = - parameters.override_fast_boot.value_or(static_cast(g_settings.bios_patch_fast_boot)); - if (wants_fast_boot) - { - if (disc_region == DiscRegion::NonPS1) - ERROR_LOG("Not fast booting non-PS1 disc."); - else - boot_mode = BootMode::FastBoot; - } } } else @@ -1802,6 +1792,13 @@ bool System::BootSystem(SystemBootParameters parameters, Error* error) } } + // Are we fast booting? Must be checked after updating game settings. + if (boot_mode == BootMode::FullBoot && disc_region != DiscRegion::NonPS1 && + parameters.override_fast_boot.value_or(static_cast(g_settings.bios_patch_fast_boot))) + { + boot_mode = BootMode::FastBoot; + } + // Load BIOS image, component setup, check for subchannel in games that need it. if (!SetBootMode(boot_mode, disc_region, error) || !Initialize(std::move(disc), disc_region, parameters.force_software_renderer,