..:: 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.
@InhexSTER:
@electrobrains:

The current release of the SCP Drivers support DS4s, with transparent switching between USB <-> BTH (Controllers are mapped by their MAC Address), uses Notification events for Plugin/Unplug. It uses WinUSB drivers for USB & BTH, which removes issues with different Windows Bluetooth stacks, multiple appearance and exclusive access problems.

You might want to rebase your project to take advantage.

- The XInput ID of a controller is decided by the XInput Subsystem, it is not anything that the ScpVBus has control over.
- DeviceIO to ScpVBus is very fast, queuing and task switching in a managed application would likely be a lot slower.
Hi, I've tried to use the ds4 program and it really didn't work for me(the right analog keeps inputting down even though I'm pressing up.)

When I try to use the dualshock 4 with my ps4 again, the right analog acts like its being pressed up in every game I play. Is there a way to get it back to default factory settings?
(01-22-2014, 05:01 AM)vissle86 Wrote: [ -> ]Hi, I've tried to use the ds4 program and it really didn't work for me(the right analog keeps inputting down even though I'm pressing up.)

When I try to use the dualshock 4 with my ps4 again, the right analog acts like its being pressed up in every game I play. Is there a way to get it back to default factory settings?

Have you tried using that controller on PS4 before using on PC?
(01-22-2014, 04:19 AM)pedrovay2003 Wrote: [ -> ]I'll be honest, I miss having the touch pad click act as mouse left click. Using the other buttons messes some stuff up when you've already got them assigned to keyboard keys in something like Xpadder.

Any chance the PS button could be the Windows key and the touch pad could be left click?

Okay, I'll make a tiny release soon which puts the left click back on the touch pad, makes the PS button with touch pad held Alt-Tab or Ctrl-Alt-Del (I realize Assassin's Creed IV is too smart for us, Windows key doesn't help one bit to get out of it, even on a regular keyboard), adds a pointer-only touchpad mode I saw requests for already, and outputs the log to a file. Right now I'm mostly trying to prototype different control schemes that use the touchpad. Eventually we'll also have tap-to-click support, but that requires us designing an engine to deal with jitter without adding extra input latency. It's not a trivial matter to design.

You guys will love my touchpad-as-many-keys concept, I bet...
@Scarlet.Crush
Yeah using WinUSB drivers would solve tons of issues, but as this project was originally made to work with default driver, for ease of use and ability to keep default Bluetooth driver it would be nice to keep it that way.

Also one question, as you are using a custom driver is there a reason for not writing your own driver to support xinput? Like some logitech's controllers do. Or is that impossible?
(01-22-2014, 04:53 AM)Scarlet.Crush Wrote: [ -> ]@InhexSTER:
@electrobrains:

The current release of the SCP Drivers support DS4s, with transparent switching between USB <-> BTH (Controllers are mapped by their MAC Address), uses Notification events for Plugin/Unplug. It uses WinUSB drivers for USB & BTH, which removes issues with different Windows Bluetooth stacks, multiple appearance and exclusive access problems.

You might want to rebase your project to take advantage.

- The XInput ID of a controller is decided by the XInput Subsystem, it is not anything that the ScpVBus has control over.
- DeviceIO to ScpVBus is very fast, queuing and task switching in a managed application would likely be a lot slower.
Are you saying that your DS3/4 tools (thanks, btw) don't need to take over a Bluetooth adapter anymore? If that's the case then I would like to simply move over to working on that, or if that's not the case maybe we can fold the Xinput layer into your current drivers.

My primary goal is to make the touchpad, rumble, speakers and LEDs most useful. Thanks for the hint about ioctl, I don't know the Windows kernel driver layers that well. Have you considered making a plug-in API for those behaviors and button/axis mapping?
(01-22-2014, 05:05 AM)electrobrains Wrote: [ -> ]Okay, I'll make a tiny release soon which puts the left click back on the touch pad, makes the PS button with touch pad held Alt-Tab or Ctrl-Alt-Del (I realize Assassin's Creed IV is too smart for us, Windows key doesn't help one bit to get out of it, even on a regular keyboard), adds a pointer-only touchpad mode I saw requests for already, and outputs the log to a file. Right now I'm mostly trying to prototype different control schemes that use the touchpad. Eventually we'll also have tap-to-click support, but that requires us designing an engine to deal with jitter without adding extra input latency. It's not a trivial matter to design.

You guys will love my touchpad-as-many-keys concept, I bet...

I love you. Laugh

Also, the Alt-Tab thing is actually a fantastic idea; I hadn't thought about that, but man, it'd be useful.

Also also, touchpad-as-many-keys? Is that going to be like customizing what the touchpad does, or like a macro thing? Whatever it is, I'm excited. Laugh
I have the problem someone brought up around page 60-ish where the controller will disconnect and reconnect after playing a game for a while randomly and then whatever input was last will be stuck in the game. Also, because the program doesn't work with steam or mumble open, I have to close both programs to restart everything. It happens on both BT and USB and I don't think it's the controller. I'm using 1.1 beta 3 by inhexster under windows 8.1. Would love to know what's going on if anyone had any ideas, thanks.
Another suggestion I have is to create DS4 Controller API and distribute it as standalone DLL for some people, who want to add support of features like Gyro/Accel into their projects.
That API would return/set state of the controller, and program adopting it would decide what to do with the data.
So the purpose of the API would be enumerating controllers, retrieving input report/ sending output report. Kinda like our own DirectInput API
(01-22-2014, 12:13 AM)electrobrains Wrote: [ -> ]*Change log:*

Enable hot-plug support for Bluetooth. A disconnected Bluetooth
adapter still works poorly and (usually?) requires clicking Stop/Start.

Add Up and Triangle as additional Middle Mouse Buttons, remove the
PS button as anything special to reserve it for later mode toggling.
Also make Share/Options left and right mouse clicks as the Hotkeys
page said (lied.) Finally, make pushing the touchpad act as the
Windows key to make it easy to switch applications without another
keyboard/mouse-type controller handy.

awesome dude. nice idea with the share/options Wink nice update. keep it up.(just one thing wish it had a pad off/on hot key would make good use that ps button+mouse button or ps+up) hate feeling like im bugging about this but like i said i used it for ffxiv and having a hotkey better then stop restart) love bluetooth hotswap
(01-22-2014, 06:03 AM)InhexSTER Wrote: [ -> ]Another suggestion I have is to create DS4 Controller API and distribute it as standalone DLL for some people, who want to add support of features like Gyro/Accel into their projects.
That API would return/set state of the controller, and program adopting it would decide what to do with the data.
So the purpose of the API would be enumerating controllers, retrieving input report/ sending output report. Kinda like our own DirectInput API

i would love to see Gyro/Accel functions. perhaps use this for mouse movement like shown for ps4(as option) and have the touch as swipe function(another option ie window 8 users)