[v2 0/1] winejoystick.drv/joystick_osx.c: fixed axes mapping, add feature support

David Lawrie david.dljunk at gmail.com
Fri Jun 10 15:37:02 CDT 2016


This patch fixes Slider and Ry/Rx axes mapping and adds support for
general multi-axis controllers (up to 6-axis controllers), steering
wheels w/ accelerators/brakes, multiple sliders/dials/wheels (up to 3),
rudder pedals, and throttles. 

Fixes:
	1) Slider now maps to Z, U, or V depending on availability
	2) Ry now maps to U
	3) Rx now maps to V

Windows defines Winmm U as Dinput Ry and V as Dinput Rx. Original joystick_osx.c mapping was other way around. This is also a bug in the Linux Winmm joystick version (not fixed with this patch). Sliders are supposed to map to the Z-axis (or U/V axes if Z is taken). 

Adds:

	1) Driver will find Multi-axis controller type in addition to gamepad and joystick

	2a) In function collect_joystick_elements, under Generic Desktop page, patch adds support for multiple Sliders, Dials, and Wheels up to 3. First Slider/Dial/Wheel maps to Z, Second -> U, Third -> V. 

	2b) Patch also adds support for controller features defined by HID Simulation page: Rudder (Rz), Throttle (Z), Steering (X), Accelerator (Y), Brake (Rz).
 
Sources:
https://msdn.microsoft.com/en-us/library/windows/hardware/ff543445(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/hardware/ff538338(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/hardware/ff538340(v=vs.85).aspx
http://opensource.apple.com//source/IOHIDFamily/IOHIDFamily-315.7.16/IOHIDFamily/IOHIDUsageTables.h

Tested on Red Baron 3D, X-wing vs Tie Fighter, X-wing Alliance, Independence War deluxe w/ Logitech Extreme 3D pro and ControllerMate virtual joystick with multiple axes.

David Lawrie (1):
  winejoystick.drv/joystick_osx.c: fixed axes mapping, add feature
    support

Signed-off-by: David Lawrie david.dljunk at gmail.com
---
 dlls/winejoystick.drv/joystick_osx.c | 143 +++++++++++++++++++++++++----------
 1 file changed, 105 insertions(+), 38 deletions(-)

-- 
2.5.4 (Apple Git-61)




More information about the wine-patches mailing list