Seems like https://github.com/wine-mirror/wine/commit/33756286efb9e6b58831b01b9f2ef4d7992a967a cause the problem
Same thing affecting Rocket league with slightly different consequences for me.
054c:0ce6The controller had consistently worked through Rocket League's native DirectInput path with PlayStation icons showing up in game before the issue occured.
While it worked perfectly before I first replugged the controller, after I did suddenly it showed Xbox icons in game.
Since then the native PlayStation controller was not recognized until I replugged it again which is where it would start showing the Xbox icons.
This sequence happened every game launch since the issue first occurred.
[0015.15] Log: Found controller by Product Guid
[0017.99] Log: Assigning DI controller to 0
after replugging:
[3850.37] Log: Detected new XInput controller 0
[3850.37] Log: Unassigning DI controller 0 in favor of XInput controller
[3852.90] Log: Assigning XInput controller to 0
HKLM\System\CurrentControlSet\Enum\WINEBUS\VID_054C&PID_0CE6HKLM\System\CurrentControlSet\Enum\WINEXINPUT\VID_054C&PID_0CE6&IG_00HKLM\System\CurrentControlSet\Enum\WINEXINPUT\VID_054C&PID_0CE6&XI_00HKLM\System\CurrentControlSet\Enum\HID\VID_054C&PID_0CE6&IG_00(protontricks -c 'wine reg delete "HKLM\System\CurrentControlSet\Enum\WINEXINPUT\VID_054C&PID_0CE6&IG_00" /f' 252950) 252950 for RocketLeague. Run this for the other trees aswellWe independently hit the same wall from the other direction while making a virtual DS4 natively detectable in Detroit: Become Human (its libScePad.dll implements the mirror-image of this algorithm: WMI Win32_PnPEntity scan requiring IG_ in DeviceID + VID/PID match before the game enables its PS4 pad path). Decoding both sides produced findings that complement this report:
Why the Proton 10 wbemprox.dll substitution "fixes" it: P11's winexinput lifts the WINEXINPUT\VID_xxxx&PID_xxxx&IG_xx identities into the Enum tree that Win32_PnPEntity serves; P10 didn't expose them, so the dedup algorithm found nothing to reject. The dedup itself is game-side and follows the documented Microsoft algorithm — the regression is the visibility of the twin identities.
Structural detail from the winexinput source (dlls/winexinput.sys/main.c, create_child_pdos + internal_ioctl): each gamepad FDO gets two child PDOs —
...&IG_00, is_gamepad=TRUE): answers IOCTL_HID_GET_* from an in-tree synthetic XInput report descriptor (by design, for XInput translation), never the real device descriptor;...&XI_00, is_gamepad=FALSE): passthrough to the bus parent — the real descriptor.So games that probe the HID interface behind the IG_ identity get the synthetic descriptor, not the controller's real one — which is a second, independent way native Sony detection breaks beyond the WMI dedup (libScePad-style games reject the synthetic caps before ever reading reports).
A workaround we validated end-to-end (shipped as data hex-patches in proton-ds, a DS4-emulation stack): neutralizing the winexinput device-interface GUID (GUID_DEVINTERFACE_WINEXINPUT in hidclass.sys) makes the XI-side interface invisible to XInput/DInput/SDL enumeration simultaneously — for a game that must NOT see the twin, that removes the false-positive side of this class of problems with zero per-game config. (The inverse case — games that require the IG_ identity to exist — we solve by swapping which child carries the real descriptor.)
Happy to test any candidate fix against both game classes (IG_-rejecting: this report's HSR case; IG_-requiring: Detroit/libScePad-style) — they form a neat inverted test pair for whatever exposure/dedup policy lands.
proton experimentalx1 2026-07PROTON_PREFER_SDL=1`x1 2026-06wbemprox.dllx2 2026-08libscepad.dllx1 2026-08incontrolnative.dllx1 2026-06
Description
Proton 11-based Wine builds regress native Sony controller support in Honkai: Star Rail. DualSense and DualShock 4 fail over both USB and Bluetooth, while Xbox controllers work.
PROTON_PREFER_SDL=1also works, but bypasses the native Sony HIDRAW path.This is reproducible on multiple Proton 11-based builds and has also been reported by other users.
Observed behavior
CreateDevice.wbemprox.dllwith the Proton 10 version makes the original, unmodified game accept the controller and makes the HD-haptics audio stream run again.Technical finding
The game uses
InControlNative.dll. Its DirectInput callback implements the same XInput duplicate-device detection documented by Microsoft: enumerateWin32_PNPEntity, find DeviceIDs containingIG_, parse VID/PID, and reject a matching DirectInput device.Under Proton 11, WMI exposes entries such as:
This causes the real DualSense DirectInput device to be classified as an XInput duplicate even though that XInput path is not usable by the game.
Expected behavior
Win32_PNPEntityshould expose XInputIG_identities consistently with devices that are actually available through XInput. A native HIDRAW Sony controller should not be rejected by Microsoft's documented DirectInput/XInput deduplication algorithm.Additional note
Proton 11 has a separate DirectInput mapping difference for this game. That is not required to reproduce the WMI rejection: substituting only Proton 10
wbemprox.dllis sufficient to restore controller acceptance and HD-haptics endpoint activation.The DirectInput mapping issue can be fixed separately by matching Windows behavior for DIPROP_GETPORTDISPLAYNAME.
References