sceReg: Map the XMB theme keys to new config settings

theme_type and CONFIG/SYSTEM/XMB/THEME's color_mode, wallpaper_mode,
system_color and custom_theme_mode now persist in the config. Their
defaults (0) are the firmware's schema defaults.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Henrik RydgårdandClaude Opus 5.5 committed 2026-11-03 00:46:25 +01:00
1 parent 4b74eccc38
commit 08d1e83739
3 files changed
+21 -10

No files matched your search

+5
View File
@@ -1498,6 +1498,11 @@ static constexpr ConfigSetting systemParamSettings[] = {
ConfigSetting("WlanPowerSave", SETTING(g_Config, bWlanPowerSave), (bool) PSP_SYSTEMPARAM_WLAN_POWERSAVE_OFF, CfgFlag::PER_GAME),
ConfigSetting("EncryptSave", SETTING(g_Config, bEncryptSave), true, CfgFlag::PER_GAME | CfgFlag::REPORT),
ConfigSetting("VshUmdAutoboot", SETTING(g_Config, bVshUmdAutoboot), false, CfgFlag::DEFAULT),
ConfigSetting("XmbThemeType", SETTING(g_Config, iXmbThemeType), 0, CfgFlag::DEFAULT),
ConfigSetting("XmbThemeColorMode", SETTING(g_Config, iXmbThemeColorMode), 0, CfgFlag::DEFAULT),
ConfigSetting("XmbThemeWallpaperMode", SETTING(g_Config, iXmbThemeWallpaperMode), 0, CfgFlag::DEFAULT),
ConfigSetting("XmbThemeSystemColor", SETTING(g_Config, iXmbThemeSystemColor), 0, CfgFlag::DEFAULT),
ConfigSetting("XmbThemeCustomThemeMode", SETTING(g_Config, iXmbThemeCustomThemeMode), 0, CfgFlag::DEFAULT),
ConfigSetting("MemStickSize", SETTING(g_Config, iMemStickSizeGB), 16, CfgFlag::DEFAULT)
.Label(I18NCat::SYSTEM, "Memory Stick size").Range(1, 32).Units("GB"),
ConfigSetting("FuseID", SETTING(g_Config, sFuseID), "", CfgFlag::DEFAULT),
+6
View File
@@ -621,6 +621,12 @@ public:
bool bEncryptSave;
// /CONFIG/SYSTEM/umd_autoboot: whether the VSH starts an inserted disc by itself.
bool bVshUmdAutoboot;
// /CONFIG/SYSTEM/XMB (language and button_assign are iLanguage and iButtonPreference).
int iXmbThemeType;
int iXmbThemeColorMode;
int iXmbThemeWallpaperMode;
int iXmbThemeSystemColor;
int iXmbThemeCustomThemeMode;
// Networking
bool bEnableAdhocServer;
+10 -10
View File
@@ -39,11 +39,11 @@
// CONFIG/SYSTEM/SOUND/operation_sound_mode <-> (unmapped, bool) (click sound when navigating the XMB)
// CONFIG/RSS/download_items (unmapped, int)
// CONFIG/SYSTEM/XMB/button_assign <-> g_Config.iButtonPreference
// CONFIG/SYSTEM/XMB/theme_type (unmapped, int) << TODO
// CONFIG/SYSTEM/XMB/THEME/color_mode (unmapped, int) << TODO
// CONFIG/SYSTEM/XMB/THEME/system_color (unmapped, int) << TODO
// CONFIG/SYSTEM/XMB/THEME/wallpaper_mode (unmapped, int) << TODO
// CONFIG/SYSTEM/XMB/THEME/custom_theme_mode (unmapped, int) << TODO
// CONFIG/SYSTEM/XMB/theme_type <-> g_Config.iXmbThemeType
// CONFIG/SYSTEM/XMB/THEME/color_mode <-> g_Config.iXmbThemeColorMode
// CONFIG/SYSTEM/XMB/THEME/system_color <-> g_Config.iXmbThemeSystemColor
// CONFIG/SYSTEM/XMB/THEME/wallpaper_mode <-> g_Config.iXmbThemeWallpaperMode
// CONFIG/SYSTEM/XMB/THEME/custom_theme_mode <-> g_Config.iXmbThemeCustomThemeMode
//
// UMD video stuff
// CONFIG/VIDEO/appended_volume (unmapped, int, 0-2) << TODO
@@ -762,15 +762,15 @@ static const KeyValue tree_CONFIG_ONESEG[] = {
// Dump of /CONFIG/SYSTEM/XMB/THEME
static const KeyValue tree_CONFIG_SYSTEM_XMB_THEME[] = {
{ "color_mode", ValueType::INT, "", (int)0x0 }, // decimal: 0
{ "wallpaper_mode", ValueType::INT, "", (int)0x0 }, // decimal: 0
{ "system_color", ValueType::INT, "", (int)0x0 }, // decimal: 0
{ "custom_theme_mode", ValueType::INT, "", (int)0x0 }, // decimal: 0
{ "color_mode", ValueType::INT, "", (int)0x0, nullptr, &g_Config.iXmbThemeColorMode }, // decimal: 0
{ "wallpaper_mode", ValueType::INT, "", (int)0x0, nullptr, &g_Config.iXmbThemeWallpaperMode }, // decimal: 0
{ "system_color", ValueType::INT, "", (int)0x0, nullptr, &g_Config.iXmbThemeSystemColor }, // decimal: 0
{ "custom_theme_mode", ValueType::INT, "", (int)0x0, nullptr, &g_Config.iXmbThemeCustomThemeMode }, // decimal: 0
};
// Dump of /CONFIG/SYSTEM/XMB
static const KeyValue tree_CONFIG_SYSTEM_XMB[] = {
{ "theme_type", ValueType::INT, "", (int)0x0 }, // decimal: 0
{ "theme_type", ValueType::INT, "", (int)0x0, nullptr, &g_Config.iXmbThemeType }, // decimal: 0
{ "language", ValueType::INT, "", (int)0x1, nullptr, &g_Config.iLanguage, &GetPSPLanguage }, // decimal: 1
{ "button_assign", ValueType::INT, "", (int)0x1, nullptr, &g_Config.iButtonPreference },
{ "THEME", ValueType::DIR, "", ARRAY_SIZE(tree_CONFIG_SYSTEM_XMB_THEME), tree_CONFIG_SYSTEM_XMB_THEME },