This should be on par with (and perhaps even better than) XBOX wheels, as none of them had real force feedback and they all seemed to emulate XBOX controllers. As far as I know, this config is the first of its kind for GIMX that emulates a controller using a wheel, so feel free to use this as a base for other configurations.
This can be reconfigured for other wheels and some other XBOX games, however other games most likely need sensitivity and linearity tweaked. I tested this without modifications on Project Gotham Racing 2 and it was surprisingly very good out of the box, but needs some buttons rebound such as shifting. Midtown Madness 3 however was a completely different story and completely unplayable.
Since there is no way to implement H-Shifter, the paddles shift and the clutch pedal is handbrake.
I have extensively fine tuned this over the last few years to get this as linear and comfortable as possible, which was a challenge considering that there is no choice but to emulate an XBOX controller. I feel that it is good enough to be competitive now, though good luck keeping up with The Dean and Stribbers on the leaderboards or in multiplayer!
This is not plug and play with GIMX, you need a method to force wheel rotation to 270 degrees and enable the centering spring. Without the centering spring, your wheel will just rotate without any resistance and not return to center, so you absolutely need to enable it for it to be playable. With a Raspberry Pi, you can use Oversteer with the new-lg4ff drivers. You may tweak centering spring to your liking (I maxed mine out), but you MUST run 270 degrees or it will throw off linearity. I am running this on an original Raspberry Pi Model B, so you should be able to run this on anything without issue.
Included below is the GIMX config, my Oversteer config, and the bash script I use to quickly start all of this over SSH from my iPad. Let me know if you have any questions or issues and I'll be happy to try and help.
GIMX Config (RallisportChallenge2-2.xml)
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<root>
<controller id="1" dpi="0" type="XboxPad">
<configuration id="1">
<trigger type="" id="" name="" button_id="" switch_back="no" delay="0"/>
<mouse_options_list/>
<intensity_list/>
<button_map>
<button id="abs_axis_9" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="button" id="0"/>
</button>
<button id="abs_axis_8" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="button" id="2"/>
</button>
<button id="abs_axis_3" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="button" id="23"/>
</button>
<button id="abs_axis_4" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="button" id="24"/>
</button>
<button id="abs_axis_5" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="button" id="25"/>
</button>
<button id="abs_axis_6" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="button" id="26"/>
</button>
<button id="abs_axis_7" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="button" id="3"/>
</button>
<button id="abs_axis_10" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="button" id="1"/>
</button>
<button id="abs_axis_11" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="button" id="11"/>
</button>
<button id="abs_axis_1" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="button" id="19"/>
</button>
<button id="abs_axis_0" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="button" id="21"/>
</button>
<button id="abs_axis_7" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="button" id="6"/>
</button>
<button id="abs_axis_12" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="button" id="20"/>
</button>
<button id="abs_axis_9" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="button" id="10"/>
</button>
<button id="abs_axis_8" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="button" id="4"/>
</button>
<button id="abs_axis_10" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="button" id="5"/>
</button>
<button id="abs_axis_7" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="button" id="7"/>
</button>
</button_map>
<axis_map>
<axis id="abs_axis_14" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="axis" id="2" dead_zone="0" multiplier="-0.008" exponent="1.00" shape=""/>
</axis>
<axis id="abs_axis_13" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="axis" id="3" dead_zone="0" multiplier="-0.008" exponent="1.00" shape=""/>
</axis>
<axis id="rel_axis_0" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="axis" id="0" dead_zone="0" multiplier="10.00" exponent="0.25" shape="Rectangle"/>
</axis>
<axis id="abs_axis_9" label="">
<device type="joystick" id="0" name="G27 Racing Wheel"/>
<event type="axis" id="1" dead_zone="14" multiplier="-0.008" exponent="1.00" shape=""/>
</axis>
</axis_map>
<joystick_corrections_list/>
</configuration>
</controller>
</root>
Code: Select all
[DEFAULT]
mode = G27
range = 270
combine_pedals = 0
autocenter = 100
ff_gain = 0
spring_level = 0
damper_level = 0
friction_level = 0
ffbmeter_leds = 0
ffbmeter_overlay = 0
wheel_range_overlay = never
overlay_window_pos = 20,20
wheel_buttons = 0
Code: Select all
#!/bin/bash
startingrsc2="Launching Rallisport Challenge 2 Wheel Support"
echo $startingrsc2
oversteer -p rallisportchallenge2
gimx -c RallisportChallenge2-2.xml -p /dev/ttyUSB0