Eckers569 Posted April 24, 2023 Share Posted April 24, 2023 (edited) One of the frustrating things about Thrustmaster wheels and trying to emulate multiple arcade games, is that there is no way within the Thrustmaster UI to set custom profiles per game for the force feedback, pedal settings (combined or separate) or the wheel rotation angle. Take my preferred settings for the following 4 games for example: - Sega Rally - Sega M2 emulator. Pedals set to combined, a 260 wheel rotation angle and 60% FFB. - King of Route 66 - Flycast stand-alone emulator. FFB to be much stronger to make me a real trucker :-). Centre force applied by the wheel. - Burnout Revenge - xbox 360 Xenia-Canary. 120 wheel angle as my wheel is replicating the Xbox analog stick (via x360ce app), with centre force applied by the wheel. - Asseto Corsa - PC. Much higher 900 wheel angle for this modern driving sim and for the FFB centre force to be performed by the game It's a pain in arse to set these manually every time and a single 'best-fit' profile doesn't really cut it if you want an enjoyable experience from any of these games on your Thrusmaster wheel. There's a solution to this requiring 2 separate processes; one for the FFB gain/pedal settings and one for the wheel angle. You can run these process before the game launches in Launchbox that will then apply your preferred wheel settings automatically. I'm using Thrustmaster TC-PC racer with the TCLM pedals - I believe on the latest firmware. This wheel is DINPUT only. Other Thrustmaster wheels may utilise a slightly different Thrustmaster UI but the following principles should be the same and you can adjust any of the scripts or file paths accordingly. Not sure this will work though if you have a wheel that can be set to XINPUT (i doubt it). FFB Gain / Pedal settings: EDIT - NO LONGER WORKS SINCE LATEST 2023 DRIVER UPDATES - See comment below I got this from: Unfortunately, this method still doesn't let you automatically set your wheel rotation angle (we'll come on to that later). Essentially what they did was find the reg-edit location for the wheel settings, then manually saved/copied a profile there each time before a new game is loaded. However, batch files can do this part for you automatically. Your wheel will have it's own specific identifier but here's what worked for me. I needed about 6 different profiles to cover all of the different settings I wanted for all the games I like to play. First off. find where your wheel saves it's setting to. Type reg-edit in your windows search bar to load up Registry Editor. For me my wheel settings are held here - but this is specific to my device: [HKEY_CURRENT_USER\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\VID_044F&PID_B689\OEM\JoystickSettings\682760004] This is specific to my wheel and Windows only. When i recently moved to a new PC with the same wheel, the old numbers from similar path were different and it no longer worked until i edited all my scripts with the new path - you will need to use your own location/extension. Once there, right click on the last bit (682760004 for me) and export. This might be saved as your main default wheel settings. Save the exported file to a folder in the Controls folder in your Launchbox folder (i call mine Wheel Settings). Go back to the Thrustmaster UI and make the new setting you want for the next profile/game - pedal settings on the first tab and gain settings (on the 3rd tab). Save and exit. Go back to reg-edit and export the same folder again - creating a new file now for that profile. Save the new exported file as something memorable for the profile you want to apply. So i have 'bythewheel combined' which i apply to all my Sega M2 games, but 'bythegame-separate' for my modern racing sims. Repeat for each profile that you want to set that will cover all the games you like to play (i think i have about 6 different pedal/FFB combinations as my go-to's at the moment). Don't worry about rotation angle yet - just concentrate on profiles for separate/combined pedals and preferred feedback strength and centre spring for each type of game.. I did, and wasted time setting angles in these profiles that didn't update any way. I cant be bothered to rename them - so some of my examples below might look a bit confusing but just make sure you know upfront the type of thing you want to set and good naming conventions for them.This will create a .reg file for each export - If you right click to edit this file, it should look something like this: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\VID_044F&PID_B689\OEM\JoystickSettings\682760004] "DefaultWheelAngle"=hex:ff,00,00,00 "DefaultSpringIsPersistent"=hex:00,00,00,00 "DefaultSpringStiffness"=hex:88,13,00,00 "OverallGain"=hex:64,19,00,00 "SpringGain"=hex:10,27,00,00 "DamperGain"=hex:10,27,00,00 "InputAxisRemap"=hex:00,00,00,00 [HKEY_CURRENT_USER\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\VID_044F&PID_B689\OEM\JoystickSettings\682760004\0] [HKEY_CURRENT_USER\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\VID_044F&PID_B689\OEM\JoystickSettings\682760004\1] You can test out if this work by double clicking one of these files and then going to your Thrustmaster UI to see that the new wheel settings have taken effect. You’ll get a Windows message when you do this that you'll need to ok - but this can be turned off (i can't remember how at the moment, but will add later once it comes to me - i think it was either an option to not see it again in the message itself or it just doesnt happen when you use the launcher .bat file below for each profile so doesn’t interfere visually with the game bootup process. But select yes when your testing this out). Now for this to be automatic, you also need to set up additional .bat files for each profile. You can do this in Notepad, saving it as a .bat file extension. When saving, call these similar to each wheel profile you've set - for ease of reference and if you need to revisit in a few months when you've forgotten every thing:-). for my 'bythewheel combined.reg' I also have a supporting 'bythewheel combined - launcher.bat' When activated, this will automatically apply the appropriate reg-edit file. An example .bat for one of my profiles is : C:\Windows\regedit.exe /S "F:\LaunchBox Arcade\LaunchBox\Controls\Wheel profile\Wheel 255 bytgame separate.reg" Type similar into note pad, last bit is the name of the .reg export file and save as a .bat file. Therefore, I have 6 reg-edit export files for each profile with 6 supporting .bat files. In Launchbox, edit a game and add the appropriate profile .bat file as an additional app. Select 'Automatically run before main application'. Go through your driving games, adding links to the applicable profiles in the same way and that's it. When you load a game via LaunchBox, your custom pedal and FFB setting will be applied. Frustratingly however - you can't set the wheel angle this way. Really annoying as it does appear to be a setting in the exported reg-edit files. Here's how you can do that: Wheel angle: Nothing too clever here. The hardest thing was locating the window controller app name running in the background - (joy.cpl if you're interested) it took me ages. But all I've done from there is counted the keyboard tabs/alts etc required through the 2 Controllers/Thrustmaster screens to set to the wheel rotation angle setting using the keyboard instead of the mouse. An AHK scripts replicates these key strokes to set the angle, save and exit Thrusmaster UI all before the game loads. A different AHK script is required for each angle profile. I have different scripts for all the angles I require. Make sure you've verified the number/type of key stokes first as your UI might be different to mine - but this works for my setup: Note: my wheel is always the first controller listed in 'Game Controller' app. If it isn't, I unplug and re-connect all devices until it is 🙂 !!!! Sleep, 5000 Run, joy.cpl WinWait, Game Controllers,, 5 if ErrorLevel { MsgBox, WinWait timed out. return } if WinExist("Game Controllers") WinActivate Sleep, 300 Send {Tab 1} Sleep, 300 Send {Enter} if WinExist("Thrustmaster TS-PC Racer Control Panel (64-bit)") <<<<<presume if you've got a different wheel, your window will be called something else>>>>> WinActivate Sleep, 300 Send {Tab 2} Send {delete} Send {delete} Send {delete} Send {delete} Send 120 <<<<this is your desire wheel rotation angle>>> Send {Tab 3} Sleep, 300 Send {Enter} Sleep, 300 Send {Tab 2} Send {Enter} I recommend setting the all the sleep timings above to be longer while testing this out - that way you can see each step happening and trace where the process is falling over if it doesn’t work correctly. Once done for each profile angle, go to Launchbox edit a game and set this up as another additional app. Set it to 'Automatically run before main application' and 'Wait for exit' - that way it should load up the Thustmaster UI, change wheel angle, save and exit all before your game starts to load. You need to ensure your controller control panel is closed when you load a game else it will tab around somewhere else. Also, if you have kids, make they don't mess around with the wheel when a game is booting up. Here's what my 'Controls folder in LaunchBox now looks like: I need to change my file names names for the .bat/.reg files to better reflect the profile settings - as I didn't realise angle couldn't be set on the reg-edit before i set them all up. Hence best for you to figure out your different profiles up front and how'll you'll best recognise them in the future. And here's a game specific Additional Apps for Burnout Revenge. Chosen this one to demonstrate this process working even when i have a load of other additional app set up for this game (like facility to load up, control and stop a custom playlist because the games music doesnt work in Xenia, joytokey to manage my arcade buttons via JPAC, something to force stop the x360ce app when i exit the game - plus these wheel settings). Again, i need to change the app names in Launchbox to better reflect the underlying .bat and .ahk files I'm actually using (eg 270 Wheel setting is actually 120) - but you get the idea. Edited July 17, 2023 by Eckers569 Update to Thrusmaster drivers prevents regedit changes from effecting the wheel Quote Link to comment Share on other sites More sharing options...
Eckers569 Posted July 17, 2023 Author Share Posted July 17, 2023 (edited) The above steps for generating per game settings (pedals joint/combined, gain, auto-centre etc) only work with the older version of the Thrustmaster GUI drivers - 2021 or earlier (maybe 2022 if there is a version). I just updated to the 2023 version (3.TTRS.2023) and they've not only changed where the regedit settings are held, but also exporting them and re-running them in this location no longer has any effect on the wheel unless you actually change it in the Game Controllers GUI... You can see the settings change in regedit when you amend them in the controllers GUI - but it doesn't work the other way around (i.e. when you amend the regedit, then check back in the GUI). Furthermore, some newer games seem to require this latest version (F1 2022, for example) or the wheel just doesn't work - hence I haven't reverted back to the old driver version (which luckily i do still have saved - thank you, Thrustmaster's shitty update process 🙂) If you have any scripts auto-running on launch to update regedit as described in the process above - stop them all now. They'll just copy to Thrusmater's old regedit but wont actually do anything any more. And it probably isn't good to have this kicking around still. New solution is an extension of Step 2 above - the Wheel Angle section - to now change all the settings via AHK. Here's my setting for a 360 degree rotation profile with combined pedals, 75% Gain, By the Wheel script (so will be for something like 18 Wheeler): MouseMove 9999,9999,0 ;;;;;;;;;moves mouse cursor out the way as it interfers with script if over the Game Controllers window;;;;; Sleep, 1000 Run, joy.cpl WinWait, Game Controllers,, 5 if ErrorLevel { MsgBox, WinWait timed out. return } if WinExist("Game Controllers") WinActivate Sleep, 300 ControlClick, &Properties, Game Controllers Sleep, 1000 ;;;;;;;;;;;;;;needs a bit longer to ensure properties window loads up fully;;;;;;;;;;;;;;;;;;; if WinExist("Thrustmaster TS-PC Racer Control Panel (64-bit)") WinActivate ;;;;;Tabs to and Sets wheel angle;;;;; Sleep, 500 ControlFocus, Edit1, A Send {delete} Send {delete} Send {delete} Send {delete} Send 360 ;;;;;;Change number to desired rotation angle;;;;; Sleep, 300 ControlFocus, Button1, A ;;;;;;Button2=Separate, Button1=Combined;;;;; Sleep, 300 ;;;;;;;Tabs to Settings;;;;; Send ^{Tab 2} Sleep, 300 ;;;;;Tabs to and sets Master Gain;;;;;; ControlFocus, Edit1, A Send {delete} Send {delete} Send {delete} Send {delete} Send 75 ;;;;;;;;Change number to desired Overall Gain;;;;;;; Sleep, 300 ;;;;;;;;;Tabs to and sets Auto-Centre by wheel or game;;;;;;; ControlFocus, Button1, A ;;;;;;Button2=By the Game, Button1=By the Wheel;;;;; Sleep, 300 ;;;;;;;Exits Game Controllers GUI;;;;;;; ControlClick, OK, Thrustmaster TS-PC Racer Control Panel (64-bit) Sleep, 300 ControlClick, OK, Game Controllers I recommend changing all the sleep timers while testing so you can see it working or identify any errors if you need to amend. Edit and repeat as required for all the different profiles you need then set it up in launchbox as an additional app for the game, selecting 'Automatically run before main application' and 'Wait for exit' Make sure your Game Controllers window is all closed before you run it. And as before, my wheel is always the first device my controller list - if your's isn't, you will have to amend the first part of the script to add a few tabs in to get to your device before it move on to Properties. Edited July 18, 2023 by Eckers569 update 1 Quote Link to comment Share on other sites More sharing options...
Cludo Posted March 14 Share Posted March 14 Thank you very much for this, it has been very helpful !! I have just added at the end Process,Close, rundll32.exe Otherwise it wouldn't close properly. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.