Ok, that was surprisingly easy. I found the analog value for the wheel, blocked it, and confirmed that I could adjust it manually in an analog fashion.
Is there anyone out there that's good at assembly hacking? The reason I ask is that while I can certainly write a wrapper for the game the change that needs to be made is so small that an exe patch might be better.
Here's what's going on:
The game reads the controllers via HID interface, which is nice because all the values will be the same. The X axis is 0 (full left) to around 65,000 (full right) or read as a float 0 to 10. Now the game does all sorts of nonsense to this value which I'm largely ignoring as it isn't important. Eventually it converts it to one of three values.... -2.0 (full left), 0 (centered), or 2.0 (full right). So yeah it makes zero sense... they took a game expecting a float of -2 to 2, an analog, float value and fed it one of 3 digital values even though they read a gamepad to get an analog, float value.
All that needs done is the joystick x axis, which I have the address to, needs to be multiplied by .4 to get the 4 integer resolution, subtract 2, to put the left values in the negative range, and store it in the game engines steering value, which I also have the address to. So three lines of assembly and it's fixed. Unfortunately code caves and assembly aren't my field of expertise.... reading it and writing it are two different things.
So if anyone can help me out let me know. Otherwise I can write a wrapper fairly easily. I'll go ahead and get the view value and the rpm so those can be fed to mamehooker as well. Did offroad thunder have force feedback?