Controllers
Bindings for Qt frontend
Your keyboard or game controller can be used to simulate a variety of PlayStation controllers. Controller input is supported through DInput, XInput, and SDL backends and can be changed through Settings -> General Settings
.
To bind your input device, go to Settings -> Controller Settings
. Each of the buttons/axes for the simulated controller will be listed, alongside the corresponding key/button on your device that it is currently bound to. To rebind, click the box next to the button/axis name, and press the key or button on your input device that you wish to bind to. When binding rumble, simply press any button on the controller you wish to send rumble to.
SDL Game Controller Database
DuckStation releases ship with a database of game controller mappings for the SDL controller backend, courtesy of the SDL_GameControllerDB. The included gamecontrollerdb.txt
file can be found in the database subdirectory of the DuckStation program directory.
If you are experiencing issues binding your controller with the SDL controller backend, you may need to add a custom mapping to the database file. Make a copy of gamecontrollerdb.txt
and place it in your user directory (or directly in the program directory, if running in portable mode) and then follow the instructions in the SDL_GameControllerDB repository for creating a new mapping. Add this mapping to the new copy of gamecontrollerdb.txt
and your controller should then be recognized properly.
Default bindings
Controller 1:
D-Pad: W/A/S/D Triangle/Square/Circle/Cross: Numpad8/Numpad4/Numpad6/Numpad2 L1/R1: Q/E L2/R2: 1/3 Start: Enter Select: Backspace
Hotkeys:
Escape: Power off console ALT+ENTER: Toggle fullscreen Tab: Temporarily disable speed limiter Pause/Break: Pause/resume emulation Page Up/Down: Increase/decrease resolution scale in hardware renderers End: Toggle software renderer