-
Notifications
You must be signed in to change notification settings - Fork 808
Exclusive Mode (Hide DS4 Controller config option) tips and issues
What is "Hide DS4 Controller" option in DS4Windows application and why some games require that mode?
DS4Windows application outputs re-mapped buttons, touchpad and gyro functionalities through a virtual output controller device (ViGem device driver handles these virtual controllers). The virtual x360 or dualshock4 device (a profile option defines the type of the virtual controller) is an additional device and the original physical controller is also still visible for games. At first this may seem perfectly OK and there should not be any problems because you should be able to choose which controller is used in an application. However, some applications may behave oddly (menu navigation moves two lines at the time, a game character or a camera keeps on running or spinning around or something else) or even crash when button events are coming simultaneously at the same time over two controller devices (from the original physical Controller HID device and from a virtual HID device). This is not exactly DS4Windows issue, but a game bug. Fortunately there is a workaround.
If an application or a game works just fine without Hide DS4 Controller/Exclusive Mode option then you don't have to enable this mode, but not all applications are smart enough to see the difference between original and virtual devices.
One solution to this "double controller" problem is to hide the physical gamepad controller from applications, so the application see and receives re-mapped button events from the virtual output device only.
This is the purpose of "Hide DS4 Controller" option. DS4Windows tool tries to hide the original controller device by acquiring an exclusive access to the physical controller device and this way preventing any other application to see that device. Applications would see and receive re-mapped button presses, touchpad events and gyro events from the virtual controller device only.
What to do if DS4Windows fails to enable exclusive mode?
The use of exclusive mode requires that at the time when DS4Windows tool is started and a controller is connected then no other application should hold an open connection to the controller. If there are existing connections to the controller then it is too late for DS4Windows tool to acquire exclusive access, so the original HID device remains visible. In this case DS4Windows logfile shows a message "failed to enable exclusive mode".
To solve problems with exclusive mode you should try to close all other applications which may be using the original controller and to re-connect the DS4 controller (or press "Stop/Start" button in DS4Windows option screen). If DS4Windows tool is the first application opening a connection to the controller then DS4Win can acquire the exclusive access and this way hide the original device.
If your PC starts automatically various applications on system boot then try to arrange the start order of those applications which may hold a connection to DS4 controller. Make sure DS4Windows tool is the first application using DS4 controller if "Hide DS4 Controller" (exclusive) mode is used. Alternative solution is to use HidGuardian tool because it works without exclusive mode (see bottom of this page for more info).
Applications known to cause problems with exclusive mode
Following list is not a complete list of applications which may be running in your system in the background and may have an open connection to the original DS4 controller. Sometimes very unexpected application may have an open connection to Dualshock4 controller without your knowledge and this way preventing DS4Windows tool to enable "Hide DS4 Controller" exclusive mode.
-
NVIDIA GeForce Experience and in-game overlay
Disable GeForce in-game overlay feature in NVIDIA options or enable it only after you have started DS4Windows tool. -
Steam client
Steam client supports "big screen mode" and various gamepad controllers (including DualShock4). Disable gamepad support in Steam client at least for DualShock4 device type. -
Ubisoft UPlay client
UPlay supports gamepad navigation. Close UPlay client before launching DS4Windows tool. -
Windows Store application
Windows Store application supports gamepad controller navigations. Shutdown WinStore.app.exe process before launching DS4Windows tool. You can launch WinStore application after DS4Windows has already enabled the exclusive mode. -
Netflix (Win 10 app)
Netflix client supports gamepad navigation. Close Netflix client and terminate its process before opening DS4Windows tool. -
Microsoft Edge
The Microsoft Edge browser window needs to be closed and the background task must be ended in Task Manager. You can use local group policy tool to disable automatic startup of Edge background processes on system boot. See the following web page https://docs.microsoft.com/en-us/microsoft-edge/deploy/group-policies/prelaunch-preload-gp how to disable two Edge related group policy entries. -
JoyToKey
The JoyToKey is another gamepad remap tool. Some users have reported that having both DS4Windows and JoyToKey apps running may lead to problems when a gamepad is disconnected. Exclusive mode doesn't work when a gamepad is re-connected after a disconnection or DS4Windows doesn't recognize DS4 gamepad at all. -
GameBar (Win 10)
GameBar.exe may hold a open connection to the original DualShock4 controller. You can disable the Game bar in Settings -> Gaming -> Turn off 'Record game clips, screenshots and broadcast using Game bar', and unselect 'Open Game bar using this button on a controller'. -
Oculus Rift tools
If you have installed Oculus Rift VR tools then there may be a background process using a gamepad. Stop "Oculus Rift VR runtime service" background service and launch it after DS4Windows application has started and acquired the exclusive lock to a DS4 gamepad. -
Backgroundtransferhost
This native Windows feature may interfere with exclusive mode. Going to Settings --> Accounts --> Sync your Settings then turn sync off. If that fails to work, the other solution involves regedit - which requires changing the "Start" value inHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TimeBroker
(or timebrokersvs) to 4, a detailed guide can be found here.
Check which process has control of the DS4
The application Process Explorer can be used to find out which process currently has an open handle on the DS4 and making exclusive mode fail. The scan takes a little bit of time but it is helpful in finding problem applications. A link to a guide is provided below.
http://www.imatest.com/2017/01/how-to-determine-what-processes-are-using-a-device/
What is HidHide tool? Are both HideDS4Controller option and additional HidHide tool needed at the same time?
(NOTE! HidGuardian is an obsolete tool. It is nowadays replaced by HidHide tool which does the same, but is more reliable and easier tool to hide physical gamepads. This documentation haven't been updated yet, but please follow HidHide Setup Guide -instructions to uninstall existing HidGuardian driver and replace it with HidHide solution. Whenever documentation pages here talk about HidGuardian reader should make a mental correction to HidHide name until documentation is properly updated. https://vigem.org/projects/HidHide/Simple-Setup-Guide/)
If DS4Windows application fails to acquire exclusive access (Hide DS4 Controller option in DS4Windows settings) in your setup and for some reason you cannot set DS4Windows tool to be the first application using DS4 Controller then there is an alternative way to hide the original gamepad device. HidHide is a Windows kernel mode driver to hide certain devices. The driver goes under the hood (kernel model), so it can do more than application level "exclusive access" option in DS4Windows application can do.
There is no need to use both exclusive mode and HidHide at the same time, so choose only one of these techniques if applications you use require to hide the original gamepad device (required in 97% cases to avoid double controller input problems).
There is a separate documentation page explaining how to install and setup HidHide. However, you should be aware of that HidHide tool is a 3rd party tool and not part of DS4Windows application installation package, so whenever you update DS4Windows application the HidHide driver is not updated. Sometimes DS4Windows documentation and web page may recommend users to upgrade HidHide in case there is a new version available.
HidGuardian helper installer (if you don't want to install HidGuardian manually):
https://github.com/Ryochan7/DS4Windows/wiki/DS4Windows-and-HIDGuardian-Install-and-Setup-Guide#hidguardian-test-installer (EDITED: HidGuardian is an obsolete tool, use HidHide instead nowadays)
(NOTE! HidGuardian is an obsolete tool. It is nowadays replaced by HidHide tool which does the same, but is more reliable and easier tool to hide physical gamepads. This documentation haven't been updated yet, but please follow this instructions to uninstall existing HidGuardian driver and install HidHide. Whenever documentation pages here talk about HidGuardian reader should make a mental correction to HidHide name until documentation is properly updated. https://vigem.org/projects/HidHide/Simple-Setup-Guide/)