diff --git a/Source/Core/Core/Boot/Boot.h b/Source/Core/Core/Boot/Boot.h index 2118993ca0..c34e1738fe 100644 --- a/Source/Core/Core/Boot/Boot.h +++ b/Source/Core/Core/Boot/Boot.h @@ -26,10 +26,10 @@ class IOFile; struct RegionSetting { - const std::string area; - const std::string video; - const std::string game; - const std::string code; + std::string area; + std::string video; + std::string game; + std::string code; }; class BootExecutableReader; diff --git a/Source/Core/Core/Boot/Boot_BS2Emu.cpp b/Source/Core/Core/Boot/Boot_BS2Emu.cpp index 208c02e13a..d73884df51 100644 --- a/Source/Core/Core/Boot/Boot_BS2Emu.cpp +++ b/Source/Core/Core/Boot/Boot_BS2Emu.cpp @@ -233,7 +233,7 @@ bool CBoot::SetupWiiMemory(IOS::HLE::IOSC::ConsoleType console_type) {DiscIO::Region::PAL, {"EUR", "PAL", "EU", "LE"}}, {DiscIO::Region::NTSC_K, {"KOR", "NTSC", "KR", "LKH"}}}; auto entryPos = region_settings.find(SConfig::GetInstance().m_region); - const RegionSetting& region_setting = entryPos->second; + RegionSetting region_setting = entryPos->second; Common::SettingsHandler gen; std::string serno; @@ -250,6 +250,11 @@ bool CBoot::SetupWiiMemory(IOS::HLE::IOSC::ConsoleType console_type) { gen.SetBytes(std::move(data)); serno = gen.GetValue("SERNO"); + if (SConfig::GetInstance().bOverrideRegionSettings) + { + region_setting = RegionSetting{gen.GetValue("AREA"), gen.GetValue("VIDEO"), + gen.GetValue("GAME"), gen.GetValue("CODE")}; + } gen.Reset(); } }