ValveSoftware / ValveSoftware/wine
Remapping joystick axes through the registry
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 2k
- Forks
- 488
- PR merge metrics
- No merged PRs in 30d
Description
I'm trying to remap the axes of a Logitech Extreme 3D Pro controller for Hardwar (appid 1500540), which uses DirectInput and only supports binding the throttle to the Z axis (which is yaw on the joystick) or Slider1/2 (which are not mapped). The throttle that I'd like to use as Slider1 is mapped to Rx in joy.cpl
According to the Wine docs, you can add a SZ entry under HKCU\Software\Wine\DirectInput named after the joydev name of the device to remap the axes, in my case I added these entries (first is the joydev device name, the second is what you see through joy.cpl):
"Logitech Logitech Extreme 3D"="X,Y,Z,Slider1,POV1"
"Logitech Extreme 3D"="X,Y,Z,Slider1,POV1"
This doesn't work; when I run joy.cpl I still see the joystick throttle still bound to Rx and not Slider1.
Is this method of remapping joystick axes still supported? I went through the codebase searching for Software\\Wine\\DirectInput and found a couple hits but I couldn't figure out how it was being used or where this mapping is done.
The Wine wiki also mentions grepping the wine debug logs for joydev_enum_device, but that doesn't turn up. The joystick name only turns up in a hid_joystick_enum_device log.
I also found some references to Software\Wine\DirectInput\Joysticks and Software\Wine\DirectInput\Mapping\[username]\[device]\[guid], are these useful/documented anywhere?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the DirectInput registry paths mentioned in the issue and the hid_joystick_enum_device entry point, then compare that path with the Wine wiki's joydev_enum_device guidance. Check how the Joysticks and Mapping registry keys are consumed and whether joy.cpl reflects them; done means establishing whether the documented remapping is supported and identifying the relevant code path or missing behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 32/100