diff --git a/src/xenia/emulator.cc b/src/xenia/emulator.cc index 4e6b10783..0511e61b4 100644 --- a/src/xenia/emulator.cc +++ b/src/xenia/emulator.cc @@ -677,7 +677,12 @@ X_STATUS Emulator::CompleteLaunch(const std::filesystem::path& path, kernel::util::XdbfGameData db( module->memory()->TranslateVirtual(resource_data), resource_size); if (db.is_valid()) { - game_title_ = db.title(); + // TODO(gibbed): get title respective to user locale. + game_title_ = db.title(kernel::util::XdbfLocale::kEnglish); + if (game_title_.empty()) { + // If English title is unavailable, get the title in default locale. + game_title_ = db.title(); + } auto icon_block = db.icon(); if (icon_block) { display_window_->SetIcon(icon_block.buffer, icon_block.size); diff --git a/src/xenia/kernel/util/xdbf_utils.cc b/src/xenia/kernel/util/xdbf_utils.cc index e79b15449..c2ed6880d 100644 --- a/src/xenia/kernel/util/xdbf_utils.cc +++ b/src/xenia/kernel/util/xdbf_utils.cc @@ -102,6 +102,10 @@ std::string XdbfGameData::title() const { return GetStringTableEntry(default_language(), kXdbfIdTitle); } +std::string XdbfGameData::title(XdbfLocale locale) const { + return GetStringTableEntry(locale, kXdbfIdTitle); +} + } // namespace util } // namespace kernel } // namespace xe diff --git a/src/xenia/kernel/util/xdbf_utils.h b/src/xenia/kernel/util/xdbf_utils.h index 83ba12e27..50893788f 100644 --- a/src/xenia/kernel/util/xdbf_utils.h +++ b/src/xenia/kernel/util/xdbf_utils.h @@ -137,6 +137,8 @@ class XdbfGameData : public XdbfWrapper { // The game's title in its default language. std::string title() const; + + std::string title(XdbfLocale locale) const; }; } // namespace util