Commit Graph

2460 Commits

Author SHA1 Message Date
Sam Lantinga
a1ade13f1e Enable gamepad events on visionOS
Normally the gamepad is used for navigation on visionOS, but when the controller subsystem is enabled we want to receive gamepad input as gamepad events instead.
2025-11-19 10:37:33 -08:00
Sam Lantinga
4931c675ab Fixed warning C4127 (conditional expression is constant) in Visual Studio 2025-11-17 16:06:58 -08:00
Sam Lantinga
c68254927f Fixed the SI GameCube dual stage trigger button mapping
Also moved the second touchpad button to the end of the misc buttons
2025-11-17 09:28:06 -08:00
Sam Lantinga
dccf486a0a Fixed potential infinite recursion opening a Steam Controller
This can happen if the controller is opened from an event watcher when the controller is connected.
2025-11-14 13:44:02 -08:00
Sam Lantinga
919254cdd1 Fixed comment for the new Steam Controller mapping
Fixes https://github.com/libsdl-org/SDL/issues/14465
2025-11-14 07:09:36 -08:00
Vicki Pfau
9fd3dbfc42 switch2: Remove some unneeded init commands
These commands seem to be queries the console sends, not setup
2025-11-13 20:46:46 -08:00
Vicki Pfau
f0d4aca03d switch2: Bring up IMU support 2025-11-13 20:46:46 -08:00
Vicki Pfau
ae6cdea0fa switch2: Refactor and clean up rumble code a bit 2025-11-13 20:46:46 -08:00
Sam Lantinga
e2e8f86076 Check for wine_get_version() to detect Wine/Proton
If this application is being run under Wine but Steam doesn't know that, Steam won't set STEAM_COMPAT_PROTON. So we'll use wine_get_version() to detect that we're running under Wine instead.
2025-11-12 22:29:42 -08:00
Sam Lantinga
493bc621e4 Don't check SteamVirtualGamepadInfo when running as Wine
Wine will ignore the Steam Virtual Gamepad if it looks like it has the original (blocked) controller VID/PID.

Fixes https://github.com/libsdl-org/SDL/issues/14410
2025-11-12 22:29:42 -08:00
Sam Lantinga
dafca86123 Cleanup SDL_UDEV_GetProductSerial() 2025-11-12 22:23:27 -08:00
pmx
54f129f765 FIX SDL_GetJoystickSerial() always returning NULL on Linux (UDEV) (#14454) 2025-11-12 14:25:31 -08:00
Sam Lantinga
667720d5af Added support for the HORI Taiko Drum Controller For Switch 2025-11-12 12:04:02 -08:00
Sam Lantinga
e1af623631 Fixed Steam Deck sensor timings 2025-11-12 11:36:37 -08:00
Sam Lantinga
1998b65045 Added support for the new Steam Controller 2025-11-12 11:32:32 -08:00
Sam Lantinga
9a19cc8323 Fixed unaligned load in Xbox HIDAPI driver 2025-11-07 10:37:58 -08:00
Sam Lantinga
118dcf27ce Added D mode mappings for the 8BitDo 64 Bluetooth Controller
The HID descriptor maps the C buttons as a right thumbstick, but this mapping matches the HIDAPI Nintendo 64 mapping.

The start button resets the controller in both USB and Bluetooth mode on macOS, but I've kept the mapping assuming this is a macOS bug that will be fixed.
2025-11-07 10:18:49 -08:00
Sam Lantinga
9ff737efbd Updated the Nintendo Switch N64 controller mapping
This mapping matches the Linux kernel default mapping.
2025-11-07 10:18:49 -08:00
Sam Lantinga
f211a3bb69 Fixed initial rumble on the 8BitDo 64 Bluetooth Controller 2025-11-07 10:18:49 -08:00
Sam Lantinga
c94da8977d Validate SPI read command in the Nintendo Switch HIDAPI driver 2025-11-05 17:34:22 -08:00
Sam Lantinga
9a1745f2c8 Fixed unaligned access in the Nintendo Switch HIDAPI driver 2025-11-05 17:08:22 -08:00
Sam Lantinga
6493be9eea Removed SDL_AUTO_ENABLE_ENHANCED_FLYDIGI 2025-11-03 08:20:41 -08:00
Sam Lantinga
889e4787d6 Clarify when we want to auto-enable Apex 5 enhanced functionality 2025-11-02 11:14:41 -08:00
Sam Lantinga
3336aa95f1 Fixed the paddle mapping for Steam Controllers
Fixes https://github.com/libsdl-org/SDL/issues/14380
2025-11-02 10:06:49 -08:00
Sam Lantinga
eb87a36940 Fixed the right touchpad calculation for the BLE Steam Controller
Fixes https://github.com/libsdl-org/SDL/issues/14368
2025-11-02 08:31:37 -08:00
Sam Lantinga
a82e8a701d Allow dynamically switching mode of the Apex 5 controller
The controller can be in XInput mode or enhanced mode, so it will always show up as an XInput controller, and the enhanced mode controller will come and go as enhanced mode is enabled or disabled in the FlyDigi Space Station app.
2025-11-01 14:49:31 -07:00
Sam Lantinga
28849fd789 Manually enable acquiring the Apex 5 controller if necessary
The FlyDigi Space Station app isn't available on non-Windows platforms, so we need to manually enable acquiring the controller on those platforms.
2025-11-01 14:49:31 -07:00
Sam Lantinga
446fb65ca6 Mark the Apex 5 controller as being acquired by SDL 2025-10-30 22:35:06 -07:00
Sam Lantinga
1502c2fd8b Added support for the Flydigi Apex 5 controller (#14218) 2025-10-30 21:20:44 -07:00
Sam Lantinga
c21b7f8cb8 Check to see if joysticks are actually initialized in SDL_UpdateJoysticks()
Fixes https://github.com/libsdl-org/SDL/issues/14362
2025-10-30 08:53:57 -07:00
Sam Lantinga
c4cef905ae Updated internal documentation 2025-10-29 08:39:56 -07:00
Sam Lantinga
cecf4b0d4e Fixed the right shoulder button on the 8BitDo Pro 3 2025-10-28 14:55:06 -07:00
Sam Lantinga
78f9cb44c3 Added a Linux mapping for the 8BitDo Pro 3 2025-10-28 14:13:40 -07:00
Sam Lantinga
90242312fe Restored the original OpenBSD Xbox 360 controller mapping 2025-10-27 17:39:29 -07:00
Sam Lantinga
b305534edc Completed removing predefined Xbox 360 mappings for Linux
Also removed them for OpenBSD, since it's not clear which ones, if any, are needed.
2025-10-27 17:34:23 -07:00
Dave Wickham
f6c3af9c8c Re-add deleted gamepad mappings to the OpenBSD-specific section 2025-10-27 08:55:03 -07:00
Dave Wickham
0c4c4cfd16 Remove special-case Xbox 360 wireless controller mappings
Fixes https://github.com/libsdl-org/SDL/issues/14324
2025-10-27 08:55:03 -07:00
Sam Lantinga
999f782ad3 Be more selective when blacklisting controller touchpads
On Android, the PS4 controller is called "Wireless Controller Touchpad"
Fixes https://github.com/libsdl-org/SDL/issues/14294
2025-10-22 10:44:08 -07:00
Eddy Jansson
aaee09d6ed Don't do NULL-checks before SDL_free()
Replaces the pattern

  if (ptr) {
    SDL_free(ptr);
  }

with

  SDL_free(ptr);
2025-10-20 00:13:09 -07:00
Vicki Pfau
d635a064aa switch2: Read out serial number 2025-10-18 07:57:30 -07:00
Vicki Pfau
e4b763f9f8 switch2: Enable grip buttons on charging grip 2025-10-18 07:57:30 -07:00
Vicki Pfau
b152c9fb3c switch2: Refactor out flash reading 2025-10-18 07:57:30 -07:00
Vicki Pfau
ee4c2ce120 switch2: The reply to the LED packet is only 8 bytes 2025-10-18 07:57:30 -07:00
Vicki Pfau
82374b4778 switch2: Use report ID 5 for all controllers 2025-10-18 07:57:30 -07:00
Vicki Pfau
061ce935df switch2: Simplify init data array 2025-10-18 07:57:30 -07:00
Sam Lantinga
6109fa6794 The names of joysticks and gamepads are valid after they've been removed 2025-10-15 21:57:37 -07:00
Oleksandr Manenko
901173aee6 Fix thread safety attributes for TryLock functions
Changed SDL_TRY_ACQUIRE and SDL_TRY_ACQUIRE_SHARED success value
from 0 to true for functions that now return bool instead of int.
This fixes false positives/negatives in Clang's thread safety analysis.
2025-10-14 12:47:20 -07:00
Sam Lantinga
d819106c65 Try matching gamepad mappings with CRC first
Fixes https://github.com/libsdl-org/SDL/issues/13874
2025-10-14 10:30:03 -07:00
Sam Lantinga
98944ecd0c Added the 8BitDo Ultimate 2C Wireless Controller to the Xbox controller list
Fixes https://github.com/libsdl-org/SDL/issues/14127
2025-10-13 18:46:58 -07:00
Sam Lantinga
361f7e0873 Fixed power state reporting for the Nintendo Joy-Con Charging Grip 2025-10-13 10:34:22 -07:00