Play DirectInput games (like GTR2) on the Claw with full rumble and controller support!

Joined
Apr 30, 2025
Messages
53
I cannot express just how excited I am to share my findings here. I have been looking for info like this on the internet forever, and I believe nobody has puzzled the pieces together to have a solution like I have found.

So GTR 2 is my all time favourite racing game/sim, but these days I mainly play on my MSI Claw 8 AI+. That means that for input I essentially use an Xbox style interface. And while it technically works as a DirectInput device too (the protocol that GTR 2 uses), it has some limitations, such as the triggers are combined on one axis (so when both brake and accelerator are engaged on the two triggers, they cancel each other out, which is not ideal), and there is no rumble support.

There is also the other issue of not being able to properly navigate the game menus with a controller, as none of the pc games back then had that in mind. But nowadays when more and more people use handheld gaming pcs, such functionality would be very useful.

I can happily report that I have found a solution for all these problems: there is an application called Xidi, which basically translates an Xinput interface game controller (such as an Xbox controller, or the built in controller on the MSI Claw 8) into DirectInput, which was used in older games. This method works with any older game that uses the DirectInput protocol, not just with GTR 2.

So here is what this means: you will have full controller support, separate axes for both triggers (as they are supposed to be), full rumble effects (when you go on a curb on the left side, it rumbles on the left, when on the right side then it rumbles on the right, you feel when you bump into cars or crash, it's amazing!), and what's even more, you can assign mouse cursor, mouse buttons, and keyboard buttons too to the controller. I cannot describe how incredible this is! So I have assigned the keyboard arrow keys, space, Esc, Enter, mouse cursor and mouse buttons to the Claw 8's input devices, and now I can fully navigate all menus in the game. Basically it's a console like experience, as if the game was designed to work this way. An other additional and huge bonus, the sleep functionality is now usable with this game: before if I put the Claw to sleep during game, after wake up it lost controller connection, basically ruining my session. Now this issue never happens, I can put the device to sleep, wake it up anytime later, and just carry on playing, it is perfectly seamless.

I am still fine tuning some settings in the game, as by default the steering was way too twitchy, but I have already managed to dial most things in. Here are the in game settings I use for the controller in the game's advanced tab:

-Steering sensitivity: 10% (so in the middle it's not as twitchy to thumbstick movement, and steering is accelerated towards the end points)

-Throttle sensitivity: 100% (so it's more precise in the range where you need fine throttle control)

-Brake sensitivity: 100% (same reason as throttle)

-Deadzone for everything: 0% (this makes everything a lot more precise)

-Speed sensitive steering: 50% (depending on how fast the car is going the steering input is reduced, the faster you go the smaller the input reading is)

And in the force feedback section I chose rumble pad effects, full effects, and 100% strength.

Let me say this, the game feels amazing with these settings on my MSI Claw 8. And it runs with most things maxed out at like 7 Watts average, that's almost 10 hours of playtime on this device on one charge. I am super excited to play this game now whenever I am away and have some relaxing time. But I want to reiterate, this Xidi application and my mentioned settings work with any modern Xinput controller (such as any type of Xbox controller, and other handheld gaming devices too) and even better, with any game that uses the DirectInput protocol. I can't say how well rumble and gamepad control work in other games, but in the case of GTR 2 everything works and handles flawlessly on the Claw 8 now. And also the fact that basically there is nothing to install with this mod, you just copy a .dll file into your game's directory, and make a custom configuration file (I am happy to share my customized, ready to use file for GTR 2 if there is interest for it), and it's all done, it's literally a 20 seconds job.

So all I can say is if there are people, who play older racing simulators on handheld gaming devices, or simply just want to play such games with controllers, this is the way to do it. I am amazed nobody has really come up with the solution up until now, all the pieces have been out and available for years, I have just never seen anyone puzzling these things together for this amazing result. One reason probably is that everyone plays these games with steering wheels. But as handheld gaming devices with fully fledged Windows and Steam support are getting more and more popular, I believe there will be increasing demand for proper controller support in these amazing older games.
 
I just thought I would share some more detailed info, as I was asked about that in a private message. You can find all the info about Xidi on its Github page, but here are the exact things I did to make it work with GTR 2:

1, From Xidi/Win32 folder copy the dinput8.dll file, and paste it into your GTR 2 game folder (where the executable is).
2, Then you need to make a configuration file, which is basically just a text file you make, but you save it with .ini extension (not .txt). You need to name it as Xidi.ini, then you place it into the game folder too.

Here is the Xidi.ini file I made in Notepad (between the quotation marks), feel free to alter it as you see fit:

"
[Mapper]
Type = GTR2


[Properties]
UseBuiltInProperties = no


[CustomMapper:GTR2]
; Custom mapper settings go here.
; Imports all of the element mappers from ExtendedGamepad.
; This line is allowed to appear anywhere in the section, including between or after the element mappers below.
Template = ExtendedGamepad

; These changes are applied on top of the template.
ButtonLB = Keyboard(Esc)
ButtonRB = Keyboard(Enter)
DpadUp = Keyboard(UpArrow)
DpadDown = Keyboard(DownArrow)
DpadLeft = Keyboard(LeftArrow)
DpadRight = Keyboard(RightArrow)
StickRightX = MouseAxis(X)
StickRightY = MouseAxis(Y)
ButtonBack = MouseButton(Left)
ButtonStart = Keyboard(Space)


;The following lines are optional, they make only one virtual controller available in the game.
[Workarounds]
ActiveVirtualControllerMask = 0x01
"

Basically I have assigned the right thumbstick to control the mouse cursor, and a few important keyboard keys and left mouse button to controller buttons, so I can easily navigate the menus and control the whole game with the Claw 8. When you start up GTR2 the controller "Xidi virtual controller" should be displayed in the controller settings tab, and you can simply start assigning functions to it.
 
Also on default values the steering is way too twitchy (at high speed the car is basically uncontrollable), so I highly recommend going into the advanced game settings tab, to change these values:

-Steering sensitivity: 10-15% (so in the middle it's not as twitchy, and steering is accelerated towards the end points, lower percentage means less sensitivity in the middle)

-Throttle sensitivity: 100% (so it's more precise in the range where you need fine throttle control)

-Brake sensitivity: 100% (same reason as throttle)

-Deadzone for everything: 0% (this makes everything a lot more precise)

-Speed sensitive steering: 40-50% (depending on how fast the car is going the steering input is reduced, the faster you go the smaller the input reading is, higher percentage means more reduction)

And in the force feedback section I chose rumble pad effects, full effects, and 100% strength.
 
This is a slightly modified version of my Xidi.ini file for GTR 2. Nothing major I have just adjusted mouse speed as by default I found it way too fast.

[Mapper]
Type = GTR2

[Properties]
MouseSpeedScalingFactorPercent = 50
UseBuiltInProperties = no

[CustomMapper:GTR2]
; Custom mapper settings go here.
; Imports all of the element mappers from ExtendedGamepad.
; This line is allowed to appear anywhere in the section, including between or after the element mappers below.
Template = ExtendedGamepad

; These changes are applied on top of the template.
ButtonLB = Keyboard(Esc)
ButtonRB = Keyboard(Enter)
DpadUp = Keyboard(UpArrow)
DpadDown = Keyboard(DownArrow)
DpadLeft = Keyboard(LeftArrow)
DpadRight = Keyboard(RightArrow)
StickRightX = MouseAxis(X)
StickRightY = MouseAxis(Y)
ButtonBack = MouseButton(Left)
ButtonStart = Keyboard(Space)

;The following lines are optional, they make only one virtual controller available in the game.
[Workarounds]
ActiveVirtualControllerMask = 0x01
 
So I have been playing this game quite a bit recently, so I wanted to write down my slightly revised (I would say improved) settings for the controller within the game:

-Steering sensitivity: 10-15% (15% for more skilled drivers, 10% for most people)
-Throttle sensitivity: 100%
-Brake sensitivity: 100%
-Deadzone for everything: 0%
-Speed sensitive steering: 60-70% (60% for more skilled drivers, 70% for most people)

I honestly think these are the best sensitivity settings for the game. I think the original 40-50% range I recommended for "Speed sensitive steering" was still too twitchy depending on car. The Lamborghini Murcielago is certainly difficult to keep it under control at sub 50% values. I also want to mention I use Kontrolfreek long thumb stick extensions (the longest ones with the red concave rubber head), they help a lot with precise steering (and are also great for fps games).
 
Last edited:
Back
Top