diff options
| author | RaySlash <stevemathewjoy@gmail.com> | 2023-10-04 13:10:48 +1000 |
|---|---|---|
| committer | RaySlash <stevemathewjoy@gmail.com> | 2023-10-04 13:10:48 +1000 |
| commit | c5e36a43b975177f37d9c3bf42ed657c44cbd5d5 (patch) | |
| tree | cca7eff927c2c5306762fc1cec17e4fb56bbad95 /docs/FFBEffects-T300RS.md | |
| parent | fe7751d6c9eb7fcc318691636d08654a75736934 (diff) | |
| download | hid-tmff2-c5e36a43b975177f37d9c3bf42ed657c44cbd5d5.tar.gz hid-tmff2-c5e36a43b975177f37d9c3bf42ed657c44cbd5d5.zip | |
docs: rename and update
- Add dir `docs/effects/`
- Rename existing `docs/FFBEffects-*.md` to `docs/effects/FFBEFFECTS_*.md`
- Update double backticks with single to improve consistency
Diffstat (limited to 'docs/FFBEffects-T300RS.md')
| -rw-r--r-- | docs/FFBEffects-T300RS.md | 542 |
1 files changed, 0 insertions, 542 deletions
diff --git a/docs/FFBEffects-T300RS.md b/docs/FFBEffects-T300RS.md deleted file mode 100644 index 1770bdd..0000000 --- a/docs/FFBEffects-T300RS.md +++ /dev/null @@ -1,542 +0,0 @@ -# Force Feedback Effects - Thrustmaster T300RS (incl. PS3/PS4 modes) -Here I will gather all info I can find out about the different force feedback 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. - -> **NOTE:** All values are examples of actual commands that I captured on the USB interface, not the only available ones. - - -## 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 -``` - -## 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 -``` - -## 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 -``` - -## 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 -``` - -## 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: ``N/A ?`` - -## FF_RAMP -(Why on earth is it this difficult to figure out how a 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: ``N/A ?`` - -## 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 below (FF_DAMPER + FF_FRICTION + FF_INERTIA) - -## 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: ``N/A ?`` - -## FF_PERIODIC: -### Init -``` - 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: ``N/A ?`` - -## PS4 Input -``` -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 226 /* wheel */ -ff00.0021 = 125 /* wheel */ -ff00.0021 = 255 /* gas */ -ff00.0021 = 255 /* gas */ -ff00.0021 = 255 /* brake */ -ff00.0021 = 255 /* brake */ -ff00.0021 = 255 /* clutch */ -ff00.0021 = 255 /* clutch */ -ff00.0021 = 0 -ff00.0021 = 255 -ff00.0021 = 255 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -ff00.0021 = 0 -``` |
