From bf8fd31904a94c1ec43c19a22b400d7be68f712a Mon Sep 17 00:00:00 2001 From: Shubhadeep Date: Mon, 17 Aug 2026 12:19:33 +0530 Subject: [PATCH 1/2] feat(supported-mice): update Attack Shark X8 SE to verified status The 0x25a7 GearHub protocol has been reverse-engineered and implemented. X8 SE is now verified with DPI, polling rate, and firmware support. Other 0x25a7 family entries updated to reference the new protocol. --- src/supported-mice.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/supported-mice.ts b/src/supported-mice.ts index 685ec4c..2443272 100644 --- a/src/supported-mice.ts +++ b/src/supported-mice.ts @@ -187,32 +187,32 @@ export const MICE: Mouse[] = [ // ATTACK SHARK ──────────────────────────────────────────────────────── { brand: "Attack Shark", model: "X3", status: "likely", req: 15, - note: "Driver implemented (0x25a7 family) — needs hardware test" }, + note: "0x25a7 GearHub protocol — needs hardware test" }, { brand: "Attack Shark", model: "X11", status: "likely", req: 10, note: "Driver implemented (0x1d57 / 0x25a7 families) — needs hardware test" }, { brand: "Attack Shark", model: "R5 Ultra", status: "supported", req: 7, pids: [0x0046, 0x0047], note: "PIDs 0x0046/0x0047 in the CompX/Lamzu driver (R5 Ultra profile)" }, { brand: "Attack Shark", model: "X6", status: "likely", req: 5, - note: "Driver implemented (0x25a7 family) — needs hardware test" }, + note: "0x25a7 GearHub protocol — needs hardware test" }, { brand: "Attack Shark", model: "R3", status: "likely", req: 4, note: "Driver implemented (0x373e family) — needs hardware test" }, { brand: "Attack Shark", model: "R1", status: "likely", req: 3, note: "Driver implemented (0x1d57 family) — needs hardware test" }, { brand: "Attack Shark", model: "X8 Ultra", status: "likely", req: 3, - note: "Driver implemented (0x25a7 family) — needs hardware test" }, - { brand: "Attack Shark", model: "X8 SE", status: "likely", req: 3, - note: "Driver implemented (0x25a7 family) — needs hardware test" }, + note: "0x25a7 GearHub protocol — needs hardware test" }, + { brand: "Attack Shark", model: "X8 SE", status: "supported", req: 2, + note: "0x25a7 GearHub protocol — DPI, polling, firmware" }, { brand: "Attack Shark", model: "X1", status: "likely", req: 2, - note: "Driver implemented (0x25a7 family) — needs hardware test" }, + note: "0x25a7 GearHub protocol — needs hardware test" }, { brand: "Attack Shark", model: "V3 Pro", status: "likely", req: 1, - note: "Driver implemented (0x25a7 family) — needs hardware test" }, + note: "0x25a7 GearHub protocol — needs hardware test" }, { brand: "Attack Shark", model: "X3 Pro", status: "likely", req: 1, - note: "Driver implemented (0x25a7 family) — needs hardware test" }, + note: "0x25a7 GearHub protocol — needs hardware test" }, { brand: "Attack Shark", model: "X11 SE", status: "likely", req: 1, note: "Driver implemented (0x1d57 / 0x25a7 families) — needs hardware test" }, { brand: "Attack Shark", model: "X8 PLUS", status: "likely", req: 1, - note: "Driver implemented (0x25a7 family) — needs hardware test" }, + note: "0x25a7 GearHub protocol — needs hardware test" }, { brand: "Attack Shark", model: "X12", status: "likely", req: 1, note: "Driver implemented (0x25a7 family) — needs hardware test" }, { brand: "Attack Shark", model: "R6", status: "likely", req: 1, From d5b863da7ef0de35743b023840911a92edad6c88 Mon Sep 17 00:00:00 2001 From: Shubhadeep Date: Mon, 17 Aug 2026 15:47:06 +0530 Subject: [PATCH 2/2] fix(supported): merge all ASUS brand variants into Asus Consolidate ROG, TUF, ASUS ROG and other ASUS sub-brands into a single canonical brand name 'Asus' to prevent duplicate entries from typos and community submissions. --- src/check-scan.ts | 2 +- src/supported-live.test.ts | 5 ++++- src/supported-live.ts | 5 ++++- src/supported-mice.ts | 12 ++++++------ 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/check-scan.ts b/src/check-scan.ts index 2456fd3..65c4691 100644 --- a/src/check-scan.ts +++ b/src/check-scan.ts @@ -12,7 +12,7 @@ export const BRANDS: Record = { 0x1038: "SteelSeries", 0x1B1C: "Corsair", 0x0951: "HyperX / Kingston", - 0x0B05: "ASUS ROG", + 0x0B05: "Asus", 0x1E7D: "Roccat", 0x258A: "SinoWealth / Glorious", 0x30FA: "SinoWealth", diff --git a/src/supported-live.test.ts b/src/supported-live.test.ts index e865527..ebd6c24 100644 --- a/src/supported-live.test.ts +++ b/src/supported-live.test.ts @@ -41,7 +41,10 @@ test("canonicalBrand folds brand aliases onto the canonical name", () => { assert.equal(canonicalBrand("HSXJ"), "HXSJ"); assert.equal(canonicalBrand("Razer Basilisk"), "Razer"); assert.equal(canonicalBrand("MX Anywhere 3s"), "Logitech"); - assert.equal(canonicalBrand("ROG"), "ASUS ROG"); + assert.equal(canonicalBrand("ROG"), "Asus"); + assert.equal(canonicalBrand("ASUS"), "Asus"); + assert.equal(canonicalBrand("TUF"), "Asus"); + assert.equal(canonicalBrand("ASUS ROG"), "Asus"); assert.equal(canonicalBrand("rapoo Vpro"), "Rapoo"); assert.equal(canonicalBrand("Eyooso"), "E-YOOSO"); assert.equal(canonicalBrand("e-yooso"), "E-YOOSO"); diff --git a/src/supported-live.ts b/src/supported-live.ts index f2205e1..c3eb085 100644 --- a/src/supported-live.ts +++ b/src/supported-live.ts @@ -51,7 +51,10 @@ const BRAND_TYPOS: Record = { mxanywhere3: "Logitech", mxanywhere3s: "Logitech", hyperxpulsefirehastle2: "HyperX", - rog: "ASUS ROG", + rog: "Asus", + asus: "Asus", + asusrog: "Asus", + tuf: "Asus", }; /** diff --git a/src/supported-mice.ts b/src/supported-mice.ts index 2443272..b97e609 100644 --- a/src/supported-mice.ts +++ b/src/supported-mice.ts @@ -470,16 +470,16 @@ export const MICE: Mouse[] = [ { brand: "Keychron", model: "M6", status: "quickwin", req: 1, note: "Keychron vendor covered; M6 PID not yet in KEYCHRON_PRODUCT_IDS" }, - // ASUS ROG ──────────────────────────────────────────────────────────── - { brand: "ASUS ROG", model: "Harpe Ace Aim Lab", status: "driver", req: 5, + // Asus ──────────────────────────────────────────────────────────────── + { brand: "Asus", model: "Harpe Ace Aim Lab", status: "driver", req: 5, note: "Armoury Crate protocol — not implemented" }, - { brand: "ASUS ROG", model: "TUF Gaming M5", status: "driver", req: 2, + { brand: "Asus", model: "TUF Gaming M5", status: "driver", req: 2, note: "Armoury Crate protocol — not implemented" }, - { brand: "ASUS ROG", model: "Gladius II Core", status: "driver", req: 1, + { brand: "Asus", model: "Gladius II Core", status: "driver", req: 1, note: "Armoury Crate protocol — not implemented" }, - { brand: "ASUS ROG", model: "Strix Impact III", status: "driver", req: 1, + { brand: "Asus", model: "Strix Impact III", status: "driver", req: 1, note: "Armoury Crate protocol — not implemented" }, - { brand: "ASUS ROG", model: "TUF Gaming M3 Gen 1", status: "driver", req: 1, + { brand: "Asus", model: "TUF Gaming M3 Gen 1", status: "driver", req: 1, note: "Armoury Crate protocol — not implemented" }, // OTHER DRIVER-NEEDED ─────────────────────────────────────────────────