• As part of the relaunch of Skullheart, ALL previous threads have been archived. You can find them at the bottom of the forum in the Archives (2021) section. The archives are locked, so please use the new forum sections to create new discussion threads.

PS4 Looking for Dualshock 3 driver help for PS4.

Mike_Z

Defender of the Night
Banned
VIP
Joined
Sep 2, 2013
Messages
5,368
Reaction score
14,537
Points
113
Age
42
Location
Los Angeles, CA
Website
www.labzerogames.com
Steam
labzero_mike
PSN
MikeZWasTaken
Cerebella Big Band
Alrighty everyone, here's the deal.
There is this article which everyone interprets as "It's easy for devs to enable Dualshock 3s on PS4".
Though it phrases things nicely, what it actually means is "Devs can write their own USB drivers for unsupported USB peripherals on PS4". (I suspected that - if it was as easy as flipping a switch they would just have said "supported". Don't get mad at Sony, at least they give us the ability to try.)

Now I'm all for this, and their library looks similar to libusb, but I don't know anything about writing a driver or polling a device or anything, and it is not a trivial thing to do. Therefore, I'm looking for help!

If you are extremely competent / have written working drivers before, and you understand how the USB DualShock 3 driver for PC works, and you are interested in helping, post here or PM me. Preferably post here.
- We probably can't pay you because this wasn't in the budget.
- Even if you are NDA'd I doubt we can provide a devkit, so unless you live close to me a lot of this is going to be guess-and-check.
BUT, since we're Lab Zero and we're all about helping games be better:
- If the driver does get completed and function properly, we're willing to let other developers use it for free if they want it. So in essence, you're helping all future PS4 games if they have nice developers. (I doubt we can use an open-source driver because proprietary console code, etc, but we can license the end product for free.)

This thread is very serious.
If you post off-topic BS or unhelpful "I can't write a driver but I hope this gets done yay" junk I expect it'll get deleted and I would love it if you got temp-banned.

(MOD EDIT: On it. - Vad.)


I don't have a whole lot of hope for this, but asking is better than not. :^)
 
Last edited by a moderator:
I'll ask around some of my linux nerd contacts and see if I can find someone to point in your direction.
 
i may know someone, but he was more into building som'in else at the time. I'll ask if he'd like to look into this, as it sounds like up his ally (and he's wanting to make a game, so could help him out)

edit: While he's away from Skype, I did leave him a message with the question and a link. Not sure if he'll post or what not. Else I did try.
 
Last edited:
To clarify on that other (deleted) post...

If we can find a programmer to tackle this, we'd then discuss things more intently with Sony developer support to figure out how to navigate TRC, etc. to make sure their efforts aren't wasted.

And while we probably can't pay the programmer directly, I think we would likely set up and promote a tip jar for them to help make sure they're fairly compensated for something that could be pretty huge and impactful on nextgen fighting games.
 
He replied to me before I took off.

[9:29:23 PM] BlackJax96: I don't have any experience with making drivers, no
[9:29:31 PM] Sally Ballard: nuts. I tried
[9:29:36 PM] BlackJax96: it's probably easy though
[9:29:54 PM] BlackJax96: like, you probably have to read from a memory stream that's always updating from the controller
[9:30:20 PM] BlackJax96: I could look into it, I think
[9:30:35 PM] Sally Ballard: Well, if you're interested, I linked ya the topic. Figired it might help ya out with the game sometime down the line maybe, ja kno?
 
Ill promote it, it might make your chances on finding help a bit better if it is more accessible
 
No promises but I wouldn't be surprised if one of my colleagues could help out with this. I'll ask around.
 
I think Mike's specifically looking for people with significant prior experience in creating drivers (or at the very least hardware-level programming), because not only is the job both difficult and something that could look very bad for Lab Zero if it goes wrong, but also because it's essentially being done through a straw if you aren't going to have access to a devkit. Otherwise I would have offered to help as well, as would many other people here.
 
  • Like
Reactions: Cas Chronon
It doesn't seem too bad (especially if Sony's providing something similar to libusb).

I'd just rather see it done than not, is all. This kind of task seems more labor-intensive than skill-intensive.
 
Firmware Engineer here - I may be able to lend a hand with this if someone else hasn't stepped up to the plate already. I'll read up on the documentation posted above when I get home from work tonight and see if this is something I can commit to.
 
It doesn't seem too bad (especially if Sony's providing something similar to libusb).

I'd just rather see it done than not, is all. This kind of task seems more labor-intensive than skill-intensive.

It's also probably going to be bureaucracy-intensive for me when and if we find someone willing to tackle it.

I think the process will probably go something like this:
  1. Find programmer
  2. Have programmer outline rough plan
  3. Present plan to Sony and iterate on it until we get their blessing
  4. Execute plan
  5. Brace selves for Sony QA
  6. Probably will need a TRC waiver of some kind to actually put this out
It is entirely possible that we'll never get past step 3.

If we do manage to pull it off, then it's time for everyone to pester Capcom, Namco, etc. to include this in their PS4 games.
 
Last edited:
Firmware Engineer here
(O.o)
Okay, I look forward to your response.

To everyone - I appreciate the interest, and it may indeed end up being a collaborative effort, but as @Vadsamoht said it'll basically be done through a straw so the less I have to wonder at or explain, the better.

@Ravidrath
I forgot to tell you most of this, here goes - the USB lib is cleared with Sony already, their docs say "go ahead and use it!" and it is fairly straightforward to use, so I think just doing it is okay.
We may need to get a TRC waiver since these controllers won't be associated with a specific user, but I think that's it.
 
Didn't have a ton of time and ran into some issues setting stuff up, but I got past those for now.

I figured a TE would be easiest to start with, since it would spit out data that's a little easier to puzzle out compared to a DS3 with all its analog buttons, and so far, so good. I can boot up Wireshark, plug in the stick, and scroll through the individual bytes of data representing the buttons (seems to be the last 27 bytes of each packet) as they go by.

Progress!

3xwW9li.png
 
  • Like
Reactions: FinalShoryuken
Question, instead of just DualShock 3 drivers, wouldn't it be better to do a driver for universal HID input devices, so that PCBs that do work on PS3 that way (TEs, custom PCBs, etc.) can all work?
 
Question, instead of just DualShock 3 drivers, wouldn't it be better to do a driver for universal HID input devices, so that PCBs that do work on PS3 that way (TEs, custom PCBs, etc.) can all work?
Possibly! This is why I asked for help. I also have no idea how button config for that would work.
 
Possibly! This is why I asked for help. I also have no idea how button config for that would work.
If I remember correctly, the buttons are just assigned numbers 1-13 with certain numbers corresponding to the face buttons, shoulder buttons and start and select.
 
That's certainly true from my experience with PS3 sticks.
 
Question, instead of just DualShock 3 drivers, wouldn't it be better to do a driver for universal HID input devices, so that PCBs that do work on PS3 that way (TEs, custom PCBs, etc.) can all work?
My plan is to get a Linux driver working for my TE, then see if it can be genericized to work with all my other sticks (two dual mods and a Hori).
 
My plan is to get a Linux driver working for my TE, then see if it can be genericized to work with all my other sticks (two dual mods and a Hori).
If that's one of the older, non-Sony licensed TEs, then it should be a generic HID input device, or pretty close to one.
 
If that's one of the older, non-Sony licensed TEs, then it should be a generic HID input device, or pretty close to one.
I have a Round 1, an Evo TE Pro, and a TE VS. I also have a Hori Fighting Stick 3.
 
The Pro and VS should have the licensed PSBs, they should be slightly different from the Round 1.
 
Really cool stuff, I'm definitely interested in helping out however I can. For now, I'll poke around a bit in Linux like @vgambit is doing, I have a DualShock3 and a PS3 Round 2 TE Fightstick to test out so I'll post any relevant info here.

I have no clue how the logistics of this will work out, but whenever the time comes for more serious discussions about that junk, I'm in.
 
Question, instead of just DualShock 3 drivers, wouldn't it be better to do a driver for universal HID input devices, so that PCBs that do work on PS3 that way (TEs, custom PCBs, etc.) can all work?

I think this is probably correct.

Dualshock 3's come with a lot of nonsense like the useless analog buttons that we likely don't want to deal with.

Also, whoever does this will likely need to figure out a way to map Start to Options and Select to Share. Probably not difficult, but just something to think about since we're going to need to get Sony to sign off on this.
 
I'm doing a whoooole lot of learning all at once, but I'm starting to get a handle on things, slowly, but surely.

I have no idea of a timeline, but I am working on this every day.
 
  • Like
Reactions: Mr. X
Also, whoever does this will likely need to figure out a way to map Start to Options and Select to Share. Probably not difficult, but just something to think about since we're going to need to get Sony to sign off on this.
This is actually impossible - the game has no control or knowledge of the Share button, and no way to fake it being pressed. The Home and Select buttons on non-DS4 controllers will only be detectable by the game.

On the plus side, this'll mean no accidentally hitting the Home button ever. :^P
 
I think this is probably correct.

Dualshock 3's come with a lot of nonsense like the useless analog buttons that we likely don't want to deal with.

Also, whoever does this will likely need to figure out a way to map Start to Options and Select to Share. Probably not difficult, but just something to think about since we're going to need to get Sony to sign off on this.
Peter-sempai noticed my post!
This is actually impossible - the game has no control or knowledge of the Share button, and no way to fake it being pressed. The Home and Select buttons on non-DS4 controllers will only be detectable by the game.

On the plus side, this'll mean no accidentally hitting the Home button ever. :^P
But Options can be mapped to Start, right?
 
Peter-sempai noticed my post!

But Options can be mapped to Start, right?
Ostensibly, it wouldn't matter. Skullgirls would be able to see every button on the controller. The Start button can bring up the pause menu, the Select button can be used for training mode savestates, and so on. Ultimately, it would be up to Mike Z to decide what actions the controller buttons can be assigned to. I would imagine the answer to that to be "all of them," since it's tough to guess where each button will actually physically be on a controller. Button 5 could be Start on my stick, but X on yours.
 
WE HAVE AN UNEXPECTED VOLUNTEER ON OUR END!
Someone we know who is an exceptionally good programmer has volunteered to take a crack at this; that's important because he'll have devkit access.
I'll provide another update on Monday, I hope.

@vgambit
(Select on PS3 will be Select; the question is what to use for Select on PS4, since the button no longer exists. I really don't want to use touchpad-click but ugh. The only place that needs Select to go back is character select. :^)
 
R3? I don't think anyone really uses that button.

edit: Thinking about it, though, if this is a driver for other games you're wanting to give out, might not be a good idea then.
 
Last edited:
R3? I don't think anyone really uses that button.

edit: Thinking about it, though, if this is a driver for other games you're wanting to give out, might not be a good idea then.
(This is mildly off topic so you can delete it, mods. :^)

You missed the point - select on PS3 stuff (in this driver) would be Select.
SG currently needs Select to back out of character choice, and the PS4 does not have a Select-button-alike that the game can read.
 
Sounds good. I hope the local guy can pull through!
 
  • Like
Reactions: gllt
(This is mildly off topic so you can delete it, mods. :^)

You missed the point - select on PS3 stuff (in this driver) would be Select.
SG currently needs Select to back out of character choice, and the PS4 does not have a Select-button-alike that the game can read.
So in other words, Skullgirls on PS4 will need a new input to cancel the selected character.
 
So in other words, Skullgirls on PS4 will need a new input to cancel the selected character.
Yep. That or we have to make it so that Circle only is not "choose character", but I REALLY want to avoid doing the SF4/BB thing where you're forced to scroll colors after choosing them because you can only choose with 1 button. It might just be a matter of making Circle always back (except during Custom Assist) and moving all the color macros 1 forward. >.<
 
Yep. That or we have to make it so that Circle only is not "choose character", but I REALLY want to avoid doing the SF4/BB thing where you're forced to scroll colors after choosing them because you can only choose with 1 button. It might just be a matter of making Circle always back (except during Custom Assist) and moving all the color macros 1 forward. >.<
Maybe a "cancel" option added into the assist select dialogue.
 
Make the circle button always go back outside of custom assist select, and drop the circle button from the inputs. It'll change some of the combos, but you can still get up to 31 with 5 buttons.
 
The PS3 Dualshock is an interesting beast, imo. A lot of functionality that goes unused. For instance, the buttons not only have an on/off state, they are pressure-sensitive. The report (the data returned by the device) also has several unused areas. I've hacked on the dualshock 3 a bit with OS X, but doubt I'd be of any use here. Anyways, good luck!
 
DualShocks have been pressure sensitive since the DualShock 2. Heck that on even had a pressure sensitive D-pad.