Hello dear Proton community
I recently bought a Virpil controller (a Constellation Alpha) and it was recognized as a game pad by my Steam games (Elite Dangerous and Star Wars Squadrons). I tried a lot of different versions of Proton with those games, official, experimental and also from GE.
I was pretty sure that was a Proton (or at least a Steam) issue, and not a Wine issue, because my controller works in Star Citizen that I run through Lutris. I only had to open the wine control panel for my game, run the game controllers settings and move my controller from the xinput section to the "connected" one (the first section of the window settings).
But for my Steam games, I tried a lot of things I found on wine forums, Reddit etc... mainly tweeking regedit keys with no luck, until I found this post: https://www.reddit.com/user/xatrekak/comments/12hnz0d/fixing_vkb_and_virpil_hotas_running_on_linux/ which fixed my issue.
Here is the content of the post:
So there is an issue with the VIRPIL and VKB products being detected as xbox controllers when Running them on Linux, particularly with Elite: Dangerous. Here is how I fixed it.
After weeks of trouble shooting this is the workarounds that I came up with. Hopefully this helps.
This is the standard documented fix:
Open regedit in your WINEPREFIX
Navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\winebus
Create a new DWORD named "Enable SDL" with value 0
Create a new DWORD named "Map Controllers" with value 0
In theory the two values above should prevent wine from mapping your devices to xinput. In my experience this alone does not resolve the problem, so if you still have issues then we need to remove every trace of xinput from the registry without completely nuking the controller (which is what happens when you indiscriminately delete the PID/VID entries from the registry) so also complete the following steps:
Navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\WINEXINPUT
Delete every folder heading under this
Navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\WINEBUS
Expand every heading that matches the VID/PID of your HOTAS (execute lsusb from the terminal to find your VID/PID)
you should see a long ass folder with a name similar to 273&03000000443300009043000011010000&0&0
Change these key values
Name "Service": change the data from xinput -> winehid
Name "DeviceDesc": change the data from: Wine XInput compatible device -> Wine HID compatible device
Name "CompatiableIds": The data field is a multi line input field. delete everything except: WINEBUS\WINE_COMP_HID
Here are some other things related to my setup that some people have found to be necessary and some have had luck without needing:
Running from lutris instead of though Steam/proton
wine version >= lutris-GE-Proton7-27-x86_64
I didn't had to run the game through Lutris though. After applying the regedit changes, my controller axes and buttons became available in the Elite Dangerous settings.
I really hope this feedback will be useful to improve the Proton support of Virpil controllers.
Hello dear Proton community
I recently bought a Virpil controller (a Constellation Alpha) and it was recognized as a game pad by my Steam games (Elite Dangerous and Star Wars Squadrons). I tried a lot of different versions of Proton with those games, official, experimental and also from GE.
I was pretty sure that was a Proton (or at least a Steam) issue, and not a Wine issue, because my controller works in Star Citizen that I run through Lutris. I only had to open the wine control panel for my game, run the game controllers settings and move my controller from the
xinputsection to the "connected" one (the first section of the window settings).But for my Steam games, I tried a lot of things I found on wine forums, Reddit etc... mainly tweeking regedit keys with no luck, until I found this post: https://www.reddit.com/user/xatrekak/comments/12hnz0d/fixing_vkb_and_virpil_hotas_running_on_linux/ which fixed my issue.
Here is the content of the post:
I didn't had to run the game through Lutris though. After applying the regedit changes, my controller axes and buttons became available in the Elite Dangerous settings.
I really hope this feedback will be useful to improve the Proton support of Virpil controllers.