Bluetooth (Old)
Note: This information is for old devices, on modern devices any Bluetooth HID controller will work and this page can be ignored
HID-compatible Keyboards and Gamepads (Android, Linux, WebOS 2.0+)
Connect these via the OS settings app and map keys using Input Device Setup -> [Device Name] in the emulator. If you don't know the device name, select Auto-detect Device to Setup. Always check Android compatibility with the manufacturer if you aren't sure before buying. On Android, some Input Methods can cause interference, turn on the "Skip OS Input Method" input option in this case.
iCade (All platforms with Bluetooth keyboard support)
Turn on "iCade Mode" in the device setup menu to use any iCade-compatible device synced via the OS Settings app.
Game controllers supported via in-app scanning (Android, iOS, Linux)
Connect the controllers listed below via the "Scan for..." command in the main menu and view the device-specific notes below. If the "Background Bluetooth" input option is on, the devices stay connected even if you move the app to the background (to check your mail or a website for example). You can use "Disconnect Bluetooth" from the main menu to close the connections while the app is running.
Nintendo Wiimote, optionally with Classic Controller or Nunchuck
Nintendo Wii U Pro Controller
Zeemote JS1
Note about Android versions with incompatible Bluetooth support: Certain versions of Android won't function with Bluetooth controllers due to software issues from the manufacturer (notably those by HTC). If possible, you should try to root the device and install a custom rom such as CyanogenMod to resolve the problem. Also, Android 4.2 cannot currently use Wiimotes due to Google's new Bluetooth implementation. Please star issue #58164 on the Android Google Code site in hopes Google adds proper support in a future OS update.
Before you use in-app Bluetooth support on iOS, make sure Bluetooth is disabled in the OS settings app (the BTstack settings should have None or BTstack checked).
Wii Controllers : Hold your Wiimotes sideways and press the 1 & 2 buttons or the red sync button near the battery (needed for newer Wiimote revision, usually labeled "Wii MotionPlus Inside", and for the Wii U Pro Controller) to make them discoverable (all four LEDs should start flashing). From the main menu select "Scan for Wiimotes..." and wait until each wiimote connects. After 5-10 seconds, you'll see each one with a different LED lit up, signifying which player it's assigned to (player 5 will have LEDs 1 & 4 lit). Once connected, use the following menu controls:
D-pad (held sideways if on Wiimote) : navigate menus (Up & Down), Left to go up a directory in file picker
1/B : Select highlighted entry
2/A : Cancel selection
-/L : Page-down
+/R : Page-up
Home : Open/close the main menu
iControlPad : Your iCP must be updated to at least firmware 1.0.1. More info about updating is available in the official iCP forums and also you can try my firmware updater depending on your platform. First, make the iCP discoverable in SPP mode (power-on by holding start for 2 secs without any other buttons pressed, LED should be flashing). From the main menu select "Scan for ...iCP..." and wait for the iCP's LED to become solid indicating the connection is complete, an "iCP Connected" message also appears. In case an error message, turn it off/on and try to scan again. If the iCP is disconnected the LED should return to a flashing state. You may re-scan for it in this state when you return to the app without turning it off/on. Once connected, use the following menu controls:
D-pad: navigate menus (Up & Down), Left to go up a directory in file picker
B : Cancel selection
X : Select highlighted entry
Y : Open/close the main menu
L : Page-up
R : Page-down
PS3 Controller : If the controller hasn't been paired with your device yet, using your PC, launch a pairing app while the controller is connected via a USB cable (Linux: use sixpair, Windows/Mac: use tools here) to associate it with the device's Bluetooth adapter. With the controller unplugged, select "Scan for PS3 Controller", then push and hold the Playstation Logo button when prompted. After about 1 second, the controller LEDs should stop blinking and the app will report a successful connection. Use the following menu controls:
D-pad: navigate menus (Up & Down), Left to go up a directory in file picker
Circle : Cancel selection
Cross : Select highlighted entry
Playstation Logo : Open/close the main menu
L1 : Page-up
R1 : Page-down