Commit Graph

27 Commits

Author SHA1 Message Date
701edb335a Various warning fixes 2021-02-06 19:19:55 +10:00
3a7d9f1725 CommonHostInterface: Add controller nav helpers 2021-01-31 17:10:27 +10:00
d860c14267 CommonHostInterface: Update rumble every frame regardless of change
Fixes SDL rumble cutting off early when a game sends the same motor
strength values every frame over a long duration.
2021-01-07 18:30:43 -08:00
3ffbbe82e8 SDLControllerInterface: Use SDL_GameControllerRumble where supported
Allows vibration on DualShock 4 without using DS4Windows.
2020-12-31 19:41:51 +10:00
b73fd7a4e8 SDLControllerInterface: Ship game controller db with builds 2020-11-28 00:14:44 +10:00
086f251370 Tidy up SDL controller methods interface 2020-11-15 16:12:39 +01:00
2880b71b48 Support for SDL Joysticks
This enables use of non-controller peripherals,
such as DirectInput steering wheels or flight sticks
2020-11-15 16:12:39 +01:00
d87ab23fec ControllerInterface: Move axis scaling into AnalogController class 2020-11-11 23:55:23 -08:00
67d0bbedb1 ControllerInterface: Don't use a minimum strength of 0.01 2020-09-17 19:56:11 +10:00
057bf986c4 Allow mapping half axes to buttons
This allows to bind pressure sensitive NeGcon buttons to keyboard,
mouse and controller buttons
2020-08-29 14:19:28 +02:00
3c46f7b44c ControllerInterface: Add XInput controller backend 2020-08-22 16:50:19 +10:00
1e10bef09e SDLControllerInterface: Add support for optional game controller database
If an optional "gamecontrollerdb.txt" file exists in the user directory,
then SDL game controller mappings will be loaded from it.

There is an officially endorsed community sourced database in
https://github.com/gabomdq/SDL_GameControllerDB
2020-08-21 23:51:07 +01:00
76cb52407b SDLControllerInterface: Init joystick API as well 2020-07-06 02:47:33 +10:00
0a0a2024fd SDLControllerInterface: Prefer cbutton.which for button events
Functionally the same as caxis.which due to SDL_Event union, but prefer
using SDL_ControllerButtonEvent members for button events.
2020-07-02 17:45:44 -07:00
293c2f50cd ControllerInterface: Make axis-to-button deadzone customizable 2020-06-23 08:15:17 -07:00
6b7c068f83 ControllerInterface: Implement axis scaling for axis-to-axis mappings
This feature allows us to work around analog stick range issues at the
intercardinal directions in certain titles (e.g. Rockman DASH 2) caused
by modern controllers having a tighter logical range of reporting than
PS1 analog controllers.
2020-06-23 08:14:37 -07:00
d9ebb975b2 CommonHostInterface: Reimplement controller rumble support
Even better than before, supports separate motor control.
2020-04-14 16:34:42 +10:00
e843fcd9f0 SDLControllerInterface: Fix broken input when player IDs clash 2020-04-11 19:36:53 +10:00
cae2e09957 SDLControllerInterface: Pass player ID to hooks not joystick ID
Should fix controllers which show up as non-zero players.
2020-04-05 01:28:08 +10:00
361bedc2c3 SDLControllerInterface: Hackfix for non-player-id supporting controllers 2020-03-22 21:31:54 +10:00
46f921fb95 SDLControllerInterface: Fix crash on shutdown 2020-03-22 12:54:25 +10:00
8190efa5dc SDLControllerInterface: Fix compilation on Ubuntu LTS 2020-03-22 12:28:10 +10:00
29a09a3685 Introduce ControllerInterface class, port SDL interface over
This breaks controller support in the SDL frontend until it's ported
over to the common interface.
2020-03-22 00:49:46 +10:00
b7dfe06f74 Qt: Support axes in input binding widgets 2020-02-18 00:06:11 +09:00
0f7365117b SDLControllerInterface: Add missing include 2020-02-16 00:39:06 +09:00
06f4d72631 FrontendCommon: Use SDL_InitSubSystem() for lazy initialization 2020-02-16 00:15:05 +09:00
59cf799491 Qt: Implement controller interface/binding 2020-02-16 00:14:53 +09:00