I bought a generic 2.4 GHz wireless controller for Windows PC, Android TV, PlayStation, and smartphones. Windows detects it, and all the buttons and sticks respond correctly on a gamepad tester website and through Win + R → joy.cpl. However, none of the games I've tried recognize the controller, including games that officially support controllers. Could this be caused by the controller using DirectInput instead of XInput? Is there a Windows or Steam setting, or a compatibility tool, that I need to configure?
3 Answers
A utility such as DS4Windows may help if the controller is detected as a compatible DirectInput device, because it can present the inputs to games as an Xbox-style controller. It won’t fix every generic gamepad, though, so first confirm that the program detects the controller and that its buttons are mapped correctly. Avoid running multiple controller-mapping programs at the same time, since they can conflict.
The most likely issue is that the controller is operating in DirectInput mode, while many PC games only listen for XInput devices such as Xbox controllers. Check the controller’s manual for an XInput or PC mode—sometimes it’s selected with a button combination while connecting the USB receiver. If it has no XInput mode, a controller-mapping tool can translate its inputs into an Xbox controller profile.
If you’re launching the games through Steam, try adding the game to your Steam library if necessary, then open the game’s controller settings and enable Steam Input. Steam may be able to map the generic controller to an Xbox layout. Also try different modes on the controller before launching the game, since some inexpensive models use separate Android, PlayStation, and PC modes.

The label only describes it as a universal 2.4 GHz wireless controller for Windows PC, Android TV, PlayStation, and smartphones. I’ll check whether the manual mentions a PC or XInput mode.