Commit Graph

2540 Commits

Author SHA1 Message Date
walle
6f1aa78e04 fixed trigger axes formula: data * 257 - 32768 (same as PS4) 2026-02-10 21:06:40 -08:00
walle
226057601f fixed Clamp -(-32768) to 32767 to avoid Sint16 overflow wrapping back to -32768 2026-02-10 21:06:40 -08:00
chenzw
304fcaeec2 SendGameSirModeSwitch code cleanup 2026-02-10 21:06:40 -08:00
chenzw
6ae268ba17 Remove GameSir-G7 Pro 2026-02-10 21:06:40 -08:00
Sam Lantinga
71f4af7322 Eliminate contention between HIDAPI controller reads and writes
Rumble can often take a long time, and it is theoretically safe to simultaneously read and write hidapi devices on all platforms.

Fixes https://github.com/libsdl-org/SDL/issues/9441
2026-02-10 09:38:19 -08:00
Sam Lantinga
9f8c70713a Fix the 8BitDo Ultimate 2D Wireless Controller showing up multiple times
This controller has 3 interfaces, one for the Xbox gamepad protocol, and two HID interfaces. We should only handle the Xbox interface in the Xbox driver.
2026-02-09 13:28:45 -08:00
RaceTheMaSe
f1a7a64eb4 Fix warnings: Extra semi - macro usage (#15015) 2026-02-08 16:58:53 -08:00
Vicki Pfau
017d950b6b Fix Switch and Switch 2 player LED patterns
The patterns we were using don't match the official patterns, which fill up as
many lights as players instead of just using the nth player LED. Above 4,
there are some special patterns, as documented on Nintendo's Singaporean site:
https://www.nintendo.com/sg/support/qa/detail/33822
2026-02-07 07:37:25 -08:00
Vicki Pfau
e1b8ad0380 Add and use libusb_set_auto_detach_kernel_driver for the Switch 2 driver 2026-02-05 14:58:15 -08:00
Sam Lantinga
0cadc15ef6 Don't treat "hid-over-i2c 0107 System Control" as a joystick 2026-02-05 11:27:05 -08:00
Sam Lantinga
273a093032 Temporarily disable GameSir driver
There are some issues that need response from GameSir before this can be enabled by default.
2026-02-04 15:53:01 -08:00
Sam Lantinga
ca7788cd9f Fixed spacing 2026-02-04 15:53:01 -08:00
Sam Lantinga
d43d29269d Added support for GameSir simple report mode 2026-02-04 15:53:01 -08:00
Sam Lantinga
8a9722e9f4 Removed GameSir trigger rumble
This doesn't appear to actually be supported by the hardware, and used the same report as normal rumble.
2026-02-04 15:53:01 -08:00
Sam Lantinga
883066228b Minor code cleanup
- the connection type is already set correctly based on bluetooth connection state
- removed some verbose controller type logging
- device and ctx are guaranteed not to be NULL at the driver level
2026-02-04 15:53:01 -08:00
Sam Lantinga
1a99861510 Fixed warnings building on Android 2026-02-04 14:55:29 -08:00
Sam Lantinga
cd14bf3d00 Fixed warning: no previous prototype for function 'SDL_PrivateIsGamepadPlatformMatch' 2026-02-04 14:40:42 -08:00
chenzw
1fd7cd693a pass payload to state handler 2026-02-03 20:09:04 -08:00
chenzw
8272699901 refactor(joystick): unify GameSir packet parsing with packet/payload offsets, fix field byte indexing and standardize length checks 2026-02-03 20:09:04 -08:00
chenzw
e087de5741 refactor for style (no functional changes) 2026-02-03 20:09:04 -08:00
walle
f5efba34da Fix multi-platform compilation issues 2026-02-03 20:09:04 -08:00
chenzw
bb8eee8fac Added support for the GameSir-G7 Pro 8K controller 2026-02-03 20:09:04 -08:00
Nintorch
997a168e00 Add share button mapping to Xbox Series X controller on Android 2026-02-03 11:18:18 -08:00
Sam Lantinga
b5206909a7 Fixed the GameCube Controller Adapter showing up twice on macOS 2026-02-02 15:53:23 -08:00
Sam Lantinga
cdffbdfeaf Fixed handling GameCube adapters in PC mode on Linux and macOS
On Windows there is a separate HIDAPI device for each slot. On Linux and macOS, there is a single HIDAPI device and the slot is included in the report.
2026-02-02 15:44:44 -08:00
Cameron Gutman
e3c9ec7b67 gamepad: Accept older 'Mac OS X' mappings on macOS 2026-01-30 18:12:17 -06:00
Henrique Jorge Barateli
8fa8c331a5 Fixed PS2 joystick analog sticks not enabled 2026-01-30 12:17:26 -08:00
Eddy Jansson
23fec649c2 Fix typos in comments. 2026-01-30 07:25:02 -08:00
Sam Lantinga
e3e8adcb76 Added SDL_TryLockJoysticks() 2026-01-29 16:15:51 -08:00
Sam Lantinga
58c30a4451 Fixed typo 2026-01-28 13:43:28 -08:00
Sam Lantinga
0f10f81b3b Fixed the 8BitDo Ultimate 2 Wireless for PC controller showing up twice on macOS 2026-01-28 13:37:38 -08:00
Sam Lantinga
3aa3a357fc Fixed the 8BitDo Ultimate 2 Wireless controller showing up twice on macOS
Fixes https://github.com/libsdl-org/SDL/issues/14902
2026-01-27 14:40:35 -08:00
Sam Lantinga
1fe6bf4982 Fixed the NVIDIA SHIELD Controller showing up twice on macOS
Fixes https://github.com/libsdl-org/SDL/issues/14911
2026-01-27 13:52:06 -08:00
Sam Lantinga
72343b9ee2 Fixed hang sending output reports to the NVIDIA SHIELD Controller on macOS 2026-01-27 13:51:16 -08:00
Sam Lantinga
cae2a28f5b Fixed unaligned access in NVIDIA SHIELD Controller driver
Also refactored the LOAD16() and LOAD32() macros into SDL_hidapijoystick_c.h
2026-01-27 11:25:38 -08:00
Sam Lantinga
dd53ecbce8 Fixed Steam Controller battery state 2026-01-27 09:53:04 -08:00
Nintorch
90dabda3b4 Add support for joystick LED for Switch controllers
Co-Authored-By: Thiago Lelles Fernandes <125714191+thilelito@users.noreply.github.com>
2026-01-27 09:45:23 -08:00
Eddy Jansson
248223592a More prefer SDL_zero*()
Transform clearing of arrays into SDL_zeroa(), and
clearing through a T* with size(T) into SDL_zerop().

Extends commit 83fb7b6636.
2026-01-23 16:02:16 -08:00
Eddy Jansson
83fb7b6636 Prefer SDL_zero()/SDL_zerop()
Replace uses of 'SDL_memset(E, 0, sizeof(E))' and similar
with the SDL_zero()/SDL_zerop() macros.
2026-01-23 11:23:27 -08:00
Sam Lantinga
b1362f8a42 Fixed divide by zero handling Nintendo Switch 2 controller 2026-01-20 11:04:20 -08:00
Aubrey Hesselgren
5c15d74394 Fix Horipad bluetooth gyro stutter issues using simulated sensor timing approach (based on packet rate observation)
By observation: wired is 250hz/4000ms, and bluetooth is 120hz/8333ms for IMU sensor.
2026-01-19 15:25:45 -08:00
Sam Lantinga
54fdeb9e79 Added support for the Razer Raiju V5 Pro in wireless mode 2026-01-13 16:23:05 -08:00
Sam Lantinga
015d0fc2e4 Added support for the Razer Raiju V5 Pro 2026-01-13 15:48:12 -08:00
Frank Praznik
55acc0b829 joystick/win32: Fix function return type mismatch
Fixes #14804
2026-01-11 10:56:06 -05:00
Sam Lantinga
f369e804e2 Fixed crash when the broken EZFRD64.DLL is present
Fixes https://github.com/ppy/osu/issues/13634
2026-01-07 17:11:57 -08:00
Katharine Chui
6c2f9bc41e hidapi: Disable hidapi LG4FF on windows (#14762)
hid.dll simply cannot send 7 bytes reports unlike other platforms

It enforces full length repots of 17 from the device's descriptor,
which does not work on the device.

This breaks ffb and led control, so we disable this by default on
windows.
2026-01-05 08:14:26 -08:00
Sam Lantinga
ce6a6d1b39 Fixed handling status changes in the FlyDigi controller driver 2026-01-05 08:00:03 -08:00
Sam Lantinga
5f086e7623 Updated copyright for 2026 2026-01-01 09:40:08 -08:00
Sam Lantinga
0ac6f972f9 Added enhanced support for the Flydigi Vader 5 Pro controller 2025-12-31 07:46:56 -08:00
Eddy Jansson
3d354eeaad Prefer SDL_arraysize()
Replace uses of (sizeof(arr)/sizeof(arr[0]), and similar,
with the SDL_arraysize() macro.
2025-12-30 12:22:03 -08:00