diff --git a/src/skel/glfw/glfw.cpp b/src/skel/glfw/glfw.cpp
index 81f3b7b1..f8beee64 100644
--- a/src/skel/glfw/glfw.cpp
+++ b/src/skel/glfw/glfw.cpp
@@ -2049,10 +2049,12 @@ main(int argc, char *argv[])
 
 #ifdef LOAD_INI_SETTINGS
 		LoadINIControllerSettings();
-		if (connectedPadButtons != 0) {
-			ControlsManager.InitDefaultControlConfigJoyPad(connectedPadButtons);
-			SaveINIControllerSettings();
-		}
+		if (connectedPadButtons != 0)
+			ControlsManager.InitDefaultControlConfigJoyPad(connectedPadButtons); // add (connected-saved) amount of new button assignments on top of ours
+
+		// these have 2 purposes: creating .ini at the start, and adding newly introduced settings to old .ini at the start
+		SaveINISettings();
+		SaveINIControllerSettings();
 #endif
 	}