ValveSoftware / ValveSoftware/wine

Remapping joystick axes through the registry

Open
#258 5 comments 1 reaction 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.