Joystick calibration for My Summer Car

Download

Get v1: First public release.

Introduction

This mod implements in-game joystick calibration for My Summer Car. This is sometimes needed for these reasons:

In addition, this mod implements adjustment for deadzone (more precise than the in-game one) non-linearity.

Installation

Note: This mod currently doesn't use ModLoader, so don't try putting the .dll in the mods/ folder. It will not work. Follow the instructions instead.

  1. Go to C:\Program Files (x86)\Steam\steamapps\common\My Summer Car\mysummercar\_Data\Managed (adjust the path if necessary if different Steam/steamapps directory is used).
  2. Make a backup of cInput.dll there.
  3. Unzip cInput.dll from the .zip there (overwriting the original cInput.dll).

Uninstallation

  1. Go to C:\Program Files (x86)\Steam\steamapps\common\My Summer Car\mysummercar\_Data\Managed (adjust the path if necessary if different Steam/steamapps directory is used).
  2. Replace the cInput.dll there with the original one you surely made a backup of.
  3. If you failed to make a backup previously, open Steam and Verify game files.

Usage

Here's a description of what all the panels in this mod do. For the impatient, the section Calibration steps is where the actual calibration is done.

Opening the calibrator

Pause the game and press the 'Calibrator' button in the top left corner to show and hide the calibrator UI:

Debugging panel

In the top right corner, you will see the state and configuration of each joystick axis mainly for debugging:

Here's a description of what those fields mean:

Calibration steps

In the bottom right corner, you will find buttons for doing the actual calibration.

To actually do the calibration, just go through each row of buttons from top to bottom:

  1. Select the joystick and axis to calibrate with the Prev/Next joystick and Prev/Next axis buttons.
  2. Select the type of the axis with the 0 .. 1 and -1 .. +1 buttons. Basically:
  3. Move the axis to its minimum position, then press the Set Min button.
  4. Only for axis ranging from -1 .. +1: Leave the analog stick/D-pad/steering wheel centered, then press the Set Mid button.
  5. Move the axis to its maximum position, then press the Set Max button.
  6. Check the Final column from the top panel for that axis to see that the axis now works correctly.
  7. It might be necessary to re-bind the axis in the game settings (the calibrator detects and turns an inverted axis into non-inverted).
  8. Repeat the steps for all the other axes of the joystick.
  9. Hit the Save calibration button to save the changes. **There is currently no auto-save of settings

Deadzone and non-linearity adjustment

For deadzone adjustment, edit the number in the DedZon column manually. This adjustment is independent of the one in-game, so you should set the slider in the game options to zero to avoid any weird behaviour.

For non-linearity adjustment, edit the number in the Gamma column manually. Try values in the 0.5 .. 2.0 range. Default value of 1.0 gives a linear response (no non-linearity).

To see effect of these fields more clearly, the axis selected with the Prev/Next joystick and Prev/Next axis will be shown in the graph panel:

For example, I use a value of 1.25 (graphed above) with my old and crappy Logitech Driving Force wheel, this makes it less 'twitchy' during straights.