From 133b64778b6fb58a7391f9607dc403c86e706394 Mon Sep 17 00:00:00 2001 From: asheriif Date: Sun, 22 Mar 2026 22:19:37 +0100 Subject: [PATCH] Add support for Apex Pro TKL Gen 3 Wireless --- .../SteelSeriesApexController/SteelSeriesApexController.cpp | 6 ++++-- .../SteelSeriesController/SteelSeriesControllerDetect.cpp | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Controllers/SteelSeriesController/SteelSeriesApexController/SteelSeriesApexController.cpp b/Controllers/SteelSeriesController/SteelSeriesApexController/SteelSeriesApexController.cpp index 1289ea954..d9738e947 100644 --- a/Controllers/SteelSeriesController/SteelSeriesApexController/SteelSeriesApexController.cpp +++ b/Controllers/SteelSeriesController/SteelSeriesApexController/SteelSeriesApexController.cpp @@ -79,7 +79,8 @@ void SteelSeriesApexController::SetLEDsDirect(std::vector colors) | protocol, make sure to place their PID here and | | further below when developing. | \*-------------------------------------------------*/ - if(info && (info->product_id == 0x162C || info->product_id == 0x162D)) + if(info && (info->product_id == 0x162C || info->product_id == 0x162D + || info->product_id == 0x1644 || info->product_id == 0x1646)) { packet_id = APEX_2023_PACKET_ID_DIRECT_WIRELESS; } @@ -211,7 +212,8 @@ void SteelSeriesApexController::SendInitialization() | sure to place their PID here and further above for | | wireless when developing. | \*-----------------------------------------------------*/ - else if(pid == 0x162C || pid == 0x162D) + else if(pid == 0x162C || pid == 0x162D + || pid == 0x1642 || pid == 0x1644 || pid == 0x1646) { use_new_protocol = true; } diff --git a/Controllers/SteelSeriesController/SteelSeriesControllerDetect.cpp b/Controllers/SteelSeriesController/SteelSeriesControllerDetect.cpp index e07009b58..745be2ed1 100644 --- a/Controllers/SteelSeriesController/SteelSeriesControllerDetect.cpp +++ b/Controllers/SteelSeriesController/SteelSeriesControllerDetect.cpp @@ -124,6 +124,9 @@ #define STEELSERIES_APEX_OG_PID 0x1202 #define STEELSERIES_APEX_350_PID 0x1206 #define STEELSERIES_APEX_PRO3_PID 0x1640 +#define STEELSERIES_APEX_PRO_TKL_GEN3_PID 0x1642 +#define STEELSERIES_APEX_PRO_TKL_GEN3_WL_PID_1 0x1644 +#define STEELSERIES_APEX_PRO_TKL_GEN3_WL_PID_2 0x1646 void DetectSteelSeriesAerox3(hid_device_info* info, const std::string& name) { @@ -517,3 +520,6 @@ REGISTER_HID_DETECTOR_I ("SteelSeries Apex M750", Dete REGISTER_HID_DETECTOR_I ("SteelSeries Apex (OG)/Apex Fnatic", DetectSteelSeriesApexOld, STEELSERIES_VID, STEELSERIES_APEX_OG_PID, 0 ); REGISTER_HID_DETECTOR_I ("SteelSeries Apex 350", DetectSteelSeriesApexOld, STEELSERIES_VID, STEELSERIES_APEX_350_PID, 0 ); REGISTER_HID_DETECTOR_I ("SteelSeries Apex Pro 3", DetectSteelSeriesApex, STEELSERIES_VID, STEELSERIES_APEX_PRO3_PID, 1 ); +REGISTER_HID_DETECTOR_I ("SteelSeries Apex Pro TKL Gen 3", DetectSteelSeriesApex, STEELSERIES_VID, STEELSERIES_APEX_PRO_TKL_GEN3_PID, 1 ); +REGISTER_HID_DETECTOR_IPU("SteelSeries Apex Pro TKL Gen 3 Wireless", DetectSteelSeriesApex, STEELSERIES_VID, STEELSERIES_APEX_PRO_TKL_GEN3_WL_PID_1, 3, 0xFFC0, 1); +REGISTER_HID_DETECTOR_IPU("SteelSeries Apex Pro TKL Gen 3 Wireless", DetectSteelSeriesApex, STEELSERIES_VID, STEELSERIES_APEX_PRO_TKL_GEN3_WL_PID_2, 3, 0xFFC0, 1);