Closed DiamivaeBro closed 4 months ago
This looks similar to https://github.com/atar-axis/xpadneo/issues/461 which suggests that it is a third-party bug, not directly caused by xpadneo itself.
Do you know how to compile software from source? If yes, please go to the directory misc/examples/c_hidraw
and run make
there. It will create an application ./hidraw
. To run it, it expects the hidraw device of xpadneo as parameter (see dmesg
after connecting the controller).
It will open a fullscreen text window where you can use different keys to send raw rumble commands to the controller. Please check if that works:
--[ MotorEnable ]---------------[ Strength in % ][ 10ms ][cnt]--
03 1 1 1 1 0 0 0 0 040 030 020 020 005 005 003
| | | | | | | | | | |
STR WEA LTR RTR - - - - STR WEA LTR RTR SUS REL LOP
[1] [2] [3] [4] q/a w/s e/d r/f h/j k/l u/i <-- keys, or Enter = SEND, Ctrl+C = ABORT
Using keys 1-4, you can switch the bits which enable programming one of the motors. Your model will probably ignore that. STR/WEA/LTR/RTR is the strength of the strong, weak, left trigger and right trigger rumble motors individually.
SUS/REL is the duration in steps of 10ms to sustain and release the rumble. Your controller model may ignore that. LOP tells the firmware how often to repeat/loop SUS/REL, it's probably ignored, too, by your model.
The default values should give you a rumble on all motors. Set STR/WEA/LTR/RTR to 0 to make it stop rumbling if your controller ignores the SUS/REL timing.
If this makes the controller rumble, everything is fine. Then we need to figure out why user-space cannot rumble the controller. If it doesn't rumble with this test, it simply doesn't work at the hardware level, and xpadneo has no chance to rumble the controller. Some multi-platform controllers cannot rumble in Bluetooth mode.
Sorry but it doesnt building
❯ LANG="en" make
cc -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -I/usr/include/ncurses -lncurses -Wl,--push-state,--as-needed -ltinfo -Wl,--pop-state hidraw.c -o hidraw
/usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: /tmp/cc0MQNDH.o: undefined reference to symbol '_nc_COLS@@NCURSES6_TINFO_5.7.20081102'
/usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: /usr/lib64/gcc/x86_64-suse-linux/13/../../../../lib64/libtinfo.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [<builtin>: hidraw] Error 1
UPD I fixed by -ltinfo flag It looks like
❯ CPPFLAGS="-ltinfo" make
It vibrating!
It vibrating!
Okay, this tells us that the controller can rumble in Bluetooth mode - and xpadneo will support it: xpadneo currently doesn't check if report 0x03 is available in the HID descriptor, it will just enable it unconditionally.
The other issue found that sometimes the kernel doesn't bind the correct driver, and uses hid-microsoft or hid-generic instead. The latter doesn't support rumble, the former may for some models.
There's also a bug in some SDL2 games (that includes Proton) which may not detect rumble support with xpadneo if the controller connects while SDL2 is already running. The work-around is easy: connect the controller before starting the game. More modern implementations of SDL2 games (may include modern Proton, too) may not have this problem. You can also disable the welcome rumble to work around this issue. A later xpadneo version will fix this.
It looks like
❯ CPPFLAGS="-ltinfo" make
Yeah, good find. This is a problem with some ncurses packaging (the Makefile gets the flags from pkg-config). Gentoo fixed this a long time ago, so I didn't have this failure (it has -ltinfo
in pkg-config). I wonder why you need CPPFLAGS
. Maybe we should set CPPFLAGS = $(CFLAGS)
in the Makefile.
Please re-open, if the latest commit doesn't fix your problem.
Yes,all fixed Thank you!
Version of xpadneo
9.6 FINAL
Controller Model
Gamesir T4 Pro SE2
Connection mode
Installed Software
Protocol Information
Please help us identify at which layer the problem can be found if you want to report mapping errors or if the controller fails to be detected:
evtest
is showing issues (describe the issues below)BTN_NORTH
andBTN_WEST
are intentionally swappedjstest
is showing issues (describe the issues below)gamepad-tool
is showing issues (post console output below)Please describe how it is failing below in the next sections.
Severity / Impact
Describe the Bug
Vibration just doesnt work.No connecting notify,no vibration in games and online tests
Steps to Reproduce
1.Connect gamepad into xbox controller mode 2.Check vibration in any game or in https://mitinogame.ru/gamepad-tester/
Expected Behavior
Gamepad must vibrate
Screenshots / GIFs / Videos
System Information
Controller and Bluetooth Information
Additional Context
Vibration stop working after 9.6 update,but it still working with dongle who emulating xbox 360 controller xpadneo-btmon.txt xpadneo-dmesg.txt