Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FFB Lacking Detail in A-B Comparissons with Windows [Moza R5 & Ubuntu 22.04] #18

Open
Done-In-60-2nds opened this issue Aug 4, 2024 · 19 comments
Labels
moza needs retest Needs further testing question Further information is requested

Comments

@Done-In-60-2nds
Copy link

In A-B comparisons to game-play under windows, I've noticed that there is significantly greater detail in force feedback effects under Windows, even when using the same in-game and base settings. Is this normal? Is there currently any way to troubleshoot this issue?

@Lawstorant
Copy link
Contributor

There may be some differences du to how pidff currently handles envelopes. Other than that, it could be that the translation from windows is not perfect.

I did some work on envelopes to make the FFB better and for it to work with games like rFactor 2 ere: #16

@Lawstorant
Copy link
Contributor

@Done-In-60-2nds
Could you list out the games you tested? I may be able to compare them as well. Apart from the envelope stuff, I compared the HID data that's sent on windows and linux to the wheelbase and it's identical in 99% of cases.

@JacKeTUs
Copy link
Owner

JacKeTUs commented Aug 8, 2024

@Done-In-60-2nds, can you please check if new version will fix effects for you?

@JacKeTUs
Copy link
Owner

JacKeTUs commented Aug 8, 2024

@Lawstorant, we probably should write some tests for ffbplay (https://github.com/berarma/ffbtools) to see if every effect/combination will work with our changes

@Lawstorant
Copy link
Contributor

Sure, I could do it as the included sine test is a good starting point (it has constant force emulation test). Just have to add other types of effects and maybe make the transitions faster, as 5 seconds is just a bit too long.

@JacKeTUs JacKeTUs added question Further information is requested moza needs retest Needs further testing labels Aug 8, 2024
@Lawstorant
Copy link
Contributor

effect-test.ffb for ffbplay is now available in the main branch.
@Done-In-60-2nds could you give it a try? We don't be able to help if you won't provide additional info.

@Lawstorant
Copy link
Contributor

@JacKeTUs maybe this should be closed as we didn't hear back in over a month?

@JacKeTUs
Copy link
Owner

Honestly, I'm against "closed because of no response" thing. Issue was there, maybe somebody too could verify it / check it

@gator-git
Copy link

gator-git commented Oct 31, 2024

I can A-B test it both under Linux and & Windows, I can only possibly test it currently with Forza Horizon 5. I will update you guys on the results.

I have Moza R9V2 if that information is indeed required.

@JacKeTUs
Copy link
Owner

JacKeTUs commented Oct 31, 2024

If you could test it, that would be great!
Also, if you notice that something off, could you, please, record USB traffic with Wireshark on both systems with ~similar conditions? Like, maybe, damper is more stronger/weaker on one system, then we could look into .pcap files and see if game/wine outputs different commands/gain, etc...

@gator-git
Copy link

gator-git commented Nov 1, 2024

So a small update,
Since I’m not entirely sure what a “dumper” is (I apologize for my lack of familiarity with these terms; I should’ve done more research before posting), I left all values in Boxflat at their default settings, and the in-game settings are also on default.

To keep the testing consistent, I plan to run the same event in Forza Horizon 5 on both Windows and Linux. I was able to capture a .pcap file for Linux (with lsusb being a huge help in identifying the Wheelbase connection). However, on Windows, I'm having trouble identifying which USB bus the Wheelbase is connected to. This would allow me to filter out other devices and reduce noise in the communication data between the Wheelbase and the host, which would make it easier for you to identify.

I am at my wits end on identifying the USB bus connection for the Wheelbase in Windows. Is there a different approach I should take ? I’d appreciate any pointers.

@JacKeTUs
Copy link
Owner

JacKeTUs commented Nov 1, 2024

Damper - Force against speed of the wheel, wheel is harder to turn in general, and it de facto defines maximum speed you can turn the wheel with
Inertia - Force against acceleration of the wheel, wheel is slightly harder to turn at the beginning of the motion
Friction - Force against any movement of the wheel. Virtual effect is very hard to notice, because every (and i mean every) wheelbase have some friction because of the nature.

Spring - Force value is a proportion of distance from the center (or offset point) - wheel always trying to return to the center / offset point.
Constant Force - whatever force game outputs. It's the main way to games output whatever they want.
Sin Force - Force value is defined by sin(t) function, where t - is the time. There is also coefficients, period, etcetc. Game can use it for simulating "engine rumbling"
Square Force, Triangle Force - Force value is defined by square form or triangle form (literally). May be used for simulating crashes/bumps. (at certain time wheel suddenly turns left and then back - square, or slowly turns left and then suddenly back - triangle)

Games usually just uses Constant Forces and Dampers/Inertia. Sin/Square/Triangles are not used so much. Constant Forces are updated by games at high frequency, and Dampers/Inertia/Friction usually just initialized at the beginning of 'driving', and stays there until you change the car/change the track.

More info: https://learn.microsoft.com/en-us/previous-versions/windows/desktop/ee417541(v=vs.85)

@JacKeTUs
Copy link
Owner

JacKeTUs commented Nov 1, 2024

For USB identification in Windows i can only suggest starting recording before connecting wheelbase to the PC, and then watch Wireshark window for new usb devices... :(

@Lawstorant
Copy link
Contributor

Heh, as I spent countless hours with Moza and Wireshark, you'd want to look for URB_INTERRUPT packets with data starting with 7e. This indicates serial messages from PitHouse. HID data will be available on the same bus.

But to seve you the trouble, I know that the data from games to the wheelbase is exactly the same on Windows and Linux, now that we're fixing the direction to 0x4000 (9000). That's why I doubted the OP in the first place. With My R9 V2, I can't feel any difference between the two OSes.

Oh, and Forza Horizon might not be the best title to test FFB. Well, it might be one of the worst :P

@gator-git
Copy link

gator-git commented Nov 1, 2024

@Lawstorant If that’s indeed the case, capturing USB traffic for this particular game might not provide useful insights. However, I’m still noticing a difference in detail on Linux compared to Windows, which could suggest FH5 (or possibly the Wine calls) as the source of the issue. Do you still want me to test Forza regardless?

To verify, I’ll test with Assetto Corsa to see if any differences appear between the two operating systems. Thanks again for the insights, @JacKeTUs and @Lawstorant!

OS: Nobara Linux ( forgive me :'( )

@Lawstorant
Copy link
Contributor

I did majority of testing with EA WRC and GT Legends/rFactor 2. The latter two use sine efdect to emulate constant force

@gator-git
Copy link

Apologies, got bogged down with exams and the like, I did test it nonetheless with Windows and Linux on Forza Horizon 5 using the default settings and the same in game events (I did this since I found the biggest difference in FFB detail in this game.)

.pacp files Linux : https://drive.proton.me/urls/WG24XXP95R#6NHPDR2z4kte
.pacp files Windows : https://drive.proton.me/urls/XBTA44CGTR#77D3OZvpjQcE

Wheelbase on windows usb.src == 2.10.3 or usb.dst == 2.10.3
Wheelbase on Linux usb.src == 1.6.3 or usb.dst == 1.6.3

@Lawstorant
Copy link
Contributor

I'd say the issue there is that on Windows, Pit House is injecting a .dll file into Horizon to make the FFB better. It's still quite bad, but feels a bit better than stock. You could try fishing out this .dll. file and adding it on linux as well.

@Lawstorant
Copy link
Contributor

Instead, you can use something like wheelcheck.exe and see for yourself, that the values are identical.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
moza needs retest Needs further testing question Further information is requested
Projects
None yet
Development

No branches or pull requests

4 participants