If it’s saving as joystickDevice=GenericUSBJoystick but the dropdown is blank when you reopen the wizard, that usually means GameEx isn’t actually detecting the device on startup even though the name is still sitting in the ini.
First thing I’d check: open Windows “Set up USB Game Controllers” (joy.cpl) and confirm the pad shows up there consistently with the exact same name every time. Some generic USB pads change their reported name or instance ID depending on the port, which breaks GameEx’s binding.
Also make sure the controller is plugged in and fully initialized before launching the Setup Wizard or GameEx itself. GameEx only reads available devices at startup it won’t populate the list if the device wasn’t present at launch.
If it shows in joy.cpl but not in GameEx, try deleting the joystickDevice line entirely from the ini, save, then reopen the wizard and reselect it. If it still comes back blank, it’s likely a DirectInput issue with that specific generic controller. Xbox controllers work out of the box because they use XInput; a lot of “GenericUSBJoystick” devices are flaky with older DirectInput-based detection.
Knowing the exact controller model would help — some of the cheap generic ones are notorious for this behavior.