Bug#713851: [xboxdrv] Rumble with infinite replay doesn't play at all

Sven Eckelmann sven at narfation.org
Sun Jun 23 09:44:52 UTC 2013


Package: xboxdrv
Version: 0.8.5-1
Severity: normal

I noticed a problem with xboxdrv when used together with mupen64plus-input-
sdl. The memory/rumble pack switch effects were played but not the ingame 
effects. The big difference between the two are the length of the effect (or 
actually the replay.length because it is a FF_RUMBLE/FF_PERIODIC effect). 
Switching effects have a specific length and ingame effects have no length 
(aka infinite length) and are stopped when the emulated system requests them 
to be stopped.

An easy example using SDL2 is attached. It can be compiled using

% gcc `sdl2-config --cflags --libs` infinite_rumble_xboxdrv_bug.c \ 
  -o infinite_rumble_xboxdrv_bug

Please read more about the the SDL_HAPTIC_INFINITY at 
http://wiki.libsdl.org/moin.fcg/SDL_HapticRunEffect

The infinite length is really set by replay.length as you can see at following 
places in the code:

http://hg.libsdl.org/SDL/file/1516fe08e6ec/src/haptic/SDL_haptic.c#l758
http://hg.libsdl.org/SDL/file/1516fe08e6ec/src/haptic/linux/SDL_syshaptic.c#l576

Here the important part from the ff-memless driver which shows that effects 
are only stopped when the replay.length is != 0 (it is easier to understand 
than the iforce-ff driver because you don't need the secret hardware specs):

http://lxr.free-electrons.com/source/drivers/input/ff-memless.c?v=3.8#L102
http://lxr.free-electrons.com/source/drivers/input/ff-memless.c?v=3.8#L367

You can also check out hid-pidff.c (pidff_set_effect_report) and compare it 
with the description of Duration for the value Null on page 15 of 
http://www.usb.org/developers/devclass_docs/pid1_01.pdf


--- System information. ---
Architecture: amd64
Kernel:       Linux 3.9-1-amd64

Debian Release: jessie/sid
  500 unstable        www.deb-multimedia.org 
  500 unstable        http.debian.net 
  500 unstable        ftp.debian.org 
  500 testing         http.debian.net 
    1 experimental    www.deb-multimedia.org 
    1 experimental    http.debian.net 

--- Package information. ---
Depends                 (Version) | Installed
=================================-+-=============
libc6                    (>= 2.4) | 
libdbus-1-3            (>= 1.0.2) | 
libdbus-glib-1-2        (>= 0.88) | 
libgcc1              (>= 1:4.1.1) | 
libglib2.0-0          (>= 2.14.0) | 
libstdc++6               (>= 4.6) | 
libudev0                 (>= 146) | 
libusb-1.0-0         (>= 2:1.0.8) | 
libx11-6                          | 


Recommends       (Version) | Installed
==========================-+-===========
python                     | 2.7.5-2
python-dbus                | 1.2.0-2


Package's Suggests field is empty.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.alioth.debian.org/pipermail/pkg-games-devel/attachments/20130623/7ebe7d29/attachment.sig>


More information about the Pkg-games-devel mailing list