Guide to game controllers on Android

usb bt non root ps31 - for some reason we don't have an alt tag here

We’ve talked a lot about game controllers on the site, and unfortunately the number of articles make it hard to get the big picture at this point. We need a place to collect all that information so that new users can easily get started, so that’s what this guide is for. Read on to learn all about using game controllers on Android.

Paul’s late 2017 note – this is one of the most popular articles on Pocketables and is now hilariously outdated. We’ll be updating this in 2018 with some of the controllers that have come out in the last 5 years, but for now just take a look at the Gamevice series of products and see if they fit your needs. Here’s a review of it.


What controllers can I use?

Game controller support on Android is all over the place. Some more recent devices can actually use controllers directly over USB, and the support is built right into the OS. For the most part however, third party software is needed in order to get it working, and is definitely needed to get the most functionality. USB/BT Joystick Center is the software solution we talk about the most, because it’s sort of an all-in-one solution to get game controllers to work.

With that app, or similar ones, it’s generally possible to get any normal controller that connects over USB to work. Some generic controllers might not work out of the box with the apps, but can in some cases be made to work in a more manual way. To give you some concrete list on what controllers will work, I will simply copy/paste the current compatibility list of USB/BT Joystick Center:

– PS3 Controller without root (* CSR Bluetooth 2.x/EDR+ USB Stick is needed)
X360 Controller (“Microsoft Wireless Gaming Receiver for PC” USB is needed)
– Bluetooth Keyboards
– iCade
– iControlPad (SPP Mode)
– PhoneJoy
– Wii Remotes 1-4 + Nunchuck + Classic
– Zeemote

– X360 Controller – Wired
– PS3 Sixaxis – Wired
– Hyperkin N64 Moonlight Controller 
– Logitech (Rumble, F310, F710)
– Microsoft Sidewinder 2 Precision
– Trust GXT 24
– X360 Rockband: USB Guitars + Drums
– N64 “Controller Adapter for PC USB” (for 2 Controllers)
– PSX 1/2 “USB Gamepad Converter Dualschock” with 2 Player support
– PSX + N64 USB Dual Converter 
– SNES “Controller Adapter for PC USB”
– C64/Atari/Amiga “Donalds USB-Joystickadapter” for 2 Players
– C64/128/A600 “Keyrah” USB Keyboard + 2 Joysticks Adapter 
– Stelladapter 2600 to USB
– “PC/Gamepad/Joystick Adapter” (15 Pin D-Sub)
– PSX – USB 4 “Buzz Junior” Wired Controllers
– PSX 1/2 (EAXUS) “Super Dual Box Advanced” Adapter for PC USB

As you can see this is quite a comprehensive list. The controllers that work with the most devices are those that are made to connect over Bluetooth without the use of a proprietary protocol. That means normal Bluetooth keyboards, and Bluetooth controllers made for mobile devices, like the PhonejoyiControlpadiCade 8-bitty, and Zeemote to name a few.

The second most compatible controller has got to be the Nintendo Wiimote, which can use add-ons like the Classic controller to make it more gamepad-like.  The compatibility depends on the device though, and apps like Wiimote Controller which handles the communication between controller and device outright states that it’s not compatible with a lot of HTC and Samsung devices.

Next up you have USB controllers. Whether or not those will work depends on the device, specs of the USB support for a device (if it has that feature at all), and in a lot of cases requires an adapter to hook to the tablet via USB. Here’s an example of such an adapter for Samsung’s Galaxy Tabs

The most difficult controller to get working is the PS3 Sixaxis Controller in wireless mode. USB/BT Joystick center can do this by using a special USB Bluetooth dongle connected to the tablet via USB. It’s also possible to get it working on rooted devices, but compatibility isn’t 100% there either.

How do the controllers interact with the device?

controller system - for some reason we don't have an alt tag here

Keyboard emulation

Assuming you’re using third party apps and not native game controller support, the method that the apps use to handle the communication between controller and app/game end up confusing a lot of people. That’s a problem because understanding how it works is pretty crucial in the cases where it doesn’t work. I won’t lie to you, I’ve seen the setup of game controllers confusing people who find flashing ROMs to be a piece of cake, so it’s not exactly the same as logging into the official Facebook Android app.

The most common method that these apps use is to emulate a keyboard. The app that handles the controller will receive button input from the controller, and then in turn translate that input to keyboard buttons. You press the down button on the d-pad of a controller, and the app tells your Android device that someone just pressed the arrow key down on a keyboard. Keyboard support is built into Android after all, so why not use a system that is already there? Don’t be confused by button names and what they correspond to on this virtual keyboard however, d-pad down can just as easily be made to appear as X on a keyboard, and the X button on a Playstation controller can be arrow down on the virtual keyboard. The apps that handle the controllers let you change these button/keyboard matches as you want, and you can even program buttons to act like special hardware keys, like media playback. A Wiimote works perfectly as a music/video remote control if you e.g. program the up/down left/right arrows to be volume up/down, previous/next track respectively – because volume and track skipping are built into Android as media buttons.

Because this method is used to interact though, you have to enable a special keyboard to make it work. Android supports third party keyboards, which is how you can install new on-screen keyboards from Google Play. In order for apps to translate controller input into keyboard input, they need to use what’s essentially a fake on-screen keyboard. This keyboard is installed when you install the apps, and you have to enable it to make it work. You have to enable it twice: When you first install the app, you have to activate that input method under Language and input -> Configure input methods in the device’s main settings. This doesn’t actually enable the keyboard, it just activates it so it will show up as a selectable keyboard in the list. This is a security measure since soft keyboards can in theory log your passwords and such. In theory, don’t get alarmed by Android’s notifications, they’re only warning about the potential, not actual threats.

The second time you have to enable it is every time you want to use your controller, because you need to select that keyboard instead of the soft keyboard you normally use. You do this under “Current input method” in “Language and input”, or you simply use the shortcuts that most of the apps provide you. You then switch to the right keyboard (normally named something along the lines of the app you’re using to handle controller input, e.g. USB/BT Joystick Center’s keyboard is called USBjoyIME,) and in doing so, lose the ability to bring up your normal soft keyboard until you switch back. No texing while playing with a controller, in other words.

At this point your controller inputs will be recognized as keyboard inputs by Android. That means it’s time to get the game to recognize keyboard input. Not many games support this, and to make matters worse, they don’t all use the same method. Some games allow you to map game features to keyboard buttons, but other games have pre-set keyboard buttons that they have been mapped to, meaning that you actually have to do the key mapping in the game controller app. Examples of such backwards apps are Shadowgun and GTA 3, and you can find key mappings for those games on the UB/BT Joystick Center forums (Shadowgun, GTA 3). As an example, Shadowgun recognizes the keyboard button “7” as a command to reload. In order to make e.g. the circle button on a PS3 controller reload the weapon, you then have to go into the app that controls the PS3 controller and map the circle button to the 7 key on the virtual keyboard. Other apps, especially game emulators, allow you to do it the other way around – the circle button can be mapped to whatever keyboard key you want it to be, and the game will then let you map that button to the reload feature instead. For such games, you don’t even need to remember what you mapped a button to, as they will let you select a game feature (like “reload”) and then simply press the controller button you want that feature mapped to.

game mapping - for some reason we don't have an alt tag here

 Setting up the apps – in practice

We’re not in Facebook anymore

Despite all of this information you’ve just been presented, you’re not guaranteed to get anything working. To put it simply, this isn’t the Facebook Mobile app – it’s not as simple as installing and app and having everything work out of the box. Functionality is going to depend on your device, your device’s software version, ROM, whether you’re rooted, and so on. If you’re lucky, you can retrace the steps I’ve taken in the videos and have it work right away. if you’re less lucky, you need to troubleshoot, and that’s why you need to know how everything interacts in order to find where the error is. If button input works in USB/BT Joystick Center but not in the app for instance, it’s like that some setting in the app is not configured correctly, or that you simply forgot to enable the right IME device.

Pocketables does not accept targeted advertising, phony guest posts, paid reviews, etc. Help us keep this way with support on Patreon!
Become a patron at Patreon!

Andreas Ødegård

Andreas Ødegård is more interested in aftermarket (and user created) software and hardware than chasing the latest gadgets. His day job as a teacher keeps him interested in education tech and takes up most of his time.

Avatar of Andreas Ødegård

31 thoughts on “Guide to game controllers on Android

  • Nice overview and picture of Gamecontroller -> Joystick Center -> Games … but its not complete, because of the fact that’s also possible to playing with Mouse & Keyboard (W,A,S,D or T,F,G,H) :)

    • And Wiimote with motion control, and soon Kinect ;) I know, ill probably release a V2 of the guide later on, but I wanted to keep to the basics for the time being.

  • Don’t forget about the GameStop bluetooth android controller. It is simple to use and setup. It works with most games that support external input.

    • No it’s not. Emus and games like Kof Android only recognize the left analog stick. Pad and buttons are not recognized. Pairing it was easy. Making a game or emu allow you to map the pad and buttons seems to be impossible.

  • Avatar of joshua blackmon

    I like the Xbox looking cotrolor beter I have both consels and I like Xbox controller lay out . I also tried wimote I want joy sticks .

  • ps3 wireless remotes are not that hard to get working you just need an app called sixaxis. it costs under 2 bucks in the android market

  • I heard about a plastic addon called GameKlip recently on another site. I think it’s worth checking out. I haven’t been able to determine how many android devices it is compatible with, they have a list but it may not be complete.
    Reguardless, this device seems perfectly on par with this article.

  • Avatar of Darwin

    I wasn’t sure how exactly this would work, but this could be cool. I don’t think I would use it on my phone though. Of course, connecting your phone to a TV and then playing may change things. Great read!

  • Avatar of Angel Martinez

    Hey I have a question. I am trying to play GTA III on my samsung galaxy s3 with an XBOX wired controller. My S3 isNOT rooted. The game works fine, but when I press the right trigger button, the game just spins around, and I lose controll of the game. I can’t stop it. I have to unplug my controller and resume the game. Can you please tell me what the problem is? Thanks..

    • Avatar of Joseph Kreifels II

      You need to root >>> Install J>T >>> Map keys

  • Missing the PowerA MOGA controller here. Got one and its a must-have! ;)

    • Avatar of Andreas Ødegård

      Missing a ton that wasnt invented when this was written ;)

  • Avatar of Skrimshaw

    i have a HTC evo v 4g and i have a OTG usb cable that i used and connected a USB NES controller to but i cant find an app to detect it ? also my phone isnt rooted

    • Avatar of Andreas Ødegård

      If USB/BT Joystick Center can’t find it, I doubt any app can. Generally speaking, you’ll have the most luck with standard game controllers from the big developers, and possible those that copy them. Game controllers that require their very own drivers are much harder to use on other platforms. USB/BT Joystick Center does have a feature to create a driver though, but it’s hard to use, and you may not have any luck

  • Any app I try with my wired Xbox 360 controller eventually just stops responding.Please help?

  • Is it possible to use a controller as a mouse for android? You know, maybe an on screen cursor that you can control with one of the analog sticks? I know the controller can be used for overall navigation on the device but it would be nice if I could emulate a mouse so I could play some flash games using the browser like DN or something.

    • Avatar of Andreas Ødegård

      I honestly don’t know, I think most people would just attach a mouse…

  • So im new at this mapping thing can some help me set up a wii classic controller to my tab 2

    • Avatar of Andreas Ødegård

      Beig new to something means you just have to read up on it, it doesn’t mean someone should do it for you

  • You could certainly see your skills in the article you write.
    The sector hopes for more passionate writers such as you who are not
    afraid to mention how they believe. Always go after your heart.

  • Hi there! Someone in my Facebook group shared this site with us so I came to look it over.
    I’m definitely enjoying the information. I’m book-marking and will
    be tweeting this to my followers! Outstanding
    blog and brilliant design and style.

  • whoah this weblog is great i really like studying your posts.

    Keep up the great work! You know, a lot of persons are searching round for this
    info, you can aid them greatly.

  • Heya i am for the first time here. I found this board and
    I find It truly useful & it helped me out much. I hope to give something back and help others like
    you helped me.

  • GoodGame Empire Hack Is a great hack tool. GoodGame Empire Hack Tool it`s very easy to use, you can generate whit this hack tool unlimited Rubbies,Coins and

  • Do you know if with g-box midnight mx2 a usb ps3 controller will work?

  • Wiimote/Controller is screwed up in android 4.2 and up !! :-(

  • Avatar of majedsky83

    I have a problem with my USB gamepad. I used it a lot with my previous tablet, now I have a tablet with a USB keyboard ‘out of the box’, and it works great, but the tablet fails to recognize input from my gamepad.
    USB/BT Joystick Centre doesn’t work on my device, instead I’ve got USB Host Controller app, and in it I can clearly see that the tablet can see the device itself, but any other app doesn’t allow me to define input, and the USB HC seems to just ‘see’ the gamepad, but there’s no option to define any input whatsoever.
    It seems that tablet is somehow programmed not to allow any other custom input than the keyboard (pendrives etc work perfectly).
    What can I do to fix it? Playing emulators on a keyboard is a nightmare.


Leave a Reply

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