aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcrueter <crueter@eden-emu.dev>2026-02-25 00:41:21 +0100
committercrueter <crueter@eden-emu.dev>2026-02-25 00:41:21 +0100
commit7758f708335994952ded51df425b76a81c225957 (patch)
tree83f11d1e620170169a41bf1fe9b657e53c3f2f86
parent5279e76534674fe1af66eced70e1a763fbe4b057 (diff)
[core] Fix language index mismatches (#3629)
For reasons I am not knowledgeable enough to answer, NACP language and nn::settings::Language don't match. PR #3587 however erroneously matched language_index directly to NACP language which caused those weird mismatches (since idx 2 = French actually matches up to an NACP language of Japanese). So to get around that just go back to the mapping of language idx -> nacp language Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3629 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: DraVee <dravee@eden-emu.dev>
-rw-r--r--src/core/file_sys/control_metadata.cpp29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/core/file_sys/control_metadata.cpp b/src/core/file_sys/control_metadata.cpp
index 23514bed01..f86d22d627 100644
--- a/src/core/file_sys/control_metadata.cpp
+++ b/src/core/file_sys/control_metadata.cpp
@@ -108,7 +108,34 @@ NACP::NACP(VirtualFile file)
NACP::~NACP() = default;
const LanguageEntry& NACP::GetLanguageEntry() const {
- u32 index = static_cast<u32>(Settings::values.language_index.GetValue());
+
+ auto const language = []{
+ switch (Settings::values.language_index.GetValue()) {
+ case Settings::Language::Chinese: return Language::SimplifiedChinese;
+ case Settings::Language::ChineseSimplified: return Language::SimplifiedChinese;
+ case Settings::Language::ChineseTraditional: return Language::TraditionalChinese;
+ case Settings::Language::Dutch: return Language::Dutch;
+ case Settings::Language::EnglishAmerican: return Language::AmericanEnglish;
+ case Settings::Language::EnglishBritish: return Language::BritishEnglish;
+ case Settings::Language::French: return Language::French;
+ case Settings::Language::FrenchCanadian: return Language::CanadianFrench;
+ case Settings::Language::German: return Language::German;
+ case Settings::Language::Italian: return Language::Italian;
+ case Settings::Language::Korean: return Language::Korean;
+ case Settings::Language::Japanese: return Language::Japanese;
+ case Settings::Language::Portuguese: return Language::Portuguese;
+ case Settings::Language::PortugueseBrazilian: return Language::BrazilianPortuguese;
+ case Settings::Language::Russian: return Language::Russian;
+ case Settings::Language::Spanish: return Language::Spanish;
+ case Settings::Language::SpanishLatin: return Language::LatinAmericanSpanish;
+ case Settings::Language::Taiwanese: return Language::SimplifiedChinese;
+ case Settings::Language::Thai: return Language::Thai;
+ case Settings::Language::Polish: return Language::Polish;
+ default: return Language::AmericanEnglish;
+ }
+ }();
+
+ u32 index = u32(language);
if (index < language_entries.size() && !language_entries[index].GetApplicationName().empty()) {
return language_entries[index];