..:: 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.
(05-21-2014, 12:41 PM)jhebbel Wrote: [ -> ]You must be from across the pond because I got these at 0430 local lol, Typically to search for installed apps you search the apps GUID in registry and the driver in the driver store, but I was getting tons of false negatives possibly because the installer builder we use is a year or two old, so Im actually doing a direct file search for the executables and .sys files. Not technically the correct way but it works.

I take it you found the index out of bounds error aswell?

Yeah I'm from the states. I'm doing the search in DS4Windows using System.Managament, then checking "Win32_PnPSignedDriver". Once if it finds the driver named "Scp Virtual Driver", It goes ahead and runs. If it doesn't the welcome window shows up. I don't get that error, but I did a few null exceptions trying to read the drivers name.
why do you say windows 7 and below have to install 360 drivers? I've never had to do that.
(05-21-2014, 06:08 PM)Jays2Kings Wrote: [ -> ]Yeah I'm from the states. I'm doing the search in DS4Windows using System.Managament, then checking "Win32_PnPSignedDriver". Once if it finds the driver named "Scp Virtual Driver", It goes ahead and runs. If it doesn't the welcome window shows up. I don't get that error, but I did a few null exceptions trying to read the drivers name.
Im stateside as well, musta just been a late night for ya lol.
I ment the error somebody was having with app crashing when run, I was unable to reproduce it but it sounded like you figure out what it was?
(05-21-2014, 06:10 PM)shinra358 Wrote: [ -> ]why do you say windows 7 and below have to install 360 drivers? I've never had to do that.
As I use 8.1 I cannot really say what thats all about with any certainty, but the original app said it was a requirement so I/we included it as well.


I spent a little time today investigating the possibility of forcing the controller to open up its audiosync service but as I suspected even trying to force pair using the UID and GUID of the controller and service bounces back, this really will require a custom HID driver and maybe even a custom bluetooth driver to spoof some information during handshake, this would essentially also mean the dongle could not be used for normal bluetooth communications with non DS4 devices unless some sort of switchstate is implemented.

Frustrated I have refocused my efforts back on to GUI and exception handling, This is the start of my new version that will hopefully be out this weekend:
[Image: 05.21.2014-12.36.png]
(05-21-2014, 06:10 PM)shinra358 Wrote: [ -> ]why do you say windows 7 and below have to install 360 drivers? I've never had to do that.

At first Windows 7 doesn't come with the X360 drivers, Windows 8 does. I'm guessing that some windows update added the driver in.

(05-21-2014, 06:29 PM)jhebbel Wrote: [ -> ]Im stateside as well, musta just been a late night for ya lol.
I ment the error somebody was having with app crashing when run, I was unable to reproduce it but it sounded like you figure out what it was?
As I use 8.1 I cannot really say what thats all about with any certainty, but the original app said it was a requirement so I/we included it as well.

Oh well, I'm not too sure since no one has reported if my second debug worked for them, but I'm assuming somehow the form resize method was used before the constructor finished it's job, and Form_Resize calls an array that somehow didn't get objects yet. For now I added an if said array is not null, then carry on, that should give the constructor enough time to assign the array.
Ok.

BTW, will you add an OS start up option? Right now I'm using a .vbs in order to easily put it at start up or take it away from startup in a couple of clicks. It would be nice if this option was added so I wouldn't have to be ghetto with it xD
(05-21-2014, 06:35 PM)shinra358 Wrote: [ -> ]Ok.

BTW, will you add an OS start up option? Right now I'm using a .vbs in order to easily put it at start up or take it away from startup in a couple of clicks. It would be nice if this option was added so I wouldn't have to be ghetto with it xD

Mine currently has it and here is the code so J2K can add it when he gets the chance:
Code:
bool StartWithWindows
        {
            get
            {
                RegistryKey KeyLoc = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", false);
                if (KeyLoc.GetValue("DS4Tool") != null)
                { return true; }
                else
                { return false; }
            }
            set
            {
                RegistryKey KeyLoc = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);

                if (value)
                {
                    KeyLoc.SetValue("DS4Tool", "\"" + Application.ExecutablePath.ToString() + "\"");
                }
                else
                {
                    KeyLoc.DeleteValue("DS4Tool",false);
                }
            }
        }
(05-21-2014, 06:35 PM)shinra358 Wrote: [ -> ]Ok.

BTW, will you add an OS start up option? Right now I'm using a .vbs in order to easily put it at start up or take it away from startup in a couple of clicks. It would be nice if this option was added so I wouldn't have to be ghetto with it xD

(05-21-2014, 06:40 PM)jhebbel Wrote: [ -> ]Mine currently has it and here is the code so J2K can add it when he gets the chance:
Code:
bool StartWithWindows
        {
            get
            {
                RegistryKey KeyLoc = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", false);
                if (KeyLoc.GetValue("DS4Tool") != null)
                { return true; }
                else
                { return false; }
            }
            set
            {
                RegistryKey KeyLoc = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);

                if (value)
                {
                    KeyLoc.SetValue("DS4Tool", "\"" + Application.ExecutablePath.ToString() + "\"");
                }
                else
                {
                    KeyLoc.DeleteValue("DS4Tool",false);
                }
            }
        }

I'm not too sure if I'll go about that, but since there's auto updates you can make a shortcut for DS4Tool and place it in "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp". This folder always runs the programs/shortcuts in the start.
(05-21-2014, 06:50 PM)Jays2Kings Wrote: [ -> ]I'm not too sure if I'll go about that, but since there's auto updates you can make a shortcut for DS4Tool and place it in "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp". This folder always runs the programs/shortcuts in the start.

The registry is actually the best way to do it, start up folder is just the legacy method left in place by windows to support older applications, not to mention its not as compatible from system to system as roaming profile enabled environments can move this into appdata and older OSs have it in C:\Users etc. Creating a autorun checkbox does not hinder auto updates in any way and since its only a checkbox you are giving the user the option to use it or not.
(05-21-2014, 06:50 PM)Jays2Kings Wrote: [ -> ]I'm not too sure if I'll go about that, but since there's auto updates you can make a shortcut for DS4Tool and place it in "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp". This folder always runs the programs/shortcuts in the start.

@Jays2Kings: Yeah but that was the point. To not be able to that and for it to act like a real driver. The .vbs I made creates the shortcut inside that startup folder. But I didn't think that was the professional way to go about it so that's why I had asked.


@jhebbel: what other things do you plan to add to your version in the future?
(05-21-2014, 06:54 PM)jhebbel Wrote: [ -> ]The registry is actually the best way to do it, start up folder is just the legacy method left in place by windows to support older applications, not to mention its not as compatible from system to system as roaming profile enabled environments can move this into appdata and older OSs have it in C:\Users etc. Creating a autorun checkbox does not hinder auto updates in any way and since its only a checkbox you are giving the user the option to use it or not.

Hmm I see. Well It doesn't look too hard to add so I'll add it in the next build.