Merge pull request #8013 from JosJuice/titledatabase-japanese-gc

Show Japanese GC games in Japanese when using TitleDatabase
This commit is contained in:
Léo Lam 2019-05-01 17:37:31 +02:00 committed by GitHub
commit bec85a0962
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 9 deletions

View file

@ -646,7 +646,7 @@ void SConfig::LoadJitDebugSettings(IniFile& ini)
void SConfig::ResetRunningGameMetadata()
{
SetRunningGameMetadata("00000000", "", 0, 0);
SetRunningGameMetadata("00000000", "", 0, 0, DiscIO::Country::Unknown);
}
void SConfig::SetRunningGameMetadata(const DiscIO::Volume& volume,
@ -655,13 +655,14 @@ void SConfig::SetRunningGameMetadata(const DiscIO::Volume& volume,
if (partition == volume.GetGamePartition())
{
SetRunningGameMetadata(volume.GetGameID(), volume.GetGameTDBID(),
volume.GetTitleID().value_or(0), volume.GetRevision().value_or(0));
volume.GetTitleID().value_or(0), volume.GetRevision().value_or(0),
volume.GetCountry());
}
else
{
SetRunningGameMetadata(volume.GetGameID(partition), volume.GetGameTDBID(),
volume.GetTitleID(partition).value_or(0),
volume.GetRevision(partition).value_or(0));
volume.GetRevision(partition).value_or(0), volume.GetCountry());
}
}
@ -676,13 +677,16 @@ void SConfig::SetRunningGameMetadata(const IOS::ES::TMDReader& tmd)
if (!DVDInterface::UpdateRunningGameMetadata(tmd_title_id))
{
// If not launching a disc game, just read everything from the TMD.
SetRunningGameMetadata(tmd.GetGameID(), tmd.GetGameTDBID(), tmd_title_id,
tmd.GetTitleVersion());
const DiscIO::Country country =
DiscIO::CountryCodeToCountry(static_cast<u8>(tmd_title_id), DiscIO::Platform::WiiWAD,
tmd.GetRegion(), tmd.GetTitleVersion());
SetRunningGameMetadata(tmd.GetGameID(), tmd.GetGameTDBID(), tmd_title_id, tmd.GetTitleVersion(),
country);
}
}
void SConfig::SetRunningGameMetadata(const std::string& game_id, const std::string& gametdb_id,
u64 title_id, u16 revision)
u64 title_id, u16 revision, DiscIO::Country country)
{
const bool was_changed = m_game_id != game_id || m_gametdb_id != gametdb_id ||
m_title_id != title_id || m_revision != revision;
@ -715,7 +719,10 @@ void SConfig::SetRunningGameMetadata(const std::string& game_id, const std::stri
}
const Core::TitleDatabase title_database;
m_title_description = title_database.Describe(m_gametdb_id, GetCurrentLanguage(bWii));
const DiscIO::Language language = !bWii && country == DiscIO::Country::Japan ?
DiscIO::Language::Japanese :
GetCurrentLanguage(bWii);
m_title_description = title_database.Describe(m_gametdb_id, language);
NOTICE_LOG(CORE, "Active title: %s", m_title_description.c_str());
Config::AddLayer(ConfigLoaders::GenerateGlobalGameConfigLoader(game_id, revision));