http://bugs.winehq.org/show_bug.cgi?id=35815
Bug ID: 35815 Summary: Allow remapping of joystick buttons Product: Wine Version: 1.7.14 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: directx-dinput Assignee: wine-bugs@winehq.org Reporter: achurch+wine@achurch.org
Some Windows games only accept a limited number of joystick button inputs, presumably based on the set of joystick devices against which the game was tested. If the native driver for a device returns different button numbers than the Windows driver, this can prevent some common controller devices from being used with such games. For example, the PlayStation 3 controller reports its face buttons as button numbers 12-15, but apparently the commonly used Windows driver "MotioninJoy" remaps these to lower button numbers; due to that, some games (such as Astebreed: http://edelweiss.skr.jp/works/astebreed/) only accept up to 12 button inputs, preventing PS3 controllers from working properly.
The attached patch (against Wine 1.7.14) adds a "ButtonMap" configuration value to the DirectInput registry key, allowing the first 16 joystick button inputs reported by Wine to be remapped to arbitrary native joystick buttons. The format of the value is a comma-separated list of numbers, with the first number giving the (zero-based) physical button index for DirectInput button 0, the second number giving the physical button index for DirectInput button 1, and so on for up to 16 buttons.