{"id":13759758,"url":"https://github.com/Paliverse/DualSenseX","last_synced_at":"2025-05-10T10:30:28.913Z","repository":{"id":37244866,"uuid":"363830718","full_name":"Paliverse/DualSenseX","owner":"Paliverse","description":"Connect your DualSense Controller, use Adaptive Triggers, Emulate Xbox 360 or DualShock 4 through USB or Bluetooth on PC","archived":false,"fork":false,"pushed_at":"2024-11-04T07:26:45.000Z","size":426936,"stargazers_count":1291,"open_issues_count":159,"forks_count":110,"subscribers_count":19,"default_branch":"main","last_synced_at":"2024-11-11T18:11:38.443Z","etag":null,"topics":["adaptive-triggers","adaptive-triggers-pc","dual-sense-on-pc","dualsense","dualsense-controller","dualsense-pc-adaptive-triggers","games","hidhide","ps5-controller","steam","trigger-states","vigembus"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Paliverse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-03T05:55:50.000Z","updated_at":"2024-11-10T17:33:46.000Z","dependencies_parsed_at":"2023-02-18T23:45:30.199Z","dependency_job_id":"540de568-f2ad-445c-bb31-e12171788116","html_url":"https://github.com/Paliverse/DualSenseX","commit_stats":null,"previous_names":[],"tags_count":44,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Paliverse%2FDualSenseX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Paliverse%2FDualSenseX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Paliverse%2FDualSenseX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Paliverse%2FDualSenseX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Paliverse","download_url":"https://codeload.github.com/Paliverse/DualSenseX/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224941224,"owners_count":17395849,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adaptive-triggers","adaptive-triggers-pc","dual-sense-on-pc","dualsense","dualsense-controller","dualsense-pc-adaptive-triggers","games","hidhide","ps5-controller","steam","trigger-states","vigembus"],"created_at":"2024-08-03T13:00:58.760Z","updated_at":"2025-05-10T10:30:28.901Z","avatar_url":"https://github.com/Paliverse.png","language":"C#","funding_links":[],"categories":["C# #","C#","games"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eDualSenseX\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003e\u003c/h3\u003e\n\u003c/p\u003e\n\u003c/p\u003e\n  \u003cp align=\"center\"\u003e\n  \u003cp align=\"center\"\u003e\n     \u003ca href=\"https://localazy.com/p/dsxsteam\" alt=\"langs\"\u003e\n          \u003cimg src=\"https://connect.localazy.com/status/dsxsteam?\u0026style=for-the-badge\u0026content=langs\" /\u003e\u003c/a\u003e⠀\n\u003ca href=\"https://github.com/Paliverse/DualSenseX/releases\" alt=\"Contributors\"\u003e\n          \u003cimg src=\"https://img.shields.io/github/downloads/Paliverse/DualSenseX/total.svg?style=for-the-badge\u0026color=ffffff\u0026logo=windows\" /\u003e\u003c/a\u003e⠀\n\u003ca href=\"https://discord.gg/PUThpCFByn\"\u003e\n          \u003cimg src=\"https://img.shields.io/discord/836790685784211486?logo=discord\u0026label=Discord\u0026style=for-the-badge\u0026color=228B22\"\n           alt=\"chat on Discord\"\u003e\u003c/a\u003e\n     \u003c/p\u003e\n  \u003c/p  align=\"center\"\u003e\n    \u003cp align=\"center\"\u003e\n      \u003ca href=\"https://store.steampowered.com/app/1812620/DSX/\"\u003e\u003cimg src=\"imgs/MainCapsule_RoundedCorners.png\" height=\"200\"/\u003e\u003c/a\u003e\n    \u003c/p\u003e\n  \u003c/p\u003e\n\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e ### ---------------------- **IMPORTANT NOTICE** ---------------------\n\u003e\n\u003e Thank you for using DualSenseX! To continue improving and \n\u003e providing the best possible experience, we’ve transitioned \n\u003e to Steam as DSX.\n\u003e\n\u003e The GitHub version (v1.4.9) is no longer supported or updated. \n\u003e Moving to Steam allows us to deliver frequent updates, \n\u003e faster fixes, and ongoing improvements—all made possible by \n\u003e your support.\n\u003e\n\u003e By upgrading to the Steam version, you’re helping us keep \n\u003e DSX alive, growing, and evolving. Your support ensures \n\u003e that we can continue to build the app you love.\n\u003e \n\u003e[View on Steam](https://store.steampowered.com/app/1812620/DSX/)\n\u003e \n\u003e ### ------------ Search \"DSX\" on Steam to upgrade now! ----------\n\u003e \n\u003e \u003ca href=\"https://store.steampowered.com/app/1812620/DSX/\"\u003e\u003cimg src=\"imgs/AvailableOnSteam.png\" width=\"200\" height=\"auto\"/\u003e\u003c/a\u003e\n\n\u003e [!WARNING]\n\u003e 🛑 DualSenseX Does NOT have a website, please do NOT visit any sites except here.\n\u003e \n\n\n# About App\n### App only works with the `PS5 Controller DualSense`\n\nBring your DualSense Controller to life on PC with support for Adaptive Triggers!\n\nEmulate with the following while also getting the functionality of a DualSense Controller:\n\n`Xbox360`\n\n`DualShock 4`\n\n`OFF (for no Emulation, reading only inside app)`\n\n\nWhether you're using Steam or a different platform, you will be able to use DualSenseX with all games!\n\nConnection type supports both USB and Bluetooth with full functionality!\n\n## Download and Install\n\nTo use DualSenseX,\n\n* Download the **DualSenseX-Setup.zip** in Assets from the [latest release](https://github.com/Paliverse/DualSenseX/releases/latest).  \n    * To install, double-click `DualSenseX-Setup.exe`.\n\n* Very important and required get ViGEmBus Driver:\n    * Download the latest `ViGEmBus` drivers from the [ViGEmBus release page](https://github.com/ViGEm/ViGEmBus/releases/latest).  \n    * To install, double-click `ViGEmBus_Setup_{version}.exe` and follow the instructions presented.\n    \n* HidHide Driver (OPTIONAL):\n    * Download the latest `HidHide` drivers from the [HidHide release page](https://github.com/ViGEm/HidHide/releases/latest).  \n    * To install, double-click `HidHideMSI.msi` and follow the instructions presented.\n    * **MAKE SURE YOU REBOOT TO TAKE EFFECT**\n\nOnce that's  done, the DualSense Controller should auto connect to the App.\n\n \n## **Features:**\n- Support for 20+ Languages \n- Self updating App, I will always strive to make the experience easy and hassle-free\n- Launch App with Windows Startup\n- Speaker/Headphone Jack audio (USB ONLY)\n- Test out the controller to make sure all the buttons and joysticks function as intended\n- Get Battery life status of controller (Connecting through  USB cable will show 100% needs to be tweaked)\n- Configure Controller LED to your liking\n- Test out different Adaptive Trigger Modes and controller vibration\n- See a list of supported games in the \"Games\" Tab (Work in progress)\n- Game doesn't  support controller? Map keyboard button clicks to controller buttons to simulate key presses.\n- Auto connect controller when app launches, with ability to also kill steam if it's running.\n- Change between different hand selected backgrounds for the App\n- Dark and Light Mode\n- Custom Border RGB Color with Transparency options\n- and many more...\n\n## **Screenshot:**\n![Screenshot 2021-05-12 205945](https://user-images.githubusercontent.com/4289084/147269478-d8aae25a-45f0-43f7-b505-5d3c1bdb5b8c.png)\n\n## **Game Mods with DualSenseX**\nList of available Game Mods using DualSenseX to communicate with the controller:\n\n[DualSenseAT Central Hub Mod App](https://github.com/josealissonbr/DualSenseAT)\n```\nCentral Hub Mod App: DualSenseAT\nGame: Many games supported\nAuthor: @TechZiN#7640\n```\n\n[Cyberpunk 2077 Mod](https://www.nexusmods.com/cyberpunk2077/mods/4156?tab=description)\n```\nGame: Cyberpunk 2077:\nMod Name: DualSense Adaptive Trigger Effects (Nexusmods)\nAuthor: @Limai#4799 \n```\n\n[Forza Horizon 4 and 5 Mod](https://github.com/patmagauran/ForzaDualSense)\n```\nGame: Forza Horizon 4 and 5:\nMod Name: ForzaDualSense (Github)\nAuthor: @rotatingFans#3125 \n```\n\n[Game: Assetto Corsa Mod](https://www.racedepartment.com/downloads/dualsensexlink-dualsense-adaptive-trigger-and-led-effects.48675)\n```\nGame: Assetto Corsa:\nMod Name: DualSenseXLink (Race Department)\nAuthor: @ryunyun#0227\n```\n\n[GTA 5 Mod](https://github.com/zelmer69/dualsense4GTA5)\n```\nGame: GTA 5:\nMod Name: DualSense4GTA5 (GitHub)\nAuthor: @John D.#3775 \n```\n\n[Duck Game Mod](https://steamcommunity.com/sharedfiles/filedetails/?id=2654985616)\n```\nGame: Duck Game:\nMod Name: DualSense Adaptive Triggers (Steam)\nAuthor: @ThaPhonk?#9118 \n```\n[Skyrim SE Mod](https://www.nexusmods.com/skyrimspecialedition/mods/66165/)\n```\nGame: Skyrim SE:\nMod Name: Skyrim SE Dual Sense Adaptive Trigger Mod\nAuthor: @dvize#9382 \n```\nDo NOT use these Mods in online games to avoid getting banned, doing so will be at your own risk. DSX will hold NO responsibility for using these Mods.\n\n# **For Game Devs**\n\nSupport 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!\n\n### **Trigger State**\nTo get this working with your game, you have 2 methods to communicate with the controller.\n\nFirst one is UDP Server/Client method through Localhost, Project example can be downloaded [**here**](https://github.com/Paliverse/DualSenseX/raw/main/UDPExample.zip)\n\nSecond one is the Text file method described below:\n\nThere are a few things this App will look for when reading this text file to apply the triggers:\n\n- `LeftTrigger=`\n\n- `RightTrigger=`\n\n- `VibrateTriggerIntensity=` ⠀⠀⠀⠀⠀⠀⠀* A value between 0-255  | VibrateTrigger Required to use this *\n\n- `CustomTriggerValueLeftMode=`⠀⠀⠀⠀⠀* CustomTriggerValue Required to use this *\n\n- `CustomTriggerValueRightMode=`⠀⠀⠀⠀* CustomTriggerValue Required to use this *\n\n- `ForceLeftTrigger=` \n\n- `ForceRightTrigger=` \n\n---\nFor the `LeftTrigger=` and `RightTrigger=`, there are 19 different state possibilities that you can set, which are **CASE SENSITIVE**:\n\n- `Normal`\n- `CustomTriggerValue`\n- `GameCube`\n- `Resistance`\n- `Bow`\n- `Galloping`\n- `SemiAutomaticGun`\n- `AutomaticGun`\n- `Machine`\n- `Choppy`\n- `VerySoft`\n- `Soft`\n- `Medium`\n- `Hard`\n- `VeryHard`\n- `Hardest`\n- `Rigid`\n- `VibrateTriggerPulse`\n- `VibrateTrigger`\n---\nfor `ForceLeftTrigger=` and `ForceRightTrigger=`\n  * When using CustomTriggerValue there are 7 different values that goes into each parenthesis 0-255\n    * Example: ForceLeftTrigger=(0)(0)(0)(0)(0)(0)(0) or ForceRightTrigger=(0)(0)(0)(0)(0)(0)(0)\n  \n  * When using Resistance, there are 2 different values that goes into each parenthesis.\n    * `First: 0-9` `Second: 0-8`\n    * Example: ForceLeftTrigger=(0)(0) or ForceRightTrigger=(0)(0)\n\n  * When using Bow, there are 4 different values that goes into each parenthesis.\n    * `First: 0-8` `Second: 0-8` `Third: 0-8` `Fourth: 0-8`\n    * Example: ForceLeftTrigger=(0)(0)(0)(0) or ForceRightTrigger=(0)(0)(0)(0)\n\n  * When using Galloping, there are 5 different values that goes into each parenthesis.\n    * `First: 0-8` `Second: 0-9` `Third: 0-6` `Fourth: 0-7` `Fifth: 0-255 NOT recomended to go over 40`\n    * Example: ForceLeftTrigger=(0)(0)(0)(0)(0) or ForceRightTrigger=(0)(0)(0)(0)(0)\n\n  * When using SemiAutomaticGun, there are 4 different values that goes into each parenthesis.\n    * `First: 0-7` `Second: 0-8` `Third: 0-8`\n    * Example: ForceLeftTrigger=(0)(0)(0) or ForceRightTrigger=(0)(0)(0)\n\n  * When using AutomaticGun, there are 4 different values that goes into each parenthesis.\n    * `First: 0-9` `Second: 0-8` `Third: 0-255 NOT recomended to go over 40`\n    * Example: ForceLeftTrigger=(0)(0)(0) or ForceRightTrigger=(0)(0)(0)\n\n  * When using Machine, there are 6 different values that goes into each parenthesis.\n    * `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...`\n    * Example: ForceLeftTrigger=(0)(0)(0)(0)(0)(0) or ForceRightTrigger=(0)(0)(0)(0)(0)(0)\n---\nWhen using CustomTriggerValue, there are 17 different mode possibilites that are **CASE SENSITIVE** you can apply for:\n\nCustomTriggerValueLeftMode= \n\nCustomTriggerValueRightMode= \n\n- `OFF`\n- `Rigid`\n- `Rigid A`\n- `Rigid B`\n- `Rigid AB`\n- `Pulse`\n- `Pulse A`\n- `Pulse B`\n- `Pulse AB`\n- `VibrateResistance`\n- `VibrateResistance A`\n- `VibrateResistance B`\n- `VibrateResistance AB`\n- `Vibrate Pulse`\n- `Vibrate Pulse A`\n- `Vibrate Pulse B`\n- `Vibrate Pulse AB`\n\n## **Examples of Trigger States in Textfile:**\n____\n### **Apply Normal State:**\n```\nLeftTrigger=Normal\nRightTrigger=Normal\n```\n\n___________________\n### **Apply Rigid State:**\n```\nLeftTrigger=Rigid\nRightTrigger=Rigid\n```\n___________________\n### **Apply VibrateTrigger State for right Trigger:**\n```\nLeftTrigger=Normal\nRightTrigger=VibrateTrigger\nVibrateTriggerIntensity=40\n```\n___________________\n### **CustomTriggerValue State for right Trigger and GameCube for left Trigger:**\n```\nLeftTrigger=GameCube\nRightTrigger=CustomTriggerValue\nCustomTriggerValueRightMode=VibrateResistance B\nForceRightTrigger=(10)(255)(0)(0)(0)(0)(0)\n```\n___________________\n### **CustomTriggerValue State for both Triggers:**\n```\nLeftTrigger=CustomTriggerValue\nRightTrigger=CustomTriggerValue\nCustomTriggerValueLeftMode=Rigid A\nCustomTriggerValueRightMode=VibrateResistance B\nForceLeftTrigger=(10)(255)(0)(0)(0)(0)(0)\nForceRightTrigger=(10)(255)(0)(0)(0)(0)(0)\n```\n___________________\n### **VibrateTrigger State for Right Trigger and CustomTriggerValue for the left :**\n```\nLeftTrigger=CustomTriggerValue\nRightTrigger=VibrateTrigger\nVibrateTriggerIntensity= 10\nCustomTriggerValueLeftMode=Rigid A\nForceLeftTrigger=(10)(255)(0)(0)(0)(0)(0)\n```\n___________________\n### **Resistance State for Right Trigger :**\n```\nRightTrigger=Resistance\nForceRightTrigger=(0)(8)\n```\n___________________\n### **Machine State for Left Trigger :**\n```\nRightTrigger=Machine\nForceLeftTrigger=(0)(9)(7)(7)(10)(0.0)\n```\n___________________\n### **AutomaticGun State for right Trigger and GameCube for left trigger:**\n```\nLeftTrigger=GameCube\nRightTrigger=AutomaticGun\nForceRightTrigger=(0)(8)(15)\n```\n___________________\n\n`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.\n\nYou can mix and match between states to get the desired effect for your game.\n\nFrom previous testing, I believe you can write to a text file every frame, as the App will only read from that file.\n\nFor best results, I recommend you include the batch file with your game and have it execute when loading your game, which is explained below.\n\n## **Batch File:**\nThis batch file will open the DualSenseX App and auto connect to the controller, and begin applying the trigger states from the text file.\n\nTo get started, download the zip file from above and attach the .Bat file in the directory of your game.\nEdit the batch file according to your Game Title and the name of the text file that your game will write to.\n\nUpon launching the game, you should execute this batch file, which will open a new window\nof DualSenseX that takes in 2 paramaters from the batch file explained below and inside the batch file:\n\nBoth the batch file and the text file must be in the same directory with your game, the batch file gets the location of the \ntext file depending on where the batch file is located.\n\n- Replace `GAMENAME` with your Game Title.\n- Replace `TEXTFILENAME.txt` with your text file name, while also including the .txt extension at the end\n\n\n# Acknowledgement and Reference\nThis App would not be possible without:\n* [ViGEmBus](https://github.com/ViGEm/ViGEmBus)\n* [HidSharp](https://www.zer7.com/software/hidsharp)\n* [DualSense2Xbox](https://github.com/Solla/DualSense2Xbox)\n* [Dualsense, Haptics, LEDs, and More (Hid Output Report)](https://www.reddit.com/r/gamedev/comments/jumvi5/dualsense_haptics_leds_and_more_hid_output_report/)\n* [BLE Inputs](https://gist.github.com/Ryochan7/91a9759deb5dff3096fc5afd50ba19e2)\n* [DualSense-Windows](https://github.com/Ohjurot/DualSense-Windows)\n* [DS4Windows](https://github.com/Ryochan7/DS4Windows)\n* [DualSenseSupport](https://github.com/Mxater/DualSenseSupport)\n\nI thank all of you!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPaliverse%2FDualSenseX","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPaliverse%2FDualSenseX","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPaliverse%2FDualSenseX/lists"}