create WASD joystick

Questions and answers about 3Dconnexion devices on Windows.

Moderator: Moderators

Post Reply
AlexHorton
Posts: 2
Joined: Tue Feb 04, 2025 5:36 am

create WASD joystick

Post by AlexHorton »

HI

i need to play games and WASD keys cause me wrisyt issues.
Is there a way i can config it to send WASD commands?
There are old messages about 'shipping with' KeyboardWASDTemplate.xml but i cant find that anywhere on my machine.

any pointers appreciated

thanks


alex
jwick
Moderator
Moderator
Posts: 3417
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: create WASD joystick

Post by jwick »

There will be XML editing involved. I can help you with that.

The file appears to still be shipped. The typical location is:
C:\Program Files\3Dconnexion\3DxWare\3DxWinCore\Cfg

What app/game are you using?
AlexHorton
Posts: 2
Joined: Tue Feb 04, 2025 5:36 am

Re: create WASD joystick

Post by AlexHorton »

that great, thanks.
i saw your name in the file (which i found)

first of all i am struggling to know if its picking up the config/ID etc
the game is unreleased but i have pasted that part below

<ID>AscendantClient-Win64-Test</ID>
<Name>AscendantClient-Win64-Test</Name>
<InheritsFromID>ID_Default_Cfg</InheritsFromID>
</CfgProperties>
<AppInfo>
<Signature>
<Name>AscendantClient-Win64-Test</Name>
<ExecutableName>ascendant.exe</ExecutableName>
<Transport>KMJ</Transport>

the game is called ascendant, the exe is the ascendant.exe part but what shows up in the 3dconnexion app is 'AscendantClient-Win64-Test' so ive been trying with that in the fields above.

am i right to think that this part is already configured?

<Output>
<ActionID>KB_Keystroke</ActionID>
<RepeatStyle>PressAndHold</RepeatStyle>
<KeyStroke>
<Key>08</Key>
</KeyStroke>
</Output>

where '08' is a refernce to a key, question is what is that number mapping based on? doesnt seem to be USB HID mapping.

ultimately i would like to use the 'rotate functions' of the puck to drive the translation ingame so its a palm operated joystick

thanks for your attention


alex
jwick
Moderator
Moderator
Posts: 3417
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: create WASD joystick

Post by jwick »

There are a few things that need to be done to make that work.
There are directions here and there on the forum.
Maybe you have done some of them.

1) It is an <AppCfgTemplate> document type. This is for a template mechanism that didn't survive to release. You need an <AppCfg> document type for an actual program.

2) The easiest way to make one of those for your app is to let the GUI (3DxSmartUI) do it. E.g., open your app, open our GUI, make some change in our GUI. It will write the correct stub of a file for your application in %appdata%\3Dconnexion\3DxWare\Cfg.

3) Then you need to copy over the relevant section from the KeyboardWASDTemplate.xml file. That is the <Devices>...</Devices> section. Replace the <Devices></Devices> section (if any) which 3DxSmartUI wrote into that file with the section from the Template file.

4) Those <Key> elements are HID key values. 08 (hex) is E, 16 is S, etc. Rather than look them up in the HID Usage tables, the easiest way to find them is to record a keyboard macro with our GUI using your keyboard. They can be specific to a keyboard layout.

The best way to test what is happening is to turn on driver logging (3Dx systray icon->Write Log File), then use baretail (or similar) to watch what is being sent to your application. Run baretail on %localappdata%\3Dconnexion\3DxWare\3DxService.log. It will log every keystroke it is sending out.

I also find it is informative to send the keys to notepad.

If you hover over the 3Dx systray icon while the game is running, it will show which XML file is in use.
Post Reply