summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorLéo Lam <leo@innovatetechnologi.es>2019-05-01 17:37:31 +0200
committerGitHub <noreply@github.com>2019-05-01 17:37:31 +0200
commitbec85a09623e11493d58a0fcb5acb898604c0cd7 (patch)
treea9bfe36dd4c425dab59bce4e29b3454820750eab /Source/Core
parentef88dd73b32b4de7b3ea509957a1f315662c0d0f (diff)
parentfbe7892bd2c50b3eb920b4f6a0a5d3fdd1010278 (diff)
Merge pull request #8013 from JosJuice/titledatabase-japanese-gc
Show Japanese GC games in Japanese when using TitleDatabase
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/ConfigManager.cpp21
-rw-r--r--Source/Core/Core/ConfigManager.h4
-rw-r--r--Source/Core/UICommon/GameFile.cpp3
3 files changed, 19 insertions, 9 deletions
diff --git a/Source/Core/Core/ConfigManager.cpp b/Source/Core/Core/ConfigManager.cpp
index 8b48886c57..a6d28369f1 100644
--- a/Source/Core/Core/ConfigManager.cpp
+++ b/Source/Core/Core/ConfigManager.cpp
@@ -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));
diff --git a/Source/Core/Core/ConfigManager.h b/Source/Core/Core/ConfigManager.h
index ec3b4f98bf..987be0ed1e 100644
--- a/Source/Core/Core/ConfigManager.h
+++ b/Source/Core/Core/ConfigManager.h
@@ -14,10 +14,10 @@
#include "Common/IniFile.h"
#include "Core/HW/EXI/EXI_Device.h"
#include "Core/HW/SI/SI_Device.h"
-#include "Core/TitleDatabase.h"
namespace DiscIO
{
+enum class Country;
enum class Language;
enum class Region;
struct Partition;
@@ -356,7 +356,7 @@ private:
void LoadJitDebugSettings(IniFile& ini);
void SetRunningGameMetadata(const std::string& game_id, const std::string& gametdb_id,
- u64 title_id, u16 revision);
+ u64 title_id, u16 revision, DiscIO::Country country);
static SConfig* m_Instance;
diff --git a/Source/Core/UICommon/GameFile.cpp b/Source/Core/UICommon/GameFile.cpp
index 254d19bdf7..b990b744ca 100644
--- a/Source/Core/UICommon/GameFile.cpp
+++ b/Source/Core/UICommon/GameFile.cpp
@@ -60,6 +60,9 @@ static bool UseGameCovers()
DiscIO::Language GameFile::GetConfigLanguage() const
{
+ if (m_platform == DiscIO::Platform::GameCubeDisc && m_country == DiscIO::Country::Japan)
+ return DiscIO::Language::Japanese;
+
#ifdef ANDROID
// TODO: Make the Android app load the config at app start instead of emulation start
// so that we can access the user's preference here