controller: enable the DualSense HIDAPI driver, light bar and adaptive triggers (#437)

* controller: enable the DualSense HIDAPI driver, light bar and adaptive triggers

Three additions. SDL was opening a DualSense through the generic gamepad path, so SDL_GameControllerHasLED and SDL_GameControllerGetNumTouchpads both reported nothing and no touchpad events ever arrived - enabling the PS5 HIDAPI driver before SDL_InitSubSystem is what makes the light bar and the existing touchpad support reachable. PadSetLightBar validated its arguments and returned OK without touching the pad; it now drives the LED. PadSetTriggerEffect did the same; it now translates the mode and parameters into a DualSense trigger block and sends it.

* controller: fix DualSense effects

---------

Co-authored-by: nmzik <Nmzik@mail.ru>
This commit is contained in:
CheesyPoofs3460
2026-09-01 13:53:19 -07:00
committed by GitHub
parent 80225015c5
commit 04b404f3c9
4 changed files with 178 additions and 18 deletions
+1 -18
View File
@@ -42,23 +42,6 @@ static int KYTY_SYSV_ABI PadGetTriggerEffectState(int
return 0;
}
static int KYTY_SYSV_ABI PadSetTriggerEffect(int handle, const void* param) {
PRINT_NAME();
LOGF("\t handle = %d\n"
"\t param = 0x%016" PRIx64 "\n",
handle, reinterpret_cast<uint64_t>(param));
if (handle != 1) {
return -2137915389; /* 0x80920003 */
}
if (param == nullptr) {
return -2137915391; /* 0x80920001 */
}
return OK;
}
static int KYTY_SYSV_ABI PadSetVibrationTriggerEffectWeakWhileEmbeddedMicInUse(bool enabled) {
PRINT_NAME();
@@ -198,7 +181,7 @@ LIB_DEFINE(InitPad_1) {
LIB_FUNC("rIZnR6eSpvk", Controller::PadResetOrientation);
LIB_FUNC("vDLMoJLde8I", PadSetTiltCorrectionState);
LIB_FUNC("gjP9-KQzoUk", Controller::PadGetControllerInformation);
LIB_FUNC("2JgFB2n9oUM", PadSetTriggerEffect);
LIB_FUNC("2JgFB2n9oUM", Controller::PadSetTriggerEffect);
LIB_FUNC("YndgXqQVV7c", Controller::PadReadState);
LIB_FUNC("q1cHNfGycLI", Controller::PadRead);
LIB_FUNC("yFVnOdGxvZY", Controller::PadSetVibration);