..:: 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-14-2014, 07:15 PM)Jays2Kings Wrote: [ -> ]Sadly I have no windows 7 machine test on, just one medialink adapter, one windows 8 machine, and one ds4 (so yeah I don't even know how/if profiles work with multiple controllers yet, I hope it does Tongue). My best guess is that your adapter is being recognized like the toshiba stacks, as InhexSTER said bluetooth with it was weird.

In other news, I actually got auto updates to work. I tried the ClickOnce method, but didn't really like how it tried to install like a regular program, and in a weird spot too. It was hard enough finding where it installed, so importing/exporting profiles would be a pain. On top of that it checks for a version update before the actually program starts, which is a bit annoying. Instead I made my own auto updater. I don't have any servers so I'm just using my dropbox for the tool to check the version, as well as update it when a new version is available. I did some decent testing with this, so it should work out well, and this way the program can remain portable. Of course since this is the first version with this, you can't test the update process yet (well you force update, but I'd rather you didn't kill my dropbox Tongue). Once you download the zip below, the rest will be automated, however I will still post updates in this thread.

Can you encase you file handlers for your profile files and "version.txt" inside a try block to catch for systems that have this app installed in Program Files with UAC on and not running as administrator? Perhaps a class that will create these files in the AppData dir on first run keeping it both portable and writeable, or better yet save profile information in registry.

-Edit-
Also just noticed while playing a single player game using what the program assigned as the 2nd controller, the 1st controller was vibrating in the cradle while the 2nd was not, not sure if this is the game or the toll that caused this to happen, for reference the game was State Of Decay, most recent version.
(05-15-2014, 04:55 PM)jhebbel Wrote: [ -> ]Can you encase you file handlers for your profile files and "version.txt" inside a try block to catch for systems that have this app installed in Program Files with UAC on and not running as administrator? Perhaps a class that will create these files in the AppData dir on first run keeping it both portable and writeable, or better yet save profile information in registry.

-Edit-
Also just noticed while playing a single player game using what the program assigned as the 2nd controller, the 1st controller was vibrating in the cradle while the 2nd was not, not sure if this is the game or the toll that caused this to happen, for reference the game was State Of Decay, most recent version.

Wow the things I don't think of, I just fixed it in the new update, though since it would be a bit hard to get the updater working correctly since it's in program files, so for now you'll need to d/l the zip below and replace the files manually. For those who are auto updating, there is a new updater.exe named Updater NEW.exe, please rename to "Updater.exe" and remove the old one. The new one asks for admin permissions so it can make sure to install the files where the ds4tool directory is. Thanks for putting up with my silly mistakes.

As for state of decay, I don't have that game, nor more controllers. If you can could you try that with more games and see what happens?

EDIT: Oh right since profiles can't be written to the main program folder if in Program files, I'll have to change that too. Give me a few more moments and I'll work that in, as well as an import/export system. The update should work for you, but making and deleting profiles is a no go for now.
(05-15-2014, 09:04 PM)Jays2Kings Wrote: [ -> ]Wow the things I don't think of, I just fixed it in the new update, though since it would be a bit hard to get the updater working correctly since it's in program files, so for now you'll need to d/l the zip below and replace the files manually. For those who are auto updating, there is a new updater.exe named Updater NEW.exe, please rename to "Updater.exe" and remove the old one. The new one asks for admin permissions so it can make sure to install the files where the ds4tool directory is. Thanks for putting up with my silly mistakes.

As for state of decay, I don't have that game, nor more controllers. If you can could you try that with more games and see what happens?

Since you updater is a separate app now you can have it request elevation if an update is found and files need to be installed.
(05-15-2014, 04:42 PM)jhebbel Wrote: [ -> ]Looking at the code for the first time it seems that the issue of your controller not connecting unless you start/stop may be that DS4Controllers[i].IsAlive needs a state change to invoke ControllerStatusChange(), just guessing though as I haven't fully got a lay of the land yet, will keep looking.

I appreciate you looking into this; I don't know a thing about programming, so I'm at a loss. I love the new version, and I really want to replace the old one with it.
(05-15-2014, 09:21 PM)pedrovay2003 Wrote: [ -> ]I appreciate you looking into this; I don't know a thing about programming, so I'm at a loss. I love the new version, and I really want to replace the old one with it.

I think this is corrected in J2Ks version above, at least it seemed ok
(05-15-2014, 09:06 PM)jhebbel Wrote: [ -> ]Since you updater is a separate app now you can have it request elevation if an update is found and files need to be installed.

Yeah the new updater app request admin permissions, though since I completely forgot profiles write to the file directory too, I'm now making sure that works as well.
(05-15-2014, 09:33 PM)jhebbel Wrote: [ -> ]I think this is corrected in J2Ks version above, at least it seemed ok

I'm pretty sure I didn't touch that, so unless electrobrains fixed it, it's still an issue, but you're free to check.
(05-15-2014, 09:38 PM)Jays2Kings Wrote: [ -> ]Yeah the new updater app request admin permissions, though since I completely forgot profiles write to the file directory too, I'm now making sure that works as well.

I'm pretty sure I didn't touch that, so unless electrobrains fixed it, it's still an issue, but you're free to check.

If the updater requests elevation on run (ie its in the manifest rather then just invoked when/if actually needed) it will request elevation at each start and since the UAC bang box typically disables non elevated process and devices (to prevent application from self allowing own elevation) it'll turn into one of those get off the couch to click yes every time boxes lol, not sure how u have the updater set up but the best way would be to display a non elevated msgbox if there IS an update detected then if yes is passed restart the update process with a command line argument to do the actual update and in the p/invoke set the verb to "runas", this tells the application that it was invoked through the right click run as administrator menu which is the most compatible method i believe.

As for the rumble lets call it a game bug as I cannot duplicate it in any of my other games that have rumble support

As for the controllers not connecting n first boot it may be a bug in his modifications (the previous fork) because I cannot duplicate in yours.
(05-15-2014, 09:47 PM)jhebbel Wrote: [ -> ]If the updater requests elevation on run (ie its in the manifest rather then just invoked when/if actually needed) it will request elevation at each start and since the UAC bang box typically disables non elevated process and devices (to prevent application from self allowing own elevation) it'll turn into one of those get off the couch to click yes every time boxes lol, not sure how u have the updater set up but the best way would be to display a non elevated msgbox if there IS an update detected then if yes is passed restart the update process with a command line argument to do the actual update and in the p/invoke set the verb to "runas", this tells the application that it was invoked through the right click run as administrator menu which is the most compatible method i believe.

As for the rumble lets call it a game bug as I cannot duplicate it in any of my other games that have rumble support

As for the controllers not connecting n first boot it may be a bug in his modifications (the previous fork) because I cannot duplicate in yours.

As it stands right now, it's a click yes everytime box, and that's ok since the updater should and will only run when the ds4tool detects an update. The only other time it runs is when you manually start it up, but it's bound to not find an update without the version.txt.
(05-15-2014, 09:54 PM)Jays2Kings Wrote: [ -> ]As it stands right now, it's a click yes everytime box, and that's ok since the updater should and will only run when the ds4tool detects an update. The only other time it runs is when you manually start it up, but it's bound to not find an update without the version.txt.

ahh ok so the updater itself is just a FTP getter/unpacker and not the process that actually checks if there IS an update, that works too.

Also you can get the version of an exe using FileVersionInfo.GetVersionInfo(system.path) so version.txt may not even be necessary so long as you update your exe version in the AssemblyInfo file prior to launching each build.
Any plans for sound output through the audio jack?