..:: 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.
(04-02-2014, 05:57 PM)itakumre Wrote: [ -> ]Every game console with wireless controllers have this function for a reason. X360 gamepad on PC also have it. Over the years I am used to this, like many others gamers and now I'd like to not be forced to remember about switching off DS4. I have already drained battery because of lack of this "auto off" feature.

Your tool is better in almost all aspects at this point so it is shame for me to go back to inhexster's version.

Keep in mind the main reason that I don't just take DS4Tool 1.3RC4 and integrate it: some games cannot recover from an Xinput controller going away, and quitting the program may have further consequences of not being able to log back on if there is a queue. At one point InhexSTER mentioned that you could change the rate at which the DS4 transmits packets, which should reduce the battery drain significantly if true, by allowing us to go into a low-power higher-latency mode when the controller appears to be idle.

If I do add the auto-disconnection it will only be after also adding settings for configuring it, rather than forcing it on the user. I want the default operation of the program to be "safe" which to me means no unexpected disconnections. The DS4Windows 1.0 Beta is mostly a chance for people to hunt for bugs, but I will be adding a few more features before it makes it to 1.0 Release. Things related to battery life are very much at the top of the list.
DS4Windows 1.0 Beta 2 is out, adding support for rumble swapping as well as a setting to configure automatic idle controller shut-off.
I set automatic idle controller shut-off to 1 second and I don't see anything happening. May I ask what exactly should I look for?

When I use the hide ds4 option, the buttons don't work.

I can't switch touchpad modes while in a fullscreen game.
(04-03-2014, 03:39 AM)shinra358 Wrote: [ -> ]I set automatic idle controller shut-off to 1 second and I don't see anything happening. May I ask what exactly should I look for?

When I use the hide ds4 option, the buttons don't work.

I can't switch touchpad modes while in a fullscreen game.

And switching back to an earlier release fixes it? I don't see any of those issues, just something weird about trying to bind the touchpad right hand side in Button Mode to Middle Click.
I only tried 1.0 beta 2. What is the idle controller shut off supposed to do exactly? Will try previous version.
I have to give the ds4 program focus in order to switch modes. Same with the other version in the other thread.

Edit: Tried version right before beta 2. When trying to change touchpad modes during games, I get constant rumbling. In-game prompts become keyboard prompts instead of controller prompts. As far as the buttons not working, got them to work, it was just that sometimes when trying to switch keypad modes during the game (mgr for example) the characters just starts to charge his weapon and I can't move. I thought that it didn't switch modes because I may have overpressed and thought I went back to the default when I didn't. So that part was a false alarm. But each version still shows keyboard prompts instead of pad prompts though. I still don't see the idling time doing anything though.

With certain auto temp disabling programs, being on a 'non-admin account' with ' password on resume from screensaver' turned on makes the temp disabling process not work. Maybe it's the same here?
The idle-shutoff does what it says, shut down after a number of seconds of idle timeout you specify. I changed mine from 0 to 30 and hit "Set" and thirty seconds later, my controller disconnected. I can't reproduce your mode switching problems... What about if it's minimized to the tray? It is supposed to switch and show you a notification that it switched. What version of Windows are you running exactly? The exact version of .NET CLR may matter too.
Hey, electrobrains, any ideas of how to fix the hotplugging thing? Whenever I connect the controller through Bluetooth when the tool is already running, it turns the lightbar off and doesn't show any controller as being connected. It only works if I connect the controller first, and then start the tool; this makes starting it up with my PC pretty impossible.
(04-03-2014, 05:47 AM)electrobrains Wrote: [ -> ]The idle-shutoff does what it says, shut down after a number of seconds of idle timeout you specify. I changed mine from 0 to 30 and hit "Set" and thirty seconds later, my controller disconnected. I can't reproduce your mode switching problems... What about if it's minimized to the tray? It is supposed to switch and show you a notification that it switched. What version of Windows are you running exactly? The exact version of .NET CLR may matter too.

I have the latest version of .net. I'm on windows 7 ultimate 64-bit.

Edit: Unfortunately, when I tried to use a full priviledged account, idling still didn't work for me Sad

Edit 2: I installed the drivers on my non-admin account. If I switch over to an admin account, I get this error message:
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.ScpForm.ControllerStatusChanged()
   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
----------------------------------------
DS4Tool
    Assembly Version: 1.3.0.0
    Win32 Version: 1.3
    CodeBase: file:///E:/Program%20Files/DualShock%204%20XBOX360%20Controller%20Drivers%20for%20Windows/DS4Tool/DS4Tool.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
----------------------------------------
DS4Control
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///E:/Program%20Files/DualShock%204%20XBOX360%20Controller%20Drivers%20for%20Windows/DS4Tool/DS4Control.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
----------------------------------------
DS4Library
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///E:/Program%20Files/DualShock%204%20XBOX360%20Controller%20Drivers%20for%20Windows/DS4Tool/DS4Library.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.

I have .net framework 4.5.1. If I try to install 4.0 it'll tell me: Same or higher version of .NET Framework 4 has already been installed on this computer.
Idling is for both wired and non-wired right?
(04-03-2014, 01:30 PM)shinra358 Wrote: [ -> ]I have the latest version of .net. I'm on windows 7 ultimate 64-bit.

Edit: Unfortunately, when I tried to use a full priviledged account, idling still didn't work for me Sad

Edit 2: I installed the drivers on my non-admin account. If I switch over to an admin account, I get this error message:
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.ScpForm.ControllerStatusChanged()
   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
----------------------------------------
DS4Tool
    Assembly Version: 1.3.0.0
    Win32 Version: 1.3
    CodeBase: file:///E:/Program%20Files/DualShock%204%20XBOX360%20Controller%20Drivers%20for%20Windows/DS4Tool/DS4Tool.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
----------------------------------------
DS4Control
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///E:/Program%20Files/DualShock%204%20XBOX360%20Controller%20Drivers%20for%20Windows/DS4Tool/DS4Control.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
----------------------------------------
DS4Library
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///E:/Program%20Files/DualShock%204%20XBOX360%20Controller%20Drivers%20for%20Windows/DS4Tool/DS4Library.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.

I have .net framework 4.5.1. If I try to install 4.0 it'll tell me: Same or higher version of .NET Framework 4 has already been installed on this computer.
Idling is for both wired and non-wired right?

No, idle timeout has nothing to do with USB usage of the controller, only Bluetooth. What would be the point?

I don't know where your error is coming from because it gives the vaguest of hints... I'd at least need to get a line number to have a clue. Maybe it will give a better error message if you run a build with debugging symbols? This error is an utter mystery to me; I don't see where a null pointer might be dereferenced. If we can't even get proper backtraces for these crazy errors, I don't see a good way forward short of installing Visual Studio Express and actually using the debugger.

I develop on Windows 8.1 which I upgraded to specifically because of Windows 7's moderately-broken Bluetooth support...
(04-03-2014, 03:10 PM)electrobrains Wrote: [ -> ]No, idle timeout has nothing to do with USB usage of the controller, only Bluetooth. What would be the point?

Oh. The point would be so that the light doesn't stay on when you're doing nothing with the controller while it's still plugged in. Stopping the controller through the program also has the light continuously on. The light doesn't go off unless you unplug the controller or manually change the color to black. I like the light on when I play. I don't like the light on when nothing is being done with the controller. PS3, Xbox, and Wii controllers (yes, the wii has a wired adapter for their wiimotes) do the same thing with their lights with their responding systems. Having the light be on when you are doing things with the controller drains more power than having the light turn off on idle. Just like power management options for laptops.

Edit: The debug exception message:
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.ScpForm.ControllerStatusChanged() in c:\Users\Brian\Documents\GitHub\brianfundakowskifeldman-ds4windows\DS4Tool\ScpForm.cs:line 177
   at ScpServer.ScpForm.Form_Load(Object sender, EventArgs e) in c:\Users\Brian\Documents\GitHub\brianfundakowskifeldman-ds4windows\DS4Tool\ScpForm.cs:line 104
   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) in c:\Users\Brian\Documents\GitHub\brianfundakowskifeldman-ds4windows\DS4Tool\ScpForm.cs:line 159
   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
----------------------------------------
DS4Tool
    Assembly Version: 1.3.0.0
    Win32 Version: 1.3
    CodeBase: file:///E:/Program%20Files/DualShock%204%20XBOX360%20Controller%20Drivers%20for%20Windows/DS4Tool/DS4Tool.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
----------------------------------------
DS4Control
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///E:/Program%20Files/DualShock%204%20XBOX360%20Controller%20Drivers%20for%20Windows/DS4Tool/DS4Control.DLL
----------------------------------------
DS4Library
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///E:/Program%20Files/DualShock%204%20XBOX360%20Controller%20Drivers%20for%20Windows/DS4Tool/DS4Library.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
----------------------------------------

************** 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.

It allows me to continue with the program still though. The version from the other thread doesn't give this message when trying to duplicate it the same way.
Eventviewer doesn't give me anymore detailed info.