Best F1 2015 Settings for Thrustmaster TMX / T150

F1 2015 plays very well with a wheel. It actually has native support for the Thrustmaster T150, but not the Thrustmaster TMX, oddly enough, considering they are basically the same wheel. Thankfully, we are able to add native support for the TMX by editing a text file.

In either case, you can get a lot more out of your wheel and improve the experience greatly by adjusting a few settings. In this guide I will show how to add native support for the TMX, then go over the best settings to use for both wheels to get the best feel in game.

TMX Support

F1 2015 natively supports the T150, but not the TMX for some reason. You can still use the wheel but, by default, you won't be able to navigate the menus. We can correct this by editing a text file.

From your Steam Library folder, edit the file: steamapps\common\F1 2015\actionmaps\action_map_preset_win.xml

We are going to replace the section for the default Direct Input device and replace it with the specific bindings for the TMX. Find the section towards the bottom of the file for "directinput_default" and replace it with the following text:

<ActionMap actionMapName="directinput_default" deviceName="di_device_default" priority="5">
    <Action actionName="Accelerate">
        <Axis axisName="di_z_axis_rotation" type="uniDirectionalNegative" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Brake">
        <Axis axisName="di_y_axis" type="uniDirectionalNegative" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Steer Left">
        <Axis axisName="di_x_axis" type="biDirectionalLower" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Steer Right">
        <Axis axisName="di_x_axis" type="biDirectionalUpper" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Pause">
        <Axis axisName="di_button_7" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Gear Up">
        <Axis axisName="di_button_1" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Gear Down">
        <Axis axisName="di_button_0" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="DRS">
        <Axis axisName="di_button_9" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Talk">
        <Axis axisName="di_button_3" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Replay_BroadcastContinue">
        <Axis axisName="di_button_5" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Replay_BroadcastControlReplay">
        <Axis axisName="di_button_2" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Replay">
        <Axis axisName="di_button_2" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Replay_Exit">
        <Axis axisName="di_button_8" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Replay_Pause">
        <Axis axisName="di_button_4" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Replay_Rewind">
        <Axis axisName="di_button_0" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
        <Axis axisName="di_y_axis" type="uniDirectionalNegative" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Replay_Forward">
        <Axis axisName="di_button_1" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
        <Axis axisName="di_z_axis_rotation" type="uniDirectionalNegative" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Replay_Flashback">
        <Axis axisName="di_button_2" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Replay_NextVehicle">
        <Axis axisName="di_dpad_0_up" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Replay_PrevVehicle">
        <Axis axisName="di_dpad_0_down" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Replay_NextVehicleCamera">
        <Axis axisName="di_dpad_0_right" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Replay_PrevVehicleCamera">
        <Axis axisName="di_dpad_0_left" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu Left">
        <Axis axisName="di_dpad_0_left" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu Right">
        <Axis axisName="di_dpad_0_right" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu Up">
        <Axis axisName="di_dpad_0_up" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu Down">
        <Axis axisName="di_dpad_0_down" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu DPad Left">
        <Axis axisName="di_dpad_0_left" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu DPad Right">
        <Axis axisName="di_dpad_0_right" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu DPad Up">
        <Axis axisName="di_dpad_0_up" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu DPad Down">
        <Axis axisName="di_dpad_0_down" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu Select">
        <Axis axisName="di_button_4" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu Back">
        <Axis axisName="di_button_8" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu Start">
        <Axis axisName="di_button_7" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu Pause">
        <Axis axisName="di_button_7" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu Button3">
        <Axis axisName="di_button_2" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu Button4">
        <Axis axisName="di_button_9" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu Zoom In">
        <Axis axisName="di_button_11" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu Zoom Out">
        <Axis axisName="di_button_10" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Spectator_NextCameraType">
        <Axis axisName="di_button_2" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Spectator_NextCameraView">
        <Axis axisName="di_dpad_0_right" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Spectator_PrevCameraView">
        <Axis axisName="di_dpad_0_left" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Spectator_NextDriver">
        <Axis axisName="di_dpad_0_up" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Spectator_PrevDriver">
        <Axis axisName="di_dpad_0_down" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Spectator_SelectDriver">
        <Axis axisName="di_button_3" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Spectator_ViewEvent">
        <Axis axisName="di_button_3" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Spectator_Exit">
        <Axis axisName="di_button_4" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Use Reverse Camera">
        <Axis axisName="di_button_8" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Look Down">
        <Axis axisName="di_button_8" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="NextVehicleCamera">
        <Axis axisName="di_button_5" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="CarInfoSwipe">
        <Axis axisName="di_button_4" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Use Left Camera">
        <Axis axisName="di_button_10" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Use Right Camera">
        <Axis axisName="di_button_11" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu Page Trigger Left">
        <Axis axisName="di_button_0" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu Page Trigger Right">
        <Axis axisName="di_button_1" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu Page Left">
        <Axis axisName="di_button_3" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Menu Page Right">
        <Axis axisName="di_button_5" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Skip">
        <Axis axisName="di_button_5" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Quick Menu Up">
        <Axis axisName="di_dpad_0_up" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Quick Menu Right">
        <Axis axisName="di_dpad_0_right" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Quick Menu Down">
        <Axis axisName="di_dpad_0_down" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
    <Action actionName="Quick Menu Left">
        <Axis axisName="di_dpad_0_left" type="uniDirectionalPositive" deadZone="0.0" saturation="1.0" />
    </Action>
</ActionMap>

With this change, the TMX will work in the menus just fine. You will still get a message that the TMX is unsupported, but it can be ignored.

Thrustmaster Control Panel Settings

Unfortunately, F1 2015 does not have a Soft Lock feature, meaning that you can keep turning your wheel past the maximum steering angle for the car. The only way to get a proper steering lock is to set the rotation in the Thrustmaster Control Panel. I try to avoid this as I find it annoying to have to keep changing that setting when I load a different game. In this case, there is no other option.

Setting Value
Rotation 360°
Overall Strength of all forces 100%
Constant 100%
Periodic 100%
Spring 100%
Damper 100%
BOOST Off
Auto-Center by the game

Spring and Damper are not used in F1 2015, so can be set to any value without issue. As a general rule, I leave these at 100% since there are some games that require them.

BOOST should always be turned off. For an in-depth look as to why, see my BOOST Force Feedback Analysis.

F1 2015 Settings

In Settings > Customise Controls > Force Feedback Options:

Setting Value
Force Feedback On
Feedback Strength 80
Environmental Feedback 50
Wheel Weight 45

Feedback Strength is the overall strength of the force feedback. Adjust this higher or lower depending on your preference. The actual forces are calculated by the other two settings.

Environmental Feedback is the force you feel from the track surface, kerbs and going off track.

Wheel Weight is the primary force you feel in the wheel, based on the tire grip. Setting this too high overwhelms the wheel, making it feel heavy nearly all the time.

There is not much to configure with the force feedback, but I find these settings give a nice balance between feeling the forces of the wheel and the road effects.


In Settings > Customise Controls > Advanced Wheel Settings:

Setting Value
Steering Deadzone 0
Steering Linearity 20
Steering Saturation 0
Throttle Deadzone 0
Throttle Linearity 0
Brake Deadzone 0
Brake Linearity 0

I raise the Steering Linearity to make the wheel less sensitive when it is centered. This is more up to personal preference, so you may want to adjust this to your liking.

Conclusion

F1 2015 doesn't have the greatest force feedback, especially compared to later entries in the series, but it works. It's especially nice to have full menu navigation work with the TMX and not have to reach for a keyboard all the time.

Let me know if you have any comments or questions.

Question or Comment?