|
0ec5bb4e
|
2022-07-25T10:37:23
|
|
Add missing controller events to `SDL_GameControllerEventState()`
Events to handle controller touchpads and sensors were added to the library but not added in `SDL_GameControllerEventState()`. This change adds the missing events.
|
|
e24b971a
|
2022-07-12T17:53:03
|
|
Added support for the NVIDIA Shield controller guide button
|
|
6e712d24
|
2022-07-09T22:55:36
|
|
joystick: Add HIDAPI driver for NVIDIA SHIELD 2017 controller
Basic input already works using the OS HID driver, but this enables
force feedback and battery state reporting.
|
|
3b191580
|
2022-06-27T17:19:39
|
|
Windows GDK Support (#5830)
* Added GDK
* Simplfied checks in SDL_config_wingdk.h
* Added testgdk sample
* Added GDK readme
* Fixed error in merge of SDL_windows.h
* Additional GDK fixes
* OpenWatcom should not export _SDL_GDKGetTaskQueue
* Formatting fixes
* Moved initialization code into SDL_GDKRunApp
|
|
68544be4
|
2022-06-10T11:31:59
|
|
Added support for the Nintendo Online controllers
|
|
c7f41038
|
2022-06-09T13:47:29
|
|
Special case for k_eControllerType_XInputSwitchController in the raw input path
|
|
e6cb0822
|
2022-06-09T13:20:38
|
|
Fixed the default mapping on Windows for the HORI Fighting Commander
|
|
423141bf
|
2022-06-03T18:49:41
|
|
Added a function to get the controller firmware version
|
|
7fa46ec4
|
2022-05-31T11:11:19
|
|
The Google Pixel fingerprint sensor also shows up on Linux when running on the phone
|
|
47f1cb55
|
2022-05-18T23:48:15
|
|
Fixed picking up the correct mapping for virtual controllers on Android
Fixes https://github.com/libsdl-org/SDL/issues/5662
|
|
94eeb587
|
2022-05-15T20:01:12
|
|
First pass at extending virtual controller functionality
Added the ability to specify a name and the product VID/PID for a virtual controller
Also added a test case to testgamecontroller, if you pass --virtual as a parameter
|
|
7ad15c5b
|
2022-05-15T09:35:52
|
|
Added game controller support for virtual joysticks
Fixes https://github.com/libsdl-org/SDL/issues/5662
|
|
e551384a
|
2022-04-26T14:54:14
|
|
Added functions to get the platform dependent name for a joystick or game controller
|
|
120c76c8
|
2022-01-03T09:40:00
|
|
Updated copyright for 2022
|
|
61107494
|
2021-12-17T07:40:02
|
|
SDL_gamecontroller.c: (unsigned char) cast to SDL_isdigit() parameters.
|
|
a2e85652
|
2021-11-26T11:04:15
|
|
The Google Pixel fingerprint sensor isn't actually a joystick
Fixes https://github.com/libsdl-org/SDL/issues/4971
|
|
6828955d
|
2021-11-19T09:58:11
|
|
Trim any extra platform strings from mappings when they're returned to the application
|
|
fe09a493
|
2021-11-11T15:53:11
|
|
joystick: Add APIs to query rumble support
|
|
301389ce
|
2021-11-07T13:52:59
|
|
Fixed iOS build
|
|
0323d983
|
2021-11-07T12:52:06
|
|
Add the platform to the game controller mapping so it can be read back in without changes
Fixes https://github.com/libsdl-org/SDL/issues/4848
|
|
86bc65a7
|
2021-11-07T11:35:12
|
|
Fixed non-Apple builds
|
|
9fdb0645
|
2021-08-04T11:33:28
|
|
Added support for the Joy-Con Charging Grip when SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS is enabled
|
|
2dfc92ca
|
2021-08-03T01:33:35
|
|
Added default mapping for WGI game controllers
|
|
993a5676
|
2021-08-03T00:14:15
|
|
Only use the default Xbox mapping on Linux
On Windows, this is already covered by XInput and is the wrong mapping if we try to use it with DirectInput/RAWINPUT/WGI controllers
|
|
a186a503
|
2021-07-29T06:43:39
|
|
Added SDL_GameControllerGetSensorDataRate() to get the sensor update rate for a controller.
|
|
09d1cea7
|
2021-07-24T11:15:09
|
|
Use the new controller type for the Luna and Stadia controllers
|
|
808c3ae6
|
2021-07-24T10:36:56
|
|
Allow mapping Android controllers that just have a D-PAD and face buttons
This fixes bug https://github.com/libsdl-org/SDL/issues/4327
|
|
d135c076
|
2021-07-08T13:22:41
|
|
Added SDL_GameControllerSendEffect() and SDL_JoystickSendEffect() to allow applications to send custom effects to the PS4 and PS5 controllers
See testgamecontroller.c for an example of a custom PS5 trigger effect
|
|
430bbcb8
|
2021-07-07T09:49:33
|
|
Added HIDAPI support for the Amazon Luna Controller connected over USB in DirectInput mode
|
|
863f5669
|
2021-07-07T08:55:16
|
|
Fixed reading thumbstick axes and mic button on the Amazon Luna Controller firmware version 305164320
|
|
39302c92
|
2021-06-02T14:28:33
|
|
Add Steam Virtual Gamepad and Xbox 360 Wired Controller defines instead of magic values
See https://partner.steamgames.com/doc/features/steam_controller/steam_input_gamepad_emulation_bestpractices for details on what is Steam Virtual Gamepad.
|
|
afd100f0
|
2021-06-18T17:37:46
|
|
Added support for the PowerA Fusion Pro 2 and the PDP Xbox Series X Afterglow and Blue controllers
|
|
ee52624f
|
2021-02-22T17:23:13
|
|
Switch Joy-Con SL and SR buttons are now mapped to matching paddle positions so that all buttons can be accessed when using SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS
|
|
1a17ab30
|
2021-02-21T11:03:26
|
|
Added mappings for popular controllers on Chromebooks
|
|
85235985
|
2021-02-02T11:53:31
|
|
Fixed detecting the paddles on the Xbox Elite Series 1 controller
|
|
1981d23f
|
2021-01-23T11:06:35
|
|
Fixed bug 5466 - Add haptic support for Stadia Controller
Dimitriy Ryazantcev
Consider adding support for Stadia Controller haptics.
Here is example code how to deal with it:
https://github.com/chromium/chromium/blob/99314be8152e688bafbbf9a615536bdbb289ea87/device/gamepad/hid_haptic_gamepad.cc#L45
|
|
f68b36df
|
2021-01-22T11:42:42
|
|
Added support for the EVORETRO GameCube Adapter in PC mode
|
|
178ae70a
|
2021-01-20T12:18:10
|
|
Don't add paddle mappings for the Xbox One Elite Series 1 controller, since they can't be unmapped and read directly on that controller.
|
|
2ea393bd
|
2021-01-15T14:36:21
|
|
Fixed the screenshot button mapping on third party Bluetooth Nintendo Switch Pro controllers
|
|
b3848c51
|
2021-01-14T15:15:57
|
|
Fixed bug 5445 - Incorrect Switch Pro Controller face buttons when SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS disabled
jibb
I'm testing with DualShock 4, DualSense, Switch Pro Controller, and PowerA Switch Controller.
I'm using the standard mapping file from here:
https://raw.github.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt
With SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS turned off (set to "0") I expect the button positions to be the same on all devices, based on Xbox controller button naming (eg SDL_GameControllerGetButton(g, SDL_CONTROLLER_BUTTON_Y) gives me whether the North face button is pressed).
However, the Switch Pro Controller layout is wrong (matching labels rather than positions, so X and Y are swapped and A and B are swapped). And with the PowerA controller the East and West buttons are correct, but the North and South buttons are swapped instead.
Mathias Kaerlev
Also seeing this on 2.0.14. This is most likely a regression, since we weren't seeing this on an earlier SDL version.
I suspect it might be caused by this commit:
https://github.com/spurious/SDL-mirror/commit/a569b211881c6d4c73f3f1019e9f66e754ca546b#diff-da9344d94c66b8c702a45e7649f412039f08bba83bd82de33f5c80ea9c8c39d5
It seems like both the HIDAPI driver and SDL_gamecontroller.c will try to swap the buttons if the hint is set to 0, causing the button remap to cancel out.
|
|
9130f7c3
|
2021-01-02T10:25:38
|
|
Updated copyright for 2021
|
|
4ec776c3
|
2020-12-22T13:29:23
|
|
Don't switch the PS5 controller out of DirectInput mode by default
|
|
cb361896
|
2020-12-09T07:16:22
|
|
Fixed bug 5235 - All internal sources should include SDL_assert.h
Ryan C. Gordon
We should really stick this in SDL_internal.h or something so it's always available.
|
|
4fbefbe2
|
2020-11-27T11:33:53
|
|
Sort the raw input axes by usage, so X comes before Y, etc.
|
|
5b3616c3
|
2020-11-23T18:24:05
|
|
Generalized the raw input controller driver and moved XInput/WGI detection into it for XInput devices
This fixes bad report parsing for various newer Xbox controllers, and this driver is now preferred over XInput, since it handles more than 4 controllers.
|
|
6cb7f9e3
|
2020-11-19T19:09:40
|
|
Respect SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS for Nintendo Switch Pro controllers using the HIDAPI driver
|
|
fcb21aa8
|
2020-11-17T10:30:20
|
|
Added API for sensors on game controllers
Added support for the PS4 controller gyro and accelerometer on iOS and HIDAPI drivers
Also fixed an issue with the accelerometer on iOS having inverted axes
|
|
d140d887
|
2020-11-16T17:36:47
|
|
Added SDL_JoystickGetSerial() and SDL_GameControllerGetSerial()
|
|
9f51fad3
|
2020-11-13T18:01:29
|
|
Added support for the touchpad on PS4 and PS5 controllers
|
|
1e2caac5
|
2020-11-11T18:57:37
|
|
Added SDL_JoystickRumbleTriggers() and SDL_GameControllerRumbleTriggers()
|
|
e12457d8
|
2020-11-10T12:26:30
|
|
Added support for the Xbox Series X controller to the HIDAPI driver
|
|
009b62f1
|
2020-11-07T02:22:15
|
|
Be explicit about mapping the new game controller paddle buttons
|
|
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
|
|
e555d453
|
2020-11-05T11:07:54
|
|
Added SDL_JoystickHasLED
Currently, this is only supported by the PS4 HIDAPI driver.
|
|
99ed0d7a
|
2020-10-16T12:40:12
|
|
Map the guide button by default on Android 11
|
|
9d40a0f3
|
2020-08-29T16:50:26
|
|
Fix joystick device add events containing invalid device indexes
This can happen if the application has not yet processed SDL_JOYDEVICEADD when
the same joystick is removed. It may also happen if two joysticks are added
and the second joystick is removed before the first joystick's SDL_JOYDEVICEADD
has been processed by the application.
|
|
cab1a715
|
2020-07-15T10:15:52
|
|
Fixed bug 5233 - PS3 Gamepad Motion Control not correctly ignored on Linux
Igor Morgado
PS3 Controller motion sensor string is being reported as
`Gasia Co.,Ltd PS(R) Gamepad Motion Sensors`
But `src/joystick/SDL_gamecontroller.c` line1690 only ignores if matches the string `Controller Motion Sensors`.
```
#if defined(__LINUX__)
if (name && SDL_strstr(name, "Controller Motion Sensors")) {
/* Don't treat the PS3 and PS4 motion controls as a separate game controller */
return SDL_TRUE;
}
#endif
```
Therefore, SDL is mapping 2 Game controllers instead one.
Maybe reduce the substring to match `Motion Sensors` instead.
A simple log from my application is shown below:
INFO: Game controller device 0 - PS3 Controller:PS3 Controller found.
INFO: Controller 0: Player 0: 054c:0268:8111 - PS3 Controller - PS3 Controller - Gasia Co.,Ltd PS(R) Gamepad
INFO: Game controller device 1 - PS3 Controller:PS3 Controller found.
INFO: Controller 1: Player 1: 054c:0268:8111 - PS3 Controller - PS3 Controller - Gasia Co.,Ltd PS(R) Gamepad Motion Sensors
|
|
39c958bb
|
2020-05-29T14:48:39
|
|
Initialize the raw_map before getting controller mappings from the driver
|
|
345b4d7e
|
2020-05-29T13:37:21
|
|
Fixed bug 5161 - Autodetect controller mappings based on the Linux Gamepad Specification
Jan Bujak
I wrote a new driver for my gamepad on Linux. I'd like SDL to support it out-of-box, as currently it just treats it as a generic joystick instead of a gamepad. From what I can see the only way to do that is to either 1) pick one of the already supported controllers' PID, VID and button layouts and have my driver send that (effectively lying that it's something else), or 2) submit a preconfigured, hardcoded mapping to SDL.
Both of those, in my opinion, are silly when we already have the Linux Gamepad Specification which standarizes this:
https://www.kernel.org/doc/html/v4.15/input/gamepad.html
Unfortunately SDL doesn't make use of it currently. So I've took it upon myself to add it; patch is in the attachments.
Basically what the patch does is that if SDL finds no built-it controller mappings for a given joystick it then asks the joystick backend to autodetect it, and that uses the relevant evdev bits to figure out which button/axis is which. (See the specs for more details.)
With this patch applied my own driver for my controller works out-of-box with SDL with no extra configuration and is correctly recognized as a gamepad; this is also going to be the case for any other driver which follows the Linux Gamepad Specification.
|
|
83cddd2e
|
2020-04-30T11:57:29
|
|
Add SDL_JoystickSetLED.
Currently, this is only supported by the PS4 HIDAPI driver.
|
|
67760f0e
|
2020-04-20T18:58:18
|
|
joystick: Don't report duplicate recentering events for game controllers.
|
|
c5f2a1ce
|
2020-04-20T16:01:36
|
|
joystick: On disconnect, recenter all game controller inputs.
The joystick layer can't necessarily give us perfect centering, but we know
that the game controller level has logical absolute idle positions that have
nothing to do with the physical device.
So send game controller events to make it look like the device is completely
untouched before sending the final removal event.
|
|
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
|
|
8c165add
|
2020-04-07T23:17:27
|
|
joystick: Remove force_centering flag; we handle this on disconnect now.
|
|
4dea340c
|
2020-03-16T12:23:38
|
|
Fixed bug 4477 - Support more than 4 XInput-capable devices on Windows
Jimb Esser
Add new RawInput controller API, and improved correlation with XInput/WGI
Reorder joystick init so drivers can ask the others if they handle a device reliably
Do not poll disconnected XInput devices (major perf issue)
Fix various cases where incorrect correlation could happen
Simple mechanism for propagating unhandled Guide button presses even before guaranteed correlation
Correlate by axis motion as well as button presses
Fix failing to zero other trigger
Fix SDL_HINT_JOYSTICK_HIDAPI not working if set before calling SDL_Init()
Add missing device to device names
Disable RawInput if we have a mismatch of XInput-capable but not RawInput-capable devices
Updated to SDL 2.0.13 code with the following notes:
New HID driver: xbox360w - no idea what that is, hopefully urelated
SDL_hidapijoystick.c had been refactored to couple data handling logic with device opening logic and device lists caused some problems, yields slightly uglier integration than previously when the 360 HID device driver was just handling the data.
SDL_hidapijoystick.c now often pulls the device off of the joystick_hwdata structure for some rumble logic, but it appears that code path is never reached, so probably not a problem.
Looks like joystick_hwdata was refactored to not include a mutex in other drivers, maintainers may want to do the same refactor here if that's useful for some reason.
Something changed in how devices get names, so getting generic names.
Had to fix a (new?) bug where removing an XInput controller caused existing controllers (that moved to a new XInput index) to get identified as 0x045e/0x02fd ("it's probably Bluetooth" in code), rendering the existing HIDAPI_IsDevicePresent and new RAWINPUT_IsDevicePresent unreliable.
|
|
db3b3a1d
|
2020-03-12T19:47:28
|
|
Added support for SDL hints in the game controller mapping database
|
|
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
|
|
dc1d3c29
|
2020-02-04T18:36:23
|
|
Catch both PS3 and PS4 motion controls and don't treat them as a game controller
|
|
a8780c6a
|
2020-01-16T20:49:25
|
|
Updated copyright date for 2020
|
|
46e1377d
|
2019-12-20T20:12:03
|
|
Automatically assign player indexes to game controllers, and allow changing the player index for game controllers and joysticks.
Added the functions SDL_JoystickFromPlayerIndex(), SDL_JoystickSetPlayerIndex(), SDL_GameControllerFromPlayerIndex(), and SDL_GameControllerSetPlayerIndex()
|
|
733f2525
|
2019-11-22T14:09:24
|
|
Fixed build
|
|
b5aff9d7
|
2019-11-22T13:12:12
|
|
Added SDL_GameControllerTypeForIndex() and SDL_GameControllerGetType() to return the type of controller attached.
|
|
60d3965e
|
2019-10-30T15:36:17
|
|
Readability: remove redundant return, continue, enum declaration
|
|
0f871c03
|
2019-10-23T09:53:23
|
|
Fixed bug 4843 - Passing NULL to memset in SDL_PrivateLoadButtonMapping
(Thanks!)
|
|
7a47c292
|
2019-07-31T01:22:02
|
|
Fix bug 4746 - introduce SDL_zeroa macro.
|
|
0f148eb6
|
2019-03-16T18:12:26
|
|
Fix polling left trigger reporting right trigger's values.
|
|
82b2c849
|
2019-01-21T23:41:43
|
|
Fixed bug 4024 - GameController error "Unexpected controller element"
If mapping string is terminated with a comma, there is no more values to parse.
|
|
7b354dda
|
2019-01-20T13:53:16
|
|
Fixed compiler warning
|
|
ede0fc4f
|
2019-01-16T14:03:35
|
|
Fixed bug 4024 - remove trailing comma of Controller mappings
because it reports an error "Unexpected controller element"
|
|
5e13087b
|
2019-01-04T22:01:14
|
|
Updated copyright for 2019
|
|
98829d37
|
2018-12-11T19:50:58
|
|
Handle both "Sony Interactive Intertainment" and "Sony Computer Entertainment" when ignoring motion sensors
|
|
70ce0f2e
|
2018-12-07T12:02:08
|
|
Added the hint SDL_HINT_GAMECONTROLLERCONFIG_FILE to specify a file to load at initialization containing SDL game controller mappings
|
|
db320e46
|
2018-12-04T14:21:29
|
|
Fixed the PS4 motion controls showing up as a separate game controller on Linux
|
|
62494a2e
|
2018-10-31T15:03:41
|
|
Merge SDL-ryan-batching-renderer branch to default.
|
|
14329256
|
2018-10-25T16:53:14
|
|
Generalized the XInput user index into a player index
|
|
b262b0eb
|
2018-10-22T20:50:32
|
|
Small stack allocations fall back to malloc if they're unexpectedly large.
|
|
41ee51b9
|
2018-10-04T15:23:42
|
|
Fixed updating bindings for controllers using the wildcard mappings
|
|
5febdfce
|
2018-09-24T11:49:25
|
|
Fixed whitespace
|
|
59a2d12c
|
2018-09-17T11:35:22
|
|
Fixed creating an Android game controller mapping for HIDAPI devices on initialization
|
|
6a7b0c27
|
2018-09-14T12:41:29
|
|
Fixed crash launching under Steam on Mac OS X
|
|
96259f1f
|
2018-09-05T12:16:01
|
|
Don't overwrite the default binding when changing the binding for a controller that was using the default.
|
|
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
|
|
361043a5
|
2018-05-23T17:15:33
|
|
Actually left trigger is motion axis 17 and right trigger is motion axis 18, which will map in that order to SDL axes.
|
|
c07656db
|
2018-05-23T16:00:19
|
|
Fixed default mapping for Android controller triggers (they were reversed)
|
|
999af809
|
2018-05-18T13:09:30
|
|
Merged latest changes from Steam Link app
|
|
b41b9d34
|
2018-03-19T14:52:53
|
|
Fixed return value
|
|
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
|
|
a8ac5885
|
2018-03-07T13:30:40
|
|
Added SDL_GameControllerMappingForDeviceIndex() to get the mapping for a controller before it's opened
|
|
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.
|
|
003c0dce
|
2018-03-02T10:56:21
|
|
Use the real controller name for game controllers on iOS and Apple TV
|