-
d2dbc8db
by Tomasz Pakuła at 2025-03-25T21:50:48+01:00
dinput/tests: Add tests for 6-axis force feedback joystick.
-
e986b80a
by Tomasz Pakuła at 2025-03-25T21:50:48+01:00
include: Define the max number of supported HID PID axes.
-
613997b5
by Tomasz Pakuła at 2025-03-25T21:50:48+01:00
winebus: Support creation of dynamic number of PID axes.
Allow the PID descriptor building function to create up to MAX_PID_AXES
FFB-enabled axes. This will allow better effect handling and support
for devices with more than two FFB axis.
Devices with only one axis, can be actually presented as such.
-
8e3acf8e
by Tomasz Pakuła at 2025-03-25T21:50:48+01:00
winebus: Get the number of haptic axes from SDL.
Wine will now create PID axes in the virtual descriptor based on the
haptic axes found in the SDL joystick.
With the recent SDL hint SDL_JOYSTICK_HAPTIC_AXES, it's possible to limit
the exposed FFB axes to just one, even if device presents more. This, in
turn fixes force feedback in Richard Burns Rally which includes all ffb
axes on effect creation, but then updates this effec with only the
steering axis. Changing cAxes and rgdwAxes after effect creation is
forbidden and renders force feedback broken.
This issue is not wine-specific as the same thing happens on Windows for
all steering wheels which define more than one FFB axis. On windows, this
can be worked around with registry hacks which remove DIDFT_FFACTUATOR
and DIDOI_FFACTUATOR from second axis dwType and dwFlags.
SDL_HapticNumAxes() was available since SDL 2.0