mirror of
https://github.com/stenzek/duckstation.git
synced 2025-12-28 05:24:19 +00:00
System: Fix missing subchannel not blocking startup
Some checks failed
Translation Lint / translation-lint (push) Has been cancelled
GameDB Lint / gamedb-lint (push) Has been cancelled
Automated Builds / 💻 Windows (push) Has been cancelled
Automated Builds / 🐧 Linux AppImage (push) Has been cancelled
Automated Builds / 🐧 Linux Cross-Compiled AppImage (push) Has been cancelled
Automated Builds / 🍎 MacOS (push) Has been cancelled
Automated Builds / 📤 Create Release (push) Has been cancelled
Some checks failed
Translation Lint / translation-lint (push) Has been cancelled
GameDB Lint / gamedb-lint (push) Has been cancelled
Automated Builds / 💻 Windows (push) Has been cancelled
Automated Builds / 🐧 Linux AppImage (push) Has been cancelled
Automated Builds / 🐧 Linux Cross-Compiled AppImage (push) Has been cancelled
Automated Builds / 🍎 MacOS (push) Has been cancelled
Automated Builds / 📤 Create Release (push) Has been cancelled
I only tested the escape hatch, not the intended path...
This commit is contained in:
parent
682a3b3eb9
commit
ef2cf6e223
@ -1871,29 +1871,34 @@ bool System::BootSystem(SystemBootParameters parameters, Error* error)
|
||||
|
||||
// Check for required subchannel data.
|
||||
// Annoyingly we can't do this before initializing, because subchannel data can be loaded from outside the image.
|
||||
if (!parameters.ignore_missing_subchannel && !CheckForRequiredSubQ(error) &&
|
||||
Core::GetBoolSettingValue("CDROM", "AllowBootingWithoutSBIFile", false))
|
||||
if (!parameters.ignore_missing_subchannel && !CheckForRequiredSubQ(error))
|
||||
{
|
||||
Host::ConfirmMessageAsync(
|
||||
"Confirm Unsupported Configuration",
|
||||
fmt::format(TRANSLATE_FS("System",
|
||||
"You are attempting to run a libcrypt protected game without an SBI file:\n\n{0}: "
|
||||
"{1}\n\nThe game will likely not run properly.\n\nPlease check the README for "
|
||||
"instructions on how to add an SBI file.\n\nDo you wish to continue?"),
|
||||
s_state.running_game_serial, s_state.running_game_title),
|
||||
[parameters = std::move(parameters)](bool result) mutable {
|
||||
if (result)
|
||||
{
|
||||
Host::RunOnCoreThread([parameters = std::move(parameters)]() mutable {
|
||||
parameters.ignore_missing_subchannel = true;
|
||||
BootSystem(std::move(parameters), nullptr);
|
||||
});
|
||||
}
|
||||
});
|
||||
bool result = false;
|
||||
if (Core::GetBoolSettingValue("CDROM", "AllowBootingWithoutSBIFile", false))
|
||||
{
|
||||
Host::ConfirmMessageAsync(
|
||||
"Confirm Unsupported Configuration",
|
||||
fmt::format(TRANSLATE_FS("System",
|
||||
"You are attempting to run a libcrypt protected game without an SBI file:\n\n{0}: "
|
||||
"{1}\n\nThe game will likely not run properly.\n\nPlease check the README for "
|
||||
"instructions on how to add an SBI file.\n\nDo you wish to continue?"),
|
||||
s_state.running_game_serial, s_state.running_game_title),
|
||||
[parameters = std::move(parameters)](bool result) mutable {
|
||||
if (result)
|
||||
{
|
||||
Host::RunOnCoreThread([parameters = std::move(parameters)]() mutable {
|
||||
parameters.ignore_missing_subchannel = true;
|
||||
BootSystem(std::move(parameters), nullptr);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
result = true;
|
||||
}
|
||||
|
||||
Host::OnSystemStopping();
|
||||
DestroySystem();
|
||||
return true;
|
||||
return result;
|
||||
}
|
||||
|
||||
s_state.exe_override = std::move(exe_override);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user