How to add Xperia™ device support for the DUALSHOCK™3 wireless controller in your Android™ game [video]

A wide range of Xperia™ devices support the DUALSHOCK 3 wireless controller, bringing a console-like experience to PlayStation® Mobile games. You can also deliver the same functionality to Android™ games.  Read on to learn how to optimise your games for the DUALSHOCK™3 wireless controller for Android games – you’ll also find guidelines and recommendations, along with the key code mappings for the supported devices.

Develop & optimise your game for the DUALSHOCK™3 wireless controller for Android games
The DUALSHOCK 3 wireless controller provides an intuitive game play experience with gaming buttons and controls. Inputs include:

  • Left and right joysticks.
  • Directional buttons.
  • Digital buttons: triangle, circle, cross, square, L1, R1, L2, R2, Start, Select.

By adding support for the DUALSHOCK™3 wireless controller in your Android game, you’re adding a number of benefits for the end user:

  • An input experience that is more familiar to gamers.
  • Freeing up viewing space by removing onscreen controls.
  • Allowing the games to be controlled wirelessly and be displayed and played on larger screens.

If you’ve already designed your game with generic controller support, such as for a virtual game pad, it’ll be easy to add support for the DUALSHOCK™ 3 wireless controller. You just need to:

  1. Design and convert your existing game interactions to map to the DUALSHOCK™3 wireless controller, keeping in mind the tips mentioned below, and using DUALSHOCK™3 wireless controller keycode mapping table as a reference.
  2. Implement your controller design (see keycode mapping table below) and fine-tune the controls to make sure that it “feels right”, to give users the best controller experience possible.
DUALSHOCK™3 wireless controller (top view).
DUALSHOCK™3 wireless controller (top view).

Tips when adding DUALSHOCK™ 3 wireless controller support
When incorporating DUALSHOCK™3 wireless controller support into your development, you need to follow and keep the following tips in mind:

Tips to keep in mind Notes
A game should be fully playable using only touch screen controls. Most devices only have a touch screen as an input controller.
Hardware buttons should be used consistently throughout a game. Users should be allowed to configure the control settings.
In any menu, except for the main menu, the CIRCLE button should take the user back to the previous menu. In the main menu, the CIRCLE button should prompt the user with the option to exit out of the game. In North America and Europe, the CIRCLE button is used as cancel. In Asia, the CIRCLE button is used as confirm.
In any menu, the X button should be used as the confirmation button. In North America and Europe, the X button is used as confirm. In Asia, the X button is used as cancel.
On screen buttons should not appear when the user is using the DUALSHOCK™3 wireless controller. There should be an option in the options menu to turn the on screen controls off or on.

Implementing the DUALSHOCK™3 wireless controller buttons and joysticks
The DUALSHOCK™3 wireless controller support can be implemented using standard Android APIs. You’ll also need to know the key code mappings when you’re adding support for the DUALSHOCK™ 3 wireless controller in your game. Any key press on the device is described by a sequence of key events. Each key event is generally accompanied by the keycode getKeyCode() and getScanCode().

Use the table below for the keycode and scancode mappings for Xperia™ devices.

Key code mappings for all Xperia™ devices that support the DUALSHOCK™3 wireless controller.

Button Keycode Scancode
Up KEYCODE_DPAD_UP 0x124
Down KEYCODE_DPAD_DOWN 0x126
Left KEYCODE_DPAD_LEFT 0x127
Right KEYCODE_DPAD_RIGHT 0x125
Circle: ○ button KEYCODE_DPAD_BUTTON_Y 0x12d
Cross: × button KEYCODE_DPAD_BUTTON_X 0x12e
Triangle: △ button KEYCODE_DPAD_BUTTON_B 0x12c
Square: □ button KEYCODE_DPAD_BUTTON_A 0x12f
L1 KEYCODE_DPAD_L1 0x12a
R1 KEYCODE_DPAD_R1 0x12b
L2 KEYCODE_DPAD_L2 0x0128
R2 KEYCODE_DPAD_R2 0x0129
L3 KEYCODE_DPAD_THUMBL 0x0121
R3 KEYCODE_DPAD_THUMBR 0x0122
SELECT KEYCODE_DPAD_BUTTON_SELECT 0x0120
START KEYCODE_DPAD_BUTTON_START 0x0123
PS KEYCODE_DPAD_BUTTON_1 0x2d0

The following code snippet shows how buttons are detected from a DUALSHOCK™3 wireless controller.

public boolean onKeyDown(int keyCode, KeyEvent event)
{
switch(keyCode)
{
case KeyEvent.KEYCODE_DPAD_BUTTON_X:
// CROSS button pressed
break;
case KeyEvent.KEYCODE_DPAD_BUTTON_Y:
// CIRCLE button pressed
break;
...
}
return super.onKeyDown(keyCode, event);
}

The left and right analog sticks on the DUALSHOCK™3 wireless controller returns keycodes (UP, DOWN, LEFT, RIGHT for each direction) and can be used as joysticks. Each joystick has two axes (one for vertical and one for horizontal) and the range value can be obtained by calling the getMotionRange(int).  Please keep in mind joystick implementation usually takes more effort and iterations to make the control “feel right”.

For more information and references on the Android gamepad APIs, refer to the InputDevice and MotionRange topics on the Android Developer website.  You can also check out this Android and game controller video from the Android Developers for more tips on how to make your game controller compatible on Android.

How to setup the DUALSHOCK™ 3 wireless controller on your device
Currently, a number of Sony devices offer a setting that will allow you to connect a DUALSHOCK™3 wireless controller via Bluetooth™ to play games wirelessly, and the initial setup of the DUALSHOCK™3 wireless controller is quite easy.

The following Sony smartphones and tablets support the DUALSHOCK®3 wireless controller:

*DUALSHOCK®3 wireless controller can be used when the software is updated to Android 4.2.

DUALSHOCK setup

DUALSHOCK™3 wireless controller setup menu on an Xperia™ tablet.

In the settings menu of the supported devices, there is an option for “DUALSHOCK™3 wireless controller”. In addition to the DUALSHOCK™3 wireless controller and USB cable, the only other extra item you’ll need to setup your DUALSHOCK™3 wireless controller is a USB on the go adapter. Once the DUALSHOCK™3 wireless controller is connected, it can be used to navigate through menus to select, start and play games.

***

If you have any questions on how to add DUALSHOCK™3 wireless controller support in your game, feel free to leave us a comment below and we’ll get back to you with an answer as soon as we can!

PlayStation is a registered trademark of Sony Computer Entertainment Inc. SIXAXIS is a trademark of Sony Computer Entertainment Inc.

More information

Comments 201

Sort by: Newest | Oldest | Most popular

  1. By John William

    #1

    I need games for Sony experia z 3 compact tap free with out virus game left

  2. By john read

    #2

    Everytime I remove the otg cable the pad loses sync…………but works fine when plugged in?

    • By john read

      #3

      hi guys……..turns out i may have been sold a fake controller…….its almost impossible to tell it from a genuine one but once i researched it a little more im pretty certain ive been duped

  3. By Manish Tyagi

    #4

    Can xperia t 2 ultra support ps2 controller ??

    • By Joe Padre

      #5

      Hi Manish,
      No, sorry, there is no official support for PS2 controller with Xperia devices.
      Best regards,
      Joe from Developer World

  4. By Edward Wadhams

    #6

    Can my Sony xperia m connect to my dual shock 3 controller my phone is android 4.3 but I can’t see it anything to do with a controller in my settings???

  5. By anshul raj

    #8

    Can m4 aqua support dual shock 3 ?? Plz reply

  6. By Stbàan fernàandez

    #10

    Ne fonctionne pas sur mon Xperia M2 sous Android 4.4.4 j’ai besoin d’aide :( / Do not work on my Android 4.4.4 Xperia M2 I need help :(

    • By Joe Padre

      #11

      Hi Stbaan,
      PS Certified devices support only Android OS version 4.4.2 or earlier.
      Best regards,
      Joe from Developer World

  7. By MDB MarKN2ny

    #12

    Is Xperia M2 support dual shock 3? Pls reply pls

  8. By Nopika Wardan

    #14

    Hallo joe….slmt siang!!!!
    Saya punya xperia t2 ultra & udh upgrade os ke lollipop,,,
    Apa xperia t2 ultra saya bisa pakai controler dualshock3™????

    Terima kasih
    Nopika06@gmail.com

    • By Joe Padre

      #15

      Hallo Nopika,
      Xperia T2 Ultra and other PS Certified devices support only Android OS version 4.4.2 or earlier.
      Salam hormat,
      Joe from Developer World

  9. By ᴏʙᴇᴅᴇsɪɢɴs

    #16

    I have a SIXAXIS controller that worked fine before, but all of a sudden it only pairs with the PS3 and NEVER with the Xperia!!!
    WHHYYYYY
    please help

  10. By Karey Darnel

    #17

    I have the xperia z2 tablet and I was wondering if you will ever be adding support for more than 1 controller. It would be wonderful to play games with friends on one screen like the old days, but on the go.

    • By Joe Padre

      #18

      Hi Karey,
      At this time, there are no plans to add support for more than 1 controller on an Xperia device.
      Best regards,
      Joe from Developer World

  11. By Khalid Mohamed

    #19

    I would like to know all the games that I can play with my controller in my phone

    • By Moez Braham

      #20

      Try half life

    • By Joe Padre

      #21

      Hi Khalid,
      Sorry, we don’t have an official list available. You’ll have to check if the game you’re interested in has controller support, then see if it works with your DUALSHOCK3 controller.
      Best regards,
      Joe from Developer World

  12. By Jérôme Tavel

    #22

    Hello

    I have an official Sony dualshock 3.

    The pairing with my Xperia Z2 Tablet is ok.

    The dualshock work with USB cable.

    My bluetooth work too with my Fitbit but the dualshock 3 doesn’t work in wireless.

    After the pairing with USB cable. I take off the USB cable. The 4 leds flash of the controller and nothing, no detection in wireless.

    The Dualshock 3 controller doesn’t appear in Bluetooth settings.

    Could you help me please

    • By john read

      #23

      I have the same problem…….did you find a solution?

  13. By Luke Ellis-Snowden

    #24

    So I have an experia z3 compact and an experia tablet z the dualshock was connected worked fine and now all of the sudden it won’t even pick up the controler when I link it by wire..

  14. By Thakur Rana

    #26

    can I connect xbox wireless controller to my xperia z1

    • By Christopher Martin

      #27

      No, never. Can’t even do it with a PC without an official wireless adapter. You might be able to get a wired 360 controller to work with an OTG usb adapter but never a wireless one, cables for them only charge the controller, it has no connectivity features and the wireless controller works on a proprietary signal so there’s no hope of getting that to work.

  15. By Sameer Beg

    #28

    can controller work on xperia m2 and how to connect controller with otg cable.

Show more comments

1-28 of 201 comments. Show all comments