Skip to content
This repository has been archived by the owner on Jan 1, 2024. It is now read-only.

Troubleshooting

mika-n edited this page Jul 27, 2021 · 68 revisions

Troubleshooting

If you have problems connecting a gamepad controller to DS4Windows or output virtual controller doesn't seem to work then please go through following troubleshooting steps at first

In all cases you should learn (well, not much to be learned there) how to use following tools to verify that a controller can register any button and analog axis activity:

  • Joy.cpl = Windows gamepad/joystick control panel applet. You can run this command by typing this name in "Start menu" (press Windows key). Press "Properties" button for a selected gamepad controller and verify that it can register button activities.
  • HTML5gamepad test app = HTML5 gamepad web app in Chrome and Firefox browsers (https://greggman.github.io/html5-gamepad-test/). Connect a controller to PC and press some buttons while this web page is open.
  • DS4Windows profile editor and "Controller Readings" tab page in options. This will show you input from an analog axies and the size of deadzone range (if defined in DS4Windows profile settings).

General troubleshooting information

  • Read "requirements" topic in the home page of DS4Windows app (https://github.com/Ryochan7/DS4Windows/blob/jay/README.md).
  • Go through existing issue posts in https://github.com/Ryochan7/DS4Windows/issues web page. Try sorting issues by Newest/Recently updated/Most reactions options to see if the issue has been discussed earlier. Different sort order may reveal some old posts which are relevant to your issue.
  • Use "search" field on top left corner to search Ryochan7/DS4Windows issues by a relevant keyword.
  • If you still cannot find a solution and get things working then post a new issue with following information: DS4Windows app version, Windows OS version, gamepad version (official DS4 Sony controller or 3rd party compatible controller), bluetooth or usb connection to PC, the content of Logs tabpage in DS4Windows application when you connect a controller and try to press buttons. And of course explaining the issue in details and what doesn't work as expected.
  • If the issue is not just gamepad connection issue, but more like non-functioning profile re-mapping rules then zip and attach the profile file in your issue post (Github issue web page supports small attachment files and screenshot pictures).

Gamepad connection over bluetooth (BT)

  • At first try to connect the gamepad controller without running DS4Windows application. Windows OS should see the BT controller at first before DS4Windows has any hopes of using the controller over BT connection.
  • If the BT controller is not detected by Windows OS then make sure your PS3/PS4 is shutdown because otherwise the controller may accidentally connect there. Unplug power cord from PS3/PS4 if the controller keeps on turning on the game console.
  • In Windows 10 you can pair BT devices via "Bluetooth and other devices" settings screen (just type in this name in Start menu or find it in Win10 settings dialogs). There should be "Add bluetooth or other devices" button. Press the button and Windows OS starts to look for bluetooth devices.
  • Now press both Share and PS buttons on DS4 controller at the same time for about 3-5 seconds. The DS4 lightbar should start to blink rapidly as an indication that it is trying to pair BT connection.
  • After a while the Windows OS should show you that a Wireless Controller has been connected. If the Windows asks for pairing code then enter 0000 pin code.
  • If DS4 has been successfully connected over BT then Windows OS should show it as "Wireless Controller" (run Joy.cpl command) unless you are running HidGuardian tool to hide certain physical controllers. More about HidGuardian tool later on in this web page.
  • If you are using a USB Bluetooth Adapter and after a Windows Restart, Sleep or Shutdown/Turn On process the controller doesn't reconnect, requiring the controller to be fully removed from the paired device list and then repaired on windows by using the pair button combo on the DS4, try using the bluetooth dongle in another USB port (e.g.: if you are using a 2.0 USB Bluetooth dongle in a 3.0 USB port, try moving the dongle to a 2.0 port).
  • If the DS4 controller seems to have significant input lag over BT connection then check at least following things: Set the power saving plan of the PC to "High Performance" (usually the default in Win10 is balanced), check Windows Device Manager and disable "turn off this device to save power" option in bluetooth device driver (untick the option).
  • There has been reports that GeForce Overlay support has caused extra lag in BT communication. Try to disable GeForce Overlay supports in NVidia GeForce settings.
  • if you have an usb BT dongle then try plugin it to front usb ports instead of to ports in the back of the PC, try different usb2/usb3 ports or try using usb extension cable and this way moving the dongle further away from the "radio storm" caused by the PC chassis.
  • If there are BT lag and connection issues then try testing while WLAN is disabled in a PC and nearby WLAN client machines have been shutdown (mobile phones, tablets). Older WLAN standard and BT shares the same 2.4Ghz radio frequency and some cheap BT chipsets are integrated into WLAN chipsets. These may cause interference to each other.
  • Please note that not all bluetooth chipsets in laptops/PCs/usb dongles are compatible with DS4 controller. The BT chipset should be at least in BT2.1 level. Sony sells an additional "Sony Dualshock 4 USB Wireless Adapter" gadget which supports DS4 bluetooth connection for sure.
  • If you have any issues with high latency(especially using a CSR bluetooth adapter) you can try disabling "Enable output data to DS4". You can do this by editing your controller settings like this: Edit => Other(tab on the right) => Disable "Enable output data to ds4" Afterwards click 'save' and restart DS4Windows to apply the changes.

Gamepad connection over USB

  • If you have any troubles connecting the controller over BT then try to connect the controller over usb cable.
  • Run joy.cpl command to verify that the gamepad controller was detected by Windows OS (it may still be listed as Wireless Controller in Joy.cpl tool even when you connected it over usb cable).

Installing DS4Windows application and ViGem virtual gamepad driver

  • (Required) DS4Windows application. See https://github.com/Ryochan7/DS4Windows/wiki/DS4Windows-and-HIDGuardian-Install-and-Setup-Guide web page for more details where to download and how to install the DS4Windows app itself and required libraries.
  • (Required) ViGem virtual gamepad driver created by Nefarius. DS4Win app uses that driver library to create virtual output gamepad controller devices on the fly. DS4Windows application installer installs the latest supported ViGem driver version if the app detects that the driver is missing. However, you can download and install the ViGem driver manually also before installing DS4Windows app.
  • Sometimes DS4Windows installer fails to download or install ViGem driver files. If DS4Windows app gets stuck at 0% downloading or the app complains that ViGem driver installation failed then try to download the latest version of ViGem driver directly from ViGem web site and running the driver installer outside of DS4Windows app. See the "Link list" at the end of this page.

Nothing works and DS4Windows app and VigEm driver connection silently doesn't do anything?

  • DS4Windows application requires Microsoft .NET Framework 4.6.2 or newer framework and Visual-C++ 2017 runtime libraries. See https://github.com/Ryochan7/DS4Windows/blob/jay/README.md web page for up to date information.
  • VigEm driver requires Visual-C++ 2017 runtime libraries (at least the current version. Some upcoming new version of that driver may upgrade to use more recent VC++ libraries by the time you read this web page).
  • Download required VC++ and .NET runtime libraries from Microsoft web page and install those before installing DS4Windows app and ViGem driver.
  • If DS4Windows app installer keeps complaining that ViGem driver installation failed or the ViGem driver is missing then try to install ViGem driver separately before running DS4Windows application. Download the latest ViGem driver from https://github.com/ViGEm/ViGEmBus/releases web page (DS4Windows app installer uses the same site to download the driver if installer detects that ViGem driver is missing).
  • There has been cases where existing config and profile files (after upgrading from veeery old versions to the latest version) have some weird options and this causes problems. Test DS4Windows app with a new default configuration and profile files by deleting all files and profile subfolder in %APPDATA%\DS4Windows\ folder (or backup existing files to a zip archive before deleting existing config files).
  • Windows 7 needs certain Microsoft hotfixes in order to support the digital signature of ViGem driver. The original Windows 7 doesn't support more recent encryption protocols used to sign drivers, but those missing protocols can be installed by downloading and installing following Microsoft hotfixes. Make sure to download either 64 bit or 32 bit version depending on the bitness of your Windows 7 installation and install Win7 service pack 1 if it is missing. https://docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929. See also https://docs.vigem.org/#!vigem-bus-driver-installation.md for more information.
  • Check "Event Viewer" and DS4Windows log messages. If there are complains about "attempting to start the service winmgmt failed" or "Windows Management Interface not found" then try to do "repair Windows installation" fix using a Microsoft Windows installation media. There has been reports that this fixed a problem of DS4Windows app silently doing nothing when launched -issue. Or run WinOS "WMI repository repair" commands. Repair WinOS WMI repository
  • Some users have reported that certain versions of MSI Afterburner and MSI RTSS RivaTuner apps are not compatible with WPF version of DS4Windows (V2.0+). RTSS prevents DS4Windows app to startup. Try adding DS4Windows.exe file to RTSS application list and set app option as "Application Detection Level=NONE" in RTSS (search issue tickets with these keywords for more information).
  • If DS4Winodws.exe.config file from an old version is mixed with a new version of DS4Windows.exe executable file then it may cause problems. If nothing seem to work then try to download the latest version directly from releases page (see link list at the end of this page) instead of using auto-updater tool to do the update.
  • If you have used Jays2Kings DS4Windows (V1.4.x) version then you may have ScpToolkit and ScpVBus drivers still installed. Those old drivers may cause problems with recent Win10 OS and with the newer ViGem driver used by this Ryochan7 DS4Windows app version. Uinstall ScpToolkit and ScpvBus if you are no longer using the Jays2Kings V1.4.x version ( Uninstall ScpToolkit and ScpVBus )

"Double input" problem in games? Game does all sort of weird things when I press a button (second player drops in, cannot navigate in menus because focus moves two lines when I press a key just once etc)?

  • Use "Hide DS4 Controller" option in DS4Windows app to hide the physical controller from games. The game may see activity both from the physical controller and from a virtual output controller.
  • (Optional) HidGuardian filter driver to hide physical gamepad controllers from games. This tool is not required, but in some scenarios it is recommended tool if the "Hide DS4 Controller" option in DS4Windows app doesn't work in your system. See https://github.com/Ryochan7/DS4Windows/wiki/Exclusive-Mode-(Hide-DS4-Controller-config-option)-tips-and-issues web page for more info about exclusive mode in DS4Win app, double input problem in games and an optional HidGuardian tool.

DS4Windows "Logs" tabpage complains that "exclusive mode failed". What it means and what to do now?

  • See https://github.com/Ryochan7/DS4Windows/wiki/Exclusive-Mode-(Hide-DS4-Controller-config-option)-tips-and-issues web page for more details.
  • The fact is that DS4Windows application must be the first application opening a connection to a physical gamepad controller or the exclusive mode fails. Try to close apps you think may use gamepad controller and launch those apps only after you have started DS4Windows application and connected the gamepad controller.
  • HidGuardian tool is an alternative solution if exclusive mode really doesn't work in your environment.

Games don't see any controller (not the virtual gamepad controller or physical controller)?

  • Check your DS4Window profile. If you have set "Hide DS4 Controller" option (Settings tab page) then the profile SHOULD NOT HAVE "Use DInput only" option checked. Untick this "Use DInput only" option because having both HideDS4Controller and UseDInputOnly options enabled at the same time means that DS4Windows app will hide the physical controller and it won't create an output virtual controller. The result is that you end up without any visible controllers.
  • Make sure the profile has either xbox360 or dualshock4 option selected in "Controller" option (new option in V1.7.6+ versions). This option is not directly linked to the type of physical controller you have. It is the type of output virtual gamepad controller. If a game supports DS4 controller symbols then you may want to use dualshock4 output controller type instead of the default xbox360. However, not all games support DS4 controller type.
  • Open Device Manager in Windows OS and make sure there are no warning icons under "Human Interface Devices" (HID) devices or HID device drivers in disabled state. See the same under "System Devices" for "Virtual Gamepad Emulation Bus" and "HidGuardian Virtual Device" drivers (if you use HidGuardian driver, it is just an optional tool).
  • If you use HidGuardian to hide the original physical controller and you have set the type of virtual output as "dualshock4" instead of x360 then make sure you use revision 2 of DS4 gamepad controller. Otherwise there is a danger that HidGuardian tool will hide both the rev1 physical controller and rev1 virtual controller. See https://github.com/Ryochan7/DS4Windows/issues/669#issuecomment-487302990 post for more info. If you don't know which revision of DS4 gamepad you have then take a look at the https://github.com/Ryochan7/DS4Windows/issues/720#issuecomment-499097172 post to see how to identify the revision of a Sony DS4 controller.
  • Make a note about the version of "Virtual Gamepad Emulation Bus" and "HidGuardian Virtual Device" drivers if you need to post a new problem/bug report and the problem is related to a controller connectivity issue.

Steam doesn't see the virtual output controller if a profile uses the Dualshock4 output type. Steam sees the DS4 controller only if DS4Windows uses xbox360 output controller type.

  • There has been few reports about how the latest version of Steam client actively ignores its DS4 gamepad support if it detects that DS4Windows.exe (and few other applications) process is running. The simple solution is to rename DS4Windows.exe executable to, for example, DS4WinApp.exe name. Remember to copy DS4Windows.exe.config .NET configuration file also to follow the new name because this configuration file sets few memory parameters.
  • This is some questionable decision made by Valve/Steam app instead of providing an option to let users to decide how Steam should behave with DS4 controllers.
  • Please note that you have to do this renaming again when you update the DS4Windows to a new version (manually or letting the DS4Windows autoupdater to do it. Or set the "Custom EXE Name" option in DS4Windows Settings tab page and DS4WUpdater tool tries to follow this custom EXE name). https://github.com/Ryochan7/DS4Windows/issues/750#issuecomment-512657735
  • Some users have reported that there are few games itself (not just Steam client) doing the same "disable DS4 gamepad support if certain apps are running in the background" thing. Games: Shovel Knight.

When a profile uses dualshock4 output controller with HidGuardian tool then both physical and virtual controllers are hidden

  • This is an issue in HidGuardian AffectedDevices sysreg configuration setting. By default HidGuardian hides both physical and virtual gamepad controllers, because those both share the same Sony DS4 hardware ID.
  • The solution for people using DS4 revision2 gamepad is to instruct HidGuardian NOT to hide DS4v1 gamepad type.
  • DS4Windows app and ViGem creates a DS4 virtual gamepad with DS4 revision1 hardware ID, so you can simply instruct HidGuardian NOT to hide DS4v1 gamepads and to hide only DS4v2 gamepads by tweaking HidGuardian AffectedDevices sysreg option.

Easiest way to modify HidGuardian AffectedDevices sysreg entry is to use HidHider tool or you can do it manually via WinOS regedit editor (remove or comment out DS4v1 hardware ID strings).

Tweak HidGuardian settings to NOT hide virtual DS4 output controller


Gamepad inputs seem to be sometimes lost, especially when I press several buttons at the same time

  • Check your profile. Is "Flush HID" option checked? Untick this option because usually this option is not needed. This option would just cause the Windows OS level HID queue to be flushed each time DS4Windows app reads the current state of a controller. This may lead to lost inputs and causes extra burden to HID device driver level.
  • This option is a legacy option used in very early versions of DS4Windows app to overcome a potential problem of "flooding" of HID message queue. New default profiles should have this option unticked, but feel free to play around with this option if you have some latency problems in BT or in game inputs.

When I modify profile options and press "Save profile" button in DS4Windows app then settings are lost the next time I open the profile editor?

  • Maybe there are permission problems with the default profile folder and therefore DS4Windows app fails to write and modify profile files. This is especially true if you selected to install the profile folder under program files folder instead of under the default application profile folder.
  • Open DS4Windows application and go to "Settings" tab page and click "Profile folder" link. It will take you to the current profile folder location (in case you don't remember where it is).

Profile doesn't do what I expect it to do after re-mapping keys?

  • Try starting with a fresh new default profile in case there are some conflicting values. Press "new profile" button in DS4Windows app and select that profile as an active profile.
  • Make sure the profile is active for the controller (see DS4Windows "Logs" tab page. It should list which profile was loaded when you connected the controller).
  • Have you enabled "auto profile" option to change the profile automatically based on the foreground running application? Try disabling that feature if it helps to make sure that correct profile is picked up while you are testing a profile.
  • Make sure there are no special actions bind to a key you are trying to re-map in Controls tabpage of a profile. Having both re-map rule and special action for the same key may cause conflicts (or the key does more than you expected it to do).
  • If you have re-mapped an analog RS or LS stick to a digital button or key, but it is causing constant on/off button events even when a stick is not moved around then check the deadzone setting of the analog axis. Analog sticks are hardly ever completely stable or don't always return to absolute center position when a stick is released (springs wear out or dust inside a controller). By setting a deadzone to analog axis solves this issue. See Settings documentation page for more info.
  • If you use "gyro mouse" or "gyro joystick" functionality (ie. motion sensor drives mouse or LS/RS stick) then make sure you have set a big enough deadzone to LS/RS stick to avoid double feeding the mouse or LS/RS output events. If LS/RS doesn't have deadzone then it may override gyro events because stick is never completely stable in a hardware level even when you don't touch the stick.
  • Use Joy.cpl and html5gamepad test apps to verify button and analog axis activity.

How to run certain tasks when DS4Windows application is launched or stopped?

  • DS4Windows profiles have "Launch program with profile" option. The linked application (EXE or BAT/CMD batch file) is launched when the profile is activated. If you set it to a default profile then the application is launched whenever the default profile is activated at program launch time (or when you switch between profiles).
  • KiwiMonitor is a freeware application (basic version) which runs in a background and can do all sort of things when a certain application is launched or stopped. If the built-in "Launch program with profile" option doesn't do what you want then maybe KiwiMonitor does what you need. KiwiMonitor - App monitoring tool

Detailed debug log file from gamepad connection problems

  • If previous tips didn't help and a gamepad device doesn't work in DS4Windows application then try to run a debug version of DS4Windows application.
  • The debug version generates a detailed log file (shown in Logs tab page of DS4Windows app and in "%APPDATA%\DS4Windows\Logs folder) from a gamepad connection events. This may tell us more about the issue.
  • Download the following ZIP file and extract it into the same folder as your existing DS4Windows V2.x installation (the latest official DS4Windows V2.x release). The DS4WindowsDebug.exe executable re-uses all other files from the official DS4Windows installation (if the debug version doesn't work with the latest official version then try some older V2.x version).
  • Launch DS4WindowsDebug.exe debug executable, open Logs tab page of DS4Windows app and connect the controller.
  • Do this with both USB and BT connected gamepads to see if there are differences. Remember to close and re-launch DS4WindowsDebug.exe app and shutdown DS4 gamepad while changing the connection method to generate a new fresh log dump.
  • Use only one controller at a time when generating the debug logfile.
  • Close and re-launch the debug application if you try several different gamepads.
  • DS4WindowsDebug.exe.config configuration file has additional options to tweak and test a gamepad compatibility. Close the debug app when modifying values in this configuration file.

DS4WindowsWPF_DeviceDetectDebug.zip

Are 3rd party DS4 compatible controllers supported (non-Sony gamepads)?

  • Some non-Sony gamepad controllers work, but others don't.
  • Some controllers work only using USB connection in PC.
  • If DS4Windows application doesn't detect a gamepad (ie. it doesn't show up in Controllers list in DS4Win and Logs tab page in DS4Win doesn't show any details about the gamepad) then the current official version of DS4Windows may not support that particular 3rd party controller. But, all hope is not lost yet. Please download the debug version linked above and try to run it. It should show more details about the connection issue in Logs tab page.

Link list

Clone this wiki locally