All my Apple Apps (iOS) can be found here
Bring your DualSense Controller to life on PC with support for Adaptive Triggers!
Emulate with the following while also getting the functionality of a DualSense Controller:
Xbox360
DualShock 4
OFF (for no Emulation, reading only inside app)
Wheather you're using Steam or a different platform, you will be able to use DualSenseX with all Games!
Connection type supports both USB and Bluetooth with full functionaliy!
To use DualSenseX,
-
Download the DualSenseX-Setup.zip in Assets from the latest release.
- To install, double-click
DualSenseX-Setup.exe
.
- To install, double-click
-
Very important and required get ViGEmBus Driver:
- Download the latest
ViGEmBus
drivers from the ViGEmBus release page. - To install, double-click
ViGEmBus_Setup_{version}.exe
and follow the instructions presented.
- Download the latest
-
Very important and required get HidHide Driver:
- Download the latest
HidHide
drivers from the HidHide release page. - To install, double-click
HidHideMSI.msi
and follow the instructions presented. - MAKE SURE YOU REBOOT TO TAKE EFFECT
- Download the latest
Once thats done, the DualSense Controller should auto connect to the App.
- Support for 20+ Languages
- Self updating App, I will always strive to make the experience easy and hassle free
- Launch App with Windows Startup
- Speaker/Headphone Jack audio (USB ONLY)
- Test out the controller to make sure all the buttons and joysticks function as inteded
- Get Battery life status of controller (Connecting throught USB cable will show 100% needs to be tweaked)
- Configure Controller LED to your liking
- Test out different Adaptive Trigger Modes and controller vibration
- See a list of supported games in the "Games" Tab (Work in progress)
- Game doesnt support controller? Map keyboard button clicks to controller buttons to simulate key pressess.
- Auto connect controller when app launches, with ability to also kill steam if it's running.
- Change between different hand selected backgrounds for the App
- Dark and Light Mode
- Custom Border RGB Color with Transparency options
- and many more...
Join Discord Community!
- Report Issues
- Report Bugs
- Get support
- Ask questions regarding the App and more!
Want to contribute in trasnlating the app? Click below:
Support your game with DualSense Adaptive Trigger Capabilities With DualSenseX App, find out below how to get it setup, and get your game added within the App for all to see and play!
To get this working with your game, you have 2 methods to communicate with the controller.
First one is UDP Server/Client method through Localhost, Project example can be downloaded here
Second one is the Text file method described below:
There are a few things this App will look for when reading this text file to apply the triggers:
-
LeftTrigger=
-
RightTrigger=
-
VibrateTriggerIntensity=
⠀⠀⠀⠀⠀⠀⠀* A value between 0-255 | VibrateTrigger Required to use this * -
CustomTriggerValueLeftMode=
⠀⠀⠀⠀⠀* CustomTriggerValue Required to use this * -
CustomTriggerValueRightMode=
⠀⠀⠀⠀* CustomTriggerValue Required to use this * -
ForceLeftTrigger=
-
ForceRightTrigger=
For the LeftTrigger=
and RightTrigger=
, there are 19 different state possibilites that you can set which are CASE SENSITIVE:
Normal
CustomTriggerValue
GameCube
Resistance
Bow
Galloping
SemiAutomaticGun
AutomaticGun
Machine
Choppy
VerySoft
Soft
Medium
Hard
VeryHard
Hardest
Rigid
VibrateTriggerPulse
VibrateTrigger
for ForceLeftTrigger=
and ForceRightTrigger=
-
When using CustomTriggerValue there are 7 different values that goes into each parentheses 0-255
- Example: ForceLeftTrigger=(0)(0)(0)(0)(0)(0)(0) or ForceRightTrigger=(0)(0)(0)(0)(0)(0)(0)
-
When using Resistance there are 2 different values that goes into each parentheses.
First: 0-9
Second: 0-8
- Example: ForceLeftTrigger=(0)(0) or ForceRightTrigger=(0)(0)
-
When using Bow there are 4 different values that goes into each parentheses.
First: 0-8
Second: 0-8
Third: 0-8
Fourth: 0-8
- Example: ForceLeftTrigger=(0)(0)(0)(0) or ForceRightTrigger=(0)(0)(0)(0)
-
When using Galloping there are 5 different values that goes into each parentheses.
First: 0-8
Second: 0-9
Third: 0-6
Fourth: 0-7
Fifth: 0-255 NOT recomended to go over 40
- Example: ForceLeftTrigger=(0)(0)(0)(0)(0) or ForceRightTrigger=(0)(0)(0)(0)(0)
-
When using SemiAutomaticGun there are 4 different values that goes into each parentheses.
First: 0-7
Second: 0-8
Third: 0-8
- Example: ForceLeftTrigger=(0)(0)(0) or ForceRightTrigger=(0)(0)(0)
-
When using AutomaticGun there are 4 different values that goes into each parentheses.
First: 0-9
Second: 0-8
Third: 0-255 NOT recomended to go over 40
- Example: ForceLeftTrigger=(0)(0)(0) or ForceRightTrigger=(0)(0)(0)
-
When using Machine there are 6 different values that goes into each parentheses.
First: 0-8
Second: 0-9
Third: 0-7
Fourth: 0-7
Fifth: 0-255 NOT recomended to go over 40
Sixth: 0-2 in Decimals, example: 0.1, 0.8, 1.0, 1.8, 2.0 etc..
- Example: ForceLeftTrigger=(0)(0)(0)(0)(0)(0) or ForceRightTrigger=(0)(0)(0)(0)(0)(0)
When using CustomTriggerValue, there are 17 different mode possibilites that are CASE SENSITIVE you can apply for:
CustomTriggerValueLeftMode=
CustomTriggerValueRightMode=
OFF
Rigid
Rigid A
Rigid B
Rigid AB
Pulse
Pulse A
Pulse B
Pulse AB
VibrateResistance
VibrateResistance A
VibrateResistance B
VibrateResistance AB
Vibrate Pulse
Vibrate Pulse A
Vibrate Pulse B
Vibrate Pulse AB
LeftTrigger=Normal
RightTrigger=Normal
LeftTrigger=Rigid
RightTrigger=Rigid
LeftTrigger=Normal
RightTrigger=VibrateTrigger
VibrateTriggerIntensity=40
LeftTrigger=GameCube
RightTrigger=CustomTriggerValue
CustomTriggerValueRightMode=VibrateResistance B
ForceRightTrigger=(10)(255)(0)(0)(0)(0)(0)
LeftTrigger=CustomTriggerValue
RightTrigger=CustomTriggerValue
CustomTriggerValueLeftMode=Rigid A
CustomTriggerValueRightMode=VibrateResistance B
ForceLeftTrigger=(10)(255)(0)(0)(0)(0)(0)
ForceRightTrigger=(10)(255)(0)(0)(0)(0)(0)
LeftTrigger=CustomTriggerValue
RightTrigger=VibrateTrigger
VibrateTriggerIntensity= 10
CustomTriggerValueLeftMode=Rigid A
ForceLeftTrigger=(10)(255)(0)(0)(0)(0)(0)
RightTrigger=Resistance
ForceRightTrigger=(0)(8)
RightTrigger=Machine
ForceLeftTrigger=(0)(9)(7)(7)(10)(0.0)
LeftTrigger=GameCube
RightTrigger=AutomaticGun
ForceRightTrigger=(0)(8)(15)
Note
: Best is to not leave spaces or extra unnecessary lines except for the lines you need to reduce the delay in reading the text file.
You can mix and match between states to get the desired effect for your game.
From previous testing, i believe you can write to text file every frame as the App will only read from that file.
For best results i recommend you include the batch file with your game and have it execute when loading your game which is explained below.
This batch file will open the DualSenseX App and auto connect to the controller, and begin applying the trigger states from the text file.
To get started download the zip file from aboove and attach the .Bat file in the directory of your game. Edit the batch file according to your Game Title and the name of the text file that your game will write to.
Upon launching the game, you should execute this batch file which will open a new window of DualSenseX that takes in 2 paramaters from the batch file explained below and inside the batch file:
Both the batch file and the text file must be in the same directory with your game, the batch file gets the location of the textfile depending on where the batch file is located.
- Replace
GAMENAME
with your Game Title. - Replace
TEXTFILENAME.txt
with your text file name, while also including the .txt extension at the end
This work is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International License.
This App would not be possible without:
- ViGEmBus
- HidSharp
- DualSense2Xbox
- Dualsense, Haptics, Leds, and More (Hid Output Report)
- BLE Inputs
- DualSense-Windows
- DS4Windows
- DualSenseSupport
I thank all of you!