From 29ac13eca0e15313554f1611d124dee016243ebd Mon Sep 17 00:00:00 2001 From: Arcitec <38923130+Arcitec@users.noreply.github.com> Date: Sun, 13 Sep 2026 06:21:56 +0200 Subject: [PATCH] Remove xinput.yml All of the XInput (and DirectInput) DLLs are already fully implemented by Wine since Wine 3.2 (February 2018), and uses native Linux backends for excellent controller detection and support. The `winebus.sys` driver collects and manages input devices (gamepads/joysticks) from three primary backends: - `SDL` (Simple DirectMedia Layer) to detect and map gamepads/controllers. It provides a huge library of standard community controller mappings. Hotplugging, vibration/rumble (haptics), and non-standard layouts work out of the box without manual calibration utilities. - Linux's `udev` subsystem, which covers two input interfaces: * `hidraw`: Raw HID device access (used directly for devices like DualShock 4, DualSense, flight sticks, and racing wheels). * `evdev`: General kernel input event layer for event-driven controllers, such as Steam's virtual "Steam Input" controller. - Apple macOS's `IOHID` (I/O Kit Human Interface Device) framework for enumerating HID devices and game controllers on macOS. Wine's `xinput` and `dinput` (DirectInput, an older protocol) DLLs then communicate directly with Wine's device bus pipeline. This ensures that arbitrary gamepads (regardless of whether they are connected via Linux evdev, hidraw, or SDL), are consistently mapped into standard XInput layouts (Xbox style) and DirectInput APIs. Wine also intelligently handles games with dual input APIs. Many games support both DirectInput and XInput. Wine's DLLs coordinate this so that a controller will be "owned" by the best API that the game supports, which prevents double-inputs in games when both APIs query the same device simultaneously. Which brings us onto Microsoft's XInput DLLs... A common misconception among users troubleshooting controller issues is to install native Microsoft DirectX redistributables or override XInput DLLs with Microsoft's variants. Doing that severely breaks controller support, because the Microsoft DLLs only support Microsoft's own Xbox controllers, and they are ancient (from 2010) which means that they don't even support the current generation of Xbox Series X/S controllers. The Microsoft DLLs also don't support hotplugging or coordination with DirectInput (to avoid double-inputs). In most cases, installing the Microsoft DLLs completely *breaks* the controller support. Having it in the list confuses users and leads to a worse game compatibility experience. They are worse in absolutely *every* way and are very harmful. There is *never* any reason to install them. --- Essentials/xinput.yml | 37 ------------------------------------- index.yml | 3 --- 2 files changed, 40 deletions(-) delete mode 100644 Essentials/xinput.yml diff --git a/Essentials/xinput.yml b/Essentials/xinput.yml deleted file mode 100644 index efcc00a..0000000 --- a/Essentials/xinput.yml +++ /dev/null @@ -1,37 +0,0 @@ -Name: xinput -Description: Microsoft XInput (Xbox controller support) -Provider: Microsoft -License: -License_url: -Dependencies: [] -Steps: -- action: download_archive - file_name: directx_Jun2010_redist.exe - url: https://download.microsoft.com/download/8/4/A/84A35BF1-DAFE-4AE8-82AF-AD2AE20B6B14/directx_Jun2010_redist.exe - file_checksum: 822e4c516600e81dc7fb16d9a77ec6d4 - -- action: get_from_cab - source: directx_Jun2010_redist.exe - file_name: '*XINPUT*.cab' - dest: temp/XINPUT/ - -- action: get_from_cab - source: XINPUT/*x86*.cab - file_name: '*.dll' - dest: win32/ - -- action: get_from_cab - source: XINPUT/*x64*.cab - file_name: '*.dll' - dest: win64/ - -- action: override_dll - bundle: - - value: xinput1_1 - data: native,builtin - - value: xinput1_2 - data: native,builtin - - value: xinput1_3 - data: native,builtin - - value: xinput9_1_0 - data: native,builtin \ No newline at end of file diff --git a/index.yml b/index.yml index 0ac0836..c3db4da 100644 --- a/index.yml +++ b/index.yml @@ -202,9 +202,6 @@ xact_x64: Description: MS XACT Engine (64-bit only) Category: Essentials Arch: win64 -xinput: - Description: Microsoft XInput (Xbox controller support) - Category: Essentials ie8_kb2936068: Description: Cumulative Security Update for Internet Explorer 8 Category: Essentials