Core/Boot: Avoid global system accessor when setting disc.

This commit is contained in:
Admiral H. Curtiss 2024-01-04 21:30:24 +01:00
parent eec0018b73
commit ce19d6a35e
No known key found for this signature in database
GPG Key ID: F051B4C4044F33FB
1 changed files with 11 additions and 9 deletions

View File

@ -315,11 +315,12 @@ BootParameters::IPL::IPL(DiscIO::Region region_, Disc&& disc_) : IPL(region_)
// Inserts a disc into the emulated disc drive and returns a pointer to it. // Inserts a disc into the emulated disc drive and returns a pointer to it.
// The returned pointer must only be used while we are still booting, // The returned pointer must only be used while we are still booting,
// because DVDThread can do whatever it wants to the disc after that. // because DVDThread can do whatever it wants to the disc after that.
static const DiscIO::VolumeDisc* SetDisc(std::unique_ptr<DiscIO::VolumeDisc> disc, static const DiscIO::VolumeDisc* SetDisc(DVD::DVDInterface& dvd_interface,
std::unique_ptr<DiscIO::VolumeDisc> disc,
std::vector<std::string> auto_disc_change_paths = {}) std::vector<std::string> auto_disc_change_paths = {})
{ {
const DiscIO::VolumeDisc* pointer = disc.get(); const DiscIO::VolumeDisc* pointer = disc.get();
Core::System::GetInstance().GetDVDInterface().SetDisc(std::move(disc), auto_disc_change_paths); dvd_interface.SetDisc(std::move(disc), auto_disc_change_paths);
return pointer; return pointer;
} }
@ -487,11 +488,11 @@ bool CBoot::Load_BS2(Core::System& system, const std::string& boot_rom_filename)
return true; return true;
} }
static void SetDefaultDisc() static void SetDefaultDisc(DVD::DVDInterface& dvd_interface)
{ {
const std::string default_iso = Config::Get(Config::MAIN_DEFAULT_ISO); const std::string default_iso = Config::Get(Config::MAIN_DEFAULT_ISO);
if (!default_iso.empty()) if (!default_iso.empty())
SetDisc(DiscIO::CreateDisc(default_iso)); SetDisc(dvd_interface, DiscIO::CreateDisc(default_iso));
} }
static void CopyDefaultExceptionHandlers(Core::System& system) static void CopyDefaultExceptionHandlers(Core::System& system)
@ -535,7 +536,7 @@ bool CBoot::BootUp(Core::System& system, const Core::CPUThreadGuard& guard,
{ {
NOTICE_LOG_FMT(BOOT, "Booting from disc: {}", disc.path); NOTICE_LOG_FMT(BOOT, "Booting from disc: {}", disc.path);
const DiscIO::VolumeDisc* volume = const DiscIO::VolumeDisc* volume =
SetDisc(std::move(disc.volume), disc.auto_disc_change_paths); SetDisc(system.GetDVDInterface(), std::move(disc.volume), disc.auto_disc_change_paths);
if (!volume) if (!volume)
return false; return false;
@ -554,7 +555,7 @@ bool CBoot::BootUp(Core::System& system, const Core::CPUThreadGuard& guard,
if (!executable.reader->IsValid()) if (!executable.reader->IsValid())
return false; return false;
SetDefaultDisc(); SetDefaultDisc(system.GetDVDInterface());
auto& ppc_state = system.GetPPCState(); auto& ppc_state = system.GetPPCState();
@ -604,7 +605,7 @@ bool CBoot::BootUp(Core::System& system, const Core::CPUThreadGuard& guard,
bool operator()(const DiscIO::VolumeWAD& wad) const bool operator()(const DiscIO::VolumeWAD& wad) const
{ {
SetDefaultDisc(); SetDefaultDisc(system.GetDVDInterface());
if (!Boot_WiiWAD(system, wad)) if (!Boot_WiiWAD(system, wad))
return false; return false;
@ -614,7 +615,7 @@ bool CBoot::BootUp(Core::System& system, const Core::CPUThreadGuard& guard,
bool operator()(const BootParameters::NANDTitle& nand_title) const bool operator()(const BootParameters::NANDTitle& nand_title) const
{ {
SetDefaultDisc(); SetDefaultDisc(system.GetDVDInterface());
if (!BootNANDTitle(system, nand_title.id)) if (!BootNANDTitle(system, nand_title.id))
return false; return false;
@ -640,7 +641,8 @@ bool CBoot::BootUp(Core::System& system, const Core::CPUThreadGuard& guard,
if (ipl.disc) if (ipl.disc)
{ {
NOTICE_LOG_FMT(BOOT, "Inserting disc: {}", ipl.disc->path); NOTICE_LOG_FMT(BOOT, "Inserting disc: {}", ipl.disc->path);
SetDisc(DiscIO::CreateDisc(ipl.disc->path), ipl.disc->auto_disc_change_paths); SetDisc(system.GetDVDInterface(), DiscIO::CreateDisc(ipl.disc->path),
ipl.disc->auto_disc_change_paths);
} }
SConfig::OnNewTitleLoad(guard); SConfig::OnNewTitleLoad(guard);