Supported Controllers
Rewired supports most USB and Bluetooth controllers available, many with extended support. [1]
Controllers with Extended Support
Controllers with hardware definitions are recognized on each platform and are fully mapable by element name and have standardized axis directions.
Rewired currently includes extended support for the following game controllers as of version 1.0.0.67:
| Gamepads | Windows (Native) |
OSX (Native) |
Windows Store | Linux [2] (Ubuntu 14.04) |
Android [2] | Amazon Fire TV [2] | Webplayer [2] |
| Microsoft XBox 360 Controller (Wired) (Includes many generics/clones) |
Yes | Yes |
Yes | Yes | Yes | Yes | Windows: Yes |
| Microsoft XBox 360 Controller (Wireless) (Includes many generics/clones) |
Yes | Yes |
Yes | Works but has issues [5] | Works but has issues [5] | Yes | Windows: Yes OSX: Yes (Driver Required) |
| Microsoft XBox One Controller | Yes | No | Yes | No | No | Android Fallback | Windows: Yes OSX: No |
| Sony DualShock 2 (Insten Adapter) [7] | Yes | Yes | No | Yes | Partial [4] (L1, R1, R2, Select, Start, LSB, RSB not working) |
Android Fallback | Windows: Yes |
| Sony DualShock 2 (My-Power CO., LTD Adapter) | Yes | Yes | No | Yes | No | Android Fallback | Windows: Yes OSX: Yes |
| Sony DualShock 3 (Wired) | XBox 360 Emulation Required (Driver) |
Yes | No | No | Yes | Android Fallback | Windows: XBox 360 Emulation Required (Driver) |
| Sony DualShock 3 (Bluetooth) | No | Yes | No | Yes (QTSixA Driver) |
No | Android Fallback | Windows: No OSX: Yes |
| PS3 Controller (Gasia Wireless USB Adapter. Includes Trust GXT 39) | Yes | Yes | No | Yes | Partial [4] (L1, R1, R2, Select, Start, LSB, RSB not working) |
Android Fallback | Windows: No OSX: Yes |
| Sony DualShock 4 (Wired) | Yes | Yes | No | Yes | Yes | Android Fallback | Windows: Yes OSX: Yes |
| Sony DualShock 4 (Bluetooth) | Yes | Yes | No | Yes | No | Yes | |
| Logitech F310 (X mode) | Yes | Yes | Yes | Yes | Yes | Yes | Windows: Yes OSX: Yes |
| Logitech F310 (D mode) | Yes | Yes | No | Yes | No | No | Windows: Yes OSX: Yes |
| Logitech F710 (X mode) | Yes | No | Yes | Yes | No | Android Fallback | Windows: Yes OSX: Yes |
Logitech F710 (D mode) |
Yes | Yes | No | Yes | Yes |
Android Fallback | Windows: Yes OSX: Yes |
| Logitech Dual Action | Yes | Yes | No | Yes | Yes | Yes | Windows: Yes OSX: Yes |
| Logitech RumblePad 2 USB | Yes | Not Mapped Yet | No | Not Mapped Yet | Not Mapped Yet | Android Fallback | Windows: Yes OSX: Not Mapped Yet |
| Saitek P880 | Yes | Yes | No | Yes | Partial [4] (L, R, 6, LSB, RSB, Shift not working) |
Android Fallback | Windows: Yes OSX: Yes |
| Saitek P990 | Yes | Yes | No | Yes | Partial [4] (L2, R1, R2, Silver, Black, LSB, RSB, FPS not working) |
Android Fallback | Windows: Yes OSX: Yes |
| Game Elements GGE909 Recoil | Yes | Yes | No | Yes | Partial [4] (L2, R1, R2, Select, Start, LSB, RSB not working) |
Android Fallback | Windows: Yes OSX: Yes |
| Nyko AirFlo EX | Yes | Yes | No | Yes | Partial [4] (L2, R1, R2, 9, 10, 11, LSB, RSB not working) |
Android Fallback | Windows: Yes OSX: Yes |
| Radio Shack PC Gaming Controller | Yes | Yes | No | Yes | Partial [4] (L2, R1, R2, 9, 10, LSB, RSB not working) |
Android Fallback | Windows: Yes OSX: Yes |
| GameCube Controller (Mayflash 2-port USB adapter) | Yes | Yes | No | Yes | Partial [4] (L/R Press, Z, Start not working) |
Android Fallback | Windows: No [12] OSX: Yes |
| Mad Catz C.T.R.L.R | Yes (PC Mode) |
Yes (PC Mode) |
No | Yes (PC Mode) |
Yes (GameSmart Mode) |
Yes (GameSmart Mode) |
Windows: No [12] OSX: No |
| Mad Catz Micro C.T.R.L.R | Yes (PC Mode) |
Yes (PC Mode) |
No | Yes (PC Mode) |
Yes (GameSmart Mode) |
Yes (GameSmart Mode) |
Windows: No [12] OSX: No |
| Red Samurai Wireless Android Gamepad (G mode) | Yes | Yes | No | Yes | Yes | Yes | Windows: Yes OSX: Yes |
| SteelSeries FREE | Yes | Yes | No | Yes | Yes | Yes | Windows: No [12] |
| idroid:con Snakebyte (Mode 1) | Yes | Yes | No | Yes | Partial [4] (L2, R1, R2, Select, Start, LSB, RSB not working) |
Android Fallback | Windows: Yes OSX: Yes |
| idroid:con Snakebyte (Mode 2) | Yes | Yes | No | No [10] | No [10] | No [10] | Windows: No [10] OSX: No [10] |
| ípega Wireless GAMEPAD Controller (mini gamepad) | Yes (Gamepad Mode, Raw Input only) |
Yes (Gamepad Mode) |
No | Yes (Gamepad Mode) |
Yes | No | Windows: No [11] OSX: No |
| ípega BLUETOOTH Classic GamePad (full-size gamepad) | Yes (Gamepad Mode, Raw Input only) |
Yes (Gamepad Mode) |
No | Yes (Gamepad Mode) |
Yes | Android Fallback | Windows: No [11] OSX: No |
| ípega Multi-Media Bluetooth Controller | Yes (Gamepad Mode, Raw Input only) |
Yes (Gamepad Mode) |
No | Yes (Gamepad Mode) |
Yes | No | Windows: No [11] OSX: No |
Nyko Playpad |
Yes (Gamepad Mode, Raw Input only) |
Yes | No | Yes | Yes | No | Windows: No [12] OSX: No |
| Nyko Playpad Pro | Yes |
Yes | No | Yes | Yes | Android Fallback | Windows: No [12] OSX: No |
| 8Bitdo NES30 (Wired) | Yes | Yes | No | Yes | Partial [4] (R, Select, Start not working) |
No | Windows: Yes OSX: Yes |
| 8Bitdo NES30 (Bluetooth, Mode 1) | No | No | No | Yes | Yes | Yes | Windows:No OSX: No |
| 8Bitdo NES30 (Bluetooth, Joy Mode) | Yes | Yes | No | Yes | Yes | Yes | Windows: No [12] OSX: No |
| Buffalo BGCFC801 (NES/Famicom Gamepad w/ Turbo) | Yes | Yes | No | Yes | Partial [4] (R, Select, Start not working) |
No | Windows: Yes OSX: Yes |
| Buffalo BSGP801 (SNES Gamepad w/ Turbo) | Yes | Yes | No | Yes | Yes | No | Windows: Yes OSX: Yes |
| Ouya Gamepad | Yes | Yes | No | Yes | Yes | Yes | Windows: Yes OSX: Yes |
| GameStick Controller | Yes | Yes | No | Yes | Yes | Yes | Windows: No OSX: No |
| Amazon Fire Game Controller | Yes | Yes | No | Yes | Yes | Yes | Windows: No [12] OSX: No |
| Google Nexus Player Gamepad | No | Yes | No | Partial (Back, Start not working) |
Yes | Yes | Windows: No [12] OSX: Partial (L/R triggers not working) |
| Nvidia Shield Controller (Wired) | Yes | Yes | Yes | Yes | No [8] | Android Fallback | Windows: Partial (L/R triggers not working) OSX: No |
| Nvidia Shield Controller (Wireless) | No | No | No | No | Yes [6] | No | Windows: No OSX: No |
| Nvidia Shield Portable | Android: Yes [6] | ||||||
| Sony Playstation Vita | PSM Target: Yes |
||||||
| Apple iOS Mfi Controllers (All Mfi game controllers) | iOS: Yes | ||||||
| Windows (Native) |
OSX (Native) |
Windows Store | Linux [2] (Ubuntu 14.04) |
Android [2] | Amazon Fire TV [2] | Webplayer [2] | |
| CH Products Fighterstick USB | Yes | Yes | No | Yes | Partial [4] (Most hats not working) |
Android Fallback | Windows: Yes OSX: Yes |
| CH Products Eclipse Yoke | Yes | Yes | No | Partial [2] (Buttons 21-26 not working) |
Partial [4] (Most buttons, right hat not working) |
Android Fallback | Partial [2] (Buttons 21-26 not working) |
| CH Products Pro Throttle | Yes | Yes | No | Yes | Partial [4] (Most buttons and hats not working) |
Android Fallback | Windows: Yes OSX: Yes |
| CH Products Pro Pedals | Yes | Yes | No | No | No | Android Fallback | Windows: Yes OSX: Yes |
| CH Products Throttle Quadrant | Yes | Yes | No | Yes [9] | Partial [4] (Switch 3 down, Switches 4-6 not working) |
Android Fallback | Windows: Yes OSX: Yes |
| Saitek X45 Digital Joystick & Throttle | Yes | Yes | No | Not Mapped Yet | Not Mapped Yet | Android Fallback | Windows: Partial [2] (Hat 3 Up/Dn, Mouse Cursor, Mouse Cursor Button not working) |
| Saitek X52 Flight Control System | Yes | Yes | No | Partial [2] (Buttons 20-34 not working) |
Partial [4]
|
Android Fallback | Windows: Partial [2] (Buttons 20-34, Mouse Nub not working) |
| Saitek X52 Pro Flight Control System | Yes | Yes | No | Partial [2] (Buttons 20-34 not working) |
Partial [4] |
Android Fallback | Windows: Partial [2] (Buttons 20-34, mouse nub not working) |
| Saitek X-55 Rhino Stick | Yes | Yes | No | Yes | Partial [4] |
Android Fallback | Windows: Yes OSX: Yes |
Saitek X-55 Rhino Throttle |
Yes |
Yes | No | Partial [2] (Hats, slider, pinky wheel, pinky switch, mode dial, mouse nub not working) |
Partial [4] (Hats, slider, pinky wheel, pinky switch, mode dial, all flip switches, mouse nub not working) |
Android Fallback | Windows: Partial [2] (Hats, slider, pinky wheel, pinky switch, mode dial, mouse nub not working) |
| Saitek Pro Flight Yoke System | Yes | Yes | No | Partial [2] (Lever down buttons not working) |
Partial [4] (Most buttons not working) |
Android Fallback | Windows: Partial [2] (Lever down buttons not working) |
Saitek Pro Flight Throttle Quadrant |
Yes | Yes | No | Yes | Partial [4] (T6, Lever down buttons not working) |
Android Fallback | Windows: Yes OSX: Yes |
| Saitek Pro Flight TPM Panel (important notes) |
Yes | Yes | No | Yes | Partial [4] (G6-G9 not working) |
Android Fallback | Windows: Yes OSX: Yes |
| Saitek Pro Flight Cessna Trim Wheel | Yes | Yes | No | Yes | No | Android Fallback | Windows: Yes OSX: Yes |
| Saitek Pro Flight Rudder Pedals | Yes | Yes | No | Yes | No | Android Fallback | Windows: Yes OSX: Yes |
| Saitek JI3 Cyborg 3D Gold | Yes | Not Mapped Yet | No | Not Mapped Yet | Not Mapped Yet | Android Fallback | Windows: Not Mapped Yet OSX: Not Mapped Yet |
| Thrustmaster HOTAS Warthog Joystick | Yes | Yes | No | Yes | Partial [4] (Trigger Stage 2, CMS, TMS, DMS not working) |
Android Fallback | Windows: Yes OSX: Yes |
Thrustmaster HOTAS Warthog Throttle |
Yes | Yes | No | Partial [2] (Buttons 20-32 not working) |
Partial [4] (Most buttons/switches not working) |
Android Fallback | Windows: Partial [2] (Buttons 20-32 not working) |
| Thrustmaster T.Flight Hotas X | Yes | Yes | No | Yes | Partial [4] (Buttons 5-12 not working) |
Android Fallback | Windows: Yes OSX: Yes |
| Thrustmaster T.16000M | Yes | Yes | No | Yes | Partial [4] (Buttons 6-16 not working) |
Android Fallback | Windows: Yes OSX: Yes |
| Thrustmaster USB Joystick | Yes | Yes | No | Yes | Yes | Android Fallback | Windows: No OSX: Yes |
| Logitech Extreme 3D Pro | Yes | Yes | No | Yes | Partial [4] (Thumb R1, Body Buttons 1-6 not working) |
Android Fallback | Windows: Yes OSX: Yes |
| Windows (Native) |
OSX (Native) |
Windows Store | Linux [2] (Ubuntu 14.04) |
Android [2] | Amazon Fire TV [2] | Webplayer [2] | |
| Logitech G27 Racing Wheel (important notes) |
Yes | Yes* (See notes) |
No | Partial [2] (2 wheel buttons, reverse gear not working) |
Partial [4] (4 wheel buttons, gear shifter not working) |
Android Fallback | Windows:Partial [2] OSX:Partial [2] |
| Thrustmaster T100 Racing Wheel | Yes | Yes | No | Yes | Partial [4] (Buttons 6-12 not working) |
Android Fallback | Windows: No OSX: Yes |
| Thrustmaster F430 Racing Wheel | Yes | Yes | No | Yes | Partial [4] (Buttons 6-12, Manettino controller not working) |
Android Fallback | Windows: No OSX: Yes |
| Windows (Native) |
OSX (Native) |
Windows Store | Linux [2] (Ubuntu 14.04) |
Android [2] | Amazon Fire TV [2] | Webplayer [2] | |
Arcade Guns G-500 AimTrak Light Gun |
Yes | Yes | No | Yes | Partial [4] (Thumb Button [Offscreen] not working) |
Android Fallback | Windows: Yes OSX: Yes |
| VRinsight Ship Console | Yes | Yes | No | No | No | Android Fallback | Windows: No OSX: No |
| Windows (Native) |
OSX (Native) |
Windows Store | Linux [2] (Ubuntu 14.04) |
Android [2] | Amazon Fire TV [2] | Webplayer [2] | |
Amazon Fire TV Remote |
Keyboard | Not Mapped Yet | No | Not Mapped Yet | Maybe [13] | Yes [13] | Windows: Keyboard OSX: Not Mapped Yet |
| Google Nexus Player Remote | No | Not Mapped Yet | No | Not Mapped Yet | Maybe [13] | No | Windows: No OSX: Not Mapped Yet |
Support for controllers on platforms that fall back to Unity input (such as Android) depends on Unity's support for the controller. If the controller is detected, it will be mappable by the user via numbered axes and buttons.
All Other Controllers
Any controller which does not have a hardware definition will be mappable through user mapping or by mapping actions to numbered axes and buttons in the Unknown Controller map.
You can create your own controller definitions to add extended support for more controllers, but the process can be involved, especially if you want to support all platforms. (See Creating new controller definitions for more information.) I recommend that you instead send me the controller you wish to add a map for and I will add it Rewired to be included in subsequent updates. And of course, I'll mail it back. :) You can contact me through the support form on the website.
Controllers that map to the keyboard
Controllers such as the X-Arcade Tankstick that map to keyboard keys are supported only through keyboard maps at this time. The process for mapping one of these controllers is identical to mapping keyboard keys. You have to identify which keyboard key each controller element maps to (see the documentation for your controller), then assign actions to those keys in the keyboard map. If you have a user control mapping screen, users can map their controls directly.
Controllers not directly supported (yet)
- Controllers that map as additional keyboards
- Controllers that map as additional mice
Certain controllers may appear as an additional keyboard or mouse. These controllers currently may not work correctly. If the controller allows you to map its inputs to the primary keyboard, then it will work through the use of a keyboard map. If they show up as a second keyboard or mouse, they will likely not work.
Adding support for additional keyboards and mice is possible, and the feature may be added in the future if there is enough demand.
Controllers not supported at all
- Serial port or game port controllers
- Controllers not supported by Raw Input, Direct Input, or XInput on Windows, or I/O Kit on OSX
- Controllers not supported by Unity on fallback platforms
- Controllers that require a special SDK (3D Connexion mouse, Occulus Rift, etc.)
- Some very exotic controllers
OUYA Platform Controller Support
On the OUYA platform, controllers are handled through the Ouya Everywhere SDK. Therefore, only controllers supported by Ouya's SDK are supported by Rewired. Common controllers which are known to work fully are OUYA Game Controller and Sony DualShock 3.
1 Controller must be compatible with underlying system. On Windows the controller must be compatible with Raw Input, Direct Input, or XInput. On OSX, it must be compatible with Apple I/O Kit. Support for exotic controller types not guaranteed.
2 This platform uses Unity input as the input source, therefore it is subject to all limitations of Unity's input system such as lack of hot-plugging support, poor controller identification ability, limit of 10 controllers, limit of 20 axes and 20 buttons per controller, etc. For a good input experience, Unity's input system must be replaced with a native input library. This is possible for any platform except Webplayer. If there is enough demand, I can write an input library for the platform to replace Unity's flawed input system.
4 On Android, Rewired uses Unity's input system as the input source. Unity only supports up to 20 buttons. Many controllers on Android begin mapping their buttons at index 15, leaving only 5 open entries for all remaining buttons. There is no solution to supporting these controllers fully in Android short of writing a native input library to replace Unity as the input source. I will do this if there is enough demand.
5 On Android and Linux, the Microsoft XBox 360 Wireless Receiver shows up as 4 separate joystick entries. Only one of these joystick entries actually represents the joystick. The user will have to manually choose from the 4 entries to determine the correct one that represents the XBox 360 controller.
6 NVidia Shield controllers do not support detection of the Home, NVidia Button, Volume Down, Volume Up, and Touchpad Press as re-mappable joystick buttons on the Android platform. Warning: Some controller elements may trigger keyboard presses in Unity. For example, Back = Escape, Left Shoulder = Left Shift, Right Shoulder = Right Shift. You should be aware of this if you have keyboard maps enabled as some controller elements will trigger keyboard presses instead of or in addition to controller button functions.
7 Requires Insten PS2 to PS3 Controller Adapter USB Converter. Note: The adapter registers 2 USB joysticks on some platforms, only 1 of which is the actual joystick, the other being a dummy entry. This may interfere with joystick auto-assignment in a multi-player game.
8 Mapping Conflict: Due to limitations of Unity's input system, the controller can only be mapped for either Wired or Wireless mode, not both. On fallback platforms that use Unity's input system, Unity provides no way to identify the controller apart from a single name string. These controllers return the identical name string for both wired and wireless modes, however the element mappings vary greatly between the wired and wireless modes. Therefore, there is no way possible to determine whether the controller is wired or wireless and therefore no way to make separate profiles for the two modes.
9 On Linux, due to the fact that Unity auto-calibrates controller axes when Unity is launched, all axes must be in the 0 position or axis values will be unpredictable.
10 Mapping Conflict: Due to limitations of Unity's input system, the controller can only be mapped for one mode setting, not multiple. On fallback platforms that use Unity's input system, Unity provides no way to identify the controller apart from a single name string. These controllers return the identical name string for all mode settings, however the element mappings vary greatly between the different modes. Therefore, there is no way possible to determine what mode the controller is in and therefore no way to make separate profiles for the different modes.
11 Mapping Conflict: All identifying information available on Windows fallback is identical between the ipega Wireless GAMEPAD Controller, the ipega BLUETOOTH Classic GamePad, and the ipega Multi-Media Bluetooth Controller. There is no way to reliably determine which controller is attached. Therefore, none of these devices are mapped so all can be mapped by the user using the Unknown Controller map.
12 The controller's returned identifying information is too generic to be safe to create a map for because other controllers could also match that device's identifying information. Therefore, the controller was intentionally left unmapped, but could be manually mapped manually by the user in-game.
13 These remotes may not work on versions of Unity 5.02 or greater. Unity introduced a new bug in this version that makes the remote appear with a NULL name in the Input.GetJoystickNames array. There is no way to identify these remotes because of this. The bug still exists as of 5.1.1f1. It has been reported and this information will be updated if a fix is issued.
