From 839f177c183c1d460104cb32eb4eb5d93e83822d Mon Sep 17 00:00:00 2001 From: DevL0rd Date: Thu, 11 Jun 2026 01:24:54 +0700 Subject: [PATCH] Added support for ASUS ROG Strix SCAR 18 G834JY --- .../AsusAuraCoreLaptopController.cpp | 28 ++++--- .../AsusAuraCoreLaptopController.h | 4 +- .../AsusAuraCoreLaptopDevices.cpp | 82 +++++++++++++++++++ 3 files changed, 101 insertions(+), 13 deletions(-) diff --git a/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/AsusAuraCoreLaptopController.cpp b/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/AsusAuraCoreLaptopController.cpp index 8b751cdc1..d9c527eef 100644 --- a/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/AsusAuraCoreLaptopController.cpp +++ b/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/AsusAuraCoreLaptopController.cpp @@ -19,7 +19,8 @@ static std::string power_zones[ASUSAURACORELAPTOP_POWER_ZONES] = "Logo", ZONE_EN_KEYBOARD, "Lightbar", - "Lid Edges" + "Lid Edges", + "Rear Glow" }; static std::string power_states[ASUSAURACORELAPTOP_POWER_STATES] = @@ -275,13 +276,9 @@ void AsusAuraCoreLaptopController::SetLedsDirect(std::vector colors) void AsusAuraCoreLaptopController::SendBrightness() { - const uint8_t index = 5; - uint8_t buffer[ASUSAURACORELAPTOP_WRITE_PACKET_SIZE] = { ASUSAURACORELAPTOP_REPORT_ID, ASUSAURACORELAPTOP_CMD_BRIGHTNESS, 0xC5, 0xC4}; + uint8_t buffer[ASUSAURACORELAPTOP_BRIGHTNESS_PACKET_SIZE] = { ASUSAURACORELAPTOP_BRIGHTNESS_REPORT_ID, ASUSAURACORELAPTOP_CMD_BRIGHTNESS, 0xC5, 0xC4, current_brightness }; - memset(&buffer[index], 0, ASUSAURACORELAPTOP_WRITE_PACKET_SIZE - index); - buffer[4] = current_brightness; - - hid_send_feature_report(dev, buffer, ASUSAURACORELAPTOP_WRITE_PACKET_SIZE); + hid_send_feature_report(dev, buffer, ASUSAURACORELAPTOP_BRIGHTNESS_PACKET_SIZE); } void AsusAuraCoreLaptopController::SendUpdate() @@ -406,26 +403,33 @@ void AsusAuraCoreLaptopController::SetPowerConfigFromJSON() false, false, power_config[12].state, power_config[13].state, - !power_config[14].state, !power_config[15].state + !power_config[14].state, !power_config[15].state, + + false, false, + false, false, + + power_config[16].state, power_config[17].state, + power_config[18].state, power_config[19].state }; uint32_t flags = PackPowerFlags(flag_array); - LOG_DEBUG("[%s] Sending power config Logo+KB: %02X Lightbar: %02X Lid Edges: %02X Raw: %08X", + LOG_DEBUG("[%s] Sending power config Logo+KB: %02X Lightbar: %02X Lid Edges: %02X Rear Glow: %02X Raw: %08X", aura_core_laptop_device_list[device_index]->dmi_name.c_str(), - (flags & 0xFF), ((flags >> 8) & 0xFF), ((flags >> 16) & 0xFF), flags); + (flags & 0xFF), ((flags >> 8) & 0xFF), ((flags >> 16) & 0xFF), ((flags >> 24) & 0xFF), flags); SendPowerConfig(flags); } void AsusAuraCoreLaptopController::SendPowerConfig(uint32_t flags) { - const uint8_t index = 6; - uint8_t buffer[ASUSAURACORELAPTOP_WRITE_PACKET_SIZE] = { ASUSAURACORELAPTOP_REPORT_ID, ASUSAURACORELAPTOP_CMD_POWER, 0x01, 0x00, 0x00, 0x0F }; + const uint8_t index = 7; + uint8_t buffer[ASUSAURACORELAPTOP_WRITE_PACKET_SIZE] = { ASUSAURACORELAPTOP_REPORT_ID, ASUSAURACORELAPTOP_CMD_POWER, 0x01, 0x00, 0x00, 0x0F, 0x00 }; memset(&buffer[index], 0, ASUSAURACORELAPTOP_WRITE_PACKET_SIZE - index); buffer[3] = flags & 0xFF; buffer[4] = (flags >> 8) & 0xFF; buffer[5] = (flags >> 16) & 0xFF; + buffer[6] = (flags >> 24) & 0xFF; hid_send_feature_report(dev, buffer, ASUSAURACORELAPTOP_WRITE_PACKET_SIZE); } diff --git a/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/AsusAuraCoreLaptopController.h b/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/AsusAuraCoreLaptopController.h index 3d57a9fcf..d8defe222 100644 --- a/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/AsusAuraCoreLaptopController.h +++ b/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/AsusAuraCoreLaptopController.h @@ -25,13 +25,14 @@ #define ASUSAURACORELAPTOP_TIMEOUT 250 #define ASUSAURACORELAPTOP_READ_PACKET_SIZE 64 #define ASUSAURACORELAPTOP_WRITE_PACKET_SIZE 64 //Buffer requires a prepended ReportID hence + 1 +#define ASUSAURACORELAPTOP_BRIGHTNESS_PACKET_SIZE 5 #define ASUSAURACORELAPTOP_KEYCOUNT 91 #define ASUSAURACORELAPTOP_KEY_WIDTH 18 #define ASUSAURACORELAPTOP_KEY_HEIGHT 7 #define ASUSAURACORELAPTOP_LIGHTBARCOUNT 6 #define ASUSAURACORELAPTOP_LIDCOUNT 3 -#define ASUSAURACORELAPTOP_POWER_ZONES 4 +#define ASUSAURACORELAPTOP_POWER_ZONES 5 #define ASUSAURACORELAPTOP_POWER_STATES 4 #define ASUSAURACORELAPTOP_BRIGHTNESS_MIN 0 #define ASUSAURACORELAPTOP_BRIGHTNESS_MAX 3 // No device has proven to have 256 keyboard brightness levels, only 0..3 @@ -78,6 +79,7 @@ enum enum { ASUSAURACORELAPTOP_REPORT_ID = 0x5D, + ASUSAURACORELAPTOP_BRIGHTNESS_REPORT_ID = 0x5A, ASUSAURACORELAPTOP_CMD_BRIGHTNESS = 0xBA, ASUSAURACORELAPTOP_CMD_DIRECT = 0xBC, ASUSAURACORELAPTOP_CMD_POWER = 0xBD, diff --git a/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/AsusAuraCoreLaptopDevices.cpp b/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/AsusAuraCoreLaptopDevices.cpp index 057cc2c7b..8cad86aa4 100644 --- a/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/AsusAuraCoreLaptopDevices.cpp +++ b/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/AsusAuraCoreLaptopDevices.cpp @@ -729,6 +729,48 @@ keyboard_keymap_overlay_values g814jv_lightbar_layout } }; +keyboard_keymap_overlay_values g834jy_lid_layout +{ + KEYBOARD_SIZE_EMPTY, + { + { /* Values not set in empty keyboard */ }, + { + /* Regional layout fixes (none) */ + } + }, + { + /*-------------------------------------------------------------------------------------------------------------------------------------*\ + | Edit Keys | + | Zone, Row, Column, Value, Key, Alternate Name, OpCode, | + \*-------------------------------------------------------------------------------------------------------------------------------------*/ + { 0, 0, 0, 167, "ROG Logo", KEY_EN_UNUSED, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + } +}; + +keyboard_keymap_overlay_values g834jy_lightbar_layout +{ + KEYBOARD_SIZE_EMPTY, + { + { /* Values not set in empty keyboard */ }, + { + /* Regional layout fixes (none) */ + } + }, + { + /*-------------------------------------------------------------------------------------------------------------------------------------*\ + | Edit Keys | + | Zone, Row, Column, Value, Key, Alternate Name, OpCode, | + \*-------------------------------------------------------------------------------------------------------------------------------------*/ + { 0, 0, 0, 174, "Lightbar Left", KEY_EN_UNUSED, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 1, 173, "Lightbar Left Corner", KEY_EN_UNUSED, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 2, 172, "Lightbar Bottom Left", KEY_EN_UNUSED, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 3, 171, "Lightbar Bottom Right", KEY_EN_UNUSED, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 4, 170, "Lightbar Right Corner", KEY_EN_UNUSED, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + { 0, 0, 5, 169, "Lightbar Right", KEY_EN_UNUSED, KEYBOARD_OPCODE_INSERT_SHIFT_RIGHT, }, + } +}; + + /*-------------------------------------------------------------------------*\ | AURA CORE LAPTOP DEVICES | @@ -940,6 +982,45 @@ static const aura_core_laptop_device g814jv_device = } }; +/*-------------------------------------------------------------*\ +| ASUS ROG Strix SCAR 18 G834JY | +| | +| Zone "Keyboard" | +| Matrix | +| 7 Rows, 16 Columns | +\*-------------------------------------------------------------*/ + +static const aura_core_laptop_zone g834jy_keyboard_zone = +{ + ZONE_EN_KEYBOARD, + &g814jv_keyboard_layout +}; + +static const aura_core_laptop_zone g834jy_lid_zone = +{ + "Lid", + &g834jy_lid_layout +}; + +static const aura_core_laptop_zone g834jy_lightbar_zone = +{ + "Lightbar", + &g834jy_lightbar_layout +}; + +static const aura_core_laptop_device g834jy_device = +{ + "G834JY", + { + &g834jy_keyboard_zone, + &g834jy_lid_zone, + &g834jy_lightbar_zone, + nullptr, + nullptr, + nullptr + } +}; + /*-------------------------------------------------------------------------*\ | DEVICE MASTER LIST | \*-------------------------------------------------------------------------*/ @@ -954,6 +1035,7 @@ const aura_core_laptop_device* aura_core_laptop_device_list_data[] = &g713rw_device, &g733qr_device, &g814jv_device, + &g834jy_device, }; const unsigned int AURA_CORE_LAPTOP_DEVICE_COUNT = (sizeof(aura_core_laptop_device_list_data) / sizeof(aura_core_laptop_device_list_data[ 0 ]));