src/joystick/SDL_gamecontrollerdb.h


Log

Author Commit Date CI Message
Sam Lantinga 3a3aaac2 2020-11-06T11:30:52 Added 4 auxiliary buttons to the game controller API Xbox Elite controllers use AUX1-AUX4 to represent the paddle buttons when using the HIDAPI driver PS4 and PS5 controllers use AUX1 to represent the touchpad button Nintendo Switch Pro controllers use AUX1 to represent the capture button
Sam Lantinga bd2dd3f6 2020-11-05T15:36:15 Added Android mapping for the Sony PS5 Controller
Sam Lantinga 4d79f966 2020-11-05T15:02:54 Added initial support for the Sony PS5 Controller
Sam Lantinga 3755f692 2020-10-16T12:40:10 Added mapping for Xbox One S controller and PS4 controller on Android 11, including guide button
Sam Lantinga 2d7b33cb 2020-10-13T21:08:11 Added support for the controller home button on iOS 14
Sam Lantinga 45c644cc 2020-09-28T21:19:45 Added support for the MOGA XP5-X Plus
Sam Lantinga aefe19ff 2020-06-09T11:31:39 Added support for the NACON Revolution Pro Controller 3 and the GameStop PS4 Fun Controller
Sam Lantinga 1e5dd06f 2020-05-06T12:19:58 Added support for the HORI Real Arcade Pro on Mac OSX and Linux
Sam Lantinga 11723411 2020-05-04T10:16:10 Added support for the Razer Kishi
Sam Lantinga c6b24b4b 2020-04-23T11:07:07 Added support for the following controllers: * 8BitDo N30 Pro 2 * 8BitDo SN30 Gamepad * 8BitDo SN30 Pro+ * 8BitDo Zero 2 * SZMY-POWER PC Gamepad * ThrustMaster eSwap PRO Controller * ZEROPLUS P4 Wired Gamepad In additional, all 8BitDo controllers use SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS to have the correct mapping based on user preferences.
Sam Lantinga aba27928 2020-04-18T21:41:37 Added a Windows Gaming Input joystick driver This driver supports the Razer Atrox Arcade Stick Some of the quirks of this driver, inherent in Windows Gaming Input: * There will never appear to be controllers connected at startup. You must support hot-plugging in order to see these controllers. * You can't read the state of the guide button * You can't get controller events in the background
Sam Lantinga 2be75c6a 2020-03-13T19:08:45 Fixed bug 5028 - Virtual Joysticks (new joystick backend) David Ludwig I have created a new driver for SDL's Joystick and Game-Controller subsystem: a Virtual driver. This driver allows one to create a software-based joystick, which to SDL applications will look and react like a real joystick, but whose state can be set programmatically. A primary use case for this is to help enable developers to add touch-screen joysticks to their apps. The driver comes with a set of new, public APIs, with functions to attach and detach joysticks, set virtual-joystick state, and to determine if a joystick is a virtual-one. Use of virtual joysticks goes as such: 1. Attach one or more virtual joysticks by calling SDL_JoystickAttachVirtual. If successful, this returns the virtual-device's joystick-index. 2. Open the virtual joysticks (using indicies returned by SDL_JoystickAttachVirtual). 3. Call any of the SDL_JoystickSetVirtual* functions when joystick-state changes. Please note that virtual-joystick state will only get applied on the next call to SDL_JoystickUpdate, or when pumping or polling for SDL events (via SDL_PumpEvents or SDL_PollEvent). Here is a listing of the new, public APIs, at present and subject to change: ------------------------------------------------------------ /** * Attaches a new virtual joystick. * Returns the joystick's device index, or -1 if an error occurred. */ extern DECLSPEC int SDLCALL SDL_JoystickAttachVirtual(SDL_JoystickType type, int naxes, int nballs, int nbuttons, int nhats); /** * Detaches a virtual joystick * Returns 0 on success, or -1 if an error occurred. */ extern DECLSPEC int SDLCALL SDL_JoystickDetachVirtual(int device_index); /** * Indicates whether or not a virtual-joystick is at a given device index. */ extern DECLSPEC SDL_bool SDLCALL SDL_JoystickIsVirtual(int device_index); /** * Set values on an opened, virtual-joystick's controls. * Returns 0 on success, -1 on error. */ extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualAxis(SDL_Joystick * joystick, int axis, Sint16 value); extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualBall(SDL_Joystick * joystick, int ball, Sint16 xrel, Sint16 yrel); extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualButton(SDL_Joystick * joystick, int button, Uint8 value); extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualHat(SDL_Joystick * joystick, int hat, Uint8 value); ------------------------------------------------------------ Miscellaneous notes on the initial patch, which are also subject to change: 1. no test code is present in SDL, yet. This should, perhaps, change. Initial development was done with an ImGui-based app, which potentially is too thick for use in SDL-official. If tests are to be added, what kind of tests? Automated? Graphical? 2. virtual game controllers can be created by calling SDL_JoystickAttachVirtual with a joystick-type of SDL_JOYSTICK_TYPE_GAME_CONTROLLER, with naxes (num axes) set to SDL_CONTROLLER_AXIS_MAX, and with nbuttons (num buttons) set to SDL_CONTROLLER_BUTTON_MAX. When updating their state, values of type SDL_GameControllerAxis or SDL_GameControllerButton can be casted to an int and used for the control-index (in calls to SDL_JoystickSetVirtual* functions). 3. virtual joysticks' guids are mostly all-zeros with the exception of the last two bytes, the first of which is a 'v', to indicate that the guid is a virtual one, and the second of which is a SDL_JoystickType that has been converted into a Uint8. 4. virtual joysticks are ONLY turned into virtual game-controllers if and when their joystick-type is set to SDL_JOYSTICK_TYPE_GAMECONTROLLER. This is controlled by having SDL's default list of game-controllers have a single entry for a virtual game controller (of guid, "00000000000000000000000000007601", which is subject to the guid-encoding described above). 5. regarding having to call SDL_JoystickUpdate, either directly or indirectly via SDL_PumpEvents or SDL_PollEvents, before new virtual-joystick state becomes active (as specified via SDL_JoystickSetVirtual* function-calls), this was done to match behavior found in SDL's other joystick drivers, almost all of which will only update SDL-state during SDL_JoystickUpdate. 6. the initial patch is based off of SDL 2.0.12 7. the virtual joystick subsystem is disabled by default. It should be possible to enable it by building with SDL_JOYSTICK_VIRTUAL=1 Questions, comments, suggestions, or bug reports very welcome!
Sam Lantinga 255c9c23 2020-03-13T13:28:33 Fixed bug 4921 - Do not swap B/X buttons on GameCube controller unless it's requested The binding for the Mayflash GameCube controller adapter now respects the SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS hint
Sam Lantinga cb2f78b1 2020-03-13T13:05:38 Updated 8BitDo SF30 Pro mapping with hint support, added Android binding for the 8BitDo M30 Gamepad
Sam Lantinga db3b3a1d 2020-03-12T19:47:28 Added support for SDL hints in the game controller mapping database
Sam Lantinga 49564c8b 2020-03-02T10:47:48 Added support for the PDP Victrix Pro FS with Touch Pad for PS4
Sam Lantinga ad225047 2020-02-17T14:15:47 Added Android SDK conditionals to game controller mappings The Nintendo Switch Pro controller has a different mapping on Android 10 and newer
Sam Lantinga a199cb89 2020-02-05T09:29:46 Updated the Android Xbox One Wireless Controller mapping for the latest Xbox controller firmware update
Sam Lantinga 43b377b0 2020-01-28T17:11:17 Fixed wired PS4 controller support on Android
Sam Lantinga 2ae41b9c 2020-01-23T12:53:43 Fixed mapping for both versions of the Xbox One Elite Series 2 controller firmware connecting over Bluetooth
Sam Lantinga 48240ac8 2020-01-23T12:53:41 Added mapping for the Xbox One controller connected via the wireless dongle using xow
Sam Lantinga 27035425 2020-01-17T11:09:57 There are multiple bindings for XBox One controller model 1708, depending on firmware revision
Sam Lantinga bde1a371 2020-01-17T11:07:19 Added support for the NACON GC-400ES
Sam Lantinga a8780c6a 2020-01-16T20:49:25 Updated copyright date for 2020
Sam Lantinga 6705e27c 2020-01-13T22:05:58 Added D-PAD bindings for the Linux Steam Controller
Sam Lantinga d33b122f 2020-01-11T04:34:28 The Xbox One S Bluetooth controller with older firmware uses b16 as the guide button. The same controller with newer firmware uses b12 as the guide button. Map both buttons so both firmware revisions will work with the same mapping.
Sam Lantinga f4375e86 2020-01-07T18:43:40 Added support for the 8BitDo M30 GamePad
Sam Lantinga eb3d39bc 2020-01-06T12:18:51 Added support for the 8Bitdo FC30 Pro
Sam Lantinga 202c966a 2019-12-19T16:14:22 Added support for the Nintendo GameCube Controller, using the Mayflash GameCube adapter.
Sam Lantinga 52b6ab21 2019-12-16T17:11:23 Added support for the SteelSeries Stratus Duo
Sam Lantinga 9f8009f2 2019-12-13T16:12:41 Added mappings for the Razer Serval on Windows and Mac OSX
Sam Lantinga cf9af481 2019-12-13T16:12:39 Added support for the 8Bitdo NES30 GamePad in wired mode
Sam Lantinga 89401b21 2019-12-10T13:09:52 Added support for the Razer Raion Fightpad for PS4
Sam Lantinga 6d001668 2019-12-05T13:18:53 Get full axis range for PS3 controller triggers on Linux
Sam Lantinga b98808f6 2019-11-28T14:23:24 Updated DPAD binding for 8Bitdo Zero controller
Sam Lantinga a3a8fcef 2019-11-28T10:04:05 Added support for the 8Bitdo SN30 Pro, wired connection
Sam Lantinga 98cc9cf2 2019-11-27T12:38:53 Added support for the Google Stadia Controller
Sam Lantinga 43cb7b3c 2019-11-27T12:38:51 Added support for the Hori Fighting Commander
Sam Lantinga 8243a3e8 2019-11-25T15:02:50 Added support for the Hyperkin X91
Sam Lantinga 13006ba9 2019-11-22T13:44:40 Added support for the PDP Versus Fighting Pad
Sam Lantinga a132b183 2019-11-21T13:09:00 Fixed the guide button on the NVIDIA Controller v01.04
Sam Lantinga cc4f8905 2019-11-21T12:11:47 Added support for the NVIDIA Controller v01.04 on Linux and Mac OS X
Sam Lantinga 2a7b635b 2019-11-21T11:52:50 Added support for the NVIDIA Controller v01.04 on Android
Sam Lantinga 51487a71 2019-11-21T10:14:57 Added support for the MOGA XP5-A Plus
Sam Lantinga 972a70d8 2019-11-19T15:15:00 Added support for the Xbox One Elite Series 2 controller on Mac OSX
Sam Lantinga 2bfcf5cd 2019-11-18T14:08:05 Added Linux controller mapping for the Xbox One Elite Series 2 controller in Bluetooth mode
Sam Lantinga 4f304fd8 2019-10-17T18:07:52 Added support for the BDA PS4 Fightpad
Sam Lantinga ce3b16fc 2019-08-26T10:08:25 Fixed bug 4475 - add Gasia Co. Ltd PS(R) Gamepad support Frank This gamepad/controller is sold in Germany https://www.amazon.de/gp/product/B01AQTPSA6/ref=ppx_yo_dt_b_asin_title_o03__o00_s00 but isn't supported right now. It identifies as "Gasia Co. Ltd PS(R) Gamepad"
Sam Lantinga d52ffcf9 2019-08-02T17:12:49 Added support for a few controllers on Android
Sam Lantinga 89de2512 2019-07-17T13:01:44 Added support for the Victrix Pro Fight Stick for PS4
Sam Lantinga 064d1223 2019-07-14T16:59:39 Fixed bug 4723 - Generic Xbox pad controller bindings seem odd/broken alexrice999 I have a knock off wired xbox 360 controller called afterglow for xbox 360 controller. Despite there being a few afterglow controllers in the controller mapping the guid of my controller seems to map to Generic Xbox pad. This binding is as follows: ``` "030000006f0e00001304000000010000,Generic X-Box pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:a0,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:a3,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,", ``` When running openmw I have a strange issue that the joysticks work for up and down movements but not for side to side. I managed to track this down to the side to side events being classified as joystick events instead of gamepad events. I believe this is due to both "leftstick" and "leftx" being bound to "a0" which seems odd to me. If I change openmw's mappings to remove these the controller works as expected. I was hoping someone who knows a lot more than me (as I have only been exploring this today trying to fix my controller) would know what is happening
Sam Lantinga 4eb3c0c3 2019-06-14T13:56:52 Added support for Xbox and PS4 wireless controllers on iOS and tvOS Also implemented SDL_JoystickGetDevicePlayerIndex() on iOS and tvOS, and added support for reading the new menu button state available in iOS and tvOS 13.
Sam Lantinga a73dacbf 2019-06-08T14:58:49 Backed out Ben's chinese Xbox controller patch, as the generic catch-all for Xbox controllers should handle it.
Sam Lantinga 20ec8664 2019-06-06T08:20:53 Added support for the Rotor Riot gamepad, and upcoming Xbox and PS4 controller support on iOS and tvOS Patch contributed by Nat Brown
Sam Lantinga 5f341620 2019-05-19T12:06:58 Fixed bug 4474 - Add support for an ASUS Gamepad variation Trent Gamblin This patch adds a variation of the ASUS Gamepad to the game controller DB. All the values are the same except the GUID.
Benjamin Valentin 1e8d9e01 2019-03-17T23:47:12 Add mapping for Chinese-made Xbox Controller This device is a copy of the Xbox Controller S and currently the one most sold when shopping for a 'new' Xbox gamepad on eBay and AliExpress. Except for the quirky USB ID id behaves just like a normal Xbox controller (when ignoring the subpar build quality)
Benjamin Valentin f3c6b1f5 2019-03-17T23:47:12 Add mapping for Chinese-made Xbox Controller This device is a copy of the Xbox Controller S and currently the one most sold when shopping for a 'new' Xbox gamepad on eBay and AliExpress. Except for the quirky USB ID id behaves just like a normal Xbox controller (when ignoring the subpar build quality)
Sam Lantinga faf97978 2019-03-16T19:03:13 Fixed bug 4511 - SDL_gamecontrollerdb Mapping for Sony Playstation USB controller Renaud Lepage Simply submitting a new mapping.
Ethan Lee c5286156 2019-03-12T20:27:54 hidapi: Add support for Wii U/Switch USB GameCube controller adapter. Note that a single USB device is responsible for all 4 joysticks, so a large rewrite of the DeviceDriver functions was necessary to allow a single device to produce multiple joysticks.
Silent b6a45f1a 2019-02-14T20:46:58 Fixed DualShock 3 mapping
Sylvain Becker adabfdc0 2019-01-21T20:49:08 Revert SDL_gamecontrollerdb.h and sort_controllers.py from bug 4024
Sylvain Becker ede0fc4f 2019-01-16T14:03:35 Fixed bug 4024 - remove trailing comma of Controller mappings because it reports an error "Unexpected controller element"
Sam Lantinga 5e13087b 2019-01-04T22:01:14 Updated copyright for 2019
Ryan C. Gordon fbead635 2018-12-05T16:55:59 joystick: Added controller config for IMS Passenger Control Unit Devices.
Sam Lantinga f205f3a8 2018-11-27T15:10:26 Added support for the Razer Raiju Mobile
Steven M. Vascellaro ff3bb857 2018-10-22T10:55:18 joystick: Add Linux mappings for "Xbox One Wireless Controller (Model 1708)" Adds controller bindings to support the "Xbox One Wireless Controller (Model 1708)" on Linux. The Model 1708 was released in 2016 alongside the Xbox One S. It is the current model being sold by Microsoft as of writing. (October 22, 2018)
Sam Lantinga aa9683bb 2018-09-25T19:41:33 Added 8bitdo SF 30 PRO controller support for Linux / DInput mode (thanks Frank Hartung)
Sam Lantinga 963e74d6 2018-09-05T11:24:23 Added binding for Mad Catz FightStick TE S+ (PS3) on Mac OS X
Sam Lantinga c152e380 2018-09-05T11:18:50 Added support for the Razer Panthera Fightstick Fixed bindings for the Mad Catz FightStick TE S+
Sam Lantinga 63107524 2018-08-15T19:53:34 Fixed input from the Steam Virtual Gamepad on Mac OS X
Sam Lantinga 28e0c0ee 2018-08-09T16:04:21 Sam Lantinga <slouken@libsdl.org> 2018-08-06 13:00 -0700 Backed out changeset 794a209b2270 http://hg.libsdl.org/SDL/rev/2e2ecdac957c
Sam Lantinga 25a952e7 2018-08-09T16:04:18 Sam Lantinga <slouken@libsdl.org> 2018-08-06 11:58 -0700 Removed mapping for VID/PID 0x0079/0x0006, which is a generic PCB used in many different devices http://hg.libsdl.org/SDL/rev/794a209b2270
Sam Lantinga d2042e1e 2018-08-09T16:00:17 Added HIDAPI joystick drivers for more consistent support for Xbox, PS4 and Nintendo Switch Pro controller support across platforms. Added SDL_GameControllerRumble() and SDL_JoystickRumble() for simple force feedback outside of the SDL haptics API
Sam Lantinga a37d3e0b 2018-08-06T13:00:11 Backed out changeset 794a209b2270 It turns out the mapping is correct, just the name was confusing
Sam Lantinga cc682f20 2018-08-06T11:58:08 Removed mapping for VID/PID 0x0079/0x0006, which is a generic PCB used in many different devices Different device with same vid/pic that is kind of a Saitek shape: https://www.trust.com/en/product/17416-gxt-24-runa-compact-gamepad n64 with same ID https://bbs.archlinux.org/viewtopic.php?id=163488 PS shaped with numbers for buttons https://pineight.com/mw/index.php?title=USB_game_controller#DragonRise_Inc._Generic_USB_Joystick fightstick with same vid/pid https://retropie.org.uk/forum/topic/7594/bartop-2-player-zero-delay-encoders-not-working
Sam Lantinga 864b8f89 2018-06-12T01:04:26 Merged in community contributed controller mappings from https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt
Sam Lantinga 12059782 2018-06-12T00:18:10 Added common controllers used with Steam Big Picture These are entirely untested Several USB ids refer to multiple packaged products. In those cases I tried to use the most common name, or a general name (e.g. PS3 Controller), or a completely generic name (e.g. USB gamepad) if it wasn't clear what type of controller it was. Patches welcome!
Sam Lantinga db86e7a6 2018-06-07T10:54:54 Added support for the PS3 controller driver in PlayStation Now
Sam Lantinga ff6aebc4 2018-05-29T08:03:44 Added a new GUID for DS3 controller connected over bluetooth, for both Sony and Shanwan (thanks William!)
Sam Lantinga b3173d9d 2018-05-23T17:15:37 Added support for the NVIDIA SHIELD handheld gaming device
Sam Lantinga 4d9a3469 2018-05-23T16:00:21 Added additional supported Android controllers
Sam Lantinga 999af809 2018-05-18T13:09:30 Merged latest changes from Steam Link app
Sam Lantinga b7228bc5 2018-04-11T18:28:03 Added support for the GameSir G3w
Sam Lantinga 8e062f69 2018-03-19T14:42:51 Generalized the handling of instantaneous guide button presses so there's a minimum of 100 ms between guide button press and release. This happens with at least the following controllers: All Apple MFI controllers, ASUS Gamepad, XiaoMi Bluetooth Controller
Sam Lantinga d529b001 2018-03-19T13:16:11 Added mapping for the ASUS Gamepad removing the guide button, which doesn't generate events even though it's reported in the Android APIs.
Sam Lantinga 92847022 2018-03-07T18:10:01 Added a mapping for the latest firmware for the Xbox One S controller on Android
Sam Lantinga a2c1d83c 2018-03-07T18:09:58 Include a USB VID/PID for Apple MFI controllers This is just placeholder VID/PID, but allows code that works with VID/PID to identify the MFI controllers easily.
Sam Lantinga 9e651b69 2018-03-06T14:51:50 Try to dynamically create a default Android game controller mapping based on the buttons and axes on the controller. Include the controller USB VID/PID in the GUID where possible, as we do on other platforms.
Sam Lantinga 003c0dce 2018-03-02T10:56:21 Use the real controller name for game controllers on iOS and Apple TV
Sam Lantinga 965c11f3 2018-02-07T14:07:54 Fixed bug 4060 - Alternative DualShock 4 v2 controller GUID ayer.3d I have a DualShock 4 v2 controller with a GUID that's not in the database. There is an existing GUID that is almost identical, with the only difference that I can tell being the reported version string (mine being 8001, database is 8100). Existing GUID: 050000004c050000cc09000000810000 New GUID: 050000004c050000cc09000001800000 When connected via USB, the GUID matches an existing entry: 030000004c050000cc09000011810000
Sam Lantinga e3cc5b2c 2018-01-03T10:03:25 Updated copyright for 2018
Sam Lantinga 255362a3 2017-12-16T10:40:45 Fixed handling of the Apple TV remote buttons The menu button on the remote is the back button
Sam Lantinga cc30e1eb 2017-12-16T10:40:43 Added support for the ASUS TV500BG Android gamepad
Ethan Lee 688bc285 2017-11-20T13:59:43 Steam Virtual GamePad config for macOS
Sam Lantinga b120fb87 2017-10-08T10:59:03 Fixed bug 3865 - [PATCH] Support for GreenAsia Inc. PSX to USB converter as SDL_GameController Manuel I would like this small patch merged that adds support for my GreenAsia Inc. PSX to USB converter, so SDL_IsGameController() returns true when using this adaptor. It's interesting because PSX/PS2 controllers connected using this model won't be detected as gamecontrollers otherwise, only as joysticks.
Sam Lantinga d8286479 2017-09-22T08:30:52 Added stubs for simple Steam Controller support
Patrice Mandin 46ec1305 2017-09-14T21:45:14 Fix for 3829. Revert adding GameSir G4s, uses same GUID as PS3 controller.
Patrice Mandin 73c85e98 2017-09-14T19:33:32 Readd support for GameSir G4s, lost with changeset 11431
Sam Lantinga ac782d71 2017-09-12T05:53:47 Added support for the PDP Battlefield One Xbox One controller on Linux
Alex Szpakowski 20207abf 2017-08-31T22:07:28 macOS: Update controller mapping of Steelseries Stratus XL to account for reversed thumbstick y-axis values (bug #3483).