djyt/cannonball

Force feedback not working here

mstempell opened this issue · 13 comments

Hello Chris,

I've set the wheel up again, so i tried Cannonball with it (release v0.38).
It's a Logitech MOMO Racing Force Feedback, the OS is Windows 10.

Analog controls are working fine (installed driver provides splitted bake/accel, inverted the axis for those in config.xml).
When using simple rumble, the wheel rumbles on the side of the road and when crashing the car.

But when i try the "haptic" force feedback, nothing occurs.
The wheel stays in his default bland strength (as when the software doesn't handle force feedback).
I tried different values from 0 to 10000 and then -10000, nothing.

The force feedback works fine in Richard Burns Rally and Burnout Paradise, as examples.

👉 Do you got an idea on this, or something i should test?

Thanks in advance and congrats on all the new enhancements.
Can't wait to extract the 3DS music, to hear chibi-tech's freestyle jam on the game. 🎶

djyt commented

I haven't tested CannonBall with a wheel for a little while. In the coming weeks, I'll grab my racing wheel (it's in the loft) and see if something has broken.

In the meantime, would you mind trying this old release (from 2014!) and letting me know whether this still works? Note that the config.xml won't be compatible with the latest CannonBall, so install it to a separate location.

cannonball-v03-w32.zip

Testing that old above version 0.3 (from 2014)...
Contrary the last recent versions...
Now the Force Feedback works fine with my older Microsoft Forcefeedback!

Ah yes indeed, Force Feedback emulation of Deluxe mechanism is working fine on my Logitech MOMO Racing Force Feedback with this old v0.3 build.

Does that old version 0.3 use SDL to emulate FFB too, right?
An old 32 bits version of SDL.dll?
A possible bug in the last versions code?
Or maybe a incompatibility between 64 bits softwares (or even 64 bits SDL) and my old Sidewinder?

djyt commented

Yes, the old build is 32 bit and SDL 1.

I will aim to investigate in the coming weeks. Ideally, I'd like to nuke the Direct X code and move to SDL 2 for this stuff.

For what it's worth, using the 0.3 version, I am also able to make my PS2 controller, connected with a USB adapter, rumble. Two things I've noted:

  • it rumbles correctly when you go offroad or crash, but it also rumbles as soon as you turn, even just a bit.
  • the analog setting reacts as expected, meaning "on" will make the right joystick control the gas, while "analog on wheel only" will use buttons for that. I mention this because this doesn't work in the current version. "on" will behave like "analog on wheel only" in the old version, while "analog on wheel only" will not work at all.

Same for me, FFB works great on v0.3 , broken on newer builds

First to say I really LOVE Cannonball so a huge thank you for the continued development :)

I'm using a Logitech G920 wheel on W10 and also missing FFB issues on the latest build. I've tried version 0.3. It's better, but the FFB is triggering very gently all of the time when turning left or right once you get past around 20 degrees. I've played with all the settings and can't figure out why this is happening...

0x15e commented

Just wanted to mention I'm having the same issue with my G29 wheel (under Windows).

Originally I thought I was just configuring things wrong so I used this SDL2 controller tester under Linux (since it was easier) to check on some things. When the wheel is in PS3 mode, everything seems to work, aside from the pedal axes being strange (they go from -32768 to 32767 instead of 0-32767). When it's in PS4 mode (as it should be for PC - more buttons are supported and axes are more sensible), the tester has problems with recognizing all the inputs and displays an error about opening the haptic device. This was on Debian 9 with whatever libsdl2-dev package is in the repos so it's probably pretty dated.

Now, back to Cannonball in Windows, when I have the wheel in PS3 mode, it hardly works at all due to the funky pedal axes. In PS4 mode, I can get everything to work except the haptic feedback (and it what does work works great!). I did try the older build but had even less luck getting it to work; most controls had no effect, even with several different mappings attempted in config.xml.

I wonder if this might be an issue with SDL2 more so than Cannonball. I found this issue in their tracker that indicates this wheel specifically may have had issues with an older revision.

I have a fair bit of dev experience, albeit more in business systems than game dev, but I may be able to have a look at things to see if there's an easy fix. I figure I can start by building with the current stable and git versions of SDL2 and go from there. If that doesn't do it, where is the best place in the Cannonball source to start troubleshooting inputs?

Edit: I just saw in the build instructions that you're using DirectX 8.1 for the force feedback support. I'll look into that as well. I wonder if this wheel's FFB support might only be supported in newer versions.

Edit 2: For what it's worth, a 32-bit build (using VS 2022) against SDL 2.0.20 and Boost 1.78 (and the DX81 SDK linked in the README) with the current git main at least activates the feedback (so there's some resistance on the wheel), which v0.34 doesn't do (the wheel just spins freely).

@0x15e I just replaced my G920 wheel with a G29 and experienced the same lack of feedback. Reading your 'edit 2' comment, did you successfully compile a custom version of Cannonball that fixed this issue? I would love to experience this... Thanks.

0x15e commented

@thewooll I was able to compile it so that it would at least enable the centering on the wheel but I never could get any other feedback to work. When I didn't hear back from the maintainer and realized there are already 5 open PRs on this project, I stopped working on it.

Edit: To be clear, I still have the build environment set up and would be willing to look into it again (mostly from the perspective of porting FFB to SDL2). I'm hesitant to spend the time on it if the project isn't being actively maintained, though, since I don't want to get into supporting a fork of my own.

J1mbo commented

Please do take a look @0x15e and hopefully the project owner will pick it up in due course.

0x15e commented

@J1mbo I'll see what I can do when I get some spare time but can't make any promises right now.