Despite not currently owning a PS3, I do have a few DualShock 3 controllers lying around – one of the few things I shipped back from Japan. You can never have enough controllers, right? These wonderful little devices can be used with more than just an actual Playstation 3 of course – so today I’d like to show you how you can play all those awesome Android games with a PS3 controller. The process is easier than I thought, and you don’t need a special OTG USB cable – we’ll be using Bluetooth. We’ve also previously published instructions on how to plug a controller into your Mac, use a game controller with a jailbroken iPad, and finally how to use one with Windows 7.
Here’s what you do need, though:
- An official PlayStation 3 controller. Support for unofficial ones is not guaranteed even if the initial detection works.
- A rooted and compatible Android phone (see below).
- A standard mini-USB to USB cable (comes with a PS3, any pretty much every digital camera ever sold).
- A Windows PC.
- A Google Play account with payment details.
First up, this isn’t compatible with all Android phones, and you will need to be rooted (no idea how to root your phone? Click here). Before you do anything else, go download the SixAxis Compatibility Checker, you’ll get a definitive answer. Launch the app, click start, and it’ll attempt to interface with your Bluetooth driver. If all is successful, a message will pop up with the Bluetooth address of your phone. Note this down.
The second thing to be aware of is that the SixAxis Controller app costs real money – about $2.50 to be exact. That’s why you’re checking compatibility first, so you aren’t wasting your hard-earned cash. But we’re not there yet, so let’s continue testing first.
Pairing Your Controller
On a PC, download the SixAxis Pair Tool from here (there’s alternative links there for Linux and OSX command line tools, but I’m going to assume you’re using Windows). It needs to be installed first, along with a VC runtime from Microsoft (included in the download), and finally run with Administrator permissions.
On first run, it’ll go through SEARCHING… then installing a driver. Finally (assuming your controller is plugged in, if not then do so now), you’ll be shown the current paired master – that is, the Bluetooth address of the PS3 it was paired with before – and the option to Change Master.
Enter the address that the compatibility app gave you – putting colons between the hex codes, and click Update to change it. If successful, you can safely uninstall this app, you won’t need it again until you get a new phone.
Connect to Android
You can now disconnect the controller from the USB cable, and go back to your phone. If the driver has stopped in the meantime, click start again and get that success message back. It should now be in a listening state. Press the central PS button on your controller and it should pair successfully. Congratulations, you can go ahead and buy the full app.
Once you’ve purchased the full app, there’s one final step needed – to make your controller into the current input method. The app will prompt you on first launch, so just hit Yes, and turn on the SixAxis keyboard; then tap Change IME and select the SixAxis. Finally, remember that this replaces deactivates your regular keyboard – so when you want to go back to normal on-screen keyboard typing, you’ll need to change the IME back again.
To test this out, I used Grand Theft Auto: Vice City, a classic that fully supports gamepads natively. For retro gaming, try RetroArch (all old consoles), FPse (Playstation), Mupen64Plus AE (N64). Most games will work to some degree by default, by you can also use the controller app to change key mappings where needed.
For unsupported games – such as those with on-screen controls, the process is quite ingenious. Simple take a screenshot of the game and create a new profile, then proceed to create “hotspots” on the screen for the buttons to map to. Here’s a quick guide from someone else.
Of course, this whole process becomes ridiculously trivial if you have a tablet with a full USB socket, at which point you can simply plug the controller into the device directly. You’ll still need this app though, but can just hit the “pair controller” button.