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