aboutsummaryrefslogtreecommitdiff
path: root/force-effects.txt
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2023-10-14 20:16:26 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2023-10-14 20:16:26 +0300
commita3aba95241247c5aa5c8e16c839cf6909ffe80a9 (patch)
tree5f4692527eb9a82d95d08754e4eb96be7df90ba5 /force-effects.txt
parentb2872a893afd0f9cd0bfd4644348f3b8645edbed (diff)
parent1ac3f52cfd972787e4684350f7593614837b6b19 (diff)
downloadhid-tmff2-a3aba95241247c5aa5c8e16c839cf6909ffe80a9.tar.gz
hid-tmff2-a3aba95241247c5aa5c8e16c839cf6909ffe80a9.zip
Merge branch 'RaySlash-rebase'
Diffstat (limited to 'force-effects.txt')
-rw-r--r--force-effects.txt462
1 files changed, 0 insertions, 462 deletions
diff --git a/force-effects.txt b/force-effects.txt
deleted file mode 100644
index 0595611..0000000
--- a/force-effects.txt
+++ /dev/null
@@ -1,462 +0,0 @@
-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 ***
-
-As far as I can tell, fade_level and attack_level values are calculated by
-mapping the u16 into s16 and taking the absolute value, and after that
-multiplying by the direction.
-
-All values are examples of actual commands that I captured on the USB interface,
-not the only ones available.
-
-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: (For dynamic updating of effects)
- 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
-
- Offset:
- Not supported?
-
-
-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 - difference ***
- fe ff - level? *** (level = (if end_level > start_level, end_level, else
- start_level) - difference?) (signed)
- 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
-
- Modifying:
- Sweet baby jesus
- I'll figure this out later
- Ramp(?):
- 60 00 - standard header
- 01 - ID
- 0e - ???
- 03 - ramp?
- e3 04 - difference?
- 7d 75 - "level"?
- 05 - ????
- 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
- 01 - ID
- 4e - ?
- 08 - ?
- 01 00 - time in milliseconds
- 05 - ?
- 41 - ?
- 01 00 - time 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
-
- Offset:
- Not supported?
-
-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 - some weird hard-coded
- values to do with springs?
-
- 4f
- f7 17 - duration
- 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
-
- Modifying:
- Same as under
-
-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 - some weird hard-coded
- values to do with friction?
- 4f
- f7 17 - duration
- 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
-
- Modifying:
- positive coefficient:
- 60 00
- 02 - ID
- 0e 41
- 64 35 - value, signed (between 00 00 and 01 80?)
- 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
-
- negative coefficient:
- 60 00
- 02 - ID
- 0e 42
- 64 35 - value, signed (between 00 00 and ff 7f?)
- 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
-
- deadband/offset:
- 60 00
- 02 - ID
- 0e 4c
- 64 35 - deadband (right?) (deadband + offset) (fe ff means no deadband)
- 00 00 - deadband (left?) (deadband + offset)
- 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 06 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
-
- Offset:
- Not supported?
-
-FF_PERIODIC:
- 60 00 - standard header
- 01 - ID
- 6b - new periodic effect
- 00 00 - magnitude ***
- fe ff - offset (up/down)
- 00 00 - phase (left/right)
- e8 03 - period
- 00 80
- 00 00 - attack_length
- 00 00 - attack_level ***
- 00 00 - fade_length
- 00 00 - fade_level ***
- 01 - type of periodic ( square 01,
- sine 03,
- triangle 02,
- sawtooth down 05,
- sawtooth up 04 )
- 4f
- f7 17 - duration
- 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
-
- Modifying:
- magnitude:
- 60 00
- 02 - ID
- 0e 01
- 64 35 - value, signed (between 00 00 and ff 7f?)
- 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
-
- offset of effect:
- 60 00
- 02 - ID
- 0e 02
- 64 35 - value, signed (between 00 00 and ff 7f?)
- 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
-
- phase:
- 60 00
- 02 - ID
- 0e 04
- 64 35 - value, signed (between 80 01 and ff 7f?)
- 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
-
- period:
- 60 00
- 02 - ID
- 0e 08
- 64 35 - value, signed (between 00 00 and I guess ff 7f?) (max value in
- wireshark is 0d 07, but I don't know if that's a driver or program issue)
- 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:
-
- Square:
- 60 00
- 01 - ID
- 49 - ?
- 01 - Effect type
- 41 - ?
- 4e 0c - Time 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
-
- Sine:
- 60 00
- 01 - ID
- 49 - ?
- 03 - Effect type
- 41 - ?
- ec 13 - Time 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
-
- Triangle:
- 60 00
- 01 - ID
- 49 - ?
- 02 - Effect type
- 41 - ?
- 4e 0c - Time 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
-
- Sawtooth up:
- 60 00
- 01 - ID
- 49 - ?
- 04 - Effect type
- 41 - ?
- 4e 0c - Time 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
-
- Sawtooth down:
- 60 00
- 01 - ID
- 49 - ?
- 05 - Effect type
- 41 - ?
- ec 13 - Time 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
-
- Offset:
- Not supported?
-
-
-FF_AUTOCENTER:
- 60 08 - header plus settings?
- 03 - set autocenter force
- 8f 02 - force (between ff ff and 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 00 00
-
-FF_GAIN:
- 60 02 - header plus gain?
- bf - gain (between ff and 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 00 00 00
-
-Rotation angle:
- 60 08 - header plus settings?
- 11 - set rotation angle
- 55 d5 - angle (between ff ff and 7b 09, one degree is roughly 3c)
- 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
-
-Open:
- 60 01 - standard header?
- 04 - ?
- 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 00 00
-
- (this command doesn't appear every time, odd)
- 60 12 - ?
- bf 04 00 00 03 b7 1e - ? /* wow, this is different on different wheels? */
- 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
-
- 60 01 - ?
- 05 - ?
- 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 00 00
-
-Close:
- 60 01 - standard header?
- 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 00 00 00
-