|
e65e4fd3
|
2020-12-14T09:48:51
|
|
Fixed detecting the guide button on Xbox One S controllers over Bluetooth on Linux
|
|
80e5c689
|
2020-12-13T01:20:38
|
|
Fixed the PS5 controller not disconnecting when powered off
|
|
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.
|
|
c9723c40
|
2020-12-07T09:38:21
|
|
Fixed potential hang in joystick close if the rumble thread is blocked for some reason
It's still possible to hang when shutting down, if the rumble thread is still hung, but it won't block indefinitely at runtime.
|
|
09909d02
|
2020-12-03T19:44:47
|
|
Fixed handling of BACK button on newer Xbox One S controllers
|
|
54e5136b
|
2020-12-03T18:17:04
|
|
Refactored Xbox One Bluetooth protocol and verified Xbox One S, Xbox Series X, and Xbox One Elite Series 2 controllers
|
|
1031231b
|
2020-12-03T18:17:03
|
|
Fixed duplicating a device between XInput and HIDAPI
|
|
59f28b7f
|
2020-12-03T18:17:01
|
|
Fixed whitespace
|
|
e3966e25
|
2020-11-30T13:04:30
|
|
Use the correct internal API for updating the battery level for PS5 controllers
|
|
f4ed07de
|
2020-11-30T13:02:34
|
|
We don't know whether the PS5 controller is Bluetooth or not when we open it
|
|
a0c5bfa3
|
2020-11-27T13:08:40
|
|
Moved raw input event processing from the main thread to the joystick thread
This allows fast joystick event delivery regardless of what the main thread is doing.
|
|
ce77966d
|
2020-11-27T10:44:49
|
|
Fixed RAWINPUT_IsDevicePresent() not returning TRUE for Xbox One controllers
|
|
517be808
|
2020-11-25T16:05:19
|
|
Implemented battery status for Bluetooth Xbox One controllers
Also switched the rumble loop count to 0xEB (one hour) to match Windows driver
|
|
159d1b3d
|
2020-11-25T01:35:45
|
|
Don't set the serial number after the controller is opened
We'll use the USB value instead so it's available as soon as it's opened.
|
|
7d92b14f
|
2020-11-25T01:18:18
|
|
Simplified Xbox One controller initialization state, and don't query for the serial number.
|
|
9fc4a4c9
|
2020-11-24T22:25:26
|
|
Revamped Xbox One HIDAPI init sequence
Added support for querying the controller serial number on newer firmware
|
|
e44bf8a0
|
2020-11-23T21:18:37
|
|
Fixed bug 5359 - Incorrect sensor data from DualShock4
multiply gyro values by sensitivity
When the hardware calibration fails, values read from sensors need to be multiplied by default sensitivity (16 for gyro, 1 for accelerometer).
|
|
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.
|
|
2e8e3854
|
2020-11-21T17:59:15
|
|
Fixed compile warning
|
|
870841c4
|
2020-11-21T11:59:01
|
|
Reset the LED state after Bluetooth connection has completed on the PS5 controller
|
|
549010f2
|
2020-11-20T13:24:49
|
|
It takes 2 packets to stop audio haptics and start emulated rumble on the PS5 controller
|
|
ffb4d960
|
2020-11-19T19:09:34
|
|
Disabled Xbox protocol debugging
|
|
c9b097e6
|
2020-11-19T13:31:16
|
|
Clarify the meaning of the rumble enable bits for the PS5 controller
|
|
c85623d7
|
2020-11-19T13:10:14
|
|
Re-enable haptic audio after rumble on PS5 controller
Also make sure we don't set any other state when we're not intending to, and added more interesting effects which are currently not exposed via API
|
|
8c3196da
|
2020-11-18T21:33:11
|
|
Fixed some compiler warnings
|
|
45f14375
|
2020-11-18T20:34:12
|
|
Experimenting with requesting the serial number on an Xbox One controller
|
|
963d8b3f
|
2020-11-18T20:34:10
|
|
Fixed bits in the initial Xbox One protocol ack
|
|
cd51a51f
|
2020-11-18T20:34:08
|
|
Updated with a better understanding of the Xbox One controller protocol
|
|
463d84a8
|
2020-11-17T10:56:56
|
|
Added support for the PS5 controller gyro and accelerometer
|
|
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()
|
|
71e32f5e
|
2020-11-16T15:00:15
|
|
Added SDL_crc32()
|
|
3d48fc05
|
2020-11-16T13:21:02
|
|
Added notes about the pad lights on the PS5 controller
|
|
4514ad57
|
2020-11-16T13:07:11
|
|
Fixed updating LED state when starting application with Bluetooth PS5 controller connected
|
|
a37e3ae2
|
2020-11-16T11:21:58
|
|
Implemented PS5 effects over Bluetooth
|
|
c6c116e8
|
2020-11-16T10:51:13
|
|
Implemented setting the LED color on the PS5 controller
|
|
aa7c3eae
|
2020-11-16T09:16:01
|
|
Fixed size of rumble packet
|
|
f28c01a4
|
2020-11-16T09:11:15
|
|
Fixed rumble order on PS5
|
|
eb94c19a
|
2020-11-16T08:09:15
|
|
SDL: fix iOS build
|
|
8243bd1d
|
2020-11-16T08:09:13
|
|
SDL: Plumb PS5 rumble to output report
|
|
5c34c973
|
2020-11-13T19:40:25
|
|
Clarify that we're using button indices, not using gamepad button names
|
|
9f51fad3
|
2020-11-13T18:01:29
|
|
Added support for the touchpad on PS4 and PS5 controllers
|
|
78422fa3
|
2020-11-13T13:17:07
|
|
Added more detail on the PS5 controller state packet and enable full reports over Bluetooth
|
|
5b0d4329
|
2020-11-12T07:53:03
|
|
Implemented trigger rumble in the HIDAPI Xbox One driver
|
|
83b653d5
|
2020-11-11T20:09:56
|
|
Fixed build warning
|
|
320a7587
|
2020-11-11T19:26:59
|
|
Fixed compiler warnings
|
|
1e2caac5
|
2020-11-11T18:57:37
|
|
Added SDL_JoystickRumbleTriggers() and SDL_GameControllerRumbleTriggers()
|
|
d1e10c31
|
2020-11-11T14:38:14
|
|
Removed debug output
|
|
067630ae
|
2020-11-11T03:47:08
|
|
Fix hidapi for unhandled DS4 headset microphone data corrupting controller state
|
|
e12457d8
|
2020-11-10T12:26:30
|
|
Added support for the Xbox Series X controller to the HIDAPI driver
|
|
c3dea231
|
2020-11-09T22:39:33
|
|
Added support for reading the paddles on a Xbox Elite Series 2 controller in Bluetooth mode
|
|
1577366c
|
2020-11-08T23:49:03
|
|
Fixed duplicated switch statement processing Xbox controller dpad state
|
|
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
|
|
a22beef4
|
2020-11-05T17:03:28
|
|
Moved the PS5 controller driver to a separate file, as the advanced feature protocol is very different from that of the PS4
|
|
4d79f966
|
2020-11-05T15:02:54
|
|
Added initial support for the Sony PS5 Controller
|
|
e555d453
|
2020-11-05T11:07:54
|
|
Added SDL_JoystickHasLED
Currently, this is only supported by the PS4 HIDAPI driver.
|
|
3d92e8c7
|
2020-10-21T10:43:46
|
|
hidapi: Also parse data[12] with dpad values on the xb1s controller
|
|
d000c1cd
|
2020-05-29T21:22:11
|
|
Fixed bug 5155 - HIDAPI_JoystickDisconnected incorrect array shift
Anthony Pesch
I was looking into my own input bug and noticed an issue in the HIDAPI code while looking over it. I don't have a controller that goes down this path to test and try to provoke the issue, but it looks pretty straight forward.
The memmove to shift the joystick id array on disconnect isn't scaling the size by sizeof(SDL_JoystickID), likely corrupting the ids on disconnect.
|
|
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.
|
|
5fe34a40
|
2020-05-20T17:01:25
|
|
hidapi: Fix compiler warning.
|
|
83cddd2e
|
2020-04-30T11:57:29
|
|
Add SDL_JoystickSetLED.
Currently, this is only supported by the PS4 HIDAPI driver.
|
|
134362e7
|
2020-04-25T19:15:51
|
|
Enable Xbox One HIDAPI driver on macOS
The Xbox One HIDAPI driver is required on macOS for Xbox One S Bluetooth
support since https://hg.libsdl.org/SDL/rev/10c3a10908e9
|
|
b90b5927
|
2020-04-17T21:30:58
|
|
Added support for the Razer Atrox Arcade Stick
|
|
dbcda0b2
|
2020-04-17T21:30:56
|
|
Added support for the Razer Wolverine Ultimate
|
|
2b323855
|
2020-04-17T15:08:48
|
|
Don't send rumble packets too quickly to Nintendo Switch Pro controllers over Bluetooth
|
|
c02f54a0
|
2020-04-17T15:08:46
|
|
Fixed the default face button mapping for Nintendo Switch Pro controllers
|
|
50b1c195
|
2020-04-14T09:55:33
|
|
Fixed bug 5091 - Suspicious condition in HIDAPI_DriverXbox360_UpdateXInput
meyraud705
On line 220 of SDL_hidapi_xbox360.c https://hg.libsdl.org/SDL/file/4608f0e6e8e3/src/joystick/hidapi/SDL_hidapi_xbox360.c#l220
if (!XINPUTGETSTATE(user_index, &xinput_state[user_index].state) == ERROR_SUCCESS) {
logical not is only applied to the left hand side of this comparison.
I think you mean:
if (XINPUTGETSTATE(user_index, &xinput_state[user_index].state) != ERROR_SUCCESS) {
|
|
f34d2c60
|
2020-04-14T07:35:35
|
|
Added zlib license for Steam Controller headers
|
|
55515a8c
|
2020-04-08T08:42:15
|
|
SDL: ps4 controller trigger bits on other controllers just mean that there's some activity, not saturation - only force it on if the analog value is 0.
|
|
b6afbe63
|
2020-04-07T09:38:57
|
|
Added SDL_log.h to SDL_internal.h so logging is available everywhere
|
|
3154d924
|
2020-03-30T14:26:21
|
|
SDL: plumb previously unused digital trigger bits for PS4 controllers. Victrix fight stick only sets these bits and doesn't send the analog values
CR: SamL
|
|
cb8c91d9
|
2020-03-22T11:01:14
|
|
Fixed bug 5051 - Switch Pro Controller hidapi driver does not report battery levels when connected via Bluetooth
bluenaxela+sdl
I've noticed that the Switch Pro Controller hidapi driver does not report battery levels when connected via Bluetooth, despite having code for setting joystick->epowerlevel.
This is caused by the driver always using k_eSwitchInputReportIDs_SimpleControllerState via Bluetooth. Using that mode means that the state reports you get back from the controller do not include battery state. Not using the full controller state over Bluetooth effectively makes this driver's support for setting joystick->epowerlevel entirely pointless, only ever reporting SDL_JOYSTICK_POWER_WIRED.
Is there a reason this was set to only use SimpleControllerState via Bluetooth?
I've attached a patch I'm using to allow getting battery level for the Switch Pro Controller.
A couple notes about this patch:
1) It changes LoadStickCalibration to accept the input_mode that is selected, because that's really what should determine what is used for stick extents, since stick extents differ between the modes.
2) In my patch I only use FullControllerState when the vid/pid matches the official Switch Pro Controller, as a cautionary measure in case some third-party controllers have problems with FullControllerState mode via Bluetooth (I noticed a HORI Wireless Switch Pad I had seemed to not read controller calibration correctly for stick extents. Maybe it's calibration data was uninitialized on account of having never been used with a Switch? I'm unsure, though if that guess is right maybe SDL2 should be detecting an uninitiated calibration state and using some sensible defaults)
|
|
f55cbdfd
|
2020-03-20T21:05:07
|
|
Allow Valve devices in driver check, we know they're well behaved controllers
|
|
106ffd57
|
2020-03-20T20:45:30
|
|
Fixed bug 5049 - HORI Wireless Switch Pad does not connect properly via Bluetooth
bluenaxela+sdl
The HORI Wireless Switch Pad does not properly connect via bluetooth. I did some debugging and found that the code that tries to control the Home LED causes this controller to disconnect.
|
|
9b879a08
|
2020-03-16T19:15:28
|
|
Fixed compiler warning
|
|
c2c5d0b3
|
2020-03-16T16:52:49
|
|
Fix compile error
|
|
47da53b9
|
2020-03-16T14:49:20
|
|
Fix compiler warnings
|
|
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.
|
|
879f137a
|
2020-03-13T19:00:24
|
|
Added support for the older Xbox One S Bluetooth controller report format
|
|
d662a659
|
2020-03-13T19:00:22
|
|
Fixed crash if manufacturer or product string is NULL
|
|
c44473ba
|
2020-03-12T19:47:30
|
|
Unified code to standardize joystick names
|
|
9fdc6cf3
|
2020-03-10T18:34:33
|
|
Removed Xbox HIDAPI debug code
|
|
fe979921
|
2020-03-10T17:35:14
|
|
Read the buttons on Nintendo Switch and GameCube controllers as they are labeled, and swap them if the applications wants positional button data instead.
|
|
4caa6a06
|
2020-03-10T16:41:42
|
|
Fixed bug 4921 - Do not swap B/X buttons on GameCube controller unless it's requested
Ethan Lee
Basically replicating the solution of the Switch Controller's button label issue. Physical layout should take priority unless it's explicitly requested by the user or application!
|
|
467434b9
|
2020-03-07T13:17:28
|
|
Added support for indicating player index on DS4 controllers
|
|
e9bc21fb
|
2020-03-04T17:10:37
|
|
Fixed rumble for third-party Nintento Switch Pro controllers
The 8BitDo SF30 Pro Gamepad will generate a single motor pulse for each rumble message, so we need to do this frequently to have continous rumble on this device.
|
|
428cfddb
|
2020-03-04T14:59:44
|
|
Fixed crash when a controller is disconnected while rumble is pending
|
|
281d05a6
|
2020-03-04T09:42:10
|
|
Fixed handling the guide button with both V1 and V2 of the Xbox One Bluetooth wireless protocols
|
|
3b3ae4d1
|
2020-03-02T15:06:47
|
|
Possible fix for bug 5010 - SDL_Init with SDL_INIT_JOYSTICK hangs for 10 seconds when playing audio from another application
Jake Breen
When I run SDL_INIT with SDL_INIT_JOYSTICK it stalls for about 10 seconds (last report was 10,615ms), but only if I'm currently playing audio. (Like in Spotify for example.)
querying something related to device access (last dll loaded)
'BabbysFirst64.exe' (Win32): Loaded 'C:\Windows\SysWOW64\deviceaccess.dll'.
I use a USB DAC because my mobo's audio out is pretty not great. And I've noticed unplugging it seems to solve the issue. I haven't noticed any other issues that are caused by my DAC.
My DAC is the Sound BlasterX G1 https://us.creative.com/p/gaming-headsets/sound-blasterx-g1
Vid = 041E
PID = 3249
My system specs:
- Windows 10 Pro
- Ryzen 2700x
- 16GB Ram
- Nvidia 2070 RTX
Additional USB devices plugged in:
- Valve Index
- Xbox One Elite Controller
|
|
eb19631a
|
2020-03-02T10:57:57
|
|
This controller firmware is supported on Windows, and is covered by the Bluetooth check on Mac OSX
|
|
27f346a0
|
2020-03-02T09:46:37
|
|
Fixed compile warning
|
|
52be6633
|
2020-03-02T09:35:09
|
|
Use SDL math functions in Steam Controller support
|
|
756d2073
|
2020-03-02T09:26:12
|
|
Updated the HIDAPI Xbox One driver with support for Bluetooth Xbox One controllers
|
|
6590d078
|
2020-03-01T14:52:49
|
|
Fixed bug 4996 - Mac: XBoxOne Bluetooth rumble isn't working
rofferom
I have an annoying issue on MacOS about XBoxOne Bluetooth rumble (Vendor: 0x045e, Product: 0x02fd).
When 360controller is installed, rumble is working correctly. However, Bluetooth rumble isn't working at all, with or without 360controller installed (although it is working with Chrome + https://html5gamepad.com).
I looked at the code, and it seems that XBox controllers are managed in MacOS in this file: SDL_hidapi_xbox360.c. The XBoxOne file is disabled for MacOS in SDL_hidjoystick_c.h.
The function HIDAPI_DriverXbox360_Rumble() is called correctly, and hid_write() returns no error.
I have tried a stupid test. I took the rumble packet from 360controller: https://github.com/360Controller/360Controller/blob/ec4e88eb2d2535e9b32561c702f42fb22b0a7f99/XBOBTFF/FFDriver.cpp#L620. With the patch I have attached, I manage to have rumble working on Bluetooth (with some stupid vibration level, but it proves it can if the packet is changed).
But it breaks the USB rumble with 360controller. A comment in the function makes an explicit reference to 360controller, I think that's why I have broken this specific usecase.
I don't know what is the correct way to fix this, but it seems that the current implementation has a missing case for Bluetooth support.
Note that I also tested master this morning, and I have another issue:
if (!device->ffservice) {
return SDL_Unsupported();
}
test fails in DARWIN_JoystickRumble(). This test has been done quickly, I'm not totaly confident about its accuracy.
|
|
53462163
|
2020-03-01T13:01:53
|
|
mac: Fix gamepad detection
|
|
1af31a26
|
2020-02-27T13:53:32
|
|
Fixed trying to handle the HORI Wireless Switch Pad when connected via USB
|
|
20d67446
|
2020-02-27T09:33:32
|
|
Xbox One controller rumble doesn't need synchronization if you use a packet counter of 0
|
|
8d146363
|
2020-02-19T08:26:00
|
|
Fixed support for third party Xbox 360 wireless controller dongle
|
|
715f8d42
|
2020-02-14T16:15:46
|
|
Fixed bug 4986 - Memory leak in HIDAPI_JoystickConnected
meyraud705
Memory allocated for device->joysticks on line 589 of SDL_hidapijoystick.c is never freed.
Also, use memmove because memory is overlapping.
|