How to Play Games with a Physical Controller on Your Android Phone


There are tons of great games available on the Android platform, but playing them with an onscreen interface isn’t much fun. Ditch the fake buttons and start enjoying your games with a comfortable gaming controller.

Why Do I Want to Do This?

Modern Android phones are powerful little devices that can play a wide array of new Android-specific games as well as a huge number of emulators which in turn open the door to playing thousands of awesome vintage games.

The only problem, however, is that outside of one or two niche Android phones designed with gaming in mind (and thus a game pad built right in), you’re left controlling the action with on-screen controls. While this might work for turn-based strategy games where the action is slow and you have plenty of time to poke around on the screen, it’s a horrible setup for anything that involves speed as the touch screen buttons are difficult to use and, worse yet, your fingers are blocking part of the screen at all times.

This tutorial outlines two different options for overcoming this obstacle and unleashing the gaming power of that snappy little smartphone you carry around with you everyday. The first option uses the Wiimote, a device that many of the millions of Wii owners have laying around. The second option uses the MOGA gaming controller. If you’re on the fence about which route to take, we’d strongly suggest reading through the whole guide to see the benefits of each option.

Note: If you’re interested in linking a PlayStation Dualshock 3 controller to your Android device, it is possible to do so. Because support for linking the controller, phones that can do it, and apps that are compatible with the controller are pretty limited, we have opted not to include it in this guide.

If you would like to forge ahead on your own we can suggest looking into the GameKlip to mount your device on the Dualshock controller and the Sixaxis Controller app to link the controller (both wired or wirelessly) to your device.

What Do I Need?

While we strive to keep costs low for most of our projects, this particular project involves a few minor purchases. Check out each suggested parts list and the accompanying notes to decide what you need.

Before we proceed, there’s an important consideration based on what version of Android you’re running. The best Android-based Wiimote control app on the market right now has been temporarily disabled by Android 4.2 (it works fine on everything from Android 2.0 to 4.1). Hopefully the developer is able to iron out the issues with the changes to Android’s interface system soon. In the meantime, however, that means that setting up the MOGA controller is a better solution for Android 4.2+ users as we don’t have to deal with using some of the flakier Wiimote control apps in the Play Store.

That said, here’s what you will need for each project:

For the Wiimote users: To follow along with the Wiimote portion of the tutorial, you will need the following items:

The Classic Controller is an optional add-on but certainly a welcome addition for games that require more complex button mapping like emulated N64 games. It’s really nice to have something to hold the project all together (either in your hands like a tradition controller+screen gaming unit or via mounting to a nearby surface like a desk or airplane tray).

To that end, we found a smartphone clamp that works extremely well. It’s a bit hefty in your hands but it was the most versatile clip we found. It works perfectly to clip the phone to the Wii controller, to clip the phone to nearby surfaces, and it’s sturdy enough that we were never afraid that our phone was going to take a spill.

If you already have an extra phone mount lying around, you can experiment with modifying that. You could also look at some of the clever ways people have created gaming mounts for their Android/Wiimote combos like this bicycle phone mount/Wiimote mashup or this modified Wii Mario Kart wheel turned phone mount.

For the MOGA users: If you have opted to use the MOGA Mobile Gaming System, you will need the following items:

The MOGA gaming system has a built-in smartphone holder so you don’t need an extra clamp or holder. That said, we really enjoyed using the Universal Smartphone Clamp described in the Wiimote section to mount our phone wherever we wanted and also used it with the MOGA.

Once you have reviewed the components list, read on to see how to set up the Wiimote and MOGA.

Configuring the Wiimote


Installing the controller app: The first step in setting up your Android device to communicate with the Wiimote is to install the Wiimote control package. Download Wiimote Controller here. Install the application to your device.

After you have installed the application but before you launch it, we need to take a moment to turn on the new IME (Input Method Editor) within the Android system menu. There is a provision for doing so within Wiimote Control but in our testing we found that the Settings call didn’t always launch smoothly, so we’re simply going to do it manually.

Navigate to Settings –> Language & Input and then scroll down to the Keyboard & Input Methods. Within that sub-section check the entry for WiiControllerIME. This enables the hardware key presses on the Wiimote, as translated by the WiiController app, to interface directly with Android.


Configuring the controller app: Once you have activated the new IME, launch WiiController. The first order of business is simply linking the Wiimote to your device. Inside the Wiimote Controller’s main interface you’ll see two buttons at the top of the screen. Press the first button Init and Connect while also pressing the red Sync button located inside the battery compartment of your Wiimote. Since the Wiimote is a non-paired Bluetooth accessory it will link immediately with no prompt for a device PIN.

After the device is linked you can test out the connection by pressing any of the buttons on the Wiimote—you’ll see the values for those buttons appear on the screen.

Now it’s time to configure some of the behind the scenes stuff. While in the Wiimote Controller app, press the menu button and then select Preferences. At the top of the preferences menu, check off “Switch after disconnect” in order to instruct the application to immediately switch off the Wiimote IME when you’re done using the Wiimote. Under that, tap Target keyboard and select your default Android keyboard. Go ahead and keep the preferences menu open for the next step.


Configuring key maps: Now that we have the Wiimote linked to our Android device, it’s time to look at how we configure it to work with our games. There are two methods for setting up the Wiimote: mapping the keys in Wiimote Controller and mapping the keys in the game/emulator app itself.

In other words, in order for the Wiimote to be a viable controller option for your gaming enjoyment, you either need a game or emulator that allows you to set up custom key maps within the application or you need a game that you know the existing key map for (either by checking the in-game documentation or looking it up online) so that you can program a matching key map into the Wiimote Controller app.

First, let’s look at how to configure the key maps in Wiimote Controller since we already have it open. Within the Preferences menu click on Mapping options –> 1st Controller mappings.

Here you can reset the defaults, save your changes as a profile, and load your changes from a saved profile. Every key on the Wiimote (as well as the Nunchuk and Classic Controller) are listed. You can press on any of them and select from the dozens of possible keys used by your game from keyboard keys to hardware keys to everything in between.

If you haven’t already checked out your game, you definitely don’t want to start monkeying around in here yet—check which keys/buttons the game uses before changing the key map (and if you can set the key map directly in the game).

Because configuring in-application key maps is the same for both the Wiimote and for the MOGA controller, we’re going to go over setting up an emulator and configuring in-app key maps as the last step in the tutorial. Go ahead and jump down to that section if you aren’t interested in configuring a MOGA controller.

Continue reading to learn how to configure the controller and setup emulators.

Jason Fitzpatrick is a warranty-voiding DIYer who spends his days cracking opening cases and wrestling with code so you don't have to. If it can be modded, optimized, repurposed, or torn apart for fun he's interested (and probably already at the workbench taking it apart). You can follow him on if you'd like.