Remove xinput.yml - #348
Conversation
|
To be even clearer: Wine already contains bundled, Linux-native implementations of every XInput DLL file and all their APIs. Wine's XInput detects and maps buttons via SDL2 which contains built-in mappings for pretty much every controller in the world (and most third-party controllers these days emulate/pretend to be a Microsoft gamepad on this list, so the list of supported controllers is way bigger than this): https://github.com/libsdl-org/SDL/blob/main/src/joystick/controller_list.h In contrast, the old Microsoft DLLs do NOT work well on Linux, and installing them on modern Wine completely breaks gamepad support for most people, since it doesn't support most gamepads. Those old DLLs don't even support Microsoft's own, newer controllers anymore. They were just an evil workaround people used 8+ years ago. To diagnose gamepads in Bottles:
Installing the outdated There is no way to uninstall dependencies in Bottles, but the simplest way to "unbrick" a bottle that has been messed up by PS: If a gamepad doesn't work in Bottles, it's almost always because the game was written for Steam Input ( |
d5c4995 to
65c8ed1
Compare
It does not actually solve anything and only creates problems. In most (all?) cases, installing these DLLs on modern Wine actually *breaks* the controller support. Having it in the list confuses users and leads to a worse game compatibility experience. All of the Xinput DLLs are already fully implemented by Wine since Wine 3.2 (February 2018), which uses native Linux SDL2 as a backend for excellent controller detection and support. The old Microsoft DLLs from the DirectX 2010 runtime were a buggy workaround which was only necessary before Wine added its own, native controller support. Installing these old DLLs on a modern Wine version just reduces compatibility and breaks controller support.
65c8ed1 to
8e79932
Compare
|
Just to add some Google SEO to this ticket so that people can find it in the future, I'll also mention that people should NEVER install any of the other ancient workarounds. Do NOT install:
|
|
I'll add a special note about advanced controllers (Sony Playstation, Nintendo Switch, etc):
This process may be common enough that Bottles could/should have a "Settings: Compatibility: Controller Compatibility" section with a checkbox for "Universal XInput mode". I'll open a feature request and link it to this message. Edit: Ticket at bottlesdevs/Bottles#4822 |


It does not actually solve anything and only creates problems. In most (all?) cases, installing these DLLs on modern Wine actually breaks the controller support. Having it in the list confuses users and leads to a worse game compatibility experience.
All of the XInput DLLs are already fully implemented by Wine since Wine 3.2 (February 2018), which uses native Linux SDL2 as a backend for excellent controller detection and support.
The old Microsoft DLLs from the DirectX 2010 runtime were a buggy workaround which was only necessary before Wine added its own, native controller support. Installing these old DLLs on a modern Wine version just reduces compatibility and breaks controller support.
Type of change
Was this tested using a local repository?