From 3b4cf41c92c873aef1e104073e3460e77b25f41a Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Tue, 3 Feb 2026 20:13:13 -0800
Subject: [PATCH] Fixed HIDAPI PS5 Bluetooth report format
(cherry picked from commit 129627068fe266ed68c0725f47a026eae889b992)
---
src/joystick/hidapi/SDL_hidapi_ps5.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/joystick/hidapi/SDL_hidapi_ps5.c b/src/joystick/hidapi/SDL_hidapi_ps5.c
index 133db1a13750a..c7903881a93b2 100644
--- a/src/joystick/hidapi/SDL_hidapi_ps5.c
+++ b/src/joystick/hidapi/SDL_hidapi_ps5.c
@@ -823,7 +823,7 @@ static void HIDAPI_DriverPS5_SetEnhancedModeAvailable(SDL_DriverPS5_Context *ctx
if (ctx->sensors_supported) {
// Standard DualSense sensor update rate is 250 Hz over USB
float update_rate = 250.0f;
-
+
if (ctx->device->is_bluetooth) {
// Bluetooth sensor update rate appears to be 1000 Hz
update_rate = 1000.0f;
@@ -1066,10 +1066,11 @@ static bool HIDAPI_DriverPS5_InternalSendJoystickEffect(SDL_DriverPS5_Context *c
if (ctx->device->is_bluetooth) {
data[0] = k_EPS5ReportIdBluetoothEffects;
- data[1] = 0x02; // Magic value
+ data[1] = 0x00; // Tag and sequence
+ data[2] = 0x10; // Magic value
report_size = 78;
- offset = 2;
+ offset = 3;
} else {
data[0] = k_EPS5ReportIdUsbEffects;