From 128f9a3e2580b646ebd0ae31b0ce6c9ad32aaa82 Mon Sep 17 00:00:00 2001 From: Andrei Ilyashenko Date: Sun, 15 Sep 2024 08:36:37 -0400 Subject: [PATCH 1/2] Add support for Xbox ONE liquid metal controller I found that my controller wasn't working with this driver. The LED would light up and it could rumble but was not registering any button presses or joystick movements. I suspected the problem might be that it was not being sent some required init packet so I tried sending the packets being used in xboxone_init_packets and found that sending xboxone_pdp_auth got the controller working. At least for my controller xboxone_pdp_led_on was not strictly necessary but I decided to follow the same pattern used by the other two controllers. --- xpad.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/xpad.c b/xpad.c index 43985dd..ead3550 100644 --- a/xpad.c +++ b/xpad.c @@ -347,6 +347,7 @@ static const struct xpad_device { { 0x20d6, 0x2001, "BDA Xbox Series X Wired Controller", 0, XTYPE_XBOXONE }, { 0x20d6, 0x2009, "PowerA Enhanced Wired Controller for Xbox Series X|S", 0, XTYPE_XBOXONE }, { 0x20d6, 0x281f, "PowerA Wired Controller For Xbox 360", 0, XTYPE_XBOX360 }, + { 0x20d6, 0xa01a, "Microsoft Inc. Xbox ONE liquid metal controller", 0, XTYPE_XBOXONE }, { 0x2e24, 0x0652, "Hyperkin Duke X-Box One pad", 0, XTYPE_XBOXONE }, { 0x24c6, 0x5000, "Razer Atrox Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, { 0x24c6, 0x5300, "PowerA MINI PROEX Controller", 0, XTYPE_XBOX360 }, @@ -687,8 +688,10 @@ static const struct xboxone_init_packet xboxone_init_packets[] = { XBOXONE_INIT_PKT(0x045e, 0x0b00, extra_input_packet_init), XBOXONE_INIT_PKT(0x0e6f, 0x0000, xboxone_pdp_led_on), XBOXONE_INIT_PKT(0x1430, 0x079b, xboxone_pdp_led_on), + XBOXONE_INIT_PKT(0x20d6, 0xa01a, xboxone_pdp_led_on), XBOXONE_INIT_PKT(0x0e6f, 0x0000, xboxone_pdp_auth), XBOXONE_INIT_PKT(0x1430, 0x079b, xboxone_pdp_auth), + XBOXONE_INIT_PKT(0x20d6, 0xa01a, xboxone_pdp_auth), XBOXONE_INIT_PKT(0x24c6, 0x541a, xboxone_rumblebegin_init), XBOXONE_INIT_PKT(0x24c6, 0x542a, xboxone_rumblebegin_init), XBOXONE_INIT_PKT(0x24c6, 0x543a, xboxone_rumblebegin_init), From 28a80695ec9d1530856d5ef684065cf65888d0a5 Mon Sep 17 00:00:00 2001 From: Andrei Ilyashenko Date: Sun, 15 Sep 2024 08:50:20 -0400 Subject: [PATCH 2/2] Update xpad.c --- xpad.c | 1 - 1 file changed, 1 deletion(-) diff --git a/xpad.c b/xpad.c index ead3550..6cc5b4e 100644 --- a/xpad.c +++ b/xpad.c @@ -347,7 +347,6 @@ static const struct xpad_device { { 0x20d6, 0x2001, "BDA Xbox Series X Wired Controller", 0, XTYPE_XBOXONE }, { 0x20d6, 0x2009, "PowerA Enhanced Wired Controller for Xbox Series X|S", 0, XTYPE_XBOXONE }, { 0x20d6, 0x281f, "PowerA Wired Controller For Xbox 360", 0, XTYPE_XBOX360 }, - { 0x20d6, 0xa01a, "Microsoft Inc. Xbox ONE liquid metal controller", 0, XTYPE_XBOXONE }, { 0x2e24, 0x0652, "Hyperkin Duke X-Box One pad", 0, XTYPE_XBOXONE }, { 0x24c6, 0x5000, "Razer Atrox Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, { 0x24c6, 0x5300, "PowerA MINI PROEX Controller", 0, XTYPE_XBOX360 },