You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.
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.
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):
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.
You can find an easy example using SDL2 at https://gist.github.com/ecsv/5771853
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
The text was updated successfully, but these errors were encountered: