Sam Lantinga
55f8eabfae
Identified the BDA XB1 Classic Controller
2019-12-13 16:12:33 -08:00
Sam Lantinga
0352814a8a
Added general remapping of controller manufacturer
2019-12-13 16:07:25 -08:00
Sam Lantinga
b51d7f35aa
Added support for the HORI PAD A
2019-12-13 16:07:22 -08:00
Sam Lantinga
23c39a2e44
Strip trailing whitespace on controller manufacturer identification
2019-12-12 19:14:37 -08:00
Sam Lantinga
1ac7eabaca
Fixed comment typo
2019-12-12 14:25:02 -08:00
Sam Lantinga
a613fc7cc2
Added names for official Microsoft controllers, since they don't have descriptive product names
2019-12-11 19:24:40 -08:00
Sam Lantinga
0f52916027
Added custom names for some controllers
2019-12-11 17:47:01 -08:00
Sam Lantinga
e029fdbb38
Shorten "Performance Designed Products" to "PDP"
2019-12-11 17:46:59 -08:00
Sam Lantinga
325a2efb3d
Added support for the full line of PDP Xbox 360 and Xbox One controllers
2019-12-11 17:46:57 -08:00
Sam Lantinga
8b50dcb21b
Use the controller product string instead of hard-coding controller names
2019-12-11 17:46:54 -08:00
Sam Lantinga
89401b21e9
Added support for the Razer Raion Fightpad for PS4
2019-12-10 13:09:52 -08:00
Sam Lantinga
a21f6b7a91
Add the manufacturer to the joystick name on Mac OS X, for consistency with other drivers
2019-12-10 11:46:22 -08:00
Sam Lantinga
2a161e7add
Remove any duplicate manufacturer in the joystick name
2019-12-10 11:30:56 -08:00
Sam Lantinga
3469481ef6
Don't include the manufacturer if it's already included in the product string
2019-12-10 10:00:49 -08:00
Sam Lantinga
bb37a1ebf5
Fixed the name of the Razer RAION Fightpad
2019-12-10 09:38:10 -08:00
Sam Lantinga
82d2c357c3
Fixed rumble after Xbox controller initialization
...
When we initialize the controller it has an internal rumble sequence number, and if our rumble sequence number doesn't match that, rumble won't happen. To fix that we cycle through the range of sequence numbers, and at some point we'll match up with the controller's sequence number and it'll roll forward until it matches our next rumble sequence number.
2019-12-09 16:52:11 -08:00
Sam Lantinga
3d34750ced
The PowerA Mini controller blocks while writing feature reports, so don't try to use the HIDAPI driver for it on Linux
2019-12-09 13:54:05 -08:00
Sam Lantinga
3626506369
Added some missing Xbox controller names
2019-12-09 13:54:03 -08:00
Sam Lantinga
135a90539b
Fixed the Apple TV remote menu button on tvOS 13.2 (thanks Romain Tisserand)
2019-12-06 13:48:13 -08:00
Sam Lantinga
7a51ad6a50
Fixed the game controller menu button on tvOS 13.2 (thanks Romain Tisserand)
2019-12-06 13:48:10 -08:00
Sam Lantinga
8342fa7c7e
Fixed controller mapping issues caused by PS3 gyro jitter
2019-12-05 13:48:08 -08:00
Sam Lantinga
6d00166813
Get full axis range for PS3 controller triggers on Linux
2019-12-05 13:18:53 -08:00
Cameron Gutman
55eb76218d
Use stat() to minimize input device opens when not using udev
...
Calling open() on input devices can generate device I/O which blocks
the main thread and causes dropped frames. Using stat() we can avoid
opening anything unless /dev/input has changed since we last polled.
We could have used something fancy like inotify, but it didn't seem
worth the added complexity for this uncommon non-udev case.
2019-11-20 20:27:45 -08:00
Sam Lantinga
b98808f639
Updated DPAD binding for 8Bitdo Zero controller
2019-11-28 14:23:24 -08:00
Sam Lantinga
2fd3f756d2
Fixed trying to use the HIDAPI driver for the original Xbox One S Bluetooth controller
2019-11-28 11:44:17 -08:00
Sam Lantinga
8aaf945b2f
Fixed mapping controllers that have axes that start at -32768 and then snap to 0 at the first input report
2019-11-28 11:44:15 -08:00
Sam Lantinga
a3a8fcef77
Added support for the 8Bitdo SN30 Pro, wired connection
2019-11-28 10:04:05 -08:00
Sam Lantinga
4a77613881
Added the full Xbox One Elite Series 2 controller initialization sequence, to start input reports after switching out of Bluetooth mode.
2019-11-27 18:26:57 -08:00
Sam Lantinga
b8d65da459
Check for duplicates in the supported controller list
2019-11-27 15:27:21 -08:00
Sam Lantinga
0b863f8a5c
Sorted controller entries by type and VID/PID to more easily find entries in the list
2019-11-27 15:27:19 -08:00
Sam Lantinga
84f8e53c85
Fixed detection of the Mad Catz FightPad Pro
2019-11-27 15:27:16 -08:00
Sam Lantinga
98cc9cf208
Added support for the Google Stadia Controller
2019-11-27 12:38:53 -08:00
Sam Lantinga
43cb7b3c51
Added support for the Hori Fighting Commander
2019-11-27 12:38:51 -08:00
Sam Lantinga
a76e547477
Added support for the PowerA XB1 Fusion Fight Pad
2019-11-27 12:38:48 -08:00
Sam Lantinga
a5e6b87ce6
Added support for a variant of the PowerA FUSION Pro Controller
2019-11-26 08:35:41 -08:00
Sam Lantinga
f3d95396d6
Added some missing controller names
2019-11-25 15:02:54 -08:00
Sam Lantinga
8243a3e801
Added support for the Hyperkin X91
2019-11-25 15:02:50 -08:00
Sam Lantinga
2713a1aae0
Moved the SteelSeries controllers into the "known controller" section
2019-11-25 13:27:26 -08:00
Sam Lantinga
26d53fbb83
Updated identification for the SteelSeries Stratus Duo
2019-11-25 11:12:09 -08:00
Sam Lantinga
359ae75bb2
Fixed DragonRise Generic USB PCB showing up as a PS3 controller
2019-11-23 12:11:16 -08:00
Sam Lantinga
8e153922e4
This packet didn't end up being needed to initialize input for the Xbox One Elite Series 2 controller
2019-11-22 17:46:30 -08:00
Sam Lantinga
6dce9733d9
Use SDL_zeroa() appropriately
2019-11-22 16:23:37 -08:00
Sam Lantinga
733f25252a
Fixed build
2019-11-22 14:09:24 -08:00
Sam Lantinga
13006ba9e1
Added support for the PDP Versus Fighting Pad
2019-11-22 13:44:40 -08:00
Sam Lantinga
b5aff9d7c3
Added SDL_GameControllerTypeForIndex() and SDL_GameControllerGetType() to return the type of controller attached.
2019-11-22 13:12:12 -08:00
Sam Lantinga
c0650aca21
Added support for the PDP Battlefield One controller
2019-11-21 14:04:48 -08:00
Sam Lantinga
a132b183cd
Fixed the guide button on the NVIDIA Controller v01.04
2019-11-21 13:09:00 -08:00
Sam Lantinga
cc4f890521
Added support for the NVIDIA Controller v01.04 on Linux and Mac OS X
2019-11-21 12:11:47 -08:00
Sam Lantinga
2a7b635b9b
Added support for the NVIDIA Controller v01.04 on Android
2019-11-21 11:52:50 -08:00
Sam Lantinga
51487a71b9
Added support for the MOGA XP5-A Plus
2019-11-21 10:14:57 -08:00
Sam Lantinga
650964461e
Improved XInput VID/PID detection and added SDL_wcsstr() and SDL_wcsncmp()
2019-11-20 16:42:50 -08:00
Sam Lantinga
ce8411c587
Fixed Xbox One Elite Series 2 showing up as 2 devices in Bluetooth mode on Windows
2019-11-20 08:43:24 -08:00
Sam Lantinga
972a70d844
Added support for the Xbox One Elite Series 2 controller on Mac OSX
2019-11-19 15:15:00 -08:00
Sam Lantinga
68d8fc5c7b
Added support for the Xbox One Elite Series 2 controller in wired mode
2019-11-18 15:46:13 -08:00
Sam Lantinga
2bfcf5cd96
Added Linux controller mapping for the Xbox One Elite Series 2 controller in Bluetooth mode
2019-11-18 14:08:05 -08:00
Sam Lantinga
1e24a1514d
Added names for some missing Xbox controllers
2019-11-18 11:51:39 -08:00
Sam Lantinga
144956442d
Added identifiers for the Xbox One Elite Series 2 controller
2019-11-18 11:44:51 -08:00
Sam Lantinga
a9ac9e3865
Don't try to use this driver with the Xbox One S in Bluetooth mode on Linux
2019-11-16 19:58:29 -08:00
Sam Lantinga
9ca5373024
Added support for the Xbox One S controller in Bluetooth mode on Linux
2019-11-16 19:55:53 -08:00
Sam Lantinga
cf33f1f0ef
Added a utility function to simplify the hint handling logic
2019-11-13 21:53:01 -08:00
Sam Lantinga
9a76bebfbc
SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS defaults to true, to match Steam's default behavior
2019-11-13 14:24:48 -08:00
Sylvain Becker
60d3965ece
Readability: remove redundant return, continue, enum declaration
2019-10-30 15:36:17 +01:00
Sylvain Becker
0f871c033c
Fixed bug 4843 - Passing NULL to memset in SDL_PrivateLoadButtonMapping
...
(Thanks!)
2019-10-23 09:53:23 +02:00
Sylvain Becker
b7ab3b3984
Fixed bug 4838 - Use after free in SDL_JoystickUpdate (Thanks!)
2019-10-23 08:50:57 +02:00
Sam Lantinga
5025109f29
Fixed accidental whitespace
2019-10-22 15:43:58 -07:00
Sam Lantinga
9da4bfc141
Added support for the Power A Nintendo Switch Enhanced Wireless Controller
2019-10-22 10:57:07 -07:00
Sam Lantinga
f96da11f93
Reordered Power A Switch controllers so they're grouped together
2019-10-22 10:28:51 -07:00
Sam Lantinga
9e7894efac
Added support for the PowerA - Super Mario Controller
2019-10-22 10:27:30 -07:00
Sam Lantinga
cdc7181e6d
Don't try to use the Xbox HID protocol with the NVIDIA Shield controllers
2019-10-19 01:54:02 -07:00
Sam Lantinga
4f304fd88c
Added support for the BDA PS4 Fightpad
2019-10-17 18:07:52 -07:00
Sam Lantinga
b3470f04b1
Added the hint SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS to control whether Nintendo Switch controllers use their button labels or button positions for game controller button reporting.
2019-10-17 17:32:47 -07:00
Sam Lantinga
e6ac16ef2f
Added support for third party Nintendo Switch controllers that don't support the full protocol
2019-10-17 16:59:05 -07:00
Sam Lantinga
43c5f62d44
Merged latest data from Steam
2019-10-17 16:14:17 -07:00
Sam Lantinga
3b3dbb5adb
Removed unused volume check interval
2019-10-01 08:50:04 -07:00
Sam Lantinga
cbde0ffa3d
The PS4 is ignoring the volume values in the report, so we don't need to fill them in.
2019-09-19 16:50:49 -07:00
Ozkan Sezer
9c8e403f6b
use 'U' suffix on constants instead of (unsigned int) cast.
2019-08-30 11:35:20 +03:00
Sylvain Becker
70dc8d1648
Android: fix corresponding warnings
2019-08-30 08:55:20 +02:00
Sam Lantinga
ce3b16fc9e
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"
2019-08-26 10:08:25 -07:00
Sam Lantinga
d52ffcf985
Added support for a few controllers on Android
2019-08-02 17:12:49 -07:00
Sam Lantinga
c10a87429d
Make sure HIDAPI is initialized whenever we call HIDAPI_IsDevicePresent()
2019-07-31 10:20:37 -07:00
Andrew Eikum
c172f36bf4
joystick: Ensure HIDAPI is initialized before calling it
2019-07-31 11:14:48 -05:00
Ozkan Sezer
4953e050f5
use SDL_zeroa at more places where the argument is an array.
2019-07-31 05:11:40 +03:00
Ozkan Sezer
7a47c292c0
Fix bug 4746 - introduce SDL_zeroa macro.
2019-07-31 01:22:02 +03:00
Sam Lantinga
dc714389f0
Don't call hid_enumerate() if the HIDAPI drivers are all disabled
2019-07-25 15:21:44 -07:00
Sam Lantinga
a06d8cd0d4
Merged latest changes from Steam into controller_type.h
2019-07-17 16:47:17 -07:00
Sam Lantinga
89de2512e5
Added support for the Victrix Pro Fight Stick for PS4
2019-07-17 13:01:44 -07:00
Cameron Gutman
a4bfe2a4ae
Allow hotplugging joysticks without udev
2019-06-24 21:08:26 -07:00
Sam Lantinga
064d1223f0
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
2019-07-14 16:59:39 -07:00
Ryan C. Gordon
73536d93ea
ios: Fixed MFi guide button not being detected (thanks, Caleb!).
...
Fixes Bugzilla #4721 .
2019-07-12 21:28:43 -04:00
Sam Lantinga
797d2c5957
Fixed bug 4436 - [OpenBSD] fix D-pad
...
daniel.c.sinclair
Hi, this patch breaks dpad/hat input on my PS4 controller. The attached patch restores functionality. Calling SDL_PrivateJoystickHat() at the end of BSD_JoystickUpdate was setting the hat state to zero on every kind of input, instead of just the HUG_DPAD events.
2019-06-30 22:48:13 -07:00
Sam Lantinga
be6cda9f95
Rolling back GameCube HIDAPI support
...
It causes the HIDAPI devices to always be opened on enumeration, which causes crashes in the Windows drivers when multiple applications are reading and writing at the same time. We can revisit this after 2.0.10 release.
2019-06-19 15:54:21 -07:00
Zack Middleton
56e2b9a4ee
Handle GameCube WaveBird controller differences
...
Make wireless GameCube controllers use unknown power level instead of
wired and don't allow rumble (it doesn't have hardware for it).
2019-06-19 06:43:54 -07:00
Zack Middleton
6f63c1c37f
Make GameCube controllers only rumble if both USB cables are connected
...
The Nintendo USB GameCube Adapter has two USB connectors. Black for data
and grey for additional power for rumble. The Wii U and other software
require both cables to use rumble. The rumble is weaker without the
second USB cable. Other than that I don't know if there is any negative
side affects from using rumble with only one cable.
2019-06-19 06:43:36 -07:00
Zack Middleton
b23cce282e
Fix GameCube controller power level being reset to unknown
...
HIDAPI_DriverGameCube_OpenJoystick() set power level to wired and then
it was set to unknown in SDL_JoystickOpen().
2019-06-19 06:43:04 -07:00
Sam Lantinga
4eb3c0c387
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.
2019-06-14 13:56:52 -07:00
Sam Lantinga
747df96eb0
Better patch to make it more clear what's going on
2019-06-12 10:38:49 -07:00
Sam Lantinga
3fbaa5da05
The hat index passed to the application should be zero-based with no holes
2019-06-12 10:35:47 -07:00
Sam Lantinga
a1a2f9b9f8
Fixed bug 4486 - Segfault when pressing a trigger on the Steam Controller (Linux)
...
Matteo Beniamino
Pressing a trigger button on a Steam Controller causes a segmentation fault both with stable version and latest mercurial head on Linux. I'm using the recent hid_steam kernel module with lizard_mode disabled (that is no keyboard/mouse emulation). I suspect this is what's happening: the driver exposes two hats. The two hats have indices 0 and 2. Inside linux/SDL_sysjoystick.c two hats are allocated in allocate_hatdata for joystick->hwdata->hats. In HandleHat function the hat parameter (that can be 2) is directly used as the index of the array that only has two elements, causing an out of bounds access. SDL is not expecting to have "holes" between hats indices.
The index 2 is calculated in HandleInputEvents() as (ABS_HAT2X - ABS_HAT0X) / 2 where ABS_HAT2X is the value associated to the hat inside the hid_steam module.
2019-06-12 10:32:36 -07:00
Benjamin Valentin
1e8d9e01dc
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)
2019-03-17 23:47:12 +01:00
Sam Lantinga
a73dacbf62
Backed out Ben's chinese Xbox controller patch, as the generic catch-all for Xbox controllers should handle it.
2019-06-08 14:58:49 -07:00