Connect a Dualshock 4 to Mac and play some games via Bluetooth

I struggled a bit today to get this combination working so I wanted to share my findings here. As you probably already know, it’s very easy to connect the PS4’s Dualshock controller to your Mac. All you have to do is:

  • Turn on Bluetooth on your Mac and go to Bluetooth preferences
  • If you have connected the Dualshock before, remove the Wireless Controller entry
  • Set the Dualshock to pairing mode by pressing the SHARE and PS-Button until the lightbar flashes white very fast
  • Click ‘Pair’ at the new Wireless Controller entry in the Bluetooth (the lightbar should change to a constant white light) – if you’re using an OSX version older than Mavericks, you might have to add the device manually

Unfortunately the controller mapping isn’t as easy at the moment; it doesn’t really work right out of the box. Apparently there are some plist files out there that make some games compatible but I didn’t have any of them to test it.

So to configure a custom mapping I used the really awesome app ControllerMate, where you can add keyboard mappings to the controller inputs. After you get used to some of the most important components it’s very straight forward to use und has a nice, clean interface.

To map the Dualshock 4, it’s very helpful to rename the default names of the buttons under ‘Controller Information’ -> ‘Wireless Controller (Game Pad)’ to a more fitting description in the ‘Custom Name’ column as you can see below. Here you can download my config file (not sure if it will work for you, would be very happy about some comments on this, ty!) Dualshock 4 ControllerMate config

Now switching back to ‘Programming Items’ takes you to the interface where you map the different elements of the controller to buttons on the keyboard. You might want to create a new Programming Page to save your mapping afterwards. Some of the most important components / Building Blocks (BB) I used yesterday for my Super Meat Boy setup were:

  • Button BB – Simple button press on the controller – used by dragging it from the palette window to the programming page – can be found quicker by just pressing the button on controller/keyboard
  • Hatswitch / Axis BB – D-Pad and vertical/horizontal stick events – output different values depending on direction of action – d-pad from 0-8 including all direction + diagonal and no press ‘8’ – sticks values from 0-255 (left/right or up/down)
  • Single Key BB – map action to a single key press (on the keyboard) – created in the context menu -> Create BB > Output > Single Key – to map a Button BB to this component just drag the bottom off/on switch to the top of the Single Key BB – when mapping Hatswitch or Axis we need another component between them and this one, because of the multiple values
  • Value Selector BB – select some values via checkboxes that activate the following mapping – created in the context menu -> Create BB > Calculations > Value Selector – used e.g. when mapping the D-Pad to connect all 3 actions of one direction to one of the arrow keys
  • Range BB – select a interval of values that activate the following mapping – created in the context menu -> Create BB > Calculations > Range – used e.g. when mapping the many values of a stick to one of the arrow keys – also very helpful to specify dead zones of the sticks where the mapped key shouldn’t be pressed (in my example dead zones of 115-145 worked pretty good)

My current setup for Super Meat Boy looks like this and can be downloaded here (again happy for feedback if sharing programming pages works proper):

Super Meat Boy Programming Page

To edit the configuration of the single BB, use the Properties Inspector Window (Window > Inspector Window > Properties / CMD + 1). For testing the current configuration you can just press the buttons of the controller and look for glowing ON switches to see if everything is working correctly.

The trial version of ControllerMate is limited to map 10 Single Key BB as far as I have seen, when adding another block, it looks like this.

ControllerMate Unregistered Warning

This is a very nice trial model imo as you can really test the functionality before buying it. It should also work for a good amount of games, where you don’t need more than 10 actions – remove the “duplicate” mapping of D-Pad AND sticks if you need more action button! If you want to map really complex controls or the whole controller you’ll have to register for the full version.

You can also save configurations of different games by exporting them (File -> Export Selection…) and delete the Programming Page in the App to get rid of the unregistered warning of other pages. This way you can store an infinite amount of configurations, even in the trial version.

For now only the touchpad click is supported in ControllerMate so you can’t really use it for navigation or anything, but maybe that will change in the future. Also I really hope Sony or someone else is coming up with an official driver or other piece of software, that makes this manual mapping obsolete. In the meantime I think this is a really nice way to enjoy some games with the Dualshock 4 on the Mac. Thanks for reading and as always, I’d be happy about any kind of feedback (especially on the config files ;))

4 thoughts on “Connect a Dualshock 4 to Mac and play some games via Bluetooth

  1. Nicolas

    Hey,

    Thx for this tutorial, but something bothering me.
    Bluetooth works perfectly but the vibration is not effective on my mac with my DS4.

    Is someone have a solution for fix this ?

    I’m try to activate this option with borderlands 2… This is useless without it.

    Thanks !

    Reply
  2. mr?

    I recently picked up a PS4 wireless Dualshock controller and managed to pair it with my rMBP running OS X 10.10.x

    Had poor results getting several games working with it properly as the button mappings were horribly wrong and there was no real way of fixing them as the configuration screens had issues as well — games such as Rochard, Trine 2 clearly saw the controller via bluetooth but just had no clue it wasn’t what they though it was.

    Successfully got Borderlands (Mac App Store) working with it by downloading a PS4Dualshock.plist file that feral had created and putting it into the appropriate place in the games application bundle as per the instructions you’ll find with the file if you do a search for it or contact Feral’s support.

    Note that you have to make sure that you have the “Enable zoom toggle for Magic Mouse and Trackpad users” option disabled in the advanced tab of the Borderlands launcher application in order for the front trigger buttons to work properly at full pull.

    Open questions: (given no access to a playstation unit)

    When I kept the dual shock controller connected to my iMac for charging it would actually charge properly and I could use it for several hours wirelessly via bluetooth but I have had no success getting it to charge off an dumb iPad or iPhone usb charger and am wondering if I can only charge this thing with a dedicated PS4 charger or host usb computer/hub?

    is there any native OS X software or even windows software that will work in VMWare/Parallels out there that lets you:

    see its current status such as firmware version, battery level and cycle count etc and ideally to update the firmware.

    configure the controller hardware itself including in my case the desire to turn off or dramatically lower the light bar.

    is any mac software capable of using the built in vibration, speaker, or external headset functionality when connected via bluetooth or even USB?

    really open question:

    Even though it is not “made for iOS” is there any obvious technical or business reasons that Apple couldn’t, shouldn’t or won’t add driver and system level support for it since they clearly did for recent versions of OS X?

    Offhand I can’t think of any show stopping security concerns that could not be addressed and I would like to hope it has a modern Bluetooth Low Energy 4.x hardware/software stack and that Sony would be willing to supply the requisite information needed to implement basic support.

    I imagine this is more a case of it is in no ones job description to do this and it has priority close to zero without significant customer and developer requests versus any conspiracy controllergate theories the internet braintrust could could come up with. It would just be nice to have the mainstream bluetooth controllers that are basically commodity items nowadays work with all modern systems.

    Reply
  3. KtheNinja

    This works perfectly! This so far has been the only way that i have been able to get my Dualshock 4 to work with my mac and can say that this definitely works with Super Meat Boy. The config file works and is extremely easy, just download the software and use them. Thanks so much, this has made mac gaming a whole lot cooler and easier for me! 😀

    Reply
    1. wexoo Post author

      Thanks for the kind words! Glad the config files worked, thanks for confirming 😉 I just hope sometime soon the support for the dualshock will be more comfortable and work without manually mapping the controls – if you find anything (app, infos, etc.) to make the process easier, please keep me updated 🙂 Have fun with the (awesome) Dualshock 4!

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *