-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathwincontrols-hid-format.txt
More file actions
79 lines (61 loc) · 3.38 KB
/
wincontrols-hid-format.txt
File metadata and controls
79 lines (61 loc) · 3.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
Must be sent to usb device 2f24:0135, on the interface with usage page 0xff00.
01 a520 5adf 00 000000000000000000000000000000000000000000000000000000
01 a521 5ade 00 00005200510050004f00040005001b001c00000000000000000000
01 a521 5ade 00 01001a001600040007002c00280000000000000000000000000000
01 a521 5ade 00 02000000ea00eb00ec00ed00000000000000000000000000000000
01 a521 5ade 00 03000000e0000000000000001b0000000000000000000000000000
01 a521 5ade 00 040000000000000000000000000000000000000000000000000000
01 a521 5ade 00 05000000000000002c010000000000002c01000000000000000000
01 a521 5ade 00 060000000000000000000000000000000000000000000000000000
01 a521 5ade 00 070000000000000000000000000000000000000000000000000000
01 a522 5add 00 000000000000000000000000000000000000000000000000000000
01 a523 5adc 00 000000000000000000000000000000000000000000000000000000
Message 0x20 returns fw info and readiness for writing (0xaa in first position)
v 2 for writes, 1 for read
01 a520 5adf 00 000000000000000000000000000000000000000000000000000000
^ inverted copy of first word
This is the joystick configuration (note, wincontrols itself gets Y and right click mixed up!)
up dn lf rt A B X Y
01 a521 5ade 00 0000 5200 5100 5000 4f00 0400 0500 1b00 1c00 000000000000000000
LU LD LL LR LC RC
01 a521 5ade 00 0100 1a00 1600 0400 0700 2c00 1c00 00000000000000000000000000
L1 R1 L2 R2
01 a521 5ade 00 0200 0000 ea00 eb00 ec00 ed00 000000000000000000000000000000
L41 L42 L43 L44 R41 R42 R43
01 a521 5ade 00 0300 0000 0400 0000 0000 0000 1b00 0000 0000000000000000000000
R44 Rumb LED R G B LC LB RC RB (signed)
01 a521 5ade 00 0400 0000 0100 00 000000 f7 f7 f7 f7 00000000000000000000000000
LED (win4 only): 0=off, 0x01=solid, 0x11=breathe, 0x21=rotate
Colour (win4 only): RGB888
macro delays here - 4x words per set First set is L4 second set is R4, in milliseconds
0x0064 is 100 - wincontrols only allows setting 0 or 100
0x012c is 300 - wincontrols doesn't allow changing this
But all 4 can be changed arbitrarily.
01 a521 5ade 00 0500 6400 6400 6400 2c01 6400 6400 6400 2c01 000000000000000000
The config uses standard usb hid keycodes up to 0xe7, after that are the following:
0xe8 - mousewheel up
0xe9 - mousewheel down
0xea - left mouse
0xeb - right mouse
0xec - middle mouse
0xed - mouse fast move
these can be assigned to any key, not just the shoulders!
Nothing in these
01 a521 5ade 00 0600 00000000000000000000000000000000000000000000000000
01 a521 5ade 00 0700 00000000000000000000000000000000000000000000000000
// 22 returns checksums for written data
01 a522 5add 00 000000000000000000000000000000000000000000000000000000
// 23 commits the written config permanently
01 a523 5adc 00 000000000000000000000000000000000000000000000000000000
Reports:
0x10: version check/ready for read
0x11: read config memory
0x12: get config memory checksum
0x20: version check/ready for write
0x21: write config memory
0x22: get checksum
0x23: commit config
Notes for reply format (except for responses to 0x11/0x21)
byte at 8 == 0xaa when hardware is ready (keep reading until true)
uint16's at 10 and 12, fw version numbers. Wincontrols renders as X510K504 (gamepad/keyboard modes?)
uint16 at 24: simple checksum