Controllers

From DuckStation Wiki
Jump to navigation Jump to search

Bindings for Qt frontend[edit]

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[edit]

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[edit]

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