Skip to content

Instantly share code, notes, and snippets.

@assiless
Last active September 7, 2023 16:13
Show Gist options
  • Save assiless/e407bdd4de30cae19282b620793096d5 to your computer and use it in GitHub Desktop.
Save assiless/e407bdd4de30cae19282b620793096d5 to your computer and use it in GitHub Desktop.
Twin USB Joystick
<?xml version="1.0" encoding="utf-8"?>
<Context xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Profiles>
<Profile Title="Twin USB Joystick" Guid="bcd3b74c-f874-4c8d-a238-03423431e670">
<ChildProfiles />
<Mappings>
<Mapping Title="Cross">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="1" KeyValue="50" KeySubValue="0" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="ButtonToButton">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="1" KeyValue="0" KeySubValue="0" />
</Outputs>
<Filters />
<Invert>false</Invert>
</Plugin>
</Plugins>
</Mapping>
<Mapping Title="Circle">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="1" KeyValue="49" KeySubValue="0" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="ButtonToButton">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="1" KeyValue="1" KeySubValue="0" />
</Outputs>
<Filters />
<Invert>false</Invert>
</Plugin>
</Plugins>
</Mapping>
<Mapping Title="Square">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="1" KeyValue="51" KeySubValue="0" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="ButtonToButton">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="1" KeyValue="2" KeySubValue="0" />
</Outputs>
<Filters />
<Invert>false</Invert>
</Plugin>
</Plugins>
</Mapping>
<Mapping Title="Triangle">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="1" KeyValue="48" KeySubValue="0" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="ButtonToButton">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="1" KeyValue="3" KeySubValue="0" />
</Outputs>
<Filters />
<Invert>false</Invert>
</Plugin>
</Plugins>
</Mapping>
<Mapping Title="L1">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="1" KeyValue="54" KeySubValue="0" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="ButtonToButton">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="1" KeyValue="4" KeySubValue="0" />
</Outputs>
<Filters />
<Invert>false</Invert>
</Plugin>
</Plugins>
</Mapping>
<Mapping Title="R1">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="1" KeyValue="55" KeySubValue="0" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="ButtonToButton">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="1" KeyValue="5" KeySubValue="0" />
</Outputs>
<Filters />
<Invert>false</Invert>
</Plugin>
</Plugins>
</Mapping>
<Mapping Title="Share">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="1" KeyValue="56" KeySubValue="0" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="ButtonToButton">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="1" KeyValue="8" KeySubValue="0" />
</Outputs>
<Filters />
<Invert>false</Invert>
</Plugin>
</Plugins>
</Mapping>
<Mapping Title="Option">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="1" KeyValue="57" KeySubValue="0" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="ButtonToButton">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="1" KeyValue="9" KeySubValue="0" />
</Outputs>
<Filters />
<Invert>false</Invert>
</Plugin>
</Plugins>
</Mapping>
<Mapping Title="Up">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="2" KeyValue="0" KeySubValue="0" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="ButtonToButton">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="2" KeyValue="0" KeySubValue="0" />
</Outputs>
<Filters />
<Invert>false</Invert>
</Plugin>
</Plugins>
</Mapping>
<Mapping Title="Right">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="2" KeyValue="0" KeySubValue="1" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="ButtonToButton">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="2" KeyValue="1" KeySubValue="0" />
</Outputs>
<Filters />
<Invert>false</Invert>
</Plugin>
</Plugins>
</Mapping>
<Mapping Title="Down">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="2" KeyValue="0" KeySubValue="2" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="ButtonToButton">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="2" KeyValue="2" KeySubValue="0" />
</Outputs>
<Filters />
<Invert>false</Invert>
</Plugin>
</Plugins>
</Mapping>
<Mapping Title="Left">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="2" KeyValue="0" KeySubValue="3" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="ButtonToButton">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="2" KeyValue="3" KeySubValue="0" />
</Outputs>
<Filters />
<Invert>false</Invert>
</Plugin>
</Plugins>
</Mapping>
<Mapping Title="L2">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="1" KeyValue="52" KeySubValue="0" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="ButtonToAxis">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="0" KeyValue="4" KeySubValue="0" />
</Outputs>
<Filters />
<Range>-100</Range>
<Initialize>true</Initialize>
<RangePressed>100</RangePressed>
</Plugin>
</Plugins>
</Mapping>
<Mapping Title="R2">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="1" KeyValue="53" KeySubValue="0" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="ButtonToAxis">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="0" KeyValue="5" KeySubValue="0" />
</Outputs>
<Filters />
<Range>-100</Range>
<Initialize>true</Initialize>
<RangePressed>100</RangePressed>
</Plugin>
</Plugins>
</Mapping>
<Mapping Title="R">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="0" KeyValue="20" KeySubValue="0" />
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="0" KeyValue="8" KeySubValue="0" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="AxesToAxes">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="0" KeyValue="2" KeySubValue="0" />
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="0" KeyValue="3" KeySubValue="0" />
</Outputs>
<Filters />
<InvertX>false</InvertX>
<InvertY>false</InvertY>
<Sensitivity>100</Sensitivity>
<Linear>false</Linear>
<DeadZone>0</DeadZone>
<CircularDz>false</CircularDz>
</Plugin>
</Plugins>
</Mapping>
<Mapping Title="L">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="0" KeyValue="0" KeySubValue="0" />
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="0" KeyValue="4" KeySubValue="0" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="AxesToAxes">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="0" KeyValue="0" KeySubValue="0" />
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="0" KeyValue="1" KeySubValue="0" />
</Outputs>
<Filters />
<InvertX>false</InvertX>
<InvertY>false</InvertY>
<Sensitivity>100</Sensitivity>
<Linear>false</Linear>
<DeadZone>0</DeadZone>
<CircularDz>false</CircularDz>
</Plugin>
</Plugins>
</Mapping>
<Mapping Title="LS">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="1" KeyValue="58" KeySubValue="0" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="ButtonToButton">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="1" KeyValue="6" KeySubValue="0" />
</Outputs>
<Filters />
<Invert>false</Invert>
</Plugin>
</Plugins>
</Mapping>
<Mapping Title="RS">
<DeviceBindings>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32" KeyType="1" KeyValue="59" KeySubValue="0" />
</DeviceBindings>
<Plugins>
<Plugin xsi:type="ButtonToButton">
<Outputs>
<DeviceBinding IsBound="true" DeviceConfigurationGuid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8" KeyType="1" KeyValue="7" KeySubValue="0" />
</Outputs>
<Filters />
<Invert>false</Invert>
</Plugin>
</Plugins>
</Mapping>
</Mappings>
<InputDeviceConfigurations>
<DeviceConfiguration Guid="245d82b7-c3fa-4d68-a6dc-0c4c08a18b32">
<Device Title="Twin USB Joystick # 2" ProviderName="SharpDX_DirectInput" DeviceHandle="VID_0810&amp;PID_0001" DeviceNumber="1" />
<ShadowDevices />
</DeviceConfiguration>
</InputDeviceConfigurations>
<OutputDeviceConfigurations>
<DeviceConfiguration Guid="0c8c12a5-ec69-407c-84c2-e5789bbd68d8">
<Device Title="ViGEm DS4 Controller 1" ProviderName="Core_ViGEm" DeviceHandle="ds4" DeviceNumber="0" />
<ShadowDevices />
</DeviceConfiguration>
</OutputDeviceConfigurations>
</Profile>
</Profiles>
</Context>
<PadSetting>
<PadSettingChecksum>d7a3035b-470d-9059-e1c7-a78d0e0c6be9</PadSettingChecksum>
<ButtonA>3</ButtonA>
<ButtonB>2</ButtonB>
<ButtonBack>9</ButtonBack>
<ButtonStart>10</ButtonStart>
<ButtonX>4</ButtonX>
<ButtonY>1</ButtonY>
<DPadDown>d3</DPadDown>
<DPadLeft>d4</DPadLeft>
<DPadRight>d2</DPadRight>
<DPadUp>d1</DPadUp>
<GamePadType>1</GamePadType>
<LeftMotorPeriod>60</LeftMotorPeriod>
<LeftShoulder>7</LeftShoulder>
<LeftThumbAxisX>a1</LeftThumbAxisX>
<LeftThumbAxisY>a-2</LeftThumbAxisY>
<LeftThumbButton>11</LeftThumbButton>
<LeftTrigger>5</LeftTrigger>
<RightMotorPeriod>120</RightMotorPeriod>
<RightShoulder>8</RightShoulder>
<RightThumbAxisX>a6</RightThumbAxisX>
<RightThumbAxisY>a-3</RightThumbAxisY>
<RightThumbButton>12</RightThumbButton>
<RightTrigger>6</RightTrigger>
<ButtonADeadZone>8192</ButtonADeadZone>
<ButtonBDeadZone>8192</ButtonBDeadZone>
<ButtonBackDeadZone>8192</ButtonBackDeadZone>
<ButtonStartDeadZone>8192</ButtonStartDeadZone>
<ButtonXDeadZone>8192</ButtonXDeadZone>
<ButtonYDeadZone>8192</ButtonYDeadZone>
<LeftThumbButtonDeadZone>8192</LeftThumbButtonDeadZone>
<RightThumbButtonDeadZone>8192</RightThumbButtonDeadZone>
<LeftShoulderDeadZone>8192</LeftShoulderDeadZone>
<RightShoulderDeadZone>8192</RightShoulderDeadZone>
<DPadDownDeadZone>8192</DPadDownDeadZone>
<DPadLeftDeadZone>8192</DPadLeftDeadZone>
<DPadRightDeadZone>8192</DPadRightDeadZone>
<DPadUpDeadZone>8192</DPadUpDeadZone>
</PadSetting>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment