From ccdc0b77c189f766fd603d58022838ebfb3a784c Mon Sep 17 00:00:00 2001 From: Xele02 Date: Sun, 20 Jan 2013 10:50:05 +0100 Subject: [PATCH] Set the PSP language in the config file --- Core/Config.cpp | 7 +++++++ Core/Config.h | 3 +++ Core/HLE/sceUtility.cpp | 19 +------------------ Core/HLE/sceUtility.h | 19 +++++++++++++++++++ 4 files changed, 30 insertions(+), 18 deletions(-) diff --git a/Core/Config.cpp b/Core/Config.cpp index 778e18793b..772682eb2b 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -18,6 +18,7 @@ #include "Config.h" #include "IniFile.h" +#include "HLE/sceUtility.h" SState g_State; CConfig g_Config; @@ -80,6 +81,9 @@ void CConfig::Load(const char *iniFileName) false); #endif + IniFile::Section *pspConfig = iniFile.GetOrCreateSection("SystemParam"); + pspConfig->Get("Language", &ilanguage, PSP_SYSTEMPARAM_LANGUAGE_ENGLISH); + // Ephemeral settings bDrawWireframe = false; } @@ -122,6 +126,9 @@ void CConfig::Save() control->Set("ShowStick", bShowAnalogStick); control->Set("ShowTouchControls", bShowTouchControls); + IniFile::Section *pspConfig = iniFile.GetOrCreateSection("SystemParam"); + pspConfig->Set("Language", ilanguage); + if (!iniFile.Save(iniFilename_.c_str())) { ERROR_LOG(LOADER, "Error saving config - can't write ini %s", iniFilename_.c_str()); return; diff --git a/Core/Config.h b/Core/Config.h index ed57ec93fa..8d1e79a7d0 100644 --- a/Core/Config.h +++ b/Core/Config.h @@ -68,6 +68,9 @@ public: bool bShowFPSCounter; bool bShowDebugStats; + // SystemParam + int ilanguage; + std::string currentDirectory; std::string memCardDirectory; std::string flashDirectory; diff --git a/Core/HLE/sceUtility.cpp b/Core/HLE/sceUtility.cpp index 6fa82cd432..b0209f97ff 100644 --- a/Core/HLE/sceUtility.cpp +++ b/Core/HLE/sceUtility.cpp @@ -273,23 +273,6 @@ int sceUtilityGamedataInstallGetStatus() #define PSP_SYSTEMPARAM_BUTTON_CIRCLE 0 #define PSP_SYSTEMPARAM_BUTTON_CROSS 1 -/** -* Valid values for PSP_SYSTEMPARAM_ID_INT_LANGUAGE -*/ -#define PSP_SYSTEMPARAM_LANGUAGE_JAPANESE 0 -#define PSP_SYSTEMPARAM_LANGUAGE_ENGLISH 1 -#define PSP_SYSTEMPARAM_LANGUAGE_FRENCH 2 -#define PSP_SYSTEMPARAM_LANGUAGE_SPANISH 3 -#define PSP_SYSTEMPARAM_LANGUAGE_GERMAN 4 -#define PSP_SYSTEMPARAM_LANGUAGE_ITALIAN 5 -#define PSP_SYSTEMPARAM_LANGUAGE_DUTCH 6 -#define PSP_SYSTEMPARAM_LANGUAGE_PORTUGUESE 7 -#define PSP_SYSTEMPARAM_LANGUAGE_RUSSIAN 8 -#define PSP_SYSTEMPARAM_LANGUAGE_KOREAN 9 -#define PSP_SYSTEMPARAM_LANGUAGE_CHINESE_TRADITIONAL 10 -#define PSP_SYSTEMPARAM_LANGUAGE_CHINESE_SIMPLIFIED 11 - - //TODO: should save to config file u32 sceUtilitySetSystemParamString(u32 id, u32 strPtr) { @@ -339,7 +322,7 @@ u32 sceUtilityGetSystemParamInt(u32 id, u32 destaddr) param = PSP_SYSTEMPARAM_TIME_FORMAT_24HR; break; case PSP_SYSTEMPARAM_ID_INT_LANGUAGE: - param = PSP_SYSTEMPARAM_LANGUAGE_ENGLISH; + param = g_Config.ilanguage; break; case PSP_SYSTEMPARAM_ID_INT_BUTTON_PREFERENCE: param = PSP_SYSTEMPARAM_BUTTON_CROSS; diff --git a/Core/HLE/sceUtility.h b/Core/HLE/sceUtility.h index 1518332972..a9eba9f7fb 100644 --- a/Core/HLE/sceUtility.h +++ b/Core/HLE/sceUtility.h @@ -17,6 +17,25 @@ #pragma once +#include "../../Common/ChunkFile.h" + +/** +* Valid values for PSP_SYSTEMPARAM_ID_INT_LANGUAGE +*/ +#define PSP_SYSTEMPARAM_LANGUAGE_JAPANESE 0 +#define PSP_SYSTEMPARAM_LANGUAGE_ENGLISH 1 +#define PSP_SYSTEMPARAM_LANGUAGE_FRENCH 2 +#define PSP_SYSTEMPARAM_LANGUAGE_SPANISH 3 +#define PSP_SYSTEMPARAM_LANGUAGE_GERMAN 4 +#define PSP_SYSTEMPARAM_LANGUAGE_ITALIAN 5 +#define PSP_SYSTEMPARAM_LANGUAGE_DUTCH 6 +#define PSP_SYSTEMPARAM_LANGUAGE_PORTUGUESE 7 +#define PSP_SYSTEMPARAM_LANGUAGE_RUSSIAN 8 +#define PSP_SYSTEMPARAM_LANGUAGE_KOREAN 9 +#define PSP_SYSTEMPARAM_LANGUAGE_CHINESE_TRADITIONAL 10 +#define PSP_SYSTEMPARAM_LANGUAGE_CHINESE_SIMPLIFIED 11 + + void __UtilityInit(); void __UtilityDoState(PointerWrap &p); void __UtilityShutdown();