On a Raspberry Pi, the GPIO header lets you wire buttons and joysticks without a USB encoder. Recalbox ships three kernel drivers for that, enabled from recalbox.conf.
| Driver | recalbox.conf key |
What for |
|---|---|---|
mk_arcade_joystick_rpi |
controllers.gpio.enabled |
directly wired arcade joysticks and buttons (bartop, cabinet, panel) |
gamecon_gpio_rpi |
controllers.gamecon.enabled |
original NES, SNES, N64, GameCube, PSX/PS2 controllers |
db9_gpio_rpi |
controllers.db9.enabled |
DB9 controllers: Atari, Megadrive, Amiga |
These three drivers are mutually exclusive: Recalbox loads only one of them at boot, in the order
controllers.gpio, thencontrollers.db9, thencontrollers.gamecon. If you enable several keys at once, only the first one is honoured.
GPIO is only available on Raspberry Pi 3, 4 and Zero 2. It is not supported on the Raspberry Pi 5: on that board, use a USB encoder instead. PCs and handhelds (Odroid, Anbernic) obviously have no GPIO header usable this way.
mk_arcade_joystick_rpi.hat.wpaf.* keys — see Fan controller.