DirectInput effects

now when I think of the friction,

the metric is axis rotation speed,
and when there is any speed, it should give force output equal to negative/positive coefficient.
But as the rotation speed is likely in the original USB PID spec told as axis units per millisecond, it will become difficult to tune effect as the output magnitude would depend on the lock-to-lock steering range. The stability of the output would need to be generally tuned - it was not important on low-end game controllers or game pads, but is very important on strong direct drive servo motors. Therefore to output suitable result on something that is not dependent on any other setting on the wheel base, there needs to be something else used, and the degrees per second is used instead.

However, there needs to be some magical scaling factors to get some believable friction and damping outputs. And, how should one then take the saturations into account, as the output is something else than what was intended? I have an idea for this, but so far haven’t seen any game that would use them either.

So, condition effects seem to be a bit of black magic, and having had a look at some available implementations on Github, it seems that our firmware is not the only one that has some difficulties in this regard.

Sometimes a good idea turns out to be difficult, even impossible to realize. From time to time one is waking up in the morning and has the perfect solution. And there is stuff there is no solution.
With a good steering wheel (that is made for a car class like F1, rally, GT), and simulations that deserves this title, the Simucube 2 product line is almost perfect. It’s sure the best DD at the moment.
TD should be clean and puristic. If we get titles with FFB made for wheels TD doesn’t need much functions.
I myself would prefer to have dynamic fine tuning effects that are working situationally, but it’s better to have them when the suit, instead of having some even you don’t really understand.
Paddock looked like a good idea. But presets made for the same title include settings so contradictory, I doubt it is helpful, more the opposite. This is not your fault.
Hang in there, you doing a great job

I am wondering if there is some reference implementation of the FFB driver using all these effects, or SDK examples from Microsoft.
Like this DI Spring testing project which seems like based on “example from Microsoft”
All consumer wheel manufacturers including the cheapest ones seem to figure out all these effects long ago, the whole DirectInput is an ancient API.

Please keep trying. It might be tough but it does seem odd that the SimuCube seems to be the odd one out that doesn’t support DirectInput Effects. I’ve had a G27 and an AccuForce and they just worked out of the box.

iRacing’s WheelCheck can be used to test the condition effects with various settings. There is also information for the currently uploaded effects to the device, their state (playing, stopped, etc.) and all dinput parameters updated in real time. It’s very handy utility. (Unfortunately the effect gain cannot be tested, but all other parameters are there.)
I’m on the alpha Fw., so cannot test the condition effects currently. On the previous Fw. both the spring and damper generally felt OK, with offset, saturation and coefficient not having any effect on the damper, IIRC.

They don’t define how those metrics (position, velocity and acceleration) are measured internally by the device. IMO if the given normalized logical coefficients, saturations and offsets are scaled to the unit range of the device and then applied to the formula, it would be much easier to get stable results than the other way around.

1 Like

There is support, but the effects are poorly tuned due to no sim racing titles using much of them these days. Also I’ve found some bugs on my own.

  • @logos kindly reported an issue where effect gain wasn’t taken into account. Fixed.
  • Friction and Damping didn’t take either coefficients or the gain into account (can’t remember which). Fixed.
  • Sine effect as used by some games didn’t work after the firmware rewrite. Fixed. I just drove GTR yesterday with FFB Effects set to High in the UI, and got somewhat believable FFB.

Still on the list is to

  • Have a look at sawtooth up/down effects, triangle effect, and square wave effect.
  • Have a look at deadband and saturations for friction and damping. I find it hard to believe that the games that made extensive use of these effects ever imagined how different the FFB effects feel on a DD wheel compared to a G27 or other pre-2010 tech.
  • See if any game uses inertia effect - likely it is not still high on the list of things to implement.

At the end, there will be a beta release for you all to test and report whether or not the friction and damping are good, and to get feedback on the other issues reported recently.

6 Likes

Super! So glad this is being worked on.

Any plans to look at the loss-of-center issue?

Probably not but given the proper ability to configure them you can come up with very pleasant feeling values.

There is a beta now available for testing - please PM me and I’ll add you to that discussion.

Is it only for direct input or firmware in general? :slight_smile:

Only changes are to the Directinput effects and the USB interface to attempt to improve device combatibility.

To me this looks like a hardware issue. Does the error persist if you do not reset center point but cycle the power instead?

I really, really doubt it’s a hardware issue as every game works fine except those that use DirectInput Effects and only when they’re enabled.

If you try GTR2 with my settings, you’ll see.

I can help guide you if you’re not familiar with GTR2.

Any FFB effect calculations do not do anything that is related to how the wheel position is being read from the servo drive, so it is a real mystery.

I can try to get GTR2 from somewhere… but where? I only have GTR on my Steam account.

edit: OK, I thought I had bought it. It is available on Steam, and I just bought it. Will be able to test sometime next week.

1 Like

Thanks

I’ll try the beta in the meantime and see if it changes anything

I found something strange:
When I played with the direct input sliders all of a sudden this happened ! Sine wave was activated! WRC 9

Just wanted to come back and say thank you to @Mika for all the DirectInput Effects work done here

I haven’t had any complaints for months and months and the last issue I was having with tanking FPS under braking (due to an enabled DIrectInput Effect that triggers on braking ie. brake vibe) doesn’t seem to be tanking FPS anymore, after a few TD releases.

So, thanks again for all the work you put into this :slight_smile:

PS. It looks like this thread ended abruptly but I think we had a lot of other discussion in a private beta firmware thread.

3 Likes

My fps still tank. Unless your fps issue just happened to be a different one from mine, I’d say it’s a game problem, not a problem with Simucube.

It’s easiest to test with GTR1 since it’s extremely single-threaded (or barely double-threaded). The issue is improved (but still present) in GTL and GTR2 (and so on) and therefore allows those games to be driven with higher framerates than GTR1.

GTR1 with 1 car at Anderstorp, 3440x1440, 4x MSAA + 4x SGSSAA, 16xAF, all game gfx max, and some text file stuff to improve gfx further (track and mirrors draw distance, mirrors resolution, possibly other things).

FPS, cockpit view while stopped in garage (except replay which is TV cam of a driven lap):

  • Replay (TV cam): 1300-1700
  • FFB off: 650
  • FFB low: 250
  • FFB medium: 250, curbs cause drop to 200
  • FFB high: 250, curbs and braking cause drop to 200
  • FFB full: 250, curbs, braking, throttle, cause drop to 200

With FFB full:

  • Rev-limiter: 1st gear, fps = 220
  • Rev-limiter 2nd and 3rd gear, fps = 210

…so the rev-limiter allows the fps to rise a bit from the 200 fps throttle FFB drop

  • Rev-limiter 6400 RPM = 223 fps
  • Rev-limiter 7000 RPM = 216 fps

…so the RPMs during the rev-limiter affect fps.

I’m guessing the reason why the “rev-limiter throttle FFB drop” isn’t as severe as the standard “throttle FFB drop” is because of all the tiny moments of throttle-cuts from the rev-limiter raising the fps (since the fps while off-throttle is normally 250 fps instead of the on-throttle 200 fps).

The strange thing is that the “rev-limiter throttle FFB drop” does not occur while the car is in neutral nor while the clutch is pressed in. The FFB feels (and sounds) identical during these moments so I don’t know why the rev-limiter throttle drop doesn’t occur anymore (ie, the framerate is at the full 250 fps). Weird!

GTR1/2 and GTL need a fix to enable them to use all cores: This is important because it basically doubles your framerate for free in those games.

You can do that with Process Lasso, Bill’s Process Manager, or with GTR2 the Crew Chief GTR2 Enhancements Plugin can be configured to enable this automatically.

But your FFB numbers hint it might be the same problem I had with DirectInput Effects.

What effects do you have enabled? I had things like Steer Vibe and Brake Vibe and it was very obvious watching an FPS counter that when I stepped on the brake, and got the Brake Vibe effect, that my FPS tanked dramatically. That’s what I haven’t noticed recently but I haven’t been rigorously testing it either.

Yes, the all-core fix is very important. There’s sometimes situations where it improves framerates like 3x or more. I’ve been using it for many years :). The games’ EXEs should also be patched with the 4GB patch fix which is important in some situations. Man, all these fixes are bringing me back 10, 15 years haha.

I purchased a fantastic little program which is extremely light on the system called dAffinity. It works fantastic! Process Lasso has lots of stuff going on, I wanted a lightweight program.
https://www.d7xtech.com/daffinity/

By the way, GTR 1 gets absolutely no improvements from all my tests with the “all-core” fix unlike the other games. I believe this means that GTR1’s engine is purely, 100% single-threaded.

If you’d like me to test anything with any ISI pre-RF2 engine-based sim, let me know. They’re what I spend most time, by far, playing.