Comments (19)
Hi, thanks for the report.
F1 is unfortunately a known issue, my current leading theory is that it for some reason checks from some database which wheels it's aware of, and the T300RS (at least the configuration under Linux) isn't on it. As such, the wheel is considered by the game to be a gamepad and disables most effects. There was some discussion about it in #17, and I sent a patch to SDL but I don't think it's been released yet. Sort of unprofessional, but I haven't tested if my patch actually works, since I'm working over the summer in another part of the country and don't have the wheel with me.
I suppose it could also be that F1 detects some kind of conflict between its database and the wheel's reported featureset. I haven't added the FF_CUSTOM effect, and if the game tries to use it and fails it might go into a 'failsafe' mode of sorts where only FF_RUMBLE
is supported. I tried contacting Feral Interactive about the issue but haven't gotten a response.
Or, as @berarma pointed out, a bug in Wine. Anyway, in short, F1 is on my todo-list, but it might take me a while to actually get around to it due to not currently being able to test anything. Sorry about that.
from hid-tmff2.
Success with that patch btw. I built it in 64bit mode and used LD_PRELOAD when running the game. I now have FFB 🗡️
e.g. of my steam launch command
LD_PRELOAD=$LD_PRELOAD:~/git/SDL/build/.libs/libSDL2-2.0.so.0.14.1 %command%
from hid-tmff2.
I think F1 2020 has issues on every wheel, it behaves strangely. It might be related to some bug in Wine/Proton.
EDIT: this might have been the case for F1 2019 instead.
from hid-tmff2.
from hid-tmff2.
Leave it open for now, as the issue hasn't been resolved and the other discussions about the topic have mentioned it more as a sidenote.
from hid-tmff2.
Please, take a look at this. berarma/oversteer#67
It might be that the game is sending ffb updates too fast. It seems to be a problem for the G920. The user tried to use a workaround in ffbtools but it didn't work for him.
from hid-tmff2.
from hid-tmff2.
I compiled and install that patched version of SDL you mentioned here.
Is there anything I should do after installing it? Does steam not used a packaged version of SDL? Or would it use the system one if it exists?
from hid-tmff2.
Eyyyy, that's cool. Thanks for testing it out, really appreciate it, and thanks @berarma for pointing out the SDL function.
I recommend still leaving this open for now, I'd like to get an understanding of which games use SDL to detect wheels and features. We also noticed that DiRT rally treats the wheel as a gamepad in the settings, but still uses full FFB, and I think Euro Truck Simulator had some similar issues, and they might all be linked to SDL.
from hid-tmff2.
Glad I could help!
Just another note, I had to disable steam controller support on the game properties otherwise the throttle would just be stuck at 100% all the time. After turning that off and remapping the pedals everything just worked. Completed two races now and no funnies :)
from hid-tmff2.
Right, I got to mess with the wheel this weekend.
- The SDL patch works in F1 2018.
- DiRT Rally is unaffected, though this isn't a huge issue as all effects work fine as far as I can tell.
- F1 2015 running natively is missing wheel weight, other effects seem fine. Running under Proton the wheel weight is there, just implemented as autocentering. Odd, but I guess it works.
- Euro Truck Simulator 2: Most effects work fine, only issue I'm seeing is with the 'Force feedback damper' setting.
Sometimes Euro Truck Simulator 2 twitches a bit, apparently it generates a single sine pulse that it likes to sometimes play. For some reason, it also sometimes reverses the direction of the pulse, switches again and repeats a couple times. Occasionally, this is accompanied by a pretty big spike in the effect strength, which results in some twitching. Not really sure what I should do about it, since the spike is "visible" in ffbwrap
logs, but doesn't feel like the devs would've intended something quite so jarring. DiRT Rally 2 also has some slight twitching, but it uses the constant effect and it feels a bit more like it belongs since you're driving on dirt roads with rocks and stuff instead of smooth asphalt. Incidentally, DiRT Rally 2 doesn't twitch on asphalt, so I guess it's intentional?
from hid-tmff2.
Sometimes Euro Truck Simulator 2 twitches a bit, apparently it generates a single sine pulse that it likes to sometimes play. For some reason, it also sometimes reverses the direction of the pulse, switches again and repeats a couple times. Occasionally, this is accompanied by a pretty big spike in the effect strength, which results in some twitching. Not really sure what I should do about it, since the spike is "visible" in
ffbwrap
logs, but doesn't feel like the devs would've intended something quite so jarring.
Can you post the ffb log lines where the pulses happen?
I did a bit of debugging using ETS2 for the G29 wheel.
Are you using the demo? I think there were differences between the demo and the game some time ago.
from hid-tmff2.
Here's one, they're usually pretty similar. If you'd prefer the whole logfile, I can add it to the repo somewhere.
The 'spike' I was talking about is the magnitude rising to about 2000, in this case 1914 at max, with direction changes between almost every packet. The magnitude at 'idle' is about 200-400, and highest peak I've so far seen was about 2700.
This was captured with the full game.
000147332664 > UPLOAD id:0 dir:49152 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:205 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000147332667 < 0 id:0
000147332669 > PLAY 0 1
000147332670 < 24
000147340508 > STOP 0
000147340519 < 24
000147340523 > PLAY 0 1
000147340526 < 24
000148680575 > STOP 0
000148680594 < 24
000148680599 > UPLOAD id:0 dir:49152 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:211 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148680601 < 0 id:0
000148680603 > PLAY 0 1
000148680605 < 24
000148687626 > STOP 0
000148687639 < 24
000148687643 > PLAY 0 1
000148687645 < 24
000148735782 > STOP 0
000148735796 < 24
000148735800 > UPLOAD id:0 dir:49152 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:226 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148735803 < 0 id:0
000148735805 > PLAY 0 1
000148735807 < 24
000148743829 > STOP 0
000148743840 < 24
000148743844 > UPLOAD id:0 dir:16384 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:226 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148743847 < 0 id:0
000148743848 > PLAY 0 1
000148743850 < 24
000148752090 > STOP 0
000148752106 < 24
000148752114 > UPLOAD id:0 dir:49152 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:516 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148752121 < 0 id:0
000148752125 > PLAY 0 1
000148752130 < 24
000148759477 > STOP 0
000148759489 < 24
000148759494 > UPLOAD id:0 dir:16384 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:516 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148759497 < 0 id:0
000148759499 > PLAY 0 1
000148759501 < 24
000148775869 > STOP 0
000148775885 < 24
000148775891 > UPLOAD id:0 dir:16384 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:1050 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148775895 < 0 id:0
000148775898 > PLAY 0 1
000148775900 < 24
000148783656 > STOP 0
000148783668 < 24
000148783674 > PLAY 0 1
000148783677 < 24
000148796172 > STOP 0
000148796188 < 24
000148796194 > UPLOAD id:0 dir:16384 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:1540 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148796197 < 0 id:0
000148796200 > PLAY 0 1
000148796203 < 24
000148805153 > STOP 0
000148805163 < 24
000148805167 > UPLOAD id:0 dir:49152 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:1511 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148805169 < 0 id:0
000148805171 > PLAY 0 1
000148805172 < 24
000148812470 > STOP 0
000148812480 < 24
000148812484 > UPLOAD id:0 dir:16384 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:1511 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148812486 < 0 id:0
000148812488 > PLAY 0 1
000148812489 < 24
000148822764 > STOP 0
000148822774 < 24
000148822777 > UPLOAD id:0 dir:16384 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:1501 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148822780 < 0 id:0
000148822782 > PLAY 0 1
000148822783 < 24
000148830027 > STOP 0
000148830037 < 24
000148830041 > UPLOAD id:0 dir:49152 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:1501 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148830043 < 0 id:0
000148830045 > PLAY 0 1
000148830047 < 24
000148838529 > STOP 0
000148838540 < 24
000148838544 > UPLOAD id:0 dir:16384 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:1778 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148838548 < 0 id:0
000148838550 > PLAY 0 1
000148838552 < 24
000148847770 > STOP 0
000148847779 < 24
000148847782 > PLAY 0 1
000148847784 < 24
000148855376 > STOP 0
000148855393 < 24
000148855397 > UPLOAD id:0 dir:16384 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:1914 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148855399 < 0 id:0
000148855401 > PLAY 0 1
000148855402 < 24
000148862577 > STOP 0
000148862586 < 24
000148862590 > UPLOAD id:0 dir:49152 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:1914 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148862592 < 0 id:0
000148862594 > PLAY 0 1
000148862596 < 24
000148870134 > STOP 0
000148870144 < 24
000148870148 > UPLOAD id:0 dir:16384 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:1559 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148870151 < 0 id:0
000148870152 > PLAY 0 1
000148870154 < 24
000148878084 > STOP 0
000148878094 < 24
000148878098 > UPLOAD id:0 dir:49152 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:1559 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148878100 < 0 id:0
000148878102 > PLAY 0 1
000148878104 < 24
000148888304 > STOP 0
000148888314 < 24
000148888318 > UPLOAD id:0 dir:16384 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:873 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148888321 < 0 id:0
000148888323 > PLAY 0 1
000148888325 < 24
000148897413 > STOP 0
000148897425 < 24
000148897431 > UPLOAD id:0 dir:49152 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:873 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148897435 < 0 id:0
000148897439 > PLAY 0 1
000148897442 < 24
000148905325 > STOP 0
000148905336 < 24
000148905341 > UPLOAD id:0 dir:16384 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:328 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
000148905344 < 0 id:0
000148905346 > PLAY 0 1
000148905348 < 24
000148936769 > STOP 0
000148936788 < 24
000148936795 > UPLOAD id:0 dir:49152 length:70 delay:0 type:PERIODIC waveform:SINE period:70 magnitude:245 offset:0 phase:0 attack_length:0 attack_level:0 fade_length:0 fade_level:0
from hid-tmff2.
I remember fixing some corner cases with periodic effects, like maintaining the phase when updating an effect that is playing. I think it's not the case here since the effect is stopped before updating.
I guess those effects simulate the irregular rumble of a truck engine. I don't have the time to look at the code but I hope you don't mind that I try to help by throwing some guesses.
ETS2 seems to send ffb updates as fast as it can. Limiting fps by setting vsync on could change the way ffb works.
Also, in the driver, you could check that:
- The effect duration, period and phase are respected.
- The play count is respected.
- The usb kernel command queue isn't full.
You can use ffbplay
to play log files and debug them. The files can be edited by hand to play just the effects we want.
from hid-tmff2.
I don't mind at all, thank you.
Could you elaborate on what you mean by:
The effect duration, period and phase are respected.
I noticed that the wheel handles negative periodic magnitude to an extent, but manually phase-shifting the wave 180° resulted in slightly less twitching. And by magnitude I'm referring to the magnitude that's sent to the wheel, so effect magnitude scaled by effect direction. Since the effect direction changes 180° in this case, it essentially just switches the magnitude's sign.
Anyway, this technically doesn't respect the phase as requested by the effect upload, but instead more closely resembles what the effect "intends".
The play count is respected.
I'll probably need to double-check this, although in ETS2's case the play count is just one, followed by a stop command. I wonder if I maybe handle frequent start/stop pairs in a dumb way, as at the moment a stop command doesn't clear the `FF_QUEUE_PLAY-bit, so in theory if the commands are close enough to eachother I could be sending a start and immediately after a stop, due to how my current queue-system is implemented. Don't know if it is at all related, but something that came to mind.
The usb kernel command queue isn't full.
No such warnings in dmesg
.
from hid-tmff2.
Just noting here.
F1 2021 also works great just like 2020. Still using the same launch command as earlier.
@Kimplul Do you know if that SDL patch has made it mainline yet?
from hid-tmff2.
It's present in the 2.0.16 release. Don't know which version your distro ships with, but seems like the patch is getting out there.
EDIT: Run sdl2-config --version
to check which version you're running.
from hid-tmff2.
Hello guys,
Has any of you had any success in playing RaceRoom? I mean the force feedback works but seems to be inverted (after car starts it get pulled to the right and wants to stay there) while the other effects are fine. There is a inverse FFB
option which does not do anything for me. RFactor 2 works perfect out of the box. I've tried disabling Steam input, sadly no luck :(. Anyone with any experience with RRRE?
from hid-tmff2.
Hi @tperka, I opened up a separate issue about RRRE, see #39.
from hid-tmff2.
Related Issues (20)
- T300RS Not Detected in Steam & Games HOT 10
- Loading hid-tmff with secure boot enabled HOT 2
- t248 with latest firmware but "firmware version 2 is too old, please update." msg HOT 5
- Support other wheel modes with T248 HOT 1
- Thrustmaster TS-PC (TS Racer) support HOT 14
- No FFB in BeamNG with T300RS GT HOT 11
- T128P to be added? HOT 48
- No FFB in BeamNG HOT 4
- Issues on many games, how to debug and contrib HOT 1
- hid-tmff2 in NixOS HOT 4
- Regarding Licensing of hid-tminit and hid-tmff2 HOT 7
- T128 HOT 2
- Can we have a driver linux for the T128 Thrustmaster HOT 3
- Some Feeback on T248 Use HOT 12
- Thrustmaster TMX Support HOT 2
- Pedal recognized as button HOT 8
- T300RS GT Edition? HOT 1
- Forcefeeback Control HOT 3
- Instalation issue HOT 3
- FBB stops working from the moment I launch beamng. HOT 18
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hid-tmff2.