From DuckStation Wiki
Revision as of 09:43, 24 April 2021 by ElizabethNoir (talk | contribs) (Quick copy and paste from Github with light editing to fill this out)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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


   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