Almost every off-the-shelf controller works on Recalbox 10.1, and most of them with no configuration at all: plug in (or pair), play.
This page explains why, lists the controller families recognized out of the box, and flags the few special cases that need attention.
Looking for the step-by-step procedure to plug in or pair your controller? It is on First use of a controller. To map it button by button, see Configure a controller.
Recalbox 10.1 stacks three levels of recognition, from fully automatic to manual. A controller that fails at level 1 falls through to level 2, and so on: there is never a dead end.
| Level | Mechanism | What it covers |
|---|---|---|
| 1 | Built-in es_input.cfg — 18 mappings shipped with the system |
The built-in controls of handhelds and cases, plus a few controllers the SDL database describes poorly (Xbox, Joy-Con, Nintendo Switch Online pads, Steam Deck, GunCon 2…) |
| 2 | SDL auto-mapping — the SDL community mapping database | The vast majority of USB, Bluetooth and 2.4 GHz controllers on the market: Xbox, DualShock/DualSense, Switch Pro, 8BitDo, Logitech, Thrustmaster, PowerA, Retro-Bit… |
| 3 | The visual configurator | Everything else: exotic controllers, arcade encoders, bartop panels, unbranded clones |
In practice: if your controller is recognized at level 1 or 2, it is playable as soon as it is powered on, with no configuration screen. Otherwise the visual configurator starts on its own as soon as you press a button, displays a picture of a controller and walks you through the buttons one by one.
Change since Recalbox 9: the long hand-maintained mapping list in
es_input.cfghas been dropped in favour of the SDL database and the visual configurator. A controller that "used to work" and now asks for thirty seconds of configuration is therefore not a bug: it is the new behaviour, and the result is saved once and for all.
| Controller | Wired USB | Wireless |
|---|---|---|
| Xbox 360 | ✅ | ✅ through the Xbox 360 wireless receiver |
| Xbox One / Series X|S | ✅ | ✅ Bluetooth (xpadneo driver) or Microsoft wireless dongle (xone driver) |
| Xbox Elite / Adaptive Controller | ✅ | ✅ Bluetooth |
| Generic "X-Input" pads (PowerA, Hori, PDP…) | ✅ | ✅ depending on the model |
Recalbox ships xpadneo (Bluetooth, rumble included), xone (Microsoft wireless dongle) and xpad-noone (USB). Nothing to install or enable.
These drivers are not on every image: xpadneo is provided on Raspberry Pi (Zero 2, 3, 4, 5) and PC; xone and xpad-noone on those same machines and on the Anbernic RG353. On Odroid Go Advance/Super the controls are built into the machine and these drivers are not included.
| Controller | Wired USB | Bluetooth |
|---|---|---|
| DualShock 3 (PS3) | ✅ | ✅ after pairing over USB |
| DualShock 4 (PS4) | ✅ | ✅ |
| DualSense (PS5) | ✅ | ✅ |
| Third-party PS4/PS5 pads (Hori, Nacon, Razer…) | ✅ | depending on the model |
DualShock 4 and DualSense controllers are recognized natively by the kernel, touchpad and light bar included. Bluetooth pairing uses SHARE + PS (CREATE + PS on DualSense) — see First use of a controller.
The motion sensors (gyroscope/accelerometer) of PS3, PS4 and PS5 controllers are deliberately disabled by Recalbox: they showed up as extra joysticks and messed up player assignment.
| Controller | Wired USB | Bluetooth |
|---|---|---|
| Switch Pro Controller | ✅ | ✅ |
| Left or right Joy-Con, alone | — | ✅ (built-in mapping) |
| Combined Joy-Con pair | — | ✅ (built-in mapping, seen as a single controller) |
| Nintendo Switch Online pads: NES (left/right), SNES, N64, Mega Drive | — | ✅ (built-in mappings) |
The joycond daemon handles Joy-Cons: pair them one after the other, they are then merged automatically into a single controller. It is present on every image except Odroid Go Advance/Super.
The SYNC button (on the rail for Joy-Cons, on the back for the Pro Controller) puts the controller into pairing mode.
8BitDo controllers are among the best supported: most are recognized by the SDL database, and several models have a built-in mapping.
The thing to watch is not compatibility but the boot mode: every 8BitDo controller can present itself as an Android (D-Input), Xbox (X-Input), Switch or Mac pad, with a different mapping each time. Prefer D-Input (Android) mode, and if that fails, try X-Input.
➡️ The full model-by-model list, with the boot mode, the pairing combination and the reset procedure, is on 8BitDo on Recalbox.
Two common models available from the official shop:
Off-the-shelf arcade sticks (Mayflash F300/F500, Hori Fighting Stick, Qanba, 8BitDo Arcade Stick…) present themselves as regular USB or X-Input controllers and are recognized as such.
The USB encoders found in bartops and DIY panels (DragonRise, Zero Delay, Xin-Mo, Juyao…) are seen as generic joysticks: the visual configurator offers 4, 6 and 8 button panel visuals to map them comfortably.
➡️ Details on encoders, keyboard encoders (iPAC, J-PAC), spinners and trackballs: Input devices. For a complete build: bartop / arcade cabinet configuration.
No-name USB controllers, retro controller replicas (Retro-Bit, Retroflag, iBuffalo, Retro Games Ltd) and 2.4 GHz pads with a dongle all work, either through the SDL database or through the visual configurator.
Adapters converting period controllers to USB (Mayflash DB9 for Mega Drive/Atari, SNES/N64/PSX to USB adapters) are likewise seen as standard joysticks.
| Hardware | Status in 10.1 |
|---|---|
| Xbox wireless dongle (Microsoft) | Handled by xone — plug the dongle in, power the controller on, press its pairing button. |
| Xbox 360 wireless receiver | Supported, a dedicated mapping is built in. |
| GameCube controller adapter (Wii U / Switch) | Handled by wii-u-gc-adapter on RPi Zero 2, RPi 3, RPi 4, PC and RG353. |
| Steam Controller (dongle) | Handled by the steamcontroller daemon on RPi Zero 2, RPi 3 and PC. |
| Steam Deck built-in controls | Built-in mappings for both LCD and OLED models. |
| Wiimote | Recognized as a controller (Wii Remote alone or with the Classic Controller). It is above all Recalbox's reference light gun, through a DolphinBar — see lightgun on Recalbox. |
| GunCon 2 | Recognized, with automatic separation of its joystick and mouse parts — see lightgun on Recalbox. |
| Badly declared pads (NVIDIA Shield, iPEGA PG-90xx, Neo-Geo X, Mad Catz C.T.R.L.R, OUYA) | Forced into joystick mode by Recalbox, they work directly. |
| Anbernic RG353 | The built-in controls are driven by retrogame_joypad and recognised out of the box: nothing to configure. |
| PiBoy DMG / XRS | The case is detected at boot, its controls driver loaded, and the pad recognised without any configuration. |
| GPi Case, GPi Case 2 and 2W | Installing the case puts its own controller configuration in place, restored as it was if you remove it. |
| GPIO controllers | Home-made wiring goes through the visual configurator — see GPIO controllers. |
Controllers without SELECT or HOTKEY |
Recalbox emulates the missing keys through combinations based on START. |
Bluetooth controllers and Raspberry Pi: the Raspberry Pi's built-in Bluetooth shares its antenna with Wi-Fi. If you stack up wireless controllers and the signal becomes flaky, a USB Bluetooth dongle usually fixes it, as does a wired connection.
Recalbox tracks up to 10 controllers simultaneously. The controller → player assignment is set in START → CONTROLLER SETTINGS → ❶ INPUT P1, ❷ INPUT P2, and so on.
In practice the limit comes from the hardware and the emulator: number of USB ports, number of players supported by the emulated system, and for Bluetooth, the capacity of the adapter (4 to 5 simultaneous controllers is a reasonable maximum on a Raspberry Pi's built-in Bluetooth).
START → CONTROLLER SETTINGS → CONFIGURE A CONTROLLER.START → CONTROLLER SETTINGS → FORGET BLUETOOTH CONTROLLERS, then pair again.START → CONTROLLER SETTINGS → TEST A CONTROLLER lights up every button you press on screen.Still nothing? Come to the Recalbox Discord with the exact model name and, if you have it, the name the controller reports in the configurator: the list of tested controllers lives thanks to that feedback.