..:: 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.
(06-07-2014, 01:32 AM)jhebbel Wrote: [ -> ]We experimented with some cursor hiding options before when developing some point of sale software, and we found the most compatible way was to just swap the cursor itself for a blank one, the issue is if the app crashes for any reason there is nothing to replace it back again, leaving you cursorless.

This just gives me even more of a reason to just move it in the corner instead
Swapping to the corner will leave a pixle showing. When you are viewing thumbnails in bing or google videos, swapping to the corner will stop the video from playing becaue the cursor is no longer highlighting that item. But with replacing with inviso cursor, the cursor will be inviso in the same location and the thumbnail vids will still play because you will still be hovered over them. Most important thing would be to leave the cursor in the last place you know you left it or it would be the same problem as it being hidden forever like in some emulators (hard to pinpoint where you are and may lead to some clicking on things that you didn't mean to click if you have an itchy clicking finger).

Swapping the cursor for an inviso one is better because it wont affect the game minimizing or crashing because the cursor is still there but with just an invisible graphic. Also, some games can hotswap between controller and keyboard. If the cursor is moved, it may move something in the gameplay and mess you up when you're trying to do something. Then there's windows 8 and programs like fences 2, etc. that utilize hot corners so if you push the cursor to the corner, things may activate when you don't want them to. If push comes to shove, I'm sure the PCSX2 team will let you use that part of the code. I have a autohotkey script that does exactly this by I don't know if it can be converted to C sharp or not. But it would be nice to have this way because it would actually cause me to not have 2 other programs to do such a thing anymore. Would be consolidated into one Smile



And just to let you know, having the keyboard keys and gamepad keys to be used together to have the screen not time out was the better way to do that feature that I spoke of earlier. Because if you did it through just the normal code to not have the screen time out, it will not work in certain conditions like when the windows keyboard is up or when an installation is occuring and no one seems to know why. Just elaborating on it to let you know and I thank you for adding it already.


Edit: With the 9.9 version, I get an unhandled exception:

Code:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at ScpServer.WinProgs..ctor(String[] oc, ScpForm main)
   at ScpServer.ScpForm.RefreshProfiles()
   at ScpServer.ScpForm.Form_Load(Object sender, EventArgs e)
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at ScpServer.ScpForm.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18444 built by: FX451RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
DS4Window
    Assembly Version: 1.3.0.0
    Win32 Version: 1.3
    CodeBase: file:///E:/Program%20Files%20(x86)/Sony%20DualShock%204%20Controller%20Driver/DS4Windows%20-%20J2K/DS4Windows.exe
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Management
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Management/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Management.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Program doesn't function because of this.

Lastly, when downloading the updates, I like to keep the most recent zip file (when I download manually) for easy reinstall, etc when I have to redo windows from time to time. Any chance to copy a copy of the update's zip file to the folder that the program is in too?
(06-07-2014, 05:11 AM)shinra358 Wrote: [ -> ]Swapping to the corner will leave a pixle showing. When you are viewing thumbnails in bing or google videos, swapping to the corner will stop the video from playing becaue the cursor is no longer highlighting that item. But with replacing with inviso cursor, the cursor will be inviso in the same location and the thumbnail vids will still play because you will still be hovered over them. Most important thing would be to leave the cursor in the last place you know you left it or it would be the same problem as it being hidden forever like in some emulators (hard to pinpoint where you are and may lead to some clicking on things that you didn't mean to click if you have an itchy clicking finger).

Swapping the cursor for an inviso one is better because it wont affect the game minimizing or crashing because the cursor is still there but with just an invisible graphic. Also, some games can hotswap between controller and keyboard. If the cursor is moved, it may move something in the gameplay and mess you up when you're trying to do something. Then there's windows 8 and programs like fences 2, etc. that utilize hot corners so if you push the cursor to the corner, things may activate when you don't want them to. If push comes to shove, I'm sure the PCSX2 team will let you use that part of the code. I have a autohotkey script that does exactly this by I don't know if it can be converted to C sharp or not. But it would be nice to have this way because it would actually cause me to not have 2 other programs to do such a thing anymore. Would be consolidated into one Smile



And just to let you know, having the keyboard keys and gamepad keys to be used together to have the screen not time out was the better way to do that feature that I spoke of earlier. Because if you did it through just the normal code to not have the screen time out, it will not work in certain conditions like when the windows keyboard is up or when an installation is occuring and no one seems to know why. Just elaborating on it to let you know and I thank you for adding it already.


Edit: With the 9.9 version, I get an unhandled exception:

Code:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at ScpServer.WinProgs..ctor(String[] oc, ScpForm main)
   at ScpServer.ScpForm.RefreshProfiles()
   at ScpServer.ScpForm.Form_Load(Object sender, EventArgs e)
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at ScpServer.ScpForm.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18444 built by: FX451RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
DS4Window
    Assembly Version: 1.3.0.0
    Win32 Version: 1.3
    CodeBase: file:///E:/Program%20Files%20(x86)/Sony%20DualShock%204%20Controller%20Driver/DS4Windows%20-%20J2K/DS4Windows.exe
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Management
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Management/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Management.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Program doesn't function because of this.

Lastly, when downloading the updates, I like to keep the most recent zip file (when I download manually) for easy reinstall, etc when I have to redo windows from time to time. Any chance to copy a copy of the update's zip file to the folder that the program is in too?

I can't seem to repeat that error, could you go to "%appdata%/DS4Tool" and delete auto profiles.xml and see if it works then. Also I'll see if I could actually make it invisible then.
Yes, I'm still getting the error. Not on previous versions though.
Also, why are the virtual bus drivers going into appdata in the ds4tool folder? I already have the virtual bus drivers in my program files area. I am also unable to delete it (vbd).
(06-07-2014, 07:12 AM)shinra358 Wrote: [ -> ]Yes, I'm still getting the error. Not on previous versions though.
Also, why are the virtual bus drivers going into appdata in the ds4tool folder? I already have the virtual bus drivers in my program files area. I am also unable to delete it (vbd).

They only appear if you install the vbus driver in DS4Windows, what do you mean you can't delete it, nothing breaks if you do.

Wait if you can't delete the vbd, that sounds like the appdata folder is in use for some reason, and that's what possibly causing the crash. Try renaming or delete the whole DS4Tool folder (the appdata one), if you can't delete it it seems like another program is using it, if you can and you still get the error, you can try the version below, It might work but you might not see anything in the auto profiles tab.
I never installed the vbd through ds4windows though. I already had them installed separately. When I restarted windows I was able to delete them and the previous version was still working fine. Gonna try the new exe now.

Edit: Still getting the .net framework error.

Edit 2: Send me the new version without the .dll's packed into one exe. This will test to see if that way has a problem with my non-admin account.
(06-07-2014, 07:42 AM)shinra358 Wrote: [ -> ]I never installed the vbd through ds4windows though. I already had them installed separately. When I restarted windows I was able to delete them and the previous version was still working fine. Gonna try the new exe now.

That doesn't make sense, the folder is only made if you see that welcome dialog, and fully download the driver through the tool. Regardless I'm not sure how that error is happening, maybe it's how the dll was merged. I'll just upload a zip with all the dlls exposed, and also I added a try catch where the error might be happening. If that doesn't fix it I'll tackle it tomorrow and see what's going on, but the fact that there's a crash there and the VBD folder is being made is beyond abnormal.
K, now there is just a regular box that says:

"Object reference not set to an instance of an object."


When I press the [OK] button, everything seems to start working normally.


But when I press Save Profile, I get the object reference message again.
(06-07-2014, 08:13 AM)shinra358 Wrote: [ -> ]K, now there is just a regular box that says:

"Object reference not set to an instance of an object."


When I press the [OK] button, everything seems to start working normally.


But when I press Save Profile, I get the object reference message again.

Yeah, I'm sure why that's happening but I'll check it out tomorrow.
Okay cool. I gotta go to bed too xD