DiRT Rally

DiRT Rally

Näytä tilastot:
How to solve Direct Input problems with unsupported wheels
I was having some problems with my wheel that other people seems to be struggling with too and I've found a solution that works. It's a bit long, but if you're really aching to use a unsupported wheel, it may be worth it. (Sorry for any spelling mistakes, english is not my native language)

The first problem is that my input changes are never saved. I've tried some solutions posted here, but none worked. Changing all inputs to my wheel, pressing a button on the wheel at the start screen... Nothing worked. Every time I started the game, I needed to set everything again.

The second one is that my wheel is not officially supported, so I need to use "direct input" as a setting to be able to control the menus with the wheel. All is fine and dandy, except that the wheel have a huge deadzone during gameplay that makes the game unplayable!

The third one is that some menu inputs are not accessible using direct input. You can't change liveries, for example. Or change race settings, like daytime and weather. All of this is normally set to F3/F4 on the keyboard or LB/RB on Xbox controllers and there's no key binding for this in direct input and the keyboard keys won't work if you use direct input.

I've solved all those problems by editing the default direct input bindings stored in a XML file in the game directory. I mean, almost. Still can't get the game to save my input settings, but at least I can choose "direct input" and the game loads my config, saving me the trouble to set everything again, everytime.

Step 1: Find the input file.

This file is stored inside your Dirt Rally folder, which is stored in your Steam folder.
If you didn't choose a different folder when installing steam, it should be:
C:\Program Files (x86)\Steam\SteamApps\common\DIRT Rally\Input

Inside this folder, open the dinput_default.xml file.
This file don't store your settings, I believe you can't acess them from the game folders, but what this file holds is the inputs that are loaded when you choose the direct input preset. The trick is to make the game load what you want as defaut.

First, though, create a copy of the original file to serve as backup. You don't want to lose your original file! You may screw the file and make the game crash... or you may want to go back to the original defaults. MAKE A BACKUP.

Step 2: Remove the dead zone.

Opening this file may be a little scary, but fear not. You'll see there are those blocks called <Action id=etc etc etc... Each of these blocks are a different input. Locate the <Action id=Steer Left">. Everything that's beetween this line and the next "</Action>" is a input definition.

By default, several different inputs count as "steer left". The "<Axis id="di_dpad_0_left />" means the digital pad left. You can remove this line and the <Axis id="di_slider_0"..." too. Leave only "Axis id="di_x_axis". This is probably the wheel axis (at least it is for my wheel).

In the di_x_axis line there's the deadzone setting. It's by default 0.2, which means 20% deadzone. That's a good setting for a analog stick, but a terrible one for a wheel. You can set this to 0.0 to remove the deadzone completely. I left at 0.1, because my wheel sucks and 0.0 makes it too twitchy.

It's really necessary to remove the other lines? In my experience, if I don't do that, it doesn't work. The game will show dpad left as default and when I set the input for steer left with my wheel, the deadzone will go back to 20%. My guess is that's hardcoded in the game to set a new input to 20% deadzone. The solution, then, is to left only the x-axis there with my settings, so I won't need to change them in game, avoiding the deadzone overwrite.

Now, do the same to <Action id="Steer Right"> block and there you go, no more deadzone!

Step 3: Missing menu actions

If you open other input files, like the keyboard one or the Xbox, you will notice that it has some Action blocks that are missing in the direct input. The ones responsible for the F3/F4 keys are <Action id="Menu Left Shoulder"> and <Action id="Menu Right Shoulder">. Let's put them there! Copy and paste that after <Action id="Menu Start Button"></Action> block:

<Action id="Menu Left Shoulder"> <Axis id="di_button_7" /> </Action> <Action id="Menu Right Shoulder"> <Axis id="di_button_6" /> </Action>

You can choose which button will have F3/F4 behavior by changing the "di_button_7" part. Chose the button number you wish, but remember that the buttons begins at "di_button_0", which is the button 1. So, if you wish to use the button 5, for example, you need to set it to "di_button_4"

Step 4: Playing time!

Now enter the game and go to input settings. Load the Direct Input preset, remap the other controls to your liking, except the steer left/ steer right. If you change them, the deadzone will come back to haunt your dreams. Start a new event, test if you can change car liveries and be happy!

Step 5: Editing beyond!

If your game resets the input everytime, well... just edit everything in the direct input file to your liking! Choose what buttons will be default and be happy! You'll still need to enter the input menu in the game and choose the direct input preset everytime, but at least is easier than setting all the controls by hand.

The only tricky part are analog controls or pedals. They use X, Y or Z axis to register input and you'll have to discover which axis your wheel uses. The easy way to discover this is running the game and goind to the input menu. Choose a input to edit and press you pedals to see what the game detects. My accelerator register as Lower Z axis, and the brakes are Lower Z axis rotation (or something similar).

Here's what I used:
<Action id="Accelerate"> <Axis id="di_z_axis" type="biDirLower" deadzone="0.0" saturation="1.0" /> </Action> <Action id="Brake"> <Axis id="di_z_axis_rotation" type="biDirLower" deadzone="0.0" saturation="1.0" /> </Action>

If your input is reversed, like... accelerating when the pedal is not pressed, change the "biDirLower" to "biDirUpper".

In the same folder where the dinput file is there's another filed called "strings". There you can read all the inputs that exist, with their IDs. Good luck!
Viimeisin muokkaaja on Limao; 31.5.2015 klo 16.50
< >
Näytetään 1-4 / 4 kommentista
DoD 8.6.2015 klo 23.38 
Thanks for the detailed post, it should get more attention. I was able to change significantly the behavior of my old FF wheel. One thing I didn't understood is that the game is able to read the file for the configuration but does not save it when making changes in the game.

I can now change the liveries and enjoy much more the game.
My guess is that this file is not where the game saves your inputs, it's just a file that says which inputs are the default ones for each control type. The game must save your configs somewhere else, but I couldn't find it. So the trick was to change what the game thinks it's the default.

People say that the game will choose which controller to use when you press a button in start screen, so you would need to press a button in the wheel and it should load your settings. This doesn't work for me, though, the wheel doesn't respond at the beggining.
Case 12.6.2015 klo 13.27 
I was trying to find where the game saves its input config when I was creating my MS FFB Wheel preset, but couldn't find it either.

BTW, as for the axis configuration - apart from the lower/upper axis (typical for steering, for example), some controllers might also use the whole axis for a single control.

When setting up this kind of axis, you don't use "biDirLower" or "biDirUpper", you use "uniDirPos".

And if your single axis is also inverted (meaning that the value the axis sends actually decreases as you add input instead of increases - my wheel uses an inverted Z axis for brake), you'd set that axis as "uniDirNeg" to get a correct response from the game.
john 1.11.2017 klo 5.40 
Hi Guys... there's an ftec_porsche_wheel file in the input folder... any idea how I could get this working with the BMW GT2 wheel? Where does Dirt get the controlers name and map them accordingly? Greetings John
< >
Näytetään 1-4 / 4 kommentista
Sivua kohden: 1530 50

Lähetetty: 31.5.2015 klo 16.47
Viestejä: 4