atar-axis / xpadneo

Advanced Linux Driver for Xbox One Wireless Controller (shipped with Xbox One S)
https://atar-axis.github.io/xpadneo/
GNU General Public License v3.0
1.96k stars 112 forks source link

Some games do not detect the gamepad while using xpadneo #241

Closed DaiKaiser93 closed 3 years ago

DaiKaiser93 commented 4 years ago

Version of xpadneo

0.8.2 ## Severity / Impact

Describe the bug

The gamepad is not registered in the following games (GOG ver.) -Hellpoint -Pathfinder: Kingmaker -One Step from Eden

Steps to Reproduce

Trying to play the GOG build without steam ## Expected behavior

Screenshots/Gifs

System information

# uname -a
Linux manjaroos 5.7.14-1-MANJARO #1 SMP PREEMPT Fri Aug 7 10:12:32 UTC 2020 x86_64 GNU/Linux
# xxd -c20 -g1 /sys/module/hid_xpadneo/drivers/hid:xpadneo/0005:045E:*/report_descriptor | tee >(cksum)
00000000: 05 01 09 05 a1 01 85 01 09 01 a1 00 09 30 09 31 15 00 27 ff  .............0.1..'.
00000014: ff 00 00 95 02 75 10 81 02 c0 09 01 a1 00 09 33 09 34 15 00  .....u.........3.4..
00000028: 27 ff ff 00 00 95 02 75 10 81 02 c0 05 01 09 32 15 00 26 ff  '......u.......2..&.
0000003c: 03 95 01 75 0a 81 02 15 00 25 00 75 06 95 01 81 03 05 01 09  ...u.....%.u........
00000050: 35 15 00 26 ff 03 95 01 75 0a 81 02 15 00 25 00 75 06 95 01  5..&....u.....%.u...
00000064: 81 03 05 01 09 39 15 01 25 08 35 00 46 3b 01 66 14 00 75 04  .....9..%.5.F;.f..u.
00000078: 95 01 81 42 75 04 95 01 15 00 25 00 35 00 45 00 65 00 81 03  ...Bu.....%.5.E.e...
0000008c: 05 09 19 01 29 0a 15 00 25 01 75 01 95 0a 81 02 15 00 25 00  ....)...%.u.......%.
000000a0: 75 06 95 01 81 03 05 01 09 80 85 02 a1 00 09 85 15 00 25 01  u.................%.
000000b4: 95 01 75 01 81 02 15 00 25 00 75 07 95 01 81 03 c0 05 0f 09  ..u.....%.u.........
000000c8: 21 85 03 a1 02 09 97 15 00 25 01 75 04 95 01 91 02 15 00 25  !........%.u.......%
000000dc: 00 75 04 95 01 91 03 09 70 15 00 25 64 75 08 95 04 91 02 09  .u......p..%du......
000000f0: 50 66 01 10 55 0e 15 00 26 ff 00 75 08 95 01 91 02 09 a7 15  Pf..U...&..u........
00000104: 00 26 ff 00 75 08 95 01 91 02 65 00 55 00 09 7c 15 00 26 ff  .&..u.....e.U..|..&.
00000118: 00 75 08 95 01 91 02 c0 85 04 05 06 09 20 15 00 26 ff 00 75  .u........... ..&..u
0000012c: 08 95 01 81 02 c0                                            ......
3445511648 1458

Controller and Bluetooth information

xpadneo-btmon.txt

xpadneo-dmesg.txt

Bus 003 Device 002: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0

xpadneo-lsusb.txt

Additional context

Both Hellpoint & Pathfinder detected the gamepad while on 0.8.1 but there were problems with the stick buttons, in Pathfinder the left click wasn't detected and the right click was detected as the left one, and in Hellpoint the only one of the 2 to work was the left one but it was detected as the [G] keypad, in One Step from Eden the game didn't rely on the stick buttons so it was fully playable.

EDIT: Forgot to add that the games work when the gamepad is connected via USB.

kakra commented 4 years ago

Does it work with git master?

DaiKaiser93 commented 4 years ago

@kakra I installed it using the master branch, the problem still persist, the games mentioned detect my DS4 without problem, but they refuse to detect the Xbox one S unless is via USB.

kakra commented 4 years ago

So it's detected in v0.8.1 but not with newer versions of the driver? That's strange...

Maybe remove that last line from /etc/udev/rules.d/98-xpadneo.rules (or put a # in front):

ACTION=="add", DRIVERS=="xpadneo", SUBSYSTEM=="input", TAG+="uaccess", MODE="0664", ENV{LIBINPUT_IGNORE_DEVICE}="1"

It tells libinput to ignore the device, that's just there to work around a bug in libinput. Game input devices should never show up in libinput but since we also expose a single keyboard key, libinput wrongly adds us to its device list. To let udev pick up the change, the most easy way is to reboot.

DaiKaiser93 commented 4 years ago

@kakra I installed it using the master branch, the problem still persist, the games mentioned detect my DS4 without problem, but they refuse to detect the Xbox one S unless is via USB.

DaiKaiser93 commented 4 years ago

@kakra I tried removing the line but it did nothing, also I closed the threat by mistake.

DaiKaiser93 commented 4 years ago

I installed it using the v0.8-29-gd55e6d4 from the release/v0.8 branch, and now it works as it did back in 0.8.1.

I realized that the bindings for the guide button and the thumb sticks are switched: Guide=RS RS=LS LS=Guide

kakra commented 3 years ago

Does it work in v0.8.3?

DaiKaiser93 commented 3 years ago

@kakra it gets detected as it did back in v0.8.1 although the thumbs & guide button keep on having the wrong mappings on said games. Anyway, as it is now detected I'm going to mark it as closed.

kakra commented 3 years ago

Okay... The remaining problem may be related to how SDL and xpadneo interact with each other. May be worth a new issue report, or one of the existing already covers it.