..:: PCSX2 Forums ::..

Full Version: DS4Windows -- yet another DualShock 4 driver! (No longer under active development)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Okay, I've managed to deal with the one "Connecting..." issue I was able to reproduce. The only problem that I can still identify on Windows 8 is that disconnecting by holding the PS button never seems to be noticed. That should just be a regression, since I know it worked before, so I'll try older versions... Anyway, this patch for Beta 7 has the possibility that it could remove the Connecting... issue for others, so it's worth a shot. At least it's a small bit of progress.

Leaving myself a note that noticing the DS4 disconnecting via firmware shutdown appears to have broke in the changes between Beta 5 and Beta 6.

Edit: Added back a three second "no data received" full timeout. I don't have any more problems with this version, so I'm posting a full build for testing. Maybe it fixes some of the Windows 7 issues?
Well I just tried that custom Beta 7+.

I tried really hard to completely bug out DS4 Windows like I used to be able to do. It's pretty much an impossibility now. Even attempting to hotplug on Bluetooth, it still didn't completely break like it used to.

That said... Connecting... is still there Sad
I tried beta7+:

This happens always (maybe could be fixed):
* When the xinput device is created the directinput device stops responding. Even if I press stop and exit the tool, the di device will not work again until I reconnect the gamepad.

Now a step by step of what I did and got in my testing:

1-connect the dongle and run the tool. It works correctly (with above problem)
2-put the tool on startup on windows and start windows with dongle connected (above behavior+bsod on shutdown)
3-on startup next time I plugged in the dongle after tool loads (remember it is on startup). Everything looks ok, but when I pres PS button it stays in connecting... On device manager appears xinput and directinput controllers. None of them show the input I give
4-after that I restart driver, exit tool, pull out bluetooth. Start tool again, pull in bluetooth, connect gamepad. Everything looks correct, but on control panel only directinput device appears and it doesn't work (as expected, because as I said before di device stops working until reconect without the tool, but the xinput should be there and it isn't)
5-I reset everything as usual and try again the same as last step 4. On first try to connect it doesn't connect. Pressing stop-start it connects and works. I have the log for that (attached as debug.txt)
6-After that I try ds4tool 1.2.2, plug in bluetooth dongle after the tool start, and then pressing ps button, I get a non working directinput controller.
7-I disconnect everything, reload driver, etc., try again ds4tool 1.2.2. I pull in bluetooth dongle, without connecting gamepad, the tool thinks it connects to the gamepad. On control panel: xinput device, but no directinput. This is weird, so I reset the driver again and without any tool I pull in bluetooth dongle. I get a direcinput device without connecting the gamepad... Strange. My bluetooth dongle is showing on control panel my gamepad with status ok when it is not conneced. And when I connect it, it works. I don't remember if it is always like this and I am getting paranoid, or this is why sometimes, with any tool, the tool tries to create the xinput device even when the gamepad is not present.

This is the only bluetooth dongle I have. I don't know if it is not a very good one, if it is getting crazy because of the tool or what. I hope something of this will help you see where is the problem coming from.
One problem that appears to occur is that sometimes we try to write to the DS4 device before it's ready. Right after connecting via Bluetooth it takes some amount of time to initialize. So here's the summary of the changes in this version:
* 30 second timeout on initial connection, 3 second timeout after we get the first packet
* output to the DS4 does not die just because it failed initially
* 1/4 second timeout after stopping the Xinput device before finishing shutting down the DS4

I can't provoke the "Connecting..." issue at all anymore. I do think there may be further Windows Bluetooth bugs we're encountering when we talk about the device appearing to connect but not even the "Wireless Controller" HID device showing any actual data. Here's an example of a connection that initially reported failure and would not have been retried before:
Code:
1C:66:6D:28:5B:B2 2014-04-17T13:24:35.0477251Z> start
1C:66:6D:28:5B:B2 2014-04-17T13:24:35.0477251Z> encountered synchronous write failure: 170
1C:66:6D:28:5B:B2 2014-04-17T13:24:35.0477251Z> encountered write failure: 170
2014-04-17T13:24:35.0477251Z> Found Controller: 1C:66:6D:28:5B:B2 (BT)
2014-04-17T13:24:35.0627439Z> Controller: 1C:66:6D:28:5B:B2 is ready to use
1C:66:6D:28:5B:B2 2014-04-17T13:24:35.2489793Z> power subsystem octet: 0x04
(04-17-2014, 02:14 AM)DaRkL3AD3R Wrote: [ -> ]Alright, I just tried doing a native DS4 disconnect by holding the PS button for 10 seconds. Whacky behavior here. DS4 Windows doesn't even acknowledge that the controller disappeared. It just stays there, with the Wireless Controller and Xbox 360 Controller both showing as enabled and active in the controller panel for Windows. Turning the DS4 back on ends up with a White LED, but no acknowledgement and reconnection from DS4 Windows. I have to stop and start the server again for it to work, and all this really does is the equivalent of PS+Options, just much slower and much more awkward.

Honestly man, I'm just leaning towards it being a Windows 7 issue. People were getting perfect Bluetooth hotplugging on Windows 8 back in the DS4 Tools beta days. For all this trouble to be put into debugging this and STILL not have a clue what's causing it, I am really just starting to believe it's a Windows issue.

I'm okay to continue down this rabbit hole, but not sure if we'll be satisfied with what we find.

I'm using Windows 8.1 Update 1 x64 and had the same connection problems as you.

edit: but I can't seem to replicate the bug though with beta 7++.
I did a preliminary try on beta7++. I run the tool, after that insert bluetooth dongle (gamepad unconnected but paired). I got the next result (see image and log attached).

If you remember my last post, the direcinput controller was appearing just when I inserted the bluetooth device, without connecting the gamepad. I thought this was not normal. Well, it is not happening now. So either erratic behavior by my bluetooth device (could be, it is like 10 years old) or my last testing session made it go bananas like my poor gamepad yesterday.
(04-17-2014, 02:17 AM)electrobrains Wrote: [ -> ]It was switching modes fine earlier when I tried it but now it isn't. Weird... I'm looking into this right now. Maybe I ought to just revoke Beta 7 from the main page.

Edit: Check to see if you don't have a bunch of instances of "Unbound" in your Button Mode mapping. You want everything to be "Fall-Through" if you don't want to use it, and for now you should not try and change Options or Share to anything else. I was able to provoke this problem and then after fixing the mapping to reset the Unbound ones to Fall-Through, so they disappeared from the mapping file, switching modes stopped being problematic. Here's a button mode mapping file I've tested and know works for me.

I used beta7++ and your button mapping profile and still have the same issues. It's like the controller is never in button lock mode. Here are my steps.

Fresh folder with just beta7++ and your profile. Start up the controller, and by default the touchpad is disabled. Went to configure touchpad left and right button to "start", saved and set. Change profile to button mode. As soon as I click down on the touchpad it changes to cursor mode (and vibrates which is odd.. and keeps vibrating intermittently). Using the hotkeys to change to button mode will also force it to skip over it and jump to cursor mode. If I push the two buttons (touch pad button and options) together and let go quickly, I can get it to stay on button mode, but as soon as I push down on the touchpad it switches immediately back to cursor mode (and vibrates).
(04-17-2014, 04:00 PM)knewknow Wrote: [ -> ]I used beta7++ and your button mapping profile and still have the same issues. It's like the controller is never in button lock mode. Here are my steps.

Fresh folder with just beta7++ and your profile. Start up the controller, and by default the touchpad is disabled. Went to configure touchpad left and right button to "start", saved and set. Change profile to button mode. As soon as I click down on the touchpad it changes to cursor mode (and vibrates which is odd.. and keeps vibrating intermittently). Using the hotkeys to change to button mode will also force it to skip over it and jump to cursor mode. If I push the two buttons (touch pad button and options) together and let go quickly, I can get it to stay on button mode, but as soon as I push down on the touchpad it switches immediately back to cursor mode (and vibrates).

Does this take care of the problem? It checks for hotkeys in the DS4 state before the Button Mode can remap buttons instead of checking the remapped state. You can still confuse things by changing the standard mapping to have different Share/Options buttons...
(04-17-2014, 04:30 PM)electrobrains Wrote: [ -> ]Does this take care of the problem? It checks for hotkeys in the DS4 state before the Button Mode can remap buttons instead of checking the remapped state. You can still confuse things by changing the standard mapping to have different Share/Options buttons...

Yup. Seems to work. I mapped both touchpad sides (button) to start and the binding is now working fine. Is there a way to disable the mouse cursor though while in button mode? I can still move it around with the touchpad. Also, every time I push the touchpad button the rumble turns on. It seems that the left side will make a hard rumble while the right side is soft.
After I kept trying with many version of the tools and having random problems with everyone, it is getting clear to me that my problems are caused by a broken gamepad or broken bluetooth device or some kind of misconfiguration/corruption on my windows related to the bluetooth device (before it worked, now it doesn't, with any version of the tool).

I'll borrow a bluetooth this afternoon from a friend and see what happens, so don't take seriously my latest testings.