DS4Windows is a portable programme that allows you to go the best experience while using a DualShock four on your PC. Past emulating a Xbox 360 controller, many more games are accessible and you can play PC games using the PlayStation controller.


  • Utilize X360-like input to use the DS4 in more games and have rumble
  • Use the same app for mapping a DS4, DualSense, Switch Pro, and JoyCon
  • Use the touchpad as a mouse or for more actions
  • Utilise sixaxis movement for just every bit many deportment
  • Control the Lightbar: turn it off, dynamically alter by bombardment level, and more than
  • Map the buttons and sticks to other 360 controls or keyboard actions or macros
  • Use profiles to quickly switch between configurations for your controllers
  • Automatically switch profiles past when a sure program(south) is launched
  • Agree an action to admission a new whole prepare of controls
  • Get a reading of how the sticks and sixaxis is working
  • Assign a deadzone to both analog sticks, the triggers, and the sixaxis
  • Automatically go new updates


  • Windows ten or newer (Cheers Microsoft)
  • Microsoft .Net four.8 or higher
    (needed to unzip the commuter and for macros to work properly)
  • Visual C++ 2015-2019 Redistributable. x64 or x86
  • ViGEmBus commuter (DS4Windows will install it for you)
  • Microsoft 360 Driver
    (link inside DS4Windows, already installed by Windows if you’ve used a 360 controller before)
  • Sony DualShock 4


  • Excerpt the 2 programs from zip file (DS4Windows and DS4Updater)
  • Launch DS4Windows and choose where you want to relieve profiles
  • A windows will pop upward showing how to install the driver, if not, go to settings and click “Controller/Driver Setup”
  • If yous have used SCP’due south tool in the past, you may need to uninstall the drivers to use the DS4 with Bluetooth
  • Connect the DS4 via a micro usb or through bluetooth (DS4 Device name: “Wireless Controller”) may need to enter pair code: 0000)
  • All should be skilful to go in one case yous connect the controller, if not restart DS4Windows, or even your computer.

Note: Some games work with the DS4 without DS4Windows. Games similar these tin cause double input in menus (ie pressing downward on the dpad moves 2 spaces) or the wrong button to do wrong functions. To solve this, check Hibernate DS4 in the settings, if you see a warning in the log/text on the bottom, that means you must close said game or client that causes the disharmonize and reconnect the controller.

Connection method:

  • Micro USB cable
  • Sony Wireless Adapter
  • Bluetooth 4.0 (via an adapter or built in PC). Merely utilise of Microsoft BT stack is supported. CSR BT stack is confirmed to not piece of work with the DS4 even though some CSR adapters work fine using Microsoft BT stack. Toshiba’s adapters currently do not work. Disabling ‘Enable output information’ in the controller profile settings might help with latency issues, just will disable low-cal bar and rumble support.
  • Disable PlayStation Configuration Support and Xbox Configuration Support options in Steam

What’s New

  • Added output Stick and Axis options for Gyro Mouse Joystick
  • Utilise TabControl to contain gyro output panels. Simplifies XAML
  • Re-enabled DS4 emulation support
  • Added fake DS4 FrameCounter field for DualSense, Switch Pro and JoyCon devices
  • Increased default Idle Disconnect time to fifteen min
  • Disabled DS4 controller emulation support. Can’t have nice things
  • Only perform output slot lookup in virtual device plugin routine when emulating a controller
  • Check for device removal status before calculation device to chief view list. Fixes initial Switch Pro disconnect on hotplug when controller battery is expressionless
  • Inverse mapper to copy timestamp information from original input country object. Used for DS4 Gyro Passthru
  • Changed ControllerListViewModel locking strategy for not-Sony DS4s that might fail the initial handshake
  • Removed OnlyInputData0x01 hack for simulated DS4 controllers (fake DS4 using Sony VID+PID combo)
  • No longer provide support for knockoff simulated DS4 controllers
  • Changed Lightbar TabItem in Profile Editor to use embedded TabControl
  • Added warning text for Lightbar Passthru mode stating the one-time feature is currently disabled
  • Fixed combo box cutoff in Night theme. Contribution by Sajidur78
  • Updated Brazilian Portuguese translation pack. Contribution past nelitow
  • Updated FakerInputWrapper libraries for F13 – F24 fundamental support
  • Added F13 to F24 keys for FakerInput mapping
  • Decreased push wheel delta. Increased button cycle sensitivity. Now uses 150 ms for time delta
  • Updated FakerInputWrapper libraries. Fixes array bounds check for KeyboardReport
  • Fixes for Stick Outer Btn bindings
  • Added ManagementException take hold of for initial connection. Apparently it can be thrown in that phone call.
  • Expanded max output limits for LS and RS
  • Re-design nighttime theme and use theme colors in AutoProfiles. Contribution past Sajidur78
  • Changed DualSense trigger Full Click resistance depending on profile settings
  • Changes to better handle connection failure for Switch Pro and JoyCon devices
  • Another fix for EnhancedKey usage for FakerInput mapping
  • Bundled PurgeOldXInput 0.1.two
Read:  How to Install New Firmware on Router


  • Removed former Input Curve options
  • Corrected coordinate system for Stick to Mouse Wheel
  • Fixed saving of Max Output Force options
  • Aggrandize output for Gyro Mouse Joystick Max Output routine. Make sure maximum output can exist achieved. Likely would non achieve a completely directly line when using Gyro.
  • Expanded macrodone array. Fixes some macro bindings for later virtual buttons
  • Added ‘Hide DS4 Controller’ pick dorsum in again
  • Increased button mouse wheel delta. Decreases bike sensitivity
  • Unified tardily contour options checks
  • Increased resistance range for DualSense trigger Full Click


  • Group and move Virtual Controller options in Other tab. Contribution past Kanuan
  • Fixed MODIFIER_ENHANCED value for FakerInput mapping
  • Fixed Alt, Windows, and other modifier keys mapping for FakerInput
  • Fixed Stick to Mouse Wheel routine for SendInput output
  • Fixed tray carte du jour profile selection for names with underscores
  • Added many tooltip strings in Profile Editor
  • Fixed RenameProfileWindow endmost early on due to early DialogResult assignment. Belongings calls Close on the Window
  • Removed BitChute social link
  • Stock-still brandish of CheckEveryUnit combobox in Settings tab. Not sure when VS inverse that portion of the XAML
  • Removed obsolete ‘Hibernate DS4 Controller’ option over again. Can’t take options
  • Added ScrollViewer to Other tab in Profile Editor. Enough controls in tab to justify it
  • Added force pick for LS and RS MaxOutput. Allow 100% forced circular max output for sticks
  • Fabricated Capture, SL, and SR buttons mappable
  • Created Outer Button bindings for LS and RS. Allows extra altitude activeness for the sticks similar Walk or Sprint
  • Display Touchpad X and Y in Controller Readings tab
  • Increased HID report input buffer to 3 rather than two. Not sure it will actually thing
  • Disabled broken DS4 feedback support again. Can’t take semi-nice things. Don’t bring it upward again until at least the side by side ViGEmBus driver update
  • Added modify to not ship Profile loaded message for secondary JoyCon in Joined way
Read:  Latest Firmware Update for Charge 2 Fitbit


  • Stock-still obtaining source index item for Special Activeness list
  • Allow Touchpad Click as an output for Macros
  • Filibuster log bulletin for virtual device association
  • Updated ViGEmPluginFailure message to make reference to PurgeOldXInput utility
  • Added PurgeOldXInput utility to Tools folder. Might be useful for deleting invalid virtual Xbox 360 controllers
  • Updated Japanese translation. Contribution by toshixm
  • Updated Czech translation. Contribution by MikeCZ23
  • Bundled DS4Updater one.5.five


  • Added slot# log messages to a gamepad connect/disconnect handler and ‘permanent’ slot debug msg. Contribution by mika-n
  • Pocket-size special action fix when activity trigger is somehow flagged equally None
  • Added support for virtual KB+1000 driver FakerInput v. 0.ane. Needed to play Valorant and other apps that block SendInput events.
  • Sort Special Action list by action name
  • Fixed event lodge issue that caused output slots to not get disconnected
  • Reduced mouse remainder cutoff to the hundredths identify
  • Fixed OutSlotDevice bank check to make certain Permanent slots are detached on service stop


  • Support for DS3 gamepad as vendor defined device over DsHidMini driver. Contribution by mika-due north
  • Now issue immediate virtual device unplug upon Windows suspend
  • Changed ViGEmBus lookup routine to perform a list based lookup for potential drivers. Endeavour to detect newest version from version info
  • Changed ViGEmClient library to endeavor to connect to newest bachelor version of ViGEmBus on a arrangement rather than the get-go version establish
  • Gear up all controller slots to use the Default contour initially when making a new config
  • Immediately consequence unplug of all virtual controllers when pressing chief Finish button
  • Initial implementation of HidHide integration. Display primal icon for HidHide subconscious device. Insert DS4Windows.exe into whitelist at startup if necessary
  • Changed method of obtaining current executable file location. Needed due to associates changes in .Cyberspace v breaking support for custom exe filenames
  • Added HidHide installer link to Welcome dialog window
  • Added HidHide Configuration Client app link in Settings tab
  • Hide HidNinja link in Settings tab if HidGuardian is non installed
  • Evidence the text value of ‘Max Saturation’ lightbar setting. Contribution by sabihoshi
  • Changed Launch Programme special activeness to apply UseShellExecute


  • Fixed launching of HidGuardHelper for .NET 5 usage
  • Fixed URL cord generation for updater version redirect on download failure
  • Fixed a few typos in the English strings. Contribution past instilledbee
  • Bundled HidGuardHelper 0.2.0
  • DS4Windows now targets .NET 5
  • Changed ViGEm libraries to target .Net Core 3.1
  • Now use MdXaml rather than Markdown.Xaml for Changelog text rendering
  • Removed Newtonsoft.Json library dependency
  • Removed use of .Cyberspace 5 Runtime cheque nag window
  • Stock-still UDP Server locking device input in .NET 5. Caused past API change for SocketAsyncEventArgs
  • Moved app config loading to occur after logger is created
  • Change extras flag to take electric current DS4Control into account
  • Added additionalProbingPaths to runtimeconfig.json
  • Utilize UseShellExecute for ProcessStartInfo. Due to Process.Start change in .NET 5
  • Added newer bat self deletion routine. Brand sure to return 0 status code in process when performing bat self-delete


  • Ignore duplicate device when in Shared mode
  • Added actress processing to Version string for .NET v and afterwards. Expecting Microsoft to use their own standard was a error
  • Inverse URL used for .Internet five Runtime download
Read:  How to I Update the Firmware for My Nuvi 2595lmt


  • Implemented newer feedback handler routine for virtual DS4 devices. Added virtual DS4 rumble back in
  • Now certain to utilise continuous calibration routine for non-DS4 devices
  • Changed severity of ViGEmPluginFailure message. Now indicates that a user should probably reboot Windows if it happens
  • Fixed JoyCon R Gyro Roll. Old value was inverted
  • Copy modified JoyCon current country for utilise in UDP server
  • Just display device in UDP server if it is a chief device. Mainly needed due to JoyCon R in Joined JoyCon way
  • Added exception catching when saving Deportment xml file. File corruption will now cause the file to be written from scratch
  • Use Task error log helper for some background service tasks. Allows some actress possible error messages to bear witness up in the Log
  • Simplify UDP motion outcome cosmos. Permit motion event to exist created when enabling UDP server
  • Brand Flash at High Latency default to 50 ms
  • Dark Theme color changes. Color contrast has been reduced. Contribution by AnessZurba
  • Skip writing device bike calibraton nodes if empty
  • Now use estimated wheel center values if controller config has an empty entry. Problem caused some app instability and memory bloating due to excessive log letters in Log tab (over 1GB RAM usage)
  • Implemented axial dead zone and related settings
  • Fixed ColorByBattery panel visibility for beginning open. Contribution by MakiseKurisu
  • Changes for continuous calibration routine for Sony Wireless Adapter connections. Contribution past MakiseKurisu
  • Tweaked profile loading for some older fallback options


  • Fixed resetting of trigger values for 2 Stage modes
  • Removed references to old Discord server
  • Pull gyro calibration sampling routine out to its own method
  • Fixed normal push bounden to Touchpad Click output
  • Attempt to go to DS4Updater Release page if automatic download of updater failed
  • Added GitHub link to Social row in Nigh window
  • Fixed x86 ViGEm installer URL


  • Added an extra precaution to unplug whatever permanent output devices upon service stop. ViGEmBus should handle this already just just want to brand certain.
  • Updated Polish translation. Contribution by gregory678
  • Changed locking strategy for ControllerSlotManager drove
  • Stock-still correct click disconnect slot index for new sorted listing
  • Implemented a variant of Two Phase Triggers
  • Added Trigger effects presets. Currently only useful for the DualSense controller
  • Added averaging gyro calibration upon device connection. Contribution by firodj
  • Skip unknown DS4Controls names while loading a profile
  • Stock-still issue with missingSettings being prepare for fallback value lookup on Profile load. Constantly re-saved profiles
  • Just reset outDevTypeTemp on full profile relieve. Ensured proper controller image is used in Bounden window after clicking Apply in Profile Editor
  • Change arrangement of lit LED lights for DualSense controller
  • Let Touchpad Click button passthru with Mouse and Controls style
  • Changed device type settings. Now utilise device specific (serial) settings. Now saved to ControllerConfigs.xml
  • Added check for valid output report types upon DS4 BT device connection. Can revert to using output study 0x11 if needed. Non certain if it will affair
  • Ignore output plugin routine and other calls if requested profile file does not exist