..:: PCSX2 Forums ::..

Full Version: DS4 To XInput Wrapper
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
(12-18-2013, 08:51 PM)InhexSTER Wrote: [ -> ]This is the main goal now, i am trying to find a solution to resolve freezes, so at least USB will be working for as much people as possible. Bluetooth issues is second priority as there so much variety there

Alright, great work! Since AC4 already has PS4 controller support, you can just turn the program off while using it... But using the DS4 tool on AC4 would be AWEESOME! Laugh
Very nice progress you've been making, I'll probably pick up a DS4 later because of this program.
1 question though, will you be trying to get sixaxis support in later on? You don't mention it in your future plans, so I'm guessing you're not interested, but it'd be great for Wii emulation.
(12-18-2013, 04:37 PM)InhexSTER Wrote: [ -> ]It seems that toshiba drivers produce different input report, so far only way around is use ms BT stack
Same exact problem as 'exsammy', but then I decided to try all the other releases. And that led to an interesting find!

Turns out the first release ONLY (DS4Tool.zip) works flawlessly with all the buttons mapped out correctly. But all the other releases led to the same exact issue described by exsammy. Just so you know, I am also using the same Toshiba BT stack, so I found my little experiment to be both surprising and delightful as now I can get the controller function wirelessly.

So that pretty much means that the issue is due to some changes made in the newer releases which interferes with the button mapping. So it would be extremely awesome if you tried to solve it with the newer releases when you got some spare time in the future, and surely since you don't have the same BT setup, I would gladly help out doing tests if necessary.

Oh and not to forget, I'd like to thank you very much for making this amazing application this early on. Your work is greatly appreciated.
Tried the latest version of DS3Tool last night, it seems to have solved my problems. Not sure why, but I'm not one to look a gift horse in the mouth.
(12-19-2013, 04:10 AM)Wiki Wrote: [ -> ]Same exact problem as 'exsammy', but then I decided to try all the other releases. And that led to an interesting find!

Turns out the first release ONLY (DS4Tool.zip) works flawlessly with all the buttons mapped out correctly. But all the other releases led to the same exact issue described by exsammy. Just so you know, I am also using the same Toshiba BT stack, so I found my little experiment to be both surprising and delightful as now I can get the controller function wirelessly.

So that pretty much means that the issue is due to some changes made in the newer releases which interferes with the button mapping. So it would be extremely awesome if you tried to solve it with the newer releases when you got some spare time in the future, and surely since you don't have the same BT setup, I would gladly help out doing tests if necessary.

Oh and not to forget, I'd like to thank you very much for making this amazing application this early on. Your work is greatly appreciated.

First version doesn't actually "talk" back to the controller so i used DirectInput api to receive input. Now when i need more data i read it through HID reports which seems produce different results with Toshiba drivers. I might make a special build for you to test out.
so after some investigating Uplay issue it seems all come to this:
When i fixed double input issue I request exclusive read on the controller, so no other processes can access it.
What i am suspecting is that Uplay doesn't handle scenario with controller already being used very well.

For programmers out there, I use:
CreateFile(devicePathName, NativeMethods.GENERIC_READ | NativeMethods.GENERIC_WRITE, 0, IntPtr.Zero, NativeMethods.OpenExisting, 0, 0);
http://msdn.microsoft.com/en-us/library/...s.85).aspx

However when i use this there is dual input but no freeze:
CreateFile(devicePathName, NativeMethods.GENERIC_READ | NativeMethods.GENERIC_WRITE, FileSharedRead | FileSharedWrite, IntPtr.Zero, NativeMethods.OpenExisting, 0, 0); no freezes

Weirdly Wireless Controller also shows up as one of the controllers inside a game, even with exclusive mode. On windows 8.1 it doesn't show up in game options.

So essentially either Windows 7 kernel32.dll has some flaw or Uplay
(12-19-2013, 04:23 AM)InhexSTER Wrote: [ -> ]First version doesn't actually "talk" back to the controller so i used DirectInput api to receive input. Now when i need more data i read it through HID reports which seems produce different results with Toshiba drivers. I might make a special build for you to test out.
Oh I see, well it would be amazing if you could get around making that build at some point so then I'll be able to test it out.

Really thankful for your awesome continuous work on this.
(12-19-2013, 04:35 AM)InhexSTER Wrote: [ -> ]so after some investigating Uplay issue it seems all come to this:
When i fixed double input issue I request exclusive read on the controller, so no other processes can access it.
What i am suspecting is that Uplay doesn't handle scenario with controller already being used very well.

For programmers out there, I use:
CreateFile(devicePathName, NativeMethods.GENERIC_READ | NativeMethods.GENERIC_WRITE, 0, IntPtr.Zero, NativeMethods.OpenExisting, 0, 0);
http://msdn.microsoft.com/en-us/library/...s.85).aspx

However when i use this there is dual input but no freeze:
CreateFile(devicePathName, NativeMethods.GENERIC_READ | NativeMethods.GENERIC_WRITE, FileSharedRead | FileSharedWrite, IntPtr.Zero, NativeMethods.OpenExisting, 0, 0); no freezes

Weirdly Wireless Controller also shows up as one of the controllers inside a game, even with exclusive mode. On windows 8.1 it doesn't show up in game options.

So essentially either Windows 7 kernel32.dll has some flaw or Uplay
Is there a way you can work around this?
(12-19-2013, 06:03 AM)mario64 Wrote: [ -> ]Is there a way you can work around this?

So far only way i found is to have a checkbox inside the app to enable disable exclusive access, which would require start/stop. good thing is that AC3 specifically allows you to switch which controller is being used.
Any news on the lag issues with the latest two builds? I think when you swapped over to reading HID reports it caused this issue for some of us.