• Welcome to PiBoSo Official Forum. Please login or sign up.
 
March 28, 2024, 03:54:38 PM

News:

World Racing Series beta14 available! :)


Tweak controller calibration in regedit (Windows 10)

Started by davidboda46, November 17, 2022, 12:38:49 PM

Previous topic - Next topic

davidboda46

November 17, 2022, 12:38:49 PM Last Edit: November 17, 2022, 01:33:40 PM by davidboda46
So, long story short (as possible). The Thing (my homemade Frankenstein controller ::) ) was having some issues when I tried to play MotoGP22 (using x360ce and UJC). Since the base is an old Sidewinder FF Wheel there is no current software for calibration and settings, just the generic one that's in Windows 10 (joy.cpl). When calibrating the wheel I need to have the rotation restricted but that unfortunately also affects the throttle length (x and y respectively, they are not separated, the break axis is). After some lengthy time on Google I found out that the calibration data is actually stored in the registry (regedit).

"Navigate to the registry keys of the respective controller, HKEY_CURRENT_USER\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\DirectInput\VID_<VendorID>&PID_<ProductID>\Calibration\0\Type\Axes\<NUM>."

The problem is that it's all hex so I could not make heads or tails of it, even when using an online converter (this is the converter I used to try to make sense of it all: https://coolconversion.com/math/binary-octal-hexa-decimal/_hexadecimal__FF__binary_).

According the post I found the values can be interpreted as:

"Modify the Calibration key which is mapped to a 12 byte binary value (encoded as <MIN> <MID> <MAX>). So for instance, suppose we wanted the y-axis Calibration to be from 30-70 for a defective analog stick, with 45 centered stick. Then we Calibration mapped 12 bytes should be set to <1E 00 00 00> <2D 00 00 00> <46 00 00 00>"

Well, it's still gibberish for my poor brain, because, my SW FF Wheel setting in regedit for the wheel rotation and throttle looks like this:

(Axis 0)
00000000   EA   FF   FF   FF   FF   FF   FF   FF   
00000008   16   00   00   00

And the raw data displays "-22" "0" "22" (left, center, right).
"16" is "22" so that's clear, but the rest? "EA" is "234" and FF is "255" so if we divide that we're left with "21"... not "22", and definitely not "-22". Also, what are all the other "FF"s and the three "00"s (I'm guessing one of the "00"s is the center)?

I figured out that if I reset the controller to default, all the calibration files in regedit gets deleted and only the "default" entry is kept. So I ventured that if I calibrate everything as I want it to be, except for the throttle (Axis 1, the brake is Axis 5), and then delete the throttle calibration file, effectively resetting it to its default state (which has full range)... and to my surprise it worked!

I don't know if this is all common knowledge or if anyone has any use of this info, but I figured I put it out there in case somebody runs into similar issues or just want to tweak their controller calibration settings in this way (given that they understand the hex to decimal thing better than I do).

Cheers,

/David "Gonzo" Boda #46       
"THE EDGE... THERE IS NO HONEST WAY TO EXPLAIN IT BECAUSE THE ONLY PEOPLE WHO REALLY KNOW WHERE IT IS ARE THE ONES WHO HAVE GONE OVER"