blob: 47d5b35ebd3d6916ba8099b9e8f9958ac056cded (
plain) (
blame)
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
Here I will gather all info I can find out about the different force effects and
their USB commands. All values seem to be little-endian.
Also, general note, it seems like some effects are affected by the direction of
the force, denoted by ***
GENERAL:
Playing:
60 00 - standard header
01 - ID
89 - playing options
01 - play
00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Stopping/removing: (why are they rolled into one?)
60 00 - standard header
01 - ID
89 - playing options
00 - stop
00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
FF_CONSTANT:
Initialization:
60 00 - standard header
01 - ID
6a - new constant effect(?)
fe ff - strength ***
00 00 - attack_length
00 00 - attack_level ***
00 00 - fade_length
00 00 - fade_level ***
00 4f - ?
f7 17 - time in milliseconds, unsigned
00 00
07 00 - offset from start(?)
00 ff ff - end of new effect(?)
00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Modifying: (It may be possible to modify the effects all at once, not sure)
Direction: n/a
Constant force:
60 00 - standard header
01 - ID
0a - modify constant force
05 16 - constant force
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Envelope:
60 00 - standard header
01 - ID
31 - modify envelope
84 - ID of envelope attribute ( attack_level 82,
attack_length 81,
fade_level 88,
fade_length 84 )
63 04 - value attribute should be set to
00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Duration:
60 00 - standard header
01 - ID
49 00 41 - modify timing?
6c 20 - length in milliseconds
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
FF_RAMP:
(Why on earth is it this difficult to figure out how a fucking ramp works?)
Init:
60 00 - standard header
01 - ID
6b - new ramp effect
f6 7f - ? *** (these two have something in common but no idea what yet)
fe ff - ?
00 00
f7 17 - time?
00 80 - some kind of marker
00 00 - attack_length?
f6 7f - attack_level? ***
00 00 - fade_length?
f6 7f - fade_level? ***
04 - invert (going "down", 05, going "up", 04)
4f
f7 17 - time again?
00 00
00 00 - offset
00 ff ff - end of init
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
FF_SPRING:
Init:
60 00 - standard header
01 - ID
64 - new conditional effect
fc 7f - positive coefficient (right?)
fc 7f - negative coefficient (left?)
fe ff - deadband (left?) (deadband + offset) (fe ff means no deadband)
fe ff - deadband (right?) (deadband + offset)
a6 6a a6 6a fe ff fe ff fe ff fe ff df 58 a6 6a 06 4f f7 17
00 00 - some weird hard-coded values to do with springs?
00 00 - offset
00 ff ff - end of init
00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
FF_DAMPER + FF_FRICTION + FF_INERTIA:
Init:
60 00 - standard header
02 -ID
64 - new conditional effect
fc 7f - positive coefficient (right?)
fc 7f - negative coefficient (left?)
fe ff - deadband (left?) (deadband + offset) (fe ff means no deadband)
fe ff - deadband (right?) (deadband + offset)
fc 7f fc 7f fe ff fe ff fe ff fe ff fc 7f fc 7f 07 4f f7 17
00 00 - some weird hard-coded values to do with friction?
00 00 - offset
00 ff ff - end of init 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
FF_PERIODIC:
FF_SQUARE:
60 00 - standard header
01 - ID
6b - new periodic effect
00 00 - direction
fe ff - ?
00 00 - offset
e8 03 00 80 00 00
00 00 00 00 00 00 01 4f f7 17 00 00 00 00 00 ff
ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|