djyt / cannonball

Cannonball: An Enhanced OutRun Engine
http://reassembler.blogspot.com
635 stars 116 forks source link

Force feedback not working here #107

Open mstempell opened 3 years ago

mstempell commented 3 years ago

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 3 years ago

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

Kimet1970 commented 3 years ago

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!

mstempell commented 3 years ago

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.

Kimet1970 commented 3 years ago

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 3 years ago

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.

yepyepyep4711 commented 3 years ago

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:

lyzanxia commented 3 years ago

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

thewooll commented 2 years ago

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 2 years ago

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).

thewooll commented 2 years ago

@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 2 years ago

@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 2 years ago

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

0x15e commented 2 years ago

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