Merge pull request #8673 from JosJuice/preserve-setting-txt
Boot: Do a better job of preserving certain parts of settings.txt
This commit is contained in:
commit
5b10f4b71e
|
@ -242,6 +242,30 @@ bool CBoot::EmulatedBS2_GC(const DiscIO::VolumeDisc& volume)
|
||||||
return RunApploader(/*is_wii*/ false, volume);
|
return RunApploader(/*is_wii*/ false, volume);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static DiscIO::Region CodeRegion(char c)
|
||||||
|
{
|
||||||
|
switch (c)
|
||||||
|
{
|
||||||
|
case 'J': // Japan
|
||||||
|
case 'T': // Taiwan
|
||||||
|
return DiscIO::Region::NTSC_J;
|
||||||
|
case 'B': // Brazil
|
||||||
|
case 'M': // Middle East
|
||||||
|
case 'R': // Argentina
|
||||||
|
case 'S': // ???
|
||||||
|
case 'U': // USA
|
||||||
|
case 'W': // ???
|
||||||
|
return DiscIO::Region::NTSC_U;
|
||||||
|
case 'A': // Australia
|
||||||
|
case 'E': // Europe
|
||||||
|
return DiscIO::Region::PAL;
|
||||||
|
case 'K': // Korea
|
||||||
|
return DiscIO::Region::NTSC_K;
|
||||||
|
default:
|
||||||
|
return DiscIO::Region::Unknown;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool CBoot::SetupWiiMemory(IOS::HLE::IOSC::ConsoleType console_type)
|
bool CBoot::SetupWiiMemory(IOS::HLE::IOSC::ConsoleType console_type)
|
||||||
{
|
{
|
||||||
static const std::map<DiscIO::Region, const RegionSetting> region_settings = {
|
static const std::map<DiscIO::Region, const RegionSetting> region_settings = {
|
||||||
|
@ -254,6 +278,7 @@ bool CBoot::SetupWiiMemory(IOS::HLE::IOSC::ConsoleType console_type)
|
||||||
|
|
||||||
Common::SettingsHandler gen;
|
Common::SettingsHandler gen;
|
||||||
std::string serno;
|
std::string serno;
|
||||||
|
std::string model = "RVL-001(" + region_setting.area + ")";
|
||||||
CreateSystemMenuTitleDirs();
|
CreateSystemMenuTitleDirs();
|
||||||
const std::string settings_file_path(Common::GetTitleDataPath(Titles::SYSTEM_MENU) +
|
const std::string settings_file_path(Common::GetTitleDataPath(Titles::SYSTEM_MENU) +
|
||||||
"/" WII_SETTING);
|
"/" WII_SETTING);
|
||||||
|
@ -267,11 +292,32 @@ bool CBoot::SetupWiiMemory(IOS::HLE::IOSC::ConsoleType console_type)
|
||||||
{
|
{
|
||||||
gen.SetBytes(std::move(data));
|
gen.SetBytes(std::move(data));
|
||||||
serno = gen.GetValue("SERNO");
|
serno = gen.GetValue("SERNO");
|
||||||
|
model = gen.GetValue("MODEL");
|
||||||
|
|
||||||
|
bool region_matches = false;
|
||||||
if (SConfig::GetInstance().bOverrideRegionSettings)
|
if (SConfig::GetInstance().bOverrideRegionSettings)
|
||||||
|
{
|
||||||
|
region_matches = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const std::string code = gen.GetValue("CODE");
|
||||||
|
if (code.size() >= 2 && CodeRegion(code[1]) == SConfig::GetInstance().m_region)
|
||||||
|
region_matches = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (region_matches)
|
||||||
{
|
{
|
||||||
region_setting = RegionSetting{gen.GetValue("AREA"), gen.GetValue("VIDEO"),
|
region_setting = RegionSetting{gen.GetValue("AREA"), gen.GetValue("VIDEO"),
|
||||||
gen.GetValue("GAME"), gen.GetValue("CODE")};
|
gen.GetValue("GAME"), gen.GetValue("CODE")};
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const size_t parenthesis_pos = model.find('(');
|
||||||
|
if (parenthesis_pos != std::string::npos)
|
||||||
|
model = model.substr(0, parenthesis_pos) + '(' + region_setting.area + ')';
|
||||||
|
}
|
||||||
|
|
||||||
gen.Reset();
|
gen.Reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -290,7 +336,6 @@ bool CBoot::SetupWiiMemory(IOS::HLE::IOSC::ConsoleType console_type)
|
||||||
INFO_LOG(BOOT, "Using serial number: %s", serno.c_str());
|
INFO_LOG(BOOT, "Using serial number: %s", serno.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string model = "RVL-001(" + region_setting.area + ")";
|
|
||||||
gen.AddSetting("AREA", region_setting.area);
|
gen.AddSetting("AREA", region_setting.area);
|
||||||
gen.AddSetting("MODEL", model);
|
gen.AddSetting("MODEL", model);
|
||||||
gen.AddSetting("DVD", "0");
|
gen.AddSetting("DVD", "0");
|
||||||
|
|
Loading…
Reference in New Issue