diff --git a/Source/Core/Core/Boot/Boot_BS2Emu.cpp b/Source/Core/Core/Boot/Boot_BS2Emu.cpp index a58abd1b64..854d71049c 100644 --- a/Source/Core/Core/Boot/Boot_BS2Emu.cpp +++ b/Source/Core/Core/Boot/Boot_BS2Emu.cpp @@ -166,21 +166,24 @@ bool CBoot::EmulatedBS2_GC(bool skipAppLoader) bool CBoot::SetupWiiMemory(DiscIO::IVolume::ECountry country) { static const CountrySetting SETTING_EUROPE = {"EUR", "PAL", "EU", "LE"}; + static const CountrySetting SETTING_USA = {"USA", "NTSC", "US", "LU"}; + static const CountrySetting SETTING_JAPAN = {"JPN", "NTSC", "JP", "LJ"}; + static const CountrySetting SETTING_KOREA = {"KOR", "NTSC", "KR", "LKH"}; static const std::map country_settings = { {DiscIO::IVolume::COUNTRY_EUROPE, SETTING_EUROPE}, - {DiscIO::IVolume::COUNTRY_USA, {"USA", "NTSC", "US", "LU"}}, - {DiscIO::IVolume::COUNTRY_JAPAN, {"JPN", "NTSC", "JP", "LJ"}}, - {DiscIO::IVolume::COUNTRY_KOREA, {"KOR", "NTSC", "KR", "LKH"}}, + {DiscIO::IVolume::COUNTRY_USA, SETTING_USA}, + {DiscIO::IVolume::COUNTRY_JAPAN, SETTING_JAPAN}, + {DiscIO::IVolume::COUNTRY_KOREA, SETTING_KOREA}, //TODO: Determine if Taiwan have their own specific settings. // Also determine if there are other specific settings // for other countries. - {DiscIO::IVolume::COUNTRY_TAIWAN, {"JPN", "NTSC", "JP", "LJ"}} + {DiscIO::IVolume::COUNTRY_TAIWAN, SETTING_JAPAN} }; auto entryPos = country_settings.find(country); const CountrySetting& country_setting = (entryPos != country_settings.end()) ? entryPos->second : - SETTING_EUROPE; //Default to EUROPE + (SConfig::GetInstance().bNTSC ? SETTING_USA : SETTING_EUROPE); // default to USA or EUR depending on game's video mode SettingsHandler gen; std::string serno; diff --git a/Source/Core/Core/ConfigManager.cpp b/Source/Core/Core/ConfigManager.cpp index 577e140a3e..75f047129d 100644 --- a/Source/Core/Core/ConfigManager.cpp +++ b/Source/Core/Core/ConfigManager.cpp @@ -717,17 +717,21 @@ bool SConfig::AutoSetup(EBootBS2 _BootBS2) else if (!strcasecmp(Extension.c_str(), ".elf")) { bWii = CBoot::IsElfWii(m_strFilename); - set_region_dir = USA_DIR; + // TODO: Right now GC homebrew boots in NTSC and Wii homebrew in PAL. + // This is intentional so that Wii homebrew can boot in both 50Hz and 60Hz, without forcing all GC homebrew to 50Hz. + // In the future, it probably makes sense to add a Region setting for homebrew somewhere in the emulator config. + bNTSC = bWii ? false : true; + set_region_dir = bNTSC ? USA_DIR : EUR_DIR; m_BootType = BOOT_ELF; - bNTSC = true; } else if (!strcasecmp(Extension.c_str(), ".dol")) { CDolLoader dolfile(m_strFilename); bWii = dolfile.IsWii(); - set_region_dir = USA_DIR; + // TODO: See the ELF code above. + bNTSC = bWii ? false : true; + set_region_dir = bNTSC ? USA_DIR : EUR_DIR; m_BootType = BOOT_DOL; - bNTSC = true; } else if (!strcasecmp(Extension.c_str(), ".dff")) {