Skip to content

Commit 03a5f34

Browse files
authored
Merge pull request #181 from ydw1904/feat/glorious-o2-pro-4k8k
feat(glorious): driver for the Model O 2 PRO 4K/8K
2 parents 1bc7b98 + 9c3639d commit 03a5f34

12 files changed

Lines changed: 1569 additions & 4 deletions

File tree

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Glorious Model O 2 PRO 4K/8K, wired
2+
3+
Reference material for `src/glorious-core2/index.ts` and
4+
`src/drivers/glorious/core2-hid.ts`. From a community USBPcap capture
5+
(ticket-0160, Windows, 2026-10-08): Glorious CORE talking to a Model O 2 PRO
6+
4K/8K on its cable (USB `0x258a:0x201b`) while the owner stepped through its
7+
settings. Only the mouse's configuration interface and its DPI button reports
8+
are included. The other USB devices on that bus (two ASUS lighting controllers)
9+
and all pointer traffic were left out. No serial numbers or personal data.
10+
11+
| File | Trust | What it is |
12+
|-|-|-|
13+
| `core-session.hex` | Vendor capture | Every frame on interface 2 (usage page `0xffff`, usage 0, unnumbered 64-byte feature reports): 116 requests (22 distinct) and the 41 replies CORE read. `src/drivers/glorious/core2-protocol.test.ts` re-encodes all 116 requests byte for byte. |
14+
| `dpi-button-reports.hex` | Vendor capture | 11 input reports (report 4) on interface 1, sent by the mouse when its DPI button was pressed in the first 41 s, before CORE wrote anything. Layout `01, stage (1-based), DPI X (u16 BE), DPI Y (u16 BE), 00 00`. The test checks every one against the stage table CORE wrote later. |
15+
16+
## What the owner did
17+
18+
The capture has no labels, so this is read off the frames. CORE re-sends its
19+
whole performance block after every change (7 requests, 30 ms apart), so only
20+
the field that moved says what the owner touched:
21+
22+
| Seconds | What changed |
23+
|-|-|
24+
| 5.8 | CORE starts: firmware read. Battery read every 10 s from here, 100 % and not charging. |
25+
| 14 to 41 | DPI button pressed on the mouse, stages 1 to 4 cycle. |
26+
| 57 to 114 | Polling rate stepped 125, 250, 500, 1000, 2000, 4000, 8000 Hz (`08, 04, 02, 01, 20, 40, 80` in both polling bytes). |
27+
| 120 | Polling bytes become `80 40`: 8000 Hz wired, 4000 Hz wireless. |
28+
| 124 to 133 | Motion sync off, then on again (register `0x09` goes 1, 0, 1). |
29+
| 141 to 160 | Debounce stepped 4, 8, 12, 16 ms (register `0x08`, first byte after the profile). |
30+
| 168 | Advanced debounce switched on: `00 00 0a 0a 08` (CORE's defaults 0, 0, 10, 10, 8). |
31+
32+
Every request carries profile `2`: CORE had its second profile selected. A
33+
capture from a Model D2 Pro 4K in the GloriousAutoPollingRate project carries
34+
profile `1`.
35+
36+
## What the registers are
37+
38+
The 7 requests of a burst, with what each one is. The frame layout is in the
39+
header comment of `src/glorious-core2/index.ts`. The names come from the code of
40+
Glorious CORE 2.1.21 itself (`MouseV2ProDeviceHandler`, which also drives the
41+
Model O/D Wireless that korkje/mxw documents); the capture fixes the bytes, the
42+
code fixes the meaning.
43+
44+
| Order | Bank, register | Data after the profile byte |
45+
|-|-|-|
46+
| 1 | 1, `0x01` | DPI stage count, then X and Y as u16 BE per stage |
47+
| 2 | 2, `0x01` | six RGB triplets, the stage LED colors |
48+
| 3 | 1, `0x0b` | lift-off value; CORE writes 1 for both its 1.0 mm and 2.0 mm options, so the value to distance map is unknown |
49+
| 4 | 1, `0x02` | active DPI stage, 1-based |
50+
| 5 | 1, `0x0a` | polling code for the cable, polling code for 2.4 GHz |
51+
| 6 | 0, `0x08` | debounce: `ms, 0, 0, 0, 0, 0`, or in advanced mode `beforePress, beforeRelease, afterPress, afterRelease, liftOffPress, 0` |
52+
| 7 | 1, `0x09` | motion sync, 1 on, 0 off |
53+
54+
Reads: bank 0 register `0x81` answers firmware `1.0.15.0` then the wired
55+
product id `0x201b`; register `0x83` answers charging flag and percent. The
56+
reply to a write is the request echoed with status `0xa1`, and CORE only reads
57+
it after the last frame of a burst.
58+
59+
## Not captured yet
60+
61+
- **Any read of a setting.** CORE never reads one, and no command for it is
62+
known, so the driver shows the last values it wrote.
63+
- **The HID report descriptors.** The capture started after enumeration. The
64+
driver finds the config channel by shape (a feature report with id 0 on usage
65+
page `0xffff`), which is how CORE's own device table describes it.
66+
- **The receiver (`0x2035`).** No traffic. The frames are the same ones CORE
67+
sends over either link (GloriousAutoPollingRate captured the D2 Pro 4K
68+
receiver doing so); only the firmware read differs, target byte 0 instead
69+
of 2, from CORE's code.
70+
- **The profile select frame** (bank 0, register `0x05`), which CORE and mxw
71+
agree on. CORE had already selected profile 2.
72+
- **Lighting, buttons, macros and auto sleep.** Not exercised.
73+
- **8000 Hz on the 2.4 GHz link.** CORE wrote it once (`80 80`) and then
74+
settled on `80 40`; the product page gives 4000 Hz as the wireless maximum.
Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
# Glorious Model O 2 PRO 4K/8K, wired (USB 0x258a:0x201b), ticket-0160.
2+
# Glorious CORE on Windows, USBPcap, 2026-10-08. Config interface only: interface 2,
3+
# usage page 0xffff usage 0, unnumbered 64-byte feature reports (report id 0). Format:
4+
# <seconds since the first packet of this device> <dir> <hex>, where > is SET_REPORT (host to
5+
# device) and < is the GET_REPORT reply, full 64-byte frames with trailing zeros dropped.
6+
# CORE has no label per action; what the owner did is inferred in README.md.
7+
5.811 > 00 00 02 03 00 81
8+
5.868 < a1 00 02 06 00 81 01 00 0f 00 20 1b
9+
15.822 > 00 00 02 02 00 83
10+
15.884 < a1 00 02 02 00 83 00 64
11+
25.829 > 00 00 02 02 00 83
12+
25.891 < a1 00 02 02 00 83 00 64
13+
35.839 > 00 00 02 02 00 83
14+
35.901 < a1 00 02 02 00 83 00 64
15+
45.838 > 00 00 02 02 00 83
16+
45.899 < a1 00 02 02 00 83 00 64
17+
55.846 > 00 00 02 02 00 83
18+
55.907 < a1 00 02 02 00 83 00 64
19+
57.331 > 00 00 02 12 01 01 02 04 01 90 01 90 03 20 03 20 06 40 06 40 0c 80 0c 80
20+
57.378 > 00 00 02 13 02 01 02 ff a4 0d 26 b4 ff ff 26 26 18 b3 0a
21+
57.424 > 00 00 02 02 01 0b 02 01
22+
57.471 > 00 00 02 02 01 02 02 01
23+
57.597 > 00 00 02 03 01 0a 02 08 08
24+
57.643 > 00 00 02 07 00 08 02
25+
57.646 > 00 00 02 02 01 09 02 01
26+
57.705 < a1 00 02 02 01 09 02 01
27+
57.708 < a1 00 02 02 01 09 02 01
28+
65.860 > 00 00 02 02 00 83
29+
65.922 < a1 00 02 02 00 83 00 64
30+
69.450 > 00 00 02 12 01 01 02 04 01 90 01 90 03 20 03 20 06 40 06 40 0c 80 0c 80
31+
69.490 > 00 00 02 13 02 01 02 ff a4 0d 26 b4 ff ff 26 26 18 b3 0a
32+
69.537 > 00 00 02 02 01 0b 02 01
33+
69.584 > 00 00 02 02 01 02 02 01
34+
69.707 > 00 00 02 03 01 0a 02 04 04
35+
69.755 > 00 00 02 07 00 08 02
36+
69.758 > 00 00 02 02 01 09 02 01
37+
69.818 < a1 00 02 02 01 09 02 01
38+
69.821 < a1 00 02 02 01 09 02 01
39+
78.708 > 00 00 02 12 01 01 02 04 01 90 01 90 03 20 03 20 06 40 06 40 0c 80 0c 80
40+
78.742 > 00 00 02 13 02 01 02 ff a4 0d 26 b4 ff ff 26 26 18 b3 0a
41+
78.774 > 00 00 02 02 01 0b 02 01
42+
78.820 > 00 00 02 02 01 02 02 01
43+
78.946 > 00 00 02 03 01 0a 02 02 02
44+
78.992 > 00 00 02 07 00 08 02
45+
78.995 > 00 00 02 02 01 09 02 01
46+
79.055 < a1 00 02 02 01 09 02 01
47+
79.058 < a1 00 02 02 01 09 02 01
48+
89.420 > 00 00 02 12 01 01 02 04 01 90 01 90 03 20 03 20 06 40 06 40 0c 80 0c 80
49+
89.454 > 00 00 02 13 02 01 02 ff a4 0d 26 b4 ff ff 26 26 18 b3 0a
50+
89.486 > 00 00 02 02 01 0b 02 01
51+
89.532 > 00 00 02 02 01 02 02 01
52+
89.658 > 00 00 02 03 01 0a 02 01 01
53+
89.705 > 00 00 02 07 00 08 02
54+
89.708 > 00 00 02 02 01 09 02 01
55+
89.769 < a1 00 02 02 01 09 02 01
56+
89.772 < a1 00 02 02 01 09 02 01
57+
95.985 > 00 00 02 02 00 83
58+
96.046 < a1 00 02 02 00 83 00 64
59+
97.386 > 00 00 02 12 01 01 02 04 01 90 01 90 03 20 03 20 06 40 06 40 0c 80 0c 80
60+
97.432 > 00 00 02 13 02 01 02 ff a4 0d 26 b4 ff ff 26 26 18 b3 0a
61+
97.477 > 00 00 02 02 01 0b 02 01
62+
97.524 > 00 00 02 02 01 02 02 01
63+
97.647 > 00 00 02 03 01 0a 02 20 20
64+
97.694 > 00 00 02 07 00 08 02
65+
97.697 > 00 00 02 02 01 09 02 01
66+
97.756 < a1 00 02 02 01 09 02 01
67+
97.759 < a1 00 02 02 01 09 02 01
68+
104.919 > 00 00 02 12 01 01 02 04 01 90 01 90 03 20 03 20 06 40 06 40 0c 80 0c 80
69+
104.963 > 00 00 02 13 02 01 02 ff a4 0d 26 b4 ff ff 26 26 18 b3 0a
70+
105.009 > 00 00 02 02 01 0b 02 01
71+
105.041 > 00 00 02 02 01 02 02 01
72+
105.166 > 00 00 02 03 01 0a 02 40 40
73+
105.213 > 00 00 02 07 00 08 02
74+
105.216 > 00 00 02 02 01 09 02 01
75+
105.275 < a1 00 02 02 01 09 02 01
76+
105.278 < a1 00 02 02 01 09 02 01
77+
114.102 > 00 00 02 12 01 01 02 04 01 90 01 90 03 20 03 20 06 40 06 40 0c 80 0c 80
78+
114.144 > 00 00 02 13 02 01 02 ff a4 0d 26 b4 ff ff 26 26 18 b3 0a
79+
114.191 > 00 00 02 02 01 0b 02 01
80+
114.237 > 00 00 02 02 01 02 02 01
81+
114.374 > 00 00 02 03 01 0a 02 80 80
82+
114.421 > 00 00 02 07 00 08 02
83+
114.424 > 00 00 02 02 01 09 02 01
84+
114.484 < a1 00 02 02 01 09 02 01
85+
114.487 < a1 00 02 02 01 09 02 01
86+
120.129 > 00 00 02 12 01 01 02 04 01 90 01 90 03 20 03 20 06 40 06 40 0c 80 0c 80
87+
120.174 > 00 00 02 13 02 01 02 ff a4 0d 26 b4 ff ff 26 26 18 b3 0a
88+
120.221 > 00 00 02 02 01 0b 02 01
89+
120.269 > 00 00 02 02 01 02 02 01
90+
120.397 > 00 00 02 03 01 0a 02 80 40
91+
120.444 > 00 00 02 07 00 08 02
92+
120.447 > 00 00 02 02 01 09 02 01
93+
120.506 < a1 00 02 02 01 09 02 01
94+
120.509 < a1 00 02 02 01 09 02 01
95+
123.562 > 00 00 02 12 01 01 02 04 01 90 01 90 03 20 03 20 06 40 06 40 0c 80 0c 80
96+
123.597 > 00 00 02 13 02 01 02 ff a4 0d 26 b4 ff ff 26 26 18 b3 0a
97+
123.644 > 00 00 02 02 01 0b 02 01
98+
123.691 > 00 00 02 02 01 02 02 01
99+
123.817 > 00 00 02 03 01 0a 02 80 40
100+
123.864 > 00 00 02 07 00 08 02
101+
123.867 > 00 00 02 02 01 09 02
102+
123.925 < a1 00 02 02 01 09 02
103+
123.928 < a1 00 02 02 01 09 02
104+
126.125 > 00 00 02 02 00 83
105+
126.366 < a1 00 02 02 00 83 00 64
106+
132.737 > 00 00 02 12 01 01 02 04 01 90 01 90 03 20 03 20 06 40 06 40 0c 80 0c 80
107+
132.772 > 00 00 02 13 02 01 02 ff a4 0d 26 b4 ff ff 26 26 18 b3 0a
108+
132.818 > 00 00 02 02 01 0b 02 01
109+
132.865 > 00 00 02 02 01 02 02 01
110+
132.989 > 00 00 02 03 01 0a 02 80 40
111+
133.036 > 00 00 02 07 00 08 02
112+
133.039 > 00 00 02 02 01 09 02 01
113+
133.098 < a1 00 02 02 01 09 02 01
114+
133.101 < a1 00 02 02 01 09 02 01
115+
141.160 > 00 00 02 12 01 01 02 04 01 90 01 90 03 20 03 20 06 40 06 40 0c 80 0c 80
116+
141.202 > 00 00 02 13 02 01 02 ff a4 0d 26 b4 ff ff 26 26 18 b3 0a
117+
141.249 > 00 00 02 02 01 0b 02 01
118+
141.295 > 00 00 02 02 01 02 02 01
119+
141.421 > 00 00 02 03 01 0a 02 80 40
120+
141.468 > 00 00 02 07 00 08 02 04
121+
141.471 > 00 00 02 02 01 09 02 01
122+
141.531 < a1 00 02 02 01 09 02 01
123+
141.534 < a1 00 02 02 01 09 02 01
124+
147.456 > 00 00 02 12 01 01 02 04 01 90 01 90 03 20 03 20 06 40 06 40 0c 80 0c 80
125+
147.489 > 00 00 02 13 02 01 02 ff a4 0d 26 b4 ff ff 26 26 18 b3 0a
126+
147.536 > 00 00 02 02 01 0b 02 01
127+
147.582 > 00 00 02 02 01 02 02 01
128+
147.705 > 00 00 02 03 01 0a 02 80 40
129+
147.752 > 00 00 02 07 00 08 02 08
130+
147.755 > 00 00 02 02 01 09 02 01
131+
147.814 < a1 00 02 02 01 09 02 01
132+
147.817 < a1 00 02 02 01 09 02 01
133+
152.004 > 00 00 02 12 01 01 02 04 01 90 01 90 03 20 03 20 06 40 06 40 0c 80 0c 80
134+
152.051 > 00 00 02 13 02 01 02 ff a4 0d 26 b4 ff ff 26 26 18 b3 0a
135+
152.098 > 00 00 02 02 01 0b 02 01
136+
152.130 > 00 00 02 02 01 02 02 01
137+
152.256 > 00 00 02 03 01 0a 02 80 40
138+
152.303 > 00 00 02 07 00 08 02 0c
139+
152.306 > 00 00 02 02 01 09 02 01
140+
152.366 < a1 00 02 02 01 09 02 01
141+
152.369 < a1 00 02 02 01 09 02 01
142+
156.429 > 00 00 02 02 00 83
143+
156.493 < a1 00 02 02 00 83 00 64
144+
159.448 > 00 00 02 12 01 01 02 04 01 90 01 90 03 20 03 20 06 40 06 40 0c 80 0c 80
145+
159.485 > 00 00 02 13 02 01 02 ff a4 0d 26 b4 ff ff 26 26 18 b3 0a
146+
159.532 > 00 00 02 02 01 0b 02 01
147+
159.564 > 00 00 02 02 01 02 02 01
148+
159.691 > 00 00 02 03 01 0a 02 80 40
149+
159.738 > 00 00 02 07 00 08 02 10
150+
159.741 > 00 00 02 02 01 09 02 01
151+
159.801 < a1 00 02 02 01 09 02 01
152+
159.804 < a1 00 02 02 01 09 02 01
153+
167.941 > 00 00 02 12 01 01 02 04 01 90 01 90 03 20 03 20 06 40 06 40 0c 80 0c 80
154+
167.988 > 00 00 02 13 02 01 02 ff a4 0d 26 b4 ff ff 26 26 18 b3 0a
155+
168.036 > 00 00 02 02 01 0b 02 01
156+
168.083 > 00 00 02 02 01 02 02 01
157+
168.208 > 00 00 02 03 01 0a 02 80 40
158+
168.254 > 00 00 02 07 00 08 02 00 00 0a 0a 08
159+
168.257 > 00 00 02 02 01 09 02 01
160+
168.317 < a1 00 02 02 01 09 02 01
161+
168.320 < a1 00 02 02 01 09 02 01
162+
186.559 > 00 00 02 02 00 83
163+
186.623 < a1 00 02 02 00 83 00 64
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Same capture: interface 1 input report 4 (8 bytes after the report id), sent by the mouse when
2+
# the DPI button was pressed during the first 41 s, before CORE wrote anything. Format:
3+
# <seconds since the first packet of this device> < <hex>. Layout: 01, stage (1-based), DPI X (u16 BE), DPI Y (u16 BE), 00 00.
4+
14.207 < 01 02 03 20 03 20 00 00
5+
14.315 < 01 03 06 40 06 40 00 00
6+
20.879 < 01 04 0c 80 0c 80 00 00
7+
26.487 < 01 01 01 90 01 90 00 00
8+
26.575 < 01 02 03 20 03 20 00 00
9+
31.469 < 01 04 0c 80 0c 80 00 00
10+
31.525 < 01 01 01 90 01 90 00 00
11+
33.657 < 01 02 03 20 03 20 00 00
12+
33.733 < 01 03 06 40 06 40 00 00
13+
40.937 < 01 04 0c 80 0c 80 00 00
14+
41.050 < 01 01 01 90 01 90 00 00

‎docs/glorious-o2-pro-4k8k.md‎

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
# Glorious Model O 2 PRO 4K/8K
2+
3+
Requested in the OpenMouse Discord (ticket 0160). The driver was written from a
4+
USBPcap capture of Glorious CORE on a wired unit
5+
(`captures/glorious-o2-pro-4k8k-wired/`) and from the code of CORE 2.1.21,
6+
which names every register. It has not run on hardware.
7+
8+
## Which mouse
9+
10+
| Path | VID:PID | Collection |
11+
|-|-|-|
12+
| USB cable | `258a:201b` | usage page `0xffff`, usage 0, unnumbered 64-byte feature report |
13+
| 2.4 GHz receiver | `258a:2035` | same |
14+
15+
CORE's device table calls it "MODEL O 2 PRO 4k/8kHz Edition" and gives both ids.
16+
Interface 1 has another `0xffff` collection (usage 1, no feature report). The
17+
picker may list it as a second entry; the driver claims only the one with the
18+
feature report.
19+
20+
Wired it polls up to 8000 Hz, through the receiver up to 4000 Hz. The product
21+
page gives DPI 100 to 26000, debounce 4 to 16 ms (10 ms default), lift-off
22+
1 to 2 mm (1 mm default).
23+
24+
The classic Glorious driver used to claim both ids with a reduced feature set:
25+
battery, plus RGB and debounce methods the app never surfaced. The ids moved
26+
out of `GLORIOUS_CLASSIC_PRODUCTS` so that exactly one driver claims them. Its
27+
debounce frame is shorter than the one CORE sends (length 1 against 7), which
28+
was never tried on this mouse. CORE builds this mouse's RGB frames with the
29+
classic layout, so RGB can be added to the new client later; it is not
30+
captured here.
31+
32+
## Frame
33+
34+
Unnumbered 64-byte feature reports. A request is `SET_REPORT`; a reply is the
35+
`GET_REPORT` about 60 ms later. No checksum.
36+
37+
```
38+
00 00 02 len bank register data... profile id first in every per-profile register
39+
```
40+
41+
`len` is the data length, `bank` is 0 system, 1 per-profile settings, 2
42+
per-profile lighting. A reply echoes the request with status `0xa1` in byte 0.
43+
The full register table is in `captures/glorious-o2-pro-4k8k-wired/README.md`.
44+
45+
## Profiles
46+
47+
The mouse keeps three profiles and every setting is written with a profile
48+
number: the position of the profile selected in CORE. The mouse cannot report
49+
which one is active and no read of any setting is known. The driver assumes
50+
profile 1 until the user picks one in the Profile card; picking sends CORE's own
51+
select frame (`00 00 02 01 00 05 <n>`), after which writes land in that profile.
52+
The values the panel shows are the driver's last writes, kept per profile in
53+
localStorage (one set per model, shared by the cable and the receiver), so a fresh
54+
browser shows the factory values (400, 800, 1600, 3200
55+
DPI, 1000 Hz, 10 ms, motion sync on).
56+
57+
## What the driver does
58+
59+
Identity and firmware, battery, DPI stages (value, count up to 6, LED color,
60+
active stage), polling rate (125 to 8000 Hz; the receiver stops at 4000 Hz),
61+
debounce (simple mode, 4 to 16 ms), motion sync, and profile select.
62+
63+
A single DPI edit rewrites the whole stage table, as CORE does, from the values
64+
shown. Frames are sent 30 ms apart and 120 ms after the active stage, CORE's own
65+
pauses. The driver does not read the acknowledgement of a write.
66+
67+
Not done, with the reason:
68+
69+
- Lift-off. CORE writes the same value for its 1.0 mm and 2.0 mm options, so
70+
the value to distance map is unknown.
71+
- Auto sleep (bank 0 register `0x07`, seconds as u16 BE, `0xffff` for never),
72+
lighting, buttons, macros, advanced debounce. Not captured; the codec has the
73+
advanced debounce encoder because the capture contains it.
74+
- Reading the receiver's own firmware: the frame (target byte 0) is CORE's, not
75+
captured.
76+
77+
## To test
78+
79+
1. Connect in Chrome through control.openmouse.app, on the cable. The status
80+
should show the model, battery, firmware `1.0.15.0` on the unit that was
81+
captured, and "Profile 1".
82+
2. Polling: set 1000 Hz, then 8000 Hz, and measure with a polling rate checker.
83+
Turn Motion Sync off at 8000 Hz, as Glorious advises.
84+
3. DPI: edit a stage, press the DPI button and check the LED color and the
85+
measured DPI; recolor a stage.
86+
4. Debounce and Motion Sync: set each and check the mouse still clicks.
87+
5. If nothing changes, the mouse is on another profile: pick the profile you
88+
use in CORE in the Profile card and repeat.
89+
6. Repeat 2 to 4 on the receiver; 8000 Hz must not be offered there.
90+
7. Report the console log and which profile CORE shows as active.
91+
92+
## Sources
93+
94+
- The capture above; no serial numbers or personal data in it.
95+
- Glorious CORE 2.1.21 (Windows installer from gloriousgaming.com), read for
96+
its device table and `MouseV2ProDeviceHandler` frame builders. Nothing from it
97+
is committed.
98+
- https://github.com/korkje/mxw (profile select, firmware and battery reads)
99+
and https://github.com/AMarcinkiewicz/GloriousAutoPollingRate (polling codes,
100+
measured on a Model D2 Pro 4K, whose receiver `258a:2036` takes the same
101+
frame).
102+
- https://www.gloriousgaming.com/pages/pro-mice-4k8k for the limits.
103+
104+
## Open
105+
106+
- What the mouse does with 8000 Hz in the wireless byte. CORE wrote it once and
107+
corrected itself.
108+
- Whether the same frames work unchanged on the Model D2 Pro 4K/8K
109+
(`258a:201c`, `258a:2036`). CORE gives it the same handler, but no capture of
110+
it exists here, so it stays on the reduced classic driver.

‎package.json‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,10 @@
178178
"types": "./dist/glorious-classic/index.d.ts",
179179
"import": "./dist/glorious-classic/index.js"
180180
},
181+
"./glorious-core2": {
182+
"types": "./dist/glorious-core2/index.d.ts",
183+
"import": "./dist/glorious-core2/index.js"
184+
},
181185
"./ksnake": {
182186
"types": "./dist/ksnake/index.d.ts",
183187
"import": "./dist/ksnake/index.js"

0 commit comments

Comments
 (0)