xow icon indicating copy to clipboard operation
xow copied to clipboard

FF_RUMBLE supported but FF_PERIODIC is not.

Open Moros1138 opened this issue 3 years ago • 1 comments

The Issue

According to Kernel.org documentation regarding force feedback.

In most cases you should use FF_PERIODIC instead of FF_RUMBLE. All devices that support FF_RUMBLE support FF_PERIODIC (square, triangle, sine) and the other way around.

Despite this specification, the XOW driver supports FF_RUMBLE, but not FF_PERIODIC. I gave it a shot at hacking it in but I'm just making things worse. If it's helpful, in controller.cpp, I see FF_RUMBLE, so it seems like at the very least that's the starting point for fixing this issue.

I hope the information is useful. Thanks for your attention.

System Info

Xubuntu 20.04 running in a QEMU VM, on an UNRAID host machine.

My Host Machine:

Intel Core i7 7700K, clocked at 4.2Ghz
32GB DDR4 2133 MHz RAM
NVIDIA GeForce GTX1060 with 6GB DDR5
Intel Onboard Graphics

NVMe SSD from Samsung EVO
Several SSD in a cache pool
Several spinning disk drives for data storage array

My Virtual Machine

Intel Core i7 7700K, 4.2Ghz, (6 Cores allocated)
16GB DDR4 2133 MHz RAM allocated
NVIDIA GeForce GTX1060 with 6GB DDR5 (passthrough)
NVMe SSD from Samsung EVO (passthrough)
USB Hub (passthrough)

Microsoft XBOX Wireless Dongle
various other devices, not pertinent to this situation.

Moros1138 avatar Apr 12 '21 00:04 Moros1138

The hardware supports only rumble. It's the ff-memless driver in Linux which is able to emulate periodic feedback over rumble but that's only true for kernel drivers: ff-memless is a separate feedback driver layer that only kernel drivers can connect to, the kernel drivers itself also only support rumble. With xow being a user-space driver, it has no access to ff-memless: There no user-facing API for the required emulation calls.

kakra avatar Apr 12 '21 06:04 kakra