I recently got a new PC running SteamOS and picked up the Winwing Orion 2 flight system (Joystick, Throttle, and Combat Rudder Pedals).
When trying to play Star Wars: Squadrons (via Proton), I ran into a issue -> the game completely refused to recognize my joystick as a flight stick. Instead, Proton was aggressively wrapping it and forcing it to act like an (xbox) controller (with and without Steam inputs; also this game will in setting UI display name of HOTAS, my throttle and rudder were there but never the joystick (ineresting that only joystick had issue)). Because of this, button binds did not worked, axes were innacurate and nothing I did solved it until:
The Manual Fix
After doing some digging, I managed to fix it manually by editing the game's virtual registry using Protontricks to stop Proton from forcing the stick into Xbox/XInput mode.
Here is what I did:
Opened regedit for the game via Protontricks.
Navigated to: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\WINEBUS\
Found the subfolders matching my joystick's hardware ID (Svn_4098&Pid_bea8).
Changed the keys to force raw HID:
Service: Changed from xinput to winehid
DeviceDesc: Changed to Wine HID compatible device
CompatibleIds: Changed to WINEBUS\WINE_COMP_HID
Once I did this, the game instantly recognized my joystick, throttle, and rudders as three separate HOTAS devices.
The Permanent Code Fix (Pull Request)
I tried to go ahead and submitted a Pull Request to the downstream Wine repo to enable hidraw by default for these Winwing Orion controllers so they bypass the aggressive Xbox controller mapping natively.
The fix covers the entire Orion stack since they are all composite simulation devices that should never be wrapped as gamepads:
Hi,
I recently got a new PC running SteamOS and picked up the Winwing Orion 2 flight system (Joystick, Throttle, and Combat Rudder Pedals).
When trying to play Star Wars: Squadrons (via Proton), I ran into a issue -> the game completely refused to recognize my joystick as a flight stick. Instead, Proton was aggressively wrapping it and forcing it to act like an (xbox) controller (with and without Steam inputs; also this game will in setting UI display name of HOTAS, my throttle and rudder were there but never the joystick (ineresting that only joystick had issue)). Because of this, button binds did not worked, axes were innacurate and nothing I did solved it until:
The Manual Fix
After doing some digging, I managed to fix it manually by editing the game's virtual registry using Protontricks to stop Proton from forcing the stick into Xbox/XInput mode.
Here is what I did:
regeditfor the game via Protontricks.HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\WINEBUS\Svn_4098&Pid_bea8).Service: Changed fromxinputtowinehidDeviceDesc: Changed toWine HID compatible deviceCompatibleIds: Changed toWINEBUS\WINE_COMP_HIDOnce I did this, the game instantly recognized my joystick, throttle, and rudders as three separate HOTAS devices.
The Permanent Code Fix (Pull Request)
I tried to go ahead and submitted a Pull Request to the downstream Wine repo to enable
hidrawby default for these Winwing Orion controllers so they bypass the aggressive Xbox controller mapping natively.The fix covers the entire Orion stack since they are all composite simulation devices that should never be wrapped as gamepads:
4098:bea8— Winwing Orion Joystick Base Metal 24098:bd64— Winwing Orion Throttle Base II4098:bef0— Winwing Orion Combat Rudder Pedals----> Here is the Pull Request with the fix: https://github.com/ValveSoftware/wine/pull/340
I also notified Winwing and requested support for SteamOS, but we'll see.