-
Notifications
You must be signed in to change notification settings - Fork 0
Controllers
How the Linux build handles gamepads: mapping, hot-plugging, the disc-swap chord, and rumble. Input runs on SDL3's gamepad layer (the Windows app uses XInput), so anything SDL3 recognizes — Xbox, PlayStation, Switch Pro, 8BitDo, generic HID — works without per-pad setup.
Preferences → Controls. Pick a console, a player (1–4), and a device (a connected controller or the keyboard), then click a button's box and press the input you want. Capture auto-advances to the next row; Escape cancels. Mappings are saved per console and per player, so player 2's layout never disturbs player 1's.
- Sticks and triggers are bindable anywhere a button is — each direction (e.g.
L-Stick ←) captures as its own input. - Reset restores the per-console defaults; saved bindings apply at the next game launch.
- In-game, the cog menu's Edit Game Controls… jumps straight to the right console's panel.
Disk-capable consoles (FDS, PS1, Saturn, Sega CD, Amiga) get an extra Disk Swap row that captures a two-input chord: press the first input, the box shows X + …, press a different second input to commit. Works with two controller inputs or two keys. The default when unbound is L3 + Start. Details and per-console behavior: Disk Swapping.
Connect or disconnect a controller at any time — no restart needed:
- The library's status bar shows
Controller connected: <name>/Controller disconnected: <name>. - The same message appears in the game window's status line during play.
- A pad connected mid-session is picked up by the running game within about a second.
Cores that use the libretro rumble interface vibrate the controller on all four player ports — strong (low-frequency) and weak (high-frequency) motors are driven independently, as the core requests. Nothing to configure; if the game and core support vibration and your pad has motors, it rumbles.
Two notes:
- Dreamcast: the rumble interface's presence is what lets the Flycast core initialize maple-bus sub-peripherals (VMU, Purupuru). See Dreamcast.
- Nintendo 64: the controller's single accessory slot means a game sees either the Memory Pak or the Rumble Pak, never both — switch via the cog menu's Pak selection. See Nintendo 64.
Player 1 always has a keyboard fallback (arrows + Z/X/A/S, Enter = Start, Right Shift = Select, Q/W = L/R) so a game is playable before any controller is mapped. Saved keyboard mappings from the Controls panel override these defaults.
-
controller-diag.log(see Log Files) records every device the app and the game host detect, with names — first stop for "my pad isn't seen". - A pad that shows up but doesn't respond in the Controls panel was a known 0.7.6 bug (fixed in 0.7.7) — update first.
- Steam's overlay can grab controller input; if buttons reach Steam instead of the game, close Steam or disable its overlay for non-Steam apps.
Console Notes
- Nintendo 64
- Nintendo 3DS
- GameCube
- Sega Saturn
- Dreamcast
- PlayStation
- PlayStation Portable
- TurboGrafx-CD
- Neo Geo
- Arcade
- Vectrex
- Philips CD-i
- Atari Jaguar
Features
- Artwork & Metadata
- Cheats
- Cloud Sync
- Controllers
- Disc-Based Systems
- Disk Swapping
- Portable Mode
- RetroAchievements
- ROM Hacks
- Hardcore Compliance
Technical
Platforms
Legal