I've been a little under the weather, so I haven't got to work on any of my projects this evening, but I thought I might share what I've found out thus far.
Firstly the idea about hacking the shifter was successful. If I NOP the up/down shifter functions I can manually set the shift position from 1 to 5. That should be great for pc shifters. Now Sega shifters only have 4 gears, but I might have a solution to that as well. I could merge gears 4 and 5 into a single gear. When you play outrun in manual trans mode there is a "rev" light that lights up when you need to shift. I could map hardcoded buttons to gears 1-4 but auto-shift up to gear 5 when you are in gear 4 and the rev light comes on.
I've also managed to NOP the gas as well and manually control it. It should be easy to block ALL control from the game and use my own direct input methods. The only one I worry about is the brake. The game seems to automatically put on the brakes at the end of the race. If I block it's control the car might keep going, which could end in unintended (and probably hilarious) results.
I think I've gleemed about as much FF data from the engine as I can figure out. Here is what I found:
X-Force: The amount of steering force on the wheel as well as direction, the most important value for a real wheel. Surprisingly (or to no surprise if you know sega) these values look almost identical to the values that controlled the tilt on the classic outrun cabinet.
Accel Force: aka the speed. Can be used as a multiplier for the x-force or in a fancy sim cockpit be used to adjust the y tilt. Also can be used to know when to turn OFF effects, like when you are in the menus.
Decel Force: aka the anti-speed. Can be used as a divisor for the x-force, a easy way to detect impacts for both wheel ff and gamepad rumblers, or in a sim cockpit to again adjust the y tilt.
Wheel Traction: aka are you on the road. Decreases as you go off road... again, great from gamepad rumblers and subtle wheel feedback.
Wheel Friction: aka are you off the road. Increases as you run through stuff, essentially the opposite of wheel traction. It could be used the same way and it's more sensitive (like it can tell when you are driving on wet roads ect.)
It should be noted that due to the way the tracks are lain out in the game, if you grind into an obstacle (like a guard rail) it effects these two values as you are off road and your accel/decel is effected so it can be used to detect those sort of effects as well.
Gear Shift Force: Anytime you shift gears, this quickly decreases down to 0 and then back up to 255. The game probably uses this to momentarily "pop" the rpm and speed of the car. For the truly hardcore sim cockpits it could be used for FF on the gear shift.
So I think I've got 90% of the data needed for real FF.........that's enough to fake it.
I had originally planned to simply use the newly released troubleshooter 2 to hook up outputs for the game, but considering how much game-specific math would need to be done, I might have to make a custom app. All of this data would need to be transformed to something mamehooker can use. Technically it can do it via it's extensive scripting system, but it would be a nightmare to write scripts for.
But right now I've got other apps that need finished. Stay tuned from more announcements on this project, but until then this is what I intend to add into 2006.
Fully configurable controls: Pedals, wheels and shifters can be used from any joystick and/or separate joysticks. Buttons can be on multiple joysticks as well.
True Shifter Hack: Choose between Up/Down Shifter, 5 Button Shifter or 4 Button Shifter
Cruise Control: It'd just be cool.
Outrun Radio: In game songs would be muted. You can setup your own playlist outside of the game and control it in-game via radio buttons. Actual radio stations (via internet radio) will probably be supported.
VR(view) Buttons: Outputs would be broadcast to control three view lamps. In addition, the current view would be monitored so three separate buttons could be mapped to each view.
Fully configurable force feedback: Each of the forces mentioned above would have an output broadcast. In addition different forces could be merged and optimized for wheel use, gamepad use and ect....
Restored Internet Multiplayer? I know where the server address strings are I the game. I also know there are various VPN apps that still support outrun 2006. If these vpn servers can be reached via URL, it might be possible to have the game auto-connect to these vpns instead of having to use a third party interface, which isn't exactly cab-friendly.
Hi def sprites? This could only happen if I figure out the texture format, so it's unlikely.