Thrustmaster FFB only one direction (needs alternative FFB like FFBPlugin)
Please Note: This form is the minimum required information for submitting bugs.
Removing this form may lead to your issue being closed until it is completed.
Platform / OS / Hardware: Windows 11
Flycast version: 2.5
Hardware: Thrustmaster T500rs Wheel
Description of the Issue
Thrustmaster requires a different type of FFB integration (see FFBArcade Plugin) or FFB will only work in one direction. I would use the plugin but can't turn off FFB in Flycast.
Debugging Steps Tested
Go into Initial D FFB test menu. You can only go left, not right.
In Settings > Controls > Your wheel > Settings, try setting Rumble power to 0%.
That results in no output to the wheel in my case.
I can also reproduce this with a T300 wheel so it affects Thrustmaster in general. Tried a workaround with FFB Arcade plug-in that has the "alternative FFB"-option but it will not talk to Flycast (anymore?).
Hi there,
I'm writing to propose a feature that would improve force feedback (FFB) support for Thrustmaster wheels in Flycast, particularly for users playing arcade racing titles.
🧠 Background
Some racing arcade games (especially Sega Ring and Naomi-based) output directional force feedback using legacy JVS-style values or raw directional vectors.
While Logitech wheels (like G29) interpret these signals correctly, Thrustmaster wheels often do not – resulting in:
Weak or completely missing force feedback
FFB that only works in one direction
Loss of self-centering or resistance effects
✅ Proposed Solution
Implement a toggleable setting (e.g., AlternativeFFB) that replaces directional force feedback vectors with a simple normalized linear force output, compatible with how Thrustmaster interprets FFB.
This concept is successfully used in Boomslang's FFB Plugin, where it's implemented like this:
AlternativeFFB = 1 AlternativeFFBMinForce = -5000 AlternativeFFBMaxForce = 5000
When enabled, the plugin simply maps the game’s internal FFB values into a safe, hardware-friendly linear range.
🔧 What would need to be done?
-
Add config/GUI toggle Example: EnableAlternativeFFB = true
-
Modify FFB force output routine If the mode is enabled:
Replace raw effect structures or directional vectors
Send a single linear force value within a set range (minForce to maxForce)
- Optional: Make force values configurable via flycast.cfg or the GUI
I hope this could be considered.
I pushed a tentative fix for this issue on the dev branch.
According to SDL, one should use SDL_HAPTIC_STEERING_AXIS instead of SDL_HAPTIC_CARTESIAN. It was introduced specifically for Thrustmaster wheels.
See https://github.com/libsdl-org/SDL/issues/7941
I did a quick Linux test with my G27 and it seems to work fine.
Please get the latest dev build and let me know if it improves things.
I just tested the latest DEV and I'm happy to tell you that it's reactiong exactly as it should. THANK YOU SO MUCH!!!
This is great news! Thank you for your feedback.
THANK YOU!