OpenController reads the game controllers connected to the computer and creates a virtual Xbox 360 controller for each one, so games that only support Xbox controllers can use them. Several controllers can be connected at the same time over USB, Bluetooth or a wireless receiver, and each one becomes a separate player. Buttons are mapped by position (the bottom face button is A), and sticks and triggers are passed through without an added deadzone. Rumble from the game is sent back to the controller.
Controllers are read through SDL 3 and the community SDL_GameControllerDB. The app includes a table of about 900 known models, covering PlayStation 3, 4 and 5 controllers, the Switch Pro Controller and Joy-Cons, 8BitDo pads, the Steam Deck and Steam Controller, Flydigi, Stadia, Luna and licensed or generic USB and Bluetooth gamepads. Each model is labeled as verified, compatible, working with a note, or not supported yet. Xbox controllers are not duplicated, since games already read them.
The background process uses about 3 MB of memory and adds about 0.6 ms of latency (median, measured on Windows 11). The configuration window is a separate process that runs only while it is open. The app makes no network requests except an update check to GitHub (which can be disabled), driver downloads started by the user, and problem reports the user chooses to send.
The interface is available in English and Brazilian Portuguese. OpenController is free and released under the MIT license.
No comments or reviews, maybe you want to be first?