..:: 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-23-2014, 11:11 PM)Jays2Kings Wrote: [ -> ]It's all software, it's turned on by the software and the value is also changed by it. Without it, the controller would stay on until the controller died or lost connection.

Also I didn't go with a toggle because unless I use the registry, the program wouldn't know where to save or load the preference. What issues are you having with it?

As for the window size change, it happens to fit the profile settings if the window size is too small, then goes back to it's old size after you finish. If you leave it a big enough size, the size it won't change.

Sounds like a nifty feature, I'll try to add it after the build with Tilt mapping.

And yeah as for the audio stuff. I'm definitely not gonna be the one to add it, even thought I want it just as much as the next guy. I don't have a ps4 to reverse engineer on, and I simply have no experience in making drivers. There's probably more of a chance of sony making official drivers than that happening sadly.

if its all software can we get an option to set the shutdown time?

i just found the popup annoying is all. i also worried that i might lose my settings as its currently implemented. i did think i had lost my settings after one launch with the popup and selecting the wrong option. so its not a fault, just a pop-up meets stoned person conflict. it does seem to delete Jheb's config settings currently, so there is a coexistence issue as well.

now this does not seem to be happening anymore, but for a while the window was changing sizes for each tab i clicked, that was the issue when i initially mentioned it on my last laptop. most recently my window was not just shrinking then going back, a lot of the time when i try to access the auto-profiles page the window has shrunk to only allow me to see three options, i resize the window and then the next time i need to add a profile, whether i had closed the application or just minimized, its shrunk itself down again. just tested and it seems to keep the window sizes with the latest release, at lease until i open jheb's version, so thank you.
@J2K: K, btw, having a separate deadzone box (with higher value than the tilting ones) connected to all 3 shakes would stop the tilt values from activating when shaking occurs. That's how wiimotes fix that problem internally (judging by how hard you have to shake the wiimote for it to register) just in case your mind changes.
(06-24-2014, 12:10 AM)Jays2Kings Wrote: [ -> ]Version 10.6
Sixaxis tilts can now mapped, map them to the analog sticks, buttons, keyboards, and even macros
Better Support of multiple action being mapped to analog sticks
Fixed crash with an empty macro
UI Fixes

I found an bug like five minutes after posting, so if you have any issues with sixaxis (and of course anything else) feel free to post them here, or pm me.
Seems you've had a regression in the updater. Updating to 10.6 from 10.55 resulted in the DS4Windows.exe being removed again, at least in the situation where you've got it in a protected system folder (eg Program Files). I don't recall having that issue since 10.45.

Worth mentioning is that the updater crashed upon telling it to Open DS4. This could have been what caused the new executable to not be properly located.
Updating to 10.6 deleted my DS4Windows.exe too. Previous updates have been fine.
getting an error when starting the tool on my Asus Vivotab Note 8
xbox 360 driver and .net runtimes are installed.
system is Windows 8.1 32bit.

Code:
Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

************** Ausnahmetext **************
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
   bei ScpServer.ScpForm.ControllerStatusChanged() in c:\Users\Brian\Documents\GitHub\brianfundakowskifeldman-ds4windows\DS4Tool\ScpForm.cs:Zeile 178.
   bei ScpServer.ScpForm.Form_Load(Object sender, EventArgs e) in c:\Users\Brian\Documents\GitHub\brianfundakowskifeldman-ds4windows\DS4Tool\ScpForm.cs:Zeile 108.
   bei System.Windows.Forms.Form.OnLoad(EventArgs e)
   bei System.Windows.Forms.Form.OnCreateControl()
   bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   bei System.Windows.Forms.Control.CreateControl()
   bei System.Windows.Forms.Control.WmShowWindow(Message& m)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   bei System.Windows.Forms.ContainerControl.WndProc(Message& m)
   bei System.Windows.Forms.Form.WmShowWindow(Message& m)
   bei System.Windows.Forms.Form.WndProc(Message& m)
   bei ScpServer.ScpForm.WndProc(Message& m) in c:\Users\Brian\Documents\GitHub\brianfundakowskifeldman-ds4windows\DS4Tool\ScpForm.cs:Zeile 159.
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Geladene Assemblys **************
mscorlib
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.34014 built by: FX45W81RTMGDR.
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
----------------------------------------
DS4Tool
    Assembly-Version: 1.3.0.0.
    Win32-Version: 1.3.
    CodeBase: file:///C:/x360ce/DS4Windows/DS4Tool.exe.
----------------------------------------
System
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.34003 built by: FX45W81RTMGDR.
    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.33440 built by: FX45W81RTMREL.
    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.33440 built by: FX45W81RTMREL.
    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:///C:/x360ce/DS4Windows/DS4Control.DLL.
----------------------------------------
DS4Library
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///C:/x360ce/DS4Windows/DS4Library.DLL.
----------------------------------------
System.Xml
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.33440 built by: FX45W81RTMREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
mscorlib.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.33440 built by: FX45W81RTMREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
----------------------------------------
System.Windows.Forms.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.33440 built by: FX45W81RTMREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------

************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

Zum Beispiel:

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

Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
Ausnahmen an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.
(06-24-2014, 05:30 AM)Drossious Wrote: [ -> ]if its all software can we get an option to set the shutdown time?

i just found the popup annoying is all. i also worried that i might lose my settings as its currently implemented. i did think i had lost my settings after one launch with the popup and selecting the wrong option. so its not a fault, just a pop-up meets stoned person conflict. it does seem to delete Jheb's config settings currently, so there is a coexistence issue as well.

now this does not seem to be happening anymore, but for a while the window was changing sizes for each tab i clicked, that was the issue when i initially mentioned it on my last laptop. most recently my window was not just shrinking then going back, a lot of the time when i try to access the auto-profiles page the window has shrunk to only allow me to see three options, i resize the window and then the next time i need to add a profile, whether i had closed the application or just minimized, its shrunk itself down again. just tested and it seems to keep the window sizes with the latest release, at lease until i open jheb's version, so thank you.
What exactly do you mean by shutdown time? There's Idle Disconnect, which you can adjust however you like and the controller shuts off when not in use.

Yeah the popup shows before the program starts up because it's hard to change then reload the settings when it's already running. The reason the popup works as such is because there's people who run DS4Windows in an elevated folder, so a guessing game of which settings should load would usally lead to problems. However thinking about it, me and jheb did name autoprofiles differently, so I'll use that as where to test for profiles instead from now on.
(06-24-2014, 05:33 AM)shinra358 Wrote: [ -> ]@J2K: K, btw, having a separate deadzone box (with higher value than the tilting ones) connected to all 3 shakes would stop the tilt values from activating when shaking occurs. That's how wiimotes fix that problem internally (judging by how hard you have to shake the wiimote for it to register) just in case your mind changes.
Yeah I don't think shaking will be a problem with the tilt zones, just with other shake zones if I made more than one shaking action.
(06-24-2014, 05:50 AM)Thalyn Wrote: [ -> ]Seems you've had a regression in the updater. Updating to 10.6 from 10.55 resulted in the DS4Windows.exe being removed again, at least in the situation where you've got it in a protected system folder (eg Program Files). I don't recall having that issue since 10.45.

Worth mentioning is that the updater crashed upon telling it to Open DS4. This could have been what caused the new executable to not be properly located.

(06-24-2014, 06:36 AM)NXE Wrote: [ -> ]Updating to 10.6 deleted my DS4Windows.exe too. Previous updates have been fine.

Turns out version 10.55 came bundled with an older ds4updater, sorry about that. Here's the newest version.
0.o i just found the idle disconnect is already in the program, just not where i would expect it. i would expect it to be a global option, not a per profile option. so, umm yeah, that's what i was asking about....
There are games that don't have hotplugging coded properly. Putting it in global settings wouldn't be a good idea. If it's in global, you can't set a profile to whether or not you want that option for that troublesome game.
(03-14-2014, 10:25 PM)electrobrains Wrote: [ -> ]This is a thread for my personal development of Sony DualShock 4 drivers for Windows. This is an offshoot of the project found here, derived from the 1.3 RC3 version:
http://forums.pcsx2.net/Thread-DS4-To-XInput-Wrapper

It will work over USB and/or Bluetooth, and pairing of the DS4 over Bluetooth is something you should do before moving on with the installation. If it is paired, you will see a Wireless Controller device show up, and the light bar will be full-on. Please see the previously-mentioned thread for more installation details, as nothing has changed between DS4Tool and DS4Windows in that regard.

Before installing this software, you must install the official Microsoft Xbox 360 Accessories Software:
http://www.microsoft.com/hardware/en-us/...ws#support
as well as Scarlet.Crush's Xinput virtual bus driver found here; you should NOT install the Bluetooth driver replacement to use DS4Windows:
http://forums.pcsx2.net/Thread-XInput-Wr...Controller

I've decided to run development on a charity/bounty basis: I'm going to work on what I feel like working on, in general, because I'd like to see it happen or because I think other people would benefit greatly. However, if you feel like influencing direction of development and want me to experiment with new features, feel free to do so through the bounty system! I am currently in a bad financial situation and more than happy for whatever donations and bounties the community might offer. I could also use a second DualShock 4 for testing multiple controller support; it doesn't even have to be fully-intact -- one with broken thumbpads, or some switches in need of repair, for example, would still work just as well.
https://www.paypal.com/cgi-bin/webscr?cm...EWBPD4NWWC

The most recent changes are listed here, from newest to oldest. You can either download the source and compile it yourself or download the binaries for a specific build. Please try the latest build first before all other builds, especially when reporting bugs!
https://code.google.com/r/brianfundakows...t?name=1.3

Release builds (binaries) will be available both in this thread and at the following repositories:
https://www.dropbox.com/sh/wr7wacr4g7ia7cu/D-vAnn4MnS
https://drive.google.com/folderview?id=0...sp=sharing

** 2014-06-05.0: DS4Windows 1.0 Final
* Refrain from using integer-truncating calculations as input into the mouse wheel implementation, smoothing out the two-finger scrolling behavior.
* Add toggle in the touchpad options for haptic feedback from Button Mode, so you can disable the rumble.
* Make the charge animation its own toggle, and not just enabled always when charge level color indication is enabled.
* Fix a number of the options to not take effect immediately unless Real-Time Changes is checked. Several took effect without having to click Set or Save.
** 2014-04-27.1: DS4Windows 1.0 Beta 10
* Now always using devices 11-14 instead of 1-4, supplanting Beta 9 which had a major bug.
* Support mapping down multiple DS4 buttons as input to a single virtual X360 button.
** 2014-04-27.0: DS4Windows 1.0 Beta 9
* Beta 9 ONLY works for hot-plugging! Starting with controllers connected or hitting Start with controllers connected would not work at all! Please do not download this release, wait for Beta 10.
* Changed from using the same virtual Xinput device 1-4 as the Scarlet.Crush DualShock driver to using devices 11-14. There is now no conflict. The Xinput controller number does not correspond with the virtual Xinput device number unless you are only using DS4Windows and not using actual X360 controllers or the SCP DS3 controllers.
** 2014-04-17.0: DS4Windows 1.0 Beta 8
* Permit remappings related to the Share and Options buttons in Button Mode. It was possible to try to configure it before, but it would cause major mode switching issues.
* Continue the never-ending quest to resolve connection and disconnection issues: forgive errors in output to the DS4 and keep trying, because disconnection is handled in the input from DS4 path; allow 30 seconds for the "Connecting..." state; disconnect from Bluetooth devices after 3 seconds of no input received from the DS4 (many Bluetooth adapters don't notice disconnection when you shut off the DS4 manually by holding PS.)
** 2014-04-16.0: DS4Windows 1.0 Beta 7
* Resolve for at least one person a disconnect/reconnect issue on Windows 7 by waiting a 1/4 second settle time after an Xinput device gets removed.
* Add a drop-down to select the initial mode for touchpad usage, replacing the checkbox that only allowed you to choose Disabled or Standard Mode.
** 2014-04-14.0: DS4Windows 1.0 Beta 6
* Attempt to resolve the issues where people would only get "Connecting..." or a controller that disconnected immediately after connecting.
* Display the controller connection and battery charge status in the notification area icon tooltip.
* Make it a choice to either do Fall-Through behavior in Button Mode, the default, or actually select Unbound as an option for each button to essentially remove it while in button lock. Note that Button Mode is still the only mode that lets you remap the touchpad gestures to Xinput controls, but there is vastly more capability in every mode than there was in the DS4Tool 1.2 and 1.3RC series.
* Automatically close Options windows as necessary (controller removal or parent Options window closing the custom mapping window(s)). We also now only allow one of each window per controller.
** 2014-04-13.0: DS4Windows 1.0 Beta 5
* Majorly overhaul mapping support. Button Mode now has its own separate mapping configuration for when your finger is on the touchpad or Button Lock is active. Only mapped buttons/axes are filtered out. You may use it to also map the left/right/upper portion of the touchpad onto Xinput buttons.
* Standard and Drag touchpad modes now allow you to rebind the touchpad gestures to mouse clicks that are not the default.
** 2014-04-08.0: DS4Windows 1.0 Beta 4
* Refine touchpad jitter removal algorithm to remove the DualShock 4's natural cursor "jump" reliably under more circumstances.
** 2014-04-02.1: DS4Windows 1.0 Beta 3
* Allow any of the touchpad areas in Button Mode to be mapped to any of the mouse buttons. The other Modes do not support this currently and will fall back to their default mouse button mappings in that case.
** 2014-04-02.0: DS4Windows 1.0 Beta 2
* Add setting to swap the rumble mapping, matching left/right rather than heavy/soft. The rumbler positions on the X360 and DS4 controllers are reversed and the normal mapping gets the heavy/soft aspect right instead of the left/right.
* Support idle disconnection timeout of the controllers.
** 2014-03-31.0: DS4Windows 1.0 Beta
* This version has had the new Options GUI merged in thanks to Jays2Kings! When in Button Mode, the touchpad configuration displays the left and right side bindings for the touchpad push gesture.
** 2014-03-30.0: DS4Windows 1.0 Alpha 2
* Mouse motion worked very poorly for the default setting of 100 Touch sensitivity, but well for anything else. This release makes the 1:1 mapping (default 100 setting) work again.
** 2014-03-28.0: DS4Windows 1.0 Alpha
* Started version over at 1.0; this is an Alpha because there are known bugs. NOTE: Custom mappings may require a "Load" upon start-up to take effect.
* Completely redo how jitter compensation works to prevent the jumpy cursor when moving directions on the touchpad with a finger down.
* Smooth out cursor movement like mouse wheel movement was smoothed out. We account for remainders now, and the cursor movement will be faster and more precise.
* Label the touchpad mappings better; Button Mode changes their meaning, as well, which is now indicated.
** 2014-03-24.1
* Add back the touchUnchanged event for the mouse modes so that Button Mode is back to working as before the DS4Tool 1.3RCx changes.
** 2014-03-24.0
* Make touchpad mouse wheel scrolling smoother and faster by not losing parts of the scroll that are less than a single unit (pixel?)
* Make sure that multiple controllers can be used for touchpad input without interference.
** 2014-03-23.0
* Fix the problem where the main window would become invisible after you minimize to the tray icon and try to maximize again.
** 2014-03-22.0
* In the controller's touchpad-Button Mouse Mode, ignore ambiguous pushes entirely rather than mapping them to the upper-edge-push.
* Notify the user when a device is not able to open in exclusive mode, and open it in shared mode as before.
* Wait 200ms before allowing a device to be found automatically after a device is removed to prevent 'resurrection.'
* Connect to Bluetooth rather than USB when both are connected to the host machine; then a USB disconnection only stops charging.
* Make sure to not look at HID input reports of the wrong format.
* Eliminate the zombie threads that crept in upon splitting apart the input and output and making them asynchronous. (weird extra connect/disconnect notifications)
** 2014-03-19.2
* Battery charge levels seem to be 0-11 (so far, surveying two DS4s), so treat 11 the same as 10, or "full."
* Make the light bar slow flash pattern indication of power level work again, after the changes from the 2014-03-18.1 release and now.
** 2014-03-19.1
* Fix dual-input of X360 buttons/D-pad when in Button Mode and the key presses are otherwise already consumed as mouse buttons.
** 2014-03-19.0
* Make the non-touched touchpad push gesture visible to the touchpad's Button Mode so what defaults to "middle-click" still works across modes.
* Fix the battery indicators to be sensible: indicate charging or draining and fully-charged separately, along with the rough percentage estimate that the DS4 firmware gives.
* Change the charging animation to conserve battery power, thus actually charging the controller much faster because the light bar consumes far more power than the actual control sensors.
** 2014-03-18.1
* Do not lie about the power subsystem telemetry octet (inputReport[30]); we don't actually know quite what it does, yet. Just report the full value. This will change what is displayed on the line of text that indicates the charge level in the GUI as well as the exact color chosen according to charge level when the color transition feature is enabled.
** 2014-03-18.0
* Allow the user to turn off the light bar completely once again.
* Print battery charge information to the console.
** 2014-03-16.1
* Separate the DS4 HID input and output into separate threads to improve latency and performance.
* Correct a drop of some touchpad data. There may be 1-4 touchpad status (finger location) updates per packet, and previously we would ignore the second, third and fourth. These would likely occur while there was a lot of detailed finger motion and/or the DS4 is delayed transmitting its sensor data packet. The result is that touchpad usage should feel more precise and smooth.
* Improve how we are interpreting and reporting charge and battery level. This one still has some open questions.
* Fix broken logic mode switch logic that made it hard to switch into Button mode because you would often get a phantom second mode-switch keypress when releasingthe Start or Options key (or lifting the final finger from the touchpad.)
* Only update the GUI on-demand, reducing overhead/latency and preventing the "cursor always visible in VLC" issue.
* Start a framework for doing reactive haptics (light bar and rumble motor.)
* The Button touchpad mode supports two (three, if you count the fallback) bindings. There is one for the left side ("Touchpad" in Custom Control Mapping), one for the right side ("Multitouch". Actual multi-touch-click switches Button Lock on or off. I'll fix the interface later.), and the "Upperpad" one is used when your finger position is ambiguous (like directly in the center) or cannot be read. This lets me, for example, bind both a Target-Target action in FFXIV and a Push-to-Talk action for Mumble and get far more use out of the DS4 than an X360 controller is capable of.
* Configure the Garbage Collection mode, and if launched as Administrator, the process priority, for lower latency.
* Do not fail completely when "Hide DS4 controller" is selected and the device is already open. Fall back to opening in shared, rather than exclusive, access. It would be awesome if Uplay and Steam started playing nicer.
* Make the rumble testing in Options keep going instead of stopping after a few seconds.
* Display "charging" in the text when the controller is charging. If "Light Bar Color indicates battery level" is enabled, when the controller is plugged in it now does a smooth color cycle to show you unambiguously that it is charging.
* Fix the sixaxis data display. We're not doing anything with the data quite yet, though, just displaying it.

Please see the other thread mentioned at the top for detailed installation instructions. Consider this essentially a patch on top of the 1.2 releases.
the tool does not detect my controller
(06-24-2014, 07:43 PM)Jays2Kings Wrote: [ -> ]What exactly do you mean by shutdown time? There's Idle Disconnect, which you can adjust however you like and the controller shuts off when not in use.

Yeah the popup shows before the program starts up because it's hard to change then reload the settings when it's already running. The reason the popup works as such is because there's people who run DS4Windows in an elevated folder, so a guessing game of which settings should load would usally lead to problems. However thinking about it, me and jheb did name autoprofiles differently, so I'll use that as where to test for profiles instead from now on.
Yeah I don't think shaking will be a problem with the tilt zones, just with other shake zones if I made more than one shaking action.


Turns out version 10.55 came bundled with an older ds4updater, sorry about that. Here's the newest version.

hmm how should we install or uninstall this?
i realised I opened the file on my D drive :/