@@ -586,6 +586,7 @@ static ConfigSetting generalSettings[] = {
586586 ConfigSetting (" EnablePlugins" , &g_Config.bLoadPlugins , true , true , true ),
587587
588588 ReportedConfigSetting (" IgnoreCompatSettings" , &g_Config.sIgnoreCompatSettings , " " , true , true ),
589+ ConfigSetting (" SettingsVersion" , &g_Config.uSettingsVersion , 0u , true , true ), // Per game for game configs
589590
590591 ConfigSetting (false ),
591592};
@@ -1270,6 +1271,24 @@ void Config::UpdateIniLocation(const char *iniFileName, const char *controllerIn
12701271 controllerIniFilename_ = FindConfigFile (useControllerIniFilename ? controllerIniFilename : " controls.ini" );
12711272}
12721273
1274+ static void loadOldControlSettings (IniFile &iniFile) {
1275+ iniFile.GetIfExists (" General" , " RightAnalogUp" , &g_Config.iRightAnalogUp );
1276+ iniFile.GetIfExists (" General" , " RightAnalogDown" , &g_Config.iRightAnalogDown );
1277+ iniFile.GetIfExists (" General" , " RightAnalogLeft" , &g_Config.iRightAnalogLeft );
1278+ iniFile.GetIfExists (" General" , " RightAnalogRight" , &g_Config.iRightAnalogRight );
1279+ iniFile.GetIfExists (" General" , " RightAnalogPress" , &g_Config.iRightAnalogPress );
1280+ iniFile.GetIfExists (" General" , " SwipeUp" , &g_Config.iSwipeUp );
1281+ iniFile.GetIfExists (" General" , " SwipeDown" , &g_Config.iSwipeDown );
1282+ iniFile.GetIfExists (" General" , " SwipeLeft" , &g_Config.iSwipeLeft );
1283+ iniFile.GetIfExists (" General" , " SwipeRight" , &g_Config.iSwipeRight );
1284+ iniFile.GetIfExists (" General" , " DoubleTapGesture" , &g_Config.iDoubleTapGesture );
1285+ iniFile.GetIfExists (" General" , " SwipeSensitivity" , &g_Config.fSwipeSensitivity );
1286+ iniFile.GetIfExists (" General" , " SwipeSmoothing" , &g_Config.fSwipeSmoothing );
1287+ iniFile.GetIfExists (" General" , " RightAnalogCustom" , &g_Config.bRightAnalogCustom );
1288+ iniFile.GetIfExists (" General" , " RightAnalogDisableDiagonal" , &g_Config.bRightAnalogDisableDiagonal );
1289+ iniFile.GetIfExists (" General" , " GestureControlEnabled" , &g_Config.bGestureControlEnabled );
1290+ }
1291+
12731292void Config::Load (const char *iniFileName, const char *controllerIniFilename) {
12741293 if (!bUpdatedInstanceCounter) {
12751294 InitInstanceCounter ();
@@ -1368,22 +1387,11 @@ void Config::Load(const char *iniFileName, const char *controllerIniFilename) {
13681387 ResetControlLayout ();
13691388 }
13701389
1371- // Migrate from wrong section...
1372- iniFile.GetIfExists (" General" , " RightAnalogUp" , &g_Config.iRightAnalogUp );
1373- iniFile.GetIfExists (" General" , " RightAnalogDown" , &g_Config.iRightAnalogDown );
1374- iniFile.GetIfExists (" General" , " RightAnalogLeft" , &g_Config.iRightAnalogLeft );
1375- iniFile.GetIfExists (" General" , " RightAnalogRight" , &g_Config.iRightAnalogRight );
1376- iniFile.GetIfExists (" General" , " RightAnalogPress" , &g_Config.iRightAnalogPress );
1377- iniFile.GetIfExists (" General" , " SwipeUp" , &g_Config.iSwipeUp );
1378- iniFile.GetIfExists (" General" , " SwipeDown" , &g_Config.iSwipeDown );
1379- iniFile.GetIfExists (" General" , " SwipeLeft" , &g_Config.iSwipeLeft );
1380- iniFile.GetIfExists (" General" , " SwipeRight" , &g_Config.iSwipeRight );
1381- iniFile.GetIfExists (" General" , " DoubleTapGesture" , &g_Config.iDoubleTapGesture );
1382- iniFile.GetIfExists (" General" , " SwipeSensitivity" , &g_Config.fSwipeSensitivity );
1383- iniFile.GetIfExists (" General" , " SwipeSmoothing" , &g_Config.fSwipeSmoothing );
1384- iniFile.GetIfExists (" General" , " RightAnalogCustom" , &g_Config.bRightAnalogCustom );
1385- iniFile.GetIfExists (" General" , " RightAnalogDisableDiagonal" , &g_Config.bRightAnalogDisableDiagonal );
1386- iniFile.GetIfExists (" General" , " GestureControlEnabled" , &g_Config.bGestureControlEnabled );
1390+ if (g_Config.uSettingsVersion == 0 ) {
1391+ g_Config.uSettingsVersion = 1 ;
1392+
1393+ loadOldControlSettings (iniFile);
1394+ }
13871395
13881396 const char *gitVer = PPSSPP_GIT_VERSION;
13891397 Version installed (gitVer);
@@ -1577,24 +1585,6 @@ bool Config::Save(const char *saveReason) {
15771585 Section *control = iniFile.GetOrCreateSection (" Control" );
15781586 control->Delete (" DPadRadius" );
15791587
1580- // Migrate from wrong section...
1581- Section *general = iniFile.GetOrCreateSection (" General" );
1582- general->Delete (" RightAnalogUp" );
1583- general->Delete (" RightAnalogDown" );
1584- general->Delete (" RightAnalogLeft" );
1585- general->Delete (" RightAnalogRight" );
1586- general->Delete (" RightAnalogPress" );
1587- general->Delete (" SwipeUp" );
1588- general->Delete (" SwipeDown" );
1589- general->Delete (" SwipeLeft" );
1590- general->Delete (" SwipeRight" );
1591- general->Delete (" DoubleTapGesture" );
1592- general->Delete (" SwipeSensitivity" );
1593- general->Delete (" SwipeSmoothing" );
1594- general->Delete (" RightAnalogCustom" );
1595- general->Delete (" RightAnalogDisableDiagonal" );
1596- general->Delete (" GestureControlEnabled" );
1597-
15981588 Section *log = iniFile.GetOrCreateSection (logSectionName);
15991589 if (LogManager::GetInstance ())
16001590 LogManager::GetInstance ()->SaveConfig (log);
@@ -1908,22 +1898,11 @@ bool Config::loadGameConfig(const std::string &pGameId, const std::string &title
19081898 }
19091899 });
19101900
1911- // Migrate from wrong section...
1912- iniFile.GetIfExists (" General" , " RightAnalogUp" , &g_Config.iRightAnalogUp );
1913- iniFile.GetIfExists (" General" , " RightAnalogDown" , &g_Config.iRightAnalogDown );
1914- iniFile.GetIfExists (" General" , " RightAnalogLeft" , &g_Config.iRightAnalogLeft );
1915- iniFile.GetIfExists (" General" , " RightAnalogRight" , &g_Config.iRightAnalogRight );
1916- iniFile.GetIfExists (" General" , " RightAnalogPress" , &g_Config.iRightAnalogPress );
1917- iniFile.GetIfExists (" General" , " SwipeUp" , &g_Config.iSwipeUp );
1918- iniFile.GetIfExists (" General" , " SwipeDown" , &g_Config.iSwipeDown );
1919- iniFile.GetIfExists (" General" , " SwipeLeft" , &g_Config.iSwipeLeft );
1920- iniFile.GetIfExists (" General" , " SwipeRight" , &g_Config.iSwipeRight );
1921- iniFile.GetIfExists (" General" , " DoubleTapGesture" , &g_Config.iDoubleTapGesture );
1922- iniFile.GetIfExists (" General" , " SwipeSensitivity" , &g_Config.fSwipeSensitivity );
1923- iniFile.GetIfExists (" General" , " SwipeSmoothing" , &g_Config.fSwipeSmoothing );
1924- iniFile.GetIfExists (" General" , " RightAnalogCustom" , &g_Config.bRightAnalogCustom );
1925- iniFile.GetIfExists (" General" , " RightAnalogDisableDiagonal" , &g_Config.bRightAnalogDisableDiagonal );
1926- iniFile.GetIfExists (" General" , " GestureControlEnabled" , &g_Config.bGestureControlEnabled );
1901+ if (g_Config.uSettingsVersion == 0 ) {
1902+ g_Config.uSettingsVersion = 1 ;
1903+
1904+ loadOldControlSettings (iniFile);
1905+ }
19271906
19281907 KeyMap::LoadFromIni (iniFile);
19291908 return true ;
0 commit comments