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.

Configuring the MOGA Controller


The MOGA controller is a nice fix for the whole physical-controller on Android problem because the MOGA has two companion apps that really cover a lot of ground.

The first is the official app that makes it dead simple to use your MOGA controller on dozens of popular apps without any configuration at all. The second is a third-party driver package that opens up the MOGA for use on any game that can be key mapped, included emulators.

Let’s start off by installing the official MOGA app, MOGA Pivot. Launch the app and hit Set Up. Power up your MOGA controller with the power button (concealed beneath the middle brace that pivots up to hold your phone). Once the blue light starts blinking on your controller, hit the The Blue Light is Blinking to move forward in the setup. A box will pop up indicated the MOGA controller is requesting permission to sync with your Android device. Click Allow.

After the MOGA and your Android device start talking, the MOGA app will indicate you need a passkey. Click Generate Passkey. Make sure you see the following screen (or a variation there of) on your screen:


If you don’t see the above pairing screen (and it skips right to the next step) it will fail to pair. Be prepared to run through the pairing wizard again.

Once we’re paired up, MOGA offers us a free download of Pac Man. It’s not cutting edge or anything, but it’s perfect for testing the MOGA controller. We’ll take it.


Everything works great and we even managed to get through the first level of Pac Man without biting it too hard.

Now that we know the MOGA controller is linked properly and we can control a MOGA enabled game, it’s time to expand the functionality of the MOGA controller by installing the MOGA Universal Driver. This will allow use the MOGA controller with any games.

Launch the MOGA Universal Driver. The Universal Driver can function in one of two modes: IME mode (just like the Wiimote Controller app), or System Mode (which requires root on your phone). The wording in the settings menu is a bit unclear regarding the difference between these two. If you use IME mode the joy sticks on your MOGA remote will function in DPAD (or Directional Pad) mode, just like the directional pads on traditional controllers like the NES and SNES controllers.

In short, you should start off using the IME interface unless you come across an app that is not support by the official MOGA app but requires analog input for comfortable play. With that in mind, let’s start off by configuring the IME.

Just like we did in the Wiimote Controller section, you will need to activate the new IME. Navigate to Settings –> Language & Input and then scroll down to the Keyboard & Input Methods. Within that sub-section check the entry for MOGA IME.


Return to the Universal Driver settings menu.  Tap on Select IME. Select MOGA IME. After you have set the IME, scroll down in the settings menu to Select Device. Tap it and select BD&A to link the MOGA Driver with your MOGA controller.

Just like in the Wiimote Controller, we can create key maps and key map profiles. If/when you need to create a key map you can click on Configure to do so. Remember, also like the Wiimote Controller, there are two ways of using the controller with games. You either need to 1) map the keys used by the game or emulator in the MOGA Universal Driver app or you need to 2) set up your key maps, if possible, in the game or emulator itself.

Now that we have learned how to set the controller-app mappings for both the Wiimote and MOGA controller, let’s take a look at how easy it is to set up key maps in popular console emulators.

Setting Up Key Maps in Emulators


Whether you have set up the Wiimote, the MOGA, or both—you ambitious mobile gamer, you—it’s time to look at how to configure them outside of their specific control applications. Remember, you can always create a profile within the control apps, but given how many games and emulators support mapping within the game/emulator itself, it is usually easier to map within the specific application rather than have to switch profiles in the controller app every time you switch between games or emulation apps.

When you’re setting up emulation apps there are a few basic things, key map related and otherwise, you will want to do for maximum enjoyment:

  • Switch the emulator to landscape mode.
  • Turn off the onscreen controller/keyboard.
  • Map the emulator’s controller keys to the physical controller.

Regardless of the emulator you’re using, those are the three steps you want to go through when configuring it.

We’re going to look at key mapping in the popular SuperGNES SNES emulator. At the end of the emulator section we’ll list off emulators with app-side key mapping you may wish to check out.

First, we’ll install SuperGNES Lite—don’t forget to copy over some SNES ROMS to play with; if you’re new to emulation we suggest checking out the “Locating Game ROMs” section of How to Play Retro NES and SNES Games on Your Nintendo Wii.

After we have installed it and thrown a ROM or two on the SD card, it’s time to map the keys. For this section we’ll be mapping the MOGA controller, but the instructions are the same for both the Wiimote and MOGA.


Run SuperGNES, tap the menu button and select Preferences. In keeping with our three steps outlined above, you’ll want to tap on the Orientation icon and select Landscape. Tap on the Touch Controls icon to turn off the on screen controller. Finally, tap on Controller 1 to map your controller’s hardware keys to the emulator’s keys.

When you’re in the controller menu, tap on the Controller option at the top and select either MOGA or Wiimote, depending on which you’re configuring. To set each button, simply tap on the entry for that button (such as “A” or “Select”) and then press the hardware key on the controller you wish to map to it. Most apps will use this press-the-key approach, though some apps will have you manually select the hardware button you want for that key map such as “Button 1” or “Left Trigger”.

After you’ve mapped out the keys, open up a ROM and give it a whirl:


After a few minutes running around the Mushroom Kingdom, the vote was unanimous: using a physical controller instead of the onscreen controller is the only way to do it.

If you are looking for more easy-to-key-map emulators to round out your mobile gaming experience, the following emulators have in-app key mapping that makes setting up both the Wiimote and MOGA controller a snap:

NES Emulators:

SNES Emulators:

Gameboy Emulators:

Almost all of them have Lite versions which usually include all the major features sans the ability to create custom save points. If you’re looking for more emulators in the Play Store, check the description for phrases like “hardware support”, “Bluetooth controllers”, and “gamepads” to cue you into whether or not the application supports external game pads/key mapping.

If you’re fired up about mobile and/or retro gaming, we’ve got a pile of tutorials for you to check out. For more gaming fun you’ll want to read over:

Have a gaming guide you’d love for us to write? Want to learn how to play your favorite retro console games on a modern device or otherwise get more gaming fun for your bottom dollar? Sound of in the comments or email and we’ll do our best to help you out.

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.