ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
23.96k stars 1.05k forks source link

OpenTX Radios in Joystick mode not recognized #3704

Open tenten8401 opened 4 years ago

tenten8401 commented 4 years ago

In games like Liftoff, DCL or DRL Simulator running under Proton either doesn't recognize an OpenTX-based controller or recognizes something but it's output is completely unusable. Interestingly enough the wine joystick settings in the control panel seem to read the joystick without any issues as well as steam input, just in-game it's unusable even with steam input off or on. DRL is using Rewired from the Unity store for control if it helps at all, I'm not sure about the two others. A PS4 controller works flawlessly in these games.

If you need any additional testing / info let me know.

System Information

bree29 commented 4 years ago

@tenten8401 LiftOff is also a Unity game using Rewired. I am facing the same issue (see sources) with the TX RC recognised, but not operational (in my case, it sees the inputs, but only if my throttle is at MAX or MIN ; and these inputs are chaotic, random, when I move my sticks. In DRLSim, I face the same issue as you.

I'd like to add some info that might help considering the kernel modules loaded for these RC, with the dmesg log when I plug my Taranis (OpenTX) on USB.

[59679.528436] usb 1-3: new full-speed USB device number 42 using xhci_hcd
[59683.820380] usb 1-3: device descriptor read/64, error -71
[59699.416146] usb 1-3: device descriptor read/64, error -110
[59699.652132] usb 1-3: new full-speed USB device number 43 using xhci_hcd
[59699.801257] usb 1-3: New USB device found, idVendor=0483, idProduct=5710, bcdDevice= 2.00
[59699.801259] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[59699.801260] usb 1-3: Product: FrSky Taranis Joystick
[59699.801261] usb 1-3: Manufacturer: FrSky
[59699.801262] usb 1-3: SerialNumber: 00000000001B
[59699.802799] input: FrSky FrSky Taranis Joystick as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:0483:5710.0013/input/input42
[59699.802893] hid-generic 0003:0483:5710.0013: input,hidraw1: USB HID v1.11 Gamepad [FrSky FrSky Taranis Joystick] on usb-0000:00:14.0-3/input0

Also, note that I tried some proton versions, and I get stricktly no input from proton 4.2-9, but I have these chaotic inputs (still, I get inputs....) with upper versions (4.11-13, 5.0-9)

Note that the RC are well understood my Linux in /dev/input/js0 or diagnotic tool or whatever tool to set up joysticks (jstest or jstest-gtk)


Off Topic : Also, I personnaly didn't try this workaround but if someone have a testing machine to give it a try, it would be interesting to know if it works (don't want to ticle my kernel)

0-ks commented 4 years ago

I have some ideas that might help to solve the problem, but I don't have an OpenTX radio to try, so could you please try the following:

First thing I would do is to disable Steam's global controller configuration support, and also force Steam input off for DRL just to be sure. (Steam > Settings > Controller > General Controller Settings > Uncheck all the boxes) (Right click > Properties > Steam Input per-game setting > Forced Off)

Then try to rearrange Axes using jstest-gtk Mapping tool, then Calibrate all the Axes by clicking on Calibration > Start Calibration button, then rotate the sticks to move all 4 axes to their most extreme positions at least once, then move the throttle down to zero and leave it there, and let the other stick to center, before clicking on ok move all the sliders to max and then return to their minimum positions, and then press OK. (Keep in mind that this is not persistent across reboots)

Then if DRL still doesn't recognize the channels, I would try remapping using one of the tools mentioned here.

If none of these worked it should be possible to emulate a XBOX Controller using Steam input, by going to (Steam > Settings > Controller > General Controller Settings > Check Generic Gamepad Configuration Support) and (Right click > Properties > Steam Input per-game setting > Use your global Steam input settings) then launch DRL and (Ctrl + Shift) to bring up Steam Overlay then click on (Controller configuration) and use that tool to create a suitable layout.

sfjuocekr commented 3 years ago

DCL works no problem for me!

outerSpaceToast commented 3 years ago

It seems that this is not only a problem of OpenTX radios. Also my standard gamepad (Snakebyte) shows this behaviour.

sfjuocekr commented 3 years ago

It is only DRL, all the others I've tried work no problem!

howels commented 3 years ago

I have this issue in DCL as well - OpenTX is never detected as a proper controller, only as a gamepad which means that assigning axis and custom switches is very difficult. LiftOff is the only sim on steam where the controller is mapped correctly.
DCL - sees RC controller as gamepad (loss of functionality) DRL - doesn't see RC controller at all

Additional: it is desirable to have these RC controllers recognised as a special input device. When running LiftOff (Linux native) the OpenTX controller is recognised and all switches can be used and axis can be freely mapped according to the setup of that specific controller. However when detected as an Xbox gamepad the axis cannot be remapped correctly, the buttons/switches cannot be used. In addition many games (DCL) add an annoying dead-band in the centre of the stick. This avoids issues with jitter on cheap Xbox gimbals but prevents exactly the type of fine control which these RC controllers are designed for.

bree29 commented 3 years ago

@howels For DCL, there is a workaround I've found you might find useful. I didn't found anything for "reset" switch but didn't work hard on it. I think it's achievable the same way. On my post, there is a specific part about the deadband I've managed to get rid off. If you meet some "not centered stick", you can fix it in the opentx settings (weight/offset).