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

Controller stops working after poweroff #747

Closed
zenmetsu opened this issue Jul 4, 2019 · 9 comments
Closed

Controller stops working after poweroff #747

zenmetsu opened this issue Jul 4, 2019 · 9 comments

Comments

@zenmetsu
Copy link

zenmetsu commented Jul 4, 2019

If the battery dies in the controller, or if idle-timeout occurs and the controller shuts off, games no longer see input from the controller after it is powered back up. The touchpad on the controller works to control the mouse, but all other input is absent.

Microsoft's controller control panel sees the button/stick inputs, but games are not seeing it. Entire computer has to be restarted just to restore functionality.

DS4Windows 1.7.11
Windows 10, latest build
No other "competing" software suites are running (Steam, uplay, etc)

Restarting DS4 windows or disconnecting/reconnecting controller does not resolve, only a reboot seems to work.

@mika-n
Copy link
Collaborator

mika-n commented Jul 4, 2019

There has been few reports about weird behavior of the app and controller after PC has went to sleep and woke up again. Unfortunately the exact reason is still unknown and not sure if it is in gamepad driver level or in Vigem virtual gamepad driver or in DS4Win app itself.

#744
#730

If touchpad works to control a mouse but re-mapped gamepad axis/button events don't work then it means that DSWin app can still see the PS4 gamepad,but the virtual gamepad output device is somehow dead. This sounds like VigEm driver issue as mentioned in one of those linked issues.

However, if joy.cpl ControlPanel applet can see the virtual output device (x360 or ds4 virtual output) but games dont then it sounds like an issue in a game. Or do you mean that joy.cpl applet can see the physical DS4 controller (wireless gamepad) device or virtual xbox360 device?

@zenmetsu
Copy link
Author

zenmetsu commented Jul 4, 2019

Not sure. I do see two game controllers, both listed as "Controller (XBOX 360 For Windows)" in joy.cpl when things are messed up. Clicking on Properties will show you the current readout for the controller. One will be live, one will be dead.

If I go to the Devices and Printers control panel page, I will see a Wireless Controller and an Xbox 360 Controller for Windows. This is the case both when it is working and when it is not. The only view that changes, to my knowledge, is the joy.cpl applet showing a second XBorks 360 controller.

If you would have me try something, this is an easily repeatable issue for me.

@mika-n
Copy link
Collaborator

mika-n commented Jul 4, 2019

See the Wiki docs page for more info about the physical cotroller vs virtual control devices and hiding the physical one (exclusive mode in DS4Win application OR alternatively using HidGuardian device driver to do it).
https://github.com/Ryochan7/DS4Windows/wiki/Exclusive-Mode-(Hide-DS4-Controller-config-option)-tips-and-issues

Anyway, seeing two XBOX360 devices indicates that DS4Win app has created a new virtual controller after the controller is powered off and then powered on again due to idle timeout or battery run out of juice. The "Wireless Controller" is the original physical DS4 controller device. It has this name even if you would connect the controller over USB cable instead of bluetooth (BT).

I guess you use BT connection instead of USB connection. Try with and without "Disconnect from BT when stopping" option in DS4Win settings screen.

@zenmetsu
Copy link
Author

zenmetsu commented Jul 4, 2019

I just tried it with the "Disconnect from BT when stopping" option and ran into the same problem with games not seeing the controller. The added complication is that there is only one controller showing up now in joy.cpl... so I'm stumped.

@zenmetsu
Copy link
Author

zenmetsu commented Jul 4, 2019

I used the test installer to install HIDGuardian, but unfortunately it broke my keyboard. I'm now trying to find out how to completely remove the HIDGuardian software, but I can't find detailed guide on how to do so.

@mika-n
Copy link
Collaborator

mika-n commented Jul 4, 2019

The DS4Win "Test Installer" can uninstall HidGuardian. Anyway, I wonder why and how HidGuardian managed to hide your keyboard device. Weird. HidGuardian does go under the hood, so technically it can do that if it is misconfigured. But dont understand how it happened because DS4Win TestInstaller should not do any configs like that (it deals only with DS4 gamepad device identifiers).

@zenmetsu
Copy link
Author

zenmetsu commented Jul 4, 2019

It didn't hide the keyboard device. The driver needs direct access to the keyboard, and apparently it is injecting itself into the path. It is a Corsair K95 if it matters.

@mika-n
Copy link
Collaborator

mika-n commented Jul 4, 2019

See this post for more info about how HidGuardian works and how sysreg entries are used to control what it does and to whom (which devices it monitors and how to whitelist certain processes).
#669 (comment)

Anyway, if K95 keyboard driver doesn't like HidGuardian filtering technique then bad luck. You cannot use it to hide the original device (if some game needs it to be hidden). Alternative option is to use "Hide DS4 Conroller" (=exclusive mode) but it requires that DS4Win app is the first process opening a connection to DS4 gamepad device (as explained in the wiki page linked in an earlier post).

@zenmetsu
Copy link
Author

zenmetsu commented Jul 4, 2019

Thanks for the feedback. The test installer had the uninstall option unintuitively hidden behind the HIDGuardian button. I was able to uninstall it.

After restarting with HIDGuardian uninstalled, my keyboard started working again. By working, I am specifically referring to the functionality provided by the Corsair Utility Engine (RGB lighting, but more importantly macros).

An interesting sidenote is that after going through this whole ordeal, somehow I can no longer replicate my original problem. It appears as if the controller is getting picked up properly after powerdown/disconnect. That said, I will close this issue. Hopefully I'll have more time to throw at the problem later in case others get bitten by this issue.

@zenmetsu zenmetsu closed this as completed Jul 4, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants