System: Fix per-game fast boot applying too late

This commit is contained in:
Stenzek 2024-10-29 22:15:42 +10:00
parent d24e8fda83
commit 2043128f98
No known key found for this signature in database
1 changed files with 7 additions and 10 deletions

View File

@ -1717,16 +1717,6 @@ bool System::BootSystem(SystemBootParameters parameters, Error* error)
Settings::GetDiscRegionName(disc_region), Settings::GetConsoleRegionName(s_state.region)); Settings::GetDiscRegionName(disc_region), Settings::GetConsoleRegionName(s_state.region));
} }
} }
const bool wants_fast_boot =
parameters.override_fast_boot.value_or(static_cast<bool>(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 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<bool>(g_settings.bios_patch_fast_boot)))
{
boot_mode = BootMode::FastBoot;
}
// Load BIOS image, component setup, check for subchannel in games that need it. // Load BIOS image, component setup, check for subchannel in games that need it.
if (!SetBootMode(boot_mode, disc_region, error) || if (!SetBootMode(boot_mode, disc_region, error) ||
!Initialize(std::move(disc), disc_region, parameters.force_software_renderer, !Initialize(std::move(disc), disc_region, parameters.force_software_renderer,