Saturday, June 28, 2014

Grid Autosport Genius TwinWheel F1 Calibration Sensitivity

I eagerly jumped into Grid Autosport only to find that my cheap Genius TwinWheel F1 isn't detected as a wheel, but as a direct input device. While I was able to map everything to the correct buttons / peddles / gear levers, once in game I found that the steering sensitivity was very low. There is no way to calibrate or configure the sensitivity in the control options menu.

I dug around the files and found that in the GRID Autosport\input folder (which for me, playing the game through steam is located at C:\Program Files (x86)\Steam\SteamApps\common\GRID Autosport\input) there is a file called dinput_default.xml. With out the game running, I opened this up and edited the following lines:

  <Action id="Steer Left">
    <Axis id="di_x_axis"   type="biDirLower" deadzone="0.2" saturation="1.0" />
    <Axis id="di_slider_0" type="biDirUpper" deadzone="0.0" saturation="1.0" />
  </Action>
  <Action id="Steer Right">
    <Axis id="di_x_axis"   type="biDirUpper" deadzone="0.2" saturation="1.0" />
    <Axis id="di_slider_0" type="biDirLower" deadzone="0.0" saturation="1.0" />
  </Action>

And changed it to:

  <Action id="Steer Left">
    <Axis id="di_x_axis"   type="biDirLower" deadzone="0.0" saturation="0.4" />
    <Axis id="di_slider_0" type="biDirUpper" deadzone="0.0" saturation="1.0" />
  </Action>
  <Action id="Steer Right">
    <Axis id="di_x_axis"   type="biDirUpper" deadzone="0.0" saturation="0.4" />
    <Axis id="di_slider_0" type="biDirLower" deadzone="0.0" saturation="1.0" />
  </Action>

Note that I changed the deadzone from "0.2" to "0.0" and the saturation from "1.0" to "0.4".

I played around with a few options for the saturation and feel that 0.4 worked the best for me. You may need to tweak it a little for your own liking.

After saving the changes I launched the game and then went back to the control options menu and re-selected "choose preset" and picked "Direct Input Device" again. I then had to again configure the buttons how I wanted them, but the wheel sensitivity was perfect in game.

UPDATE: I've now put in about 12 hours of play and another hour or so of tweaking around with the config file. I've found that I have to reselect the config every time I launch the game, so I took the time to understand the button names (because they differ between the config file, the in game display and what windows game device calibration tells me). So here is the complete dinput_default.xml file which I now have in my input folder:

<!-- Default action map for Direct Input -->
<ActionMap name="di_default" device_type="di_default" priority="16">

  <!-- In Game Actions -->
  <Action id="Accelerate">
    <Axis id="di_y_axis" type="biDirLower" deadzone="0.0" saturation="1.0" />
  </Action>
  <Action id="Brake">
    <Axis id="di_y_axis" type="biDirUpper" deadzone="0.0" saturation="1.0" />
  </Action>
  <Action id="Handbrake">
    <Axis id="di_button_3" />
  </Action>
  <Action id="Steer Left">
    <Axis id="di_x_axis"   type="biDirLower" deadzone="0.0" saturation="0.5" />
  </Action>
  <Action id="Steer Right">
    <Axis id="di_x_axis"   type="biDirUpper" deadzone="0.0" saturation="0.5" />
  </Action>
  <Action id="Change View">
    <Axis id="di_button_11" />
  </Action>
  <Action id="Gear Up">
    <Axis id="di_button_0" />
  </Action>
  <Action id="Gear Down">
    <Axis id="di_button_1" />
  </Action>
  <Action id="Look Left">
    <Axis id="di_button_5" />
  </Action>
  <Action id="Look Right">
    <Axis id="di_button_4" />
  </Action>
  <Action id="Look Up">
    <Axis id="di_z_axis_rotation" type="biDirLower" deadzone="0.3" saturation="0.8" />
  </Action>
  <Action id="Look Down">
    <Axis id="di_z_axis_rotation" type="biDirUpper" deadzone="0.3" saturation="0.8" />
  </Action>
  <Action id="Look Back">
    <Axis id="di_button_6" />
  </Action>
  <Action id="Pause">
    <Axis id="di_button_9" />
  </Action>
  <Action id="Instant Replay">
    <Axis id="di_button_7" />
  </Action>
  <Action id="Radio Car Health">
    <Axis id="di_dpad_0_left" />
  </Action>
  <Action id="Radio Rival Update">
    <Axis id="di_dpad_0_down" />
  </Action>
  <Action id="Radio Team Update">
    <Axis id="di_dpad_0_right" />
  </Action>
  <Action id="Radio Split Time">
    <Axis id="di_dpad_0_up" />
  </Action>
 <Action id="Radio TeamMate Push">
    <Axis id="di_button_10" />
  </Action>
 <Action id="Radio TeamMate Drop">
    <Axis id="di_button_8" />
  </Action>

  <!-- FE Actions -->
  <Action id="Menu Left">
    <Axis id="di_x_axis" type="biDirLower" />
    <Axis id="di_dpad_0_left" />
  </Action>
  <Action id="Menu Right">
    <Axis id="di_x_axis" type="biDirUpper" />
    <Axis id="di_dpad_0_right" />
  </Action>
  <Action id="Menu Up">
    <Axis id="di_y_axis" type="biDirLower" />
    <Axis id="di_dpad_0_up" />
  </Action>
  <Action id="Menu Down">
    <Axis id="di_y_axis" type="biDirUpper" />
    <Axis id="di_dpad_0_down" />
  </Action>
  <Action id="Menu Select">
    <Axis id="di_button_0" />
  </Action>
  <Action id="Menu Back">
    <Axis id="di_button_1" />
  </Action>
  <Action id="Menu Button3">
    <Axis id="di_button_2" />
  </Action>
  <Action id="Menu Button4">
    <Axis id="di_button_3" />
  </Action>
  <Action id="Menu Start Button">
    <Axis id="di_button_9" />
  </Action>
  <Action id="Fe View Tweak Left">
    <Axis id="di_z_axis"          type="biDirLower" deadzone="0.2" saturation="1.0" />
  </Action>
  <Action id="Fe View Tweak Right">
    <Axis id="di_z_axis"          type="biDirUpper" deadzone="0.2" saturation="1.0" />
  </Action>
  <Action id="Fe View Tweak Up">
    <Axis id="di_z_axis_rotation" type="biDirLower" deadzone="0.2" saturation="1.0" />
  </Action>
  <Action id="Fe View Tweak Down">
    <Axis id="di_z_axis_rotation" type="biDirUpper" deadzone="0.2" saturation="1.0" />
  </Action>
  <Action id="Fe View Tweak In">
    <Axis id="di_button_7" />
  </Action>
  <Action id="Fe View Tweak Out">
    <Axis id="di_button_6" />
  </Action>
  <Action id="Menu Left Shoulder">
    <Axis id="di_button_5" />
  </Action>
  <Action id="Menu Right Shoulder">
    <Axis id="di_button_4" />
  </Action>

  <!-- Replay/Youtube Actions -->
  <Action id="Replay Rewind">
    <Axis id="di_x_axis" type="biDirLower" deadzone="0.0" saturation="0.5" />
    <Axis id="di_dpad_0_left" />
  </Action>
  <Action id="Replay Fast Forward">
    <Axis id="di_x_axis" type="biDirUpper" deadzone="0.0" saturation="0.5" />
    <Axis id="di_dpad_0_right" />
  </Action>
  <Action id="Replay Pause">
    <Axis id="di_button_1" />
  </Action>
  <Action id="Replay Next Camera">
    <Axis id="di_button_11" />
  </Action>
  <Action id="Replay Prev Camera">
    <Axis id="" />
  </Action>
  <Action id="Replay Jump In">
    <Axis id="di_button_9" />
  </Action>
  <Action id="Replay Exit">
    <Axis id="di_button_2" />
  </Action>
  <Action id="Replay UI On Off">
    <Axis id="di_button_4" />
  </Action>
  <Action id="Replay Youtube">
    <Axis id="di_button_0" />
  </Action>
  <Action id="Youtube Drag Left">
    <Axis id="di_button_4" />
  </Action>
  <Action id="Youtube Drag Right">
    <Axis id="di_button_5" />
  </Action>
  <Action id="Youtube Speed Up">
    <Axis id="di_dpad_0_up" />
  </Action>
  <Action id="Youtube Speed Down">
    <Axis id="di_dpad_0_down" />
  </Action>
  <Action id="Youtube Upload">
    <Axis id="di_button_0" />
  </Action>
  <Action id="Youtube Exit">
    <Axis id="di_button_2" />
  </Action>

  <!-- Spectator Actions -->
  <Action id="Spectator Next Camera">
    <Axis id="di_button_11" />
  </Action>
  <Action id="Spectator Previous Camera">
    <Axis id="" />
  </Action>
  <Action id="Spectator UI On Off">
    <Axis id="di_button_4" />
  </Action>
  <Action id="Spectator List On Off">
    <Axis id="di_button_0" />
  </Action>
  <Action id="Cycle Forward On Board Cameras">
    <Axis id="" />
  </Action>
  <Action id="Activate Replay System">
    <Axis id="" />
  </Action>


</ActionMap>

5 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
  3. Figured out that first off we need to uninstall the driver that comes with the wheel (OEM driver) then let Windows install their driver what this does is allow for steering in game (GRID Autosport) before it turned left only in game. You still have to select Direct Input Device in game settings but using Windows drivers makes the wheel much better, and you can go to Device and Drivers in Contro Panel and configure the settings using the wheel and pedals like you would with a joystick.

    ReplyDelete