Skip to content

Commit b1650d3

Browse files
committed
Clarify ATK DPI slider encoding
1 parent 1fb6d25 commit b1650d3

1 file changed

Lines changed: 17 additions & 1 deletion

File tree

docs/atk-fierce-x-protocol-notes.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,23 @@ b7 b7 00 e7
151151
b8 b8 00 e5
152152
```
153153

154+
Additional DPI slider captures show that the third byte in the group can also
155+
change. This means the group is not simply `[raw, raw, 0x00, check]`; the third
156+
byte is DPI-related data or a high/flag byte.
157+
158+
```txt
159+
3d 3d cc 0f
160+
cb cb 22 9d
161+
79 79 33 30
162+
b8 b8 33 b2
163+
bd bd 00 db
164+
b4 b4 00 ed
165+
```
166+
154167
Likely DPI group shape:
155168

156169
```txt
157-
[raw, raw, flags_or_hi, group_check]
170+
[raw_low_or_value, raw_low_or_value, raw_hi_or_flags, group_check]
158171
```
159172

160173
For the observed `flags_or_hi = 0x00` DPI groups:
@@ -193,6 +206,9 @@ with the `(raw + 1) * 10` rule, or `1800 DPI` if ATK rounds/displays this slot
193206
differently. Capture known fixed values, especially `800`, `900`, `1600` and
194207
`1800`, before wiring writes into the app.
195208

209+
Do not implement DPI value writes until captures include the exact visible DPI
210+
number for each changed group.
211+
196212
### Polling Rate
197213

198214
Polling rate is stored in the same addr `0x00`, len `0x08` block as the active

0 commit comments

Comments
 (0)