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
create WASD joystick
Moderator: Moderators
Re: create WASD joystick
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?
The file appears to still be shipped. The typical location is:
C:\Program Files\3Dconnexion\3DxWare\3DxWinCore\Cfg
What app/game are you using?
-
- Posts: 2
- Joined: Tue Feb 04, 2025 5:36 am
Re: create WASD joystick
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
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
Re: create WASD joystick
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.
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.