Merge pull request #22559 from hrydgard/game-browser-xmb-list

Game browser: Add a more XMB-like list format, make default
This commit is contained in:
Henrik Rydgård authored and GitHub committed 2026-10-14 14:04:34 +02:00
commit 4e442b22b2
60 files changed
+629 -183

No files matched your search

+29 -4
View File
@@ -195,6 +195,28 @@ static bool DefaultEnableStateUndo() {
return true;
}
// The old GridView bools, read as ints so a missing key (-1) can be told apart from false.
static int LegacyGridViewFromString(const std::string &value) {
return equalsNoCase(value, "True") ? 1 : 0;
}
static std::string LegacyGridViewToString(int value) {
return value == 1 ? "True" : "False";
}
static int GameBrowserViewFromGridView(int legacyGridView, GameBrowserViewMode defaultMode) {
if (legacyGridView < 0) {
return (int)defaultMode;
}
return (int)(legacyGridView ? GameBrowserViewMode::GRID : GameBrowserViewMode::LIST);
}
// Games and Homebrew switch everyone to the large list, ignoring the old setting. The others keep it.
static int DefaultGameBrowserView1() { return GameBrowserViewFromGridView(g_Config.iLegacyGridView1, GameBrowserViewMode::GRID); }
static int DefaultGameBrowserView2() { return (int)GameBrowserViewMode::LARGE_LIST; }
static int DefaultGameBrowserView3() { return (int)GameBrowserViewMode::LARGE_LIST; }
static int DefaultGameBrowserView4() { return GameBrowserViewFromGridView(g_Config.iLegacyGridView4, GameBrowserViewMode::LIST); }
static float DefaultGameGridScale() {
#if PPSSPP_PLATFORM(IOS)
return 1.25f;
@@ -283,10 +305,13 @@ static const ConfigSetting generalSettings[] = {
ConfigSetting("ShowRegionOnGameIcon", SETTING(g_Config, bShowRegionOnGameIcon), false, CfgFlag::DEFAULT),
ConfigSetting("ShowIDOnGameIcon", SETTING(g_Config, bShowIDOnGameIcon), false, CfgFlag::DEFAULT),
ConfigSetting("GameGridScale", SETTING(g_Config, fGameGridScale), &DefaultGameGridScale, CfgFlag::DEFAULT),
ConfigSetting("GridView1", SETTING(g_Config, bGridView1), true, CfgFlag::DEFAULT),
ConfigSetting("GridView2", SETTING(g_Config, bGridView2), true, CfgFlag::DEFAULT),
ConfigSetting("GridView3", SETTING(g_Config, bGridView3), false, CfgFlag::DEFAULT),
ConfigSetting("GridView4", SETTING(g_Config, bGridView4), false, CfgFlag::DEFAULT),
ConfigSetting("GridView1", SETTING(g_Config, iLegacyGridView1), -1, &LegacyGridViewToString, &LegacyGridViewFromString, CfgFlag::DONT_SAVE),
ConfigSetting("GridView4", SETTING(g_Config, iLegacyGridView4), -1, &LegacyGridViewToString, &LegacyGridViewFromString, CfgFlag::DONT_SAVE),
// These must come after GridView*, which their defaults are taken from.
ConfigSetting("GameBrowserView1", SETTING(g_Config, iGameBrowserView1), &DefaultGameBrowserView1, CfgFlag::DEFAULT),
ConfigSetting("GameBrowserView2", SETTING(g_Config, iGameBrowserView2), &DefaultGameBrowserView2, CfgFlag::DEFAULT),
ConfigSetting("GameBrowserView3", SETTING(g_Config, iGameBrowserView3), &DefaultGameBrowserView3, CfgFlag::DEFAULT),
ConfigSetting("GameBrowserView4", SETTING(g_Config, iGameBrowserView4), &DefaultGameBrowserView4, CfgFlag::DEFAULT),
ConfigSetting("RightAnalogUp", SETTING(g_Config, iRightAnalogUp), 0, CfgFlag::PER_GAME),
ConfigSetting("RightAnalogDown", SETTING(g_Config, iRightAnalogDown), 0, CfgFlag::PER_GAME),
ConfigSetting("RightAnalogLeft", SETTING(g_Config, iRightAnalogLeft), 0, CfgFlag::PER_GAME),