DXTweak is a program that allows users to tweak calibration and deadzone settings of DirectInput game controllers to modify controller sensitivity and precision. It works on Windows 98/ME but deadzone settings may not persist on Windows 2000/XP. The document provides detailed instructions on how to use DXTweak to calibrate controllers, adjust deadzone settings, and save customized configurations.
DXTweak is a program that allows users to tweak calibration and deadzone settings of DirectInput game controllers to modify controller sensitivity and precision. It works on Windows 98/ME but deadzone settings may not persist on Windows 2000/XP. The document provides detailed instructions on how to use DXTweak to calibrate controllers, adjust deadzone settings, and save customized configurations.
DXTweak is a program that allows users to tweak calibration and deadzone settings of DirectInput game controllers to modify controller sensitivity and precision. It works on Windows 98/ME but deadzone settings may not persist on Windows 2000/XP. The document provides detailed instructions on how to use DXTweak to calibrate controllers, adjust deadzone settings, and save customized configurations.
DXTweak is a program that allows users to tweak calibration and deadzone settings of DirectInput game controllers to modify controller sensitivity and precision. It works on Windows 98/ME but deadzone settings may not persist on Windows 2000/XP. The document provides detailed instructions on how to use DXTweak to calibrate controllers, adjust deadzone settings, and save customized configurations.
======================================================== ======================================================== SYNOPSIS ======================================================== DXTweak allows you change calibration information and deadzone settings of a DirectInput game controller and test the effect of the changes directly. It can easily render your game controller behaviour totally weird. You have been warned. ======================================================== LIMITATIONS ======================================================== DXTweak only works correctly under Windows 98, Windows 98SE, and Windows Me. DXTweak will run under Windows2K and WindowsXP however, the deadzone setting will not persist. Microsoft has acknowledged that there is no recognized way of setting a persistant deadzone for Windows 2K and Windows XP. We are trying to get a fix for this in the next version of DirectX. ======================================================== WHY DO I NEED TO TWEAK THE CALIBRATION/DEADZONE SETTINGS? ======================================================== You want to have an oversensitive wheel while driving in a racing game. You want to brake your car only a little, but step fully on the brake pedal. You want to fly a helicopter and your joystick is too sensitive. In short: By reducing the overall range of motion of your controller (undercalibration) you can achieve higher sensitivity. By extending the range accepted by DirectInput (overcalibration) you can achieve higher precision. ======================================================== USAGE ======================================================== 1. Launch DXTweak. 2. Verify that the controller you wish to tweak is displayed in the box 'Polled device'. If it isn't, click on 'Next' until you see it. If it never appears, you got a problem with your installation: go and setup your device in the 'Game Controllers' control panel correctly . 3. Select the axis that you wish to modify. If unsure about the axis, perform some movement on it, and then see which axis graph is moving. 4. Make the change to the axis. Push the 'Apply' button to save the setting. 5. Move your game controller to see the values it generates and how DirectX/DirectInput modifies them. 6. Once you're happy with a configuration, you should exit DXTweak and start playing your game. Running DXTweak really imposes a heavy load on your system, don't run it while playing. If you want to change the values during the play: be aware that the game could lose the game controller object... ======================================================== SAVING YOUR DXTWEAK SETTINGS ======================================================== To save a DXTweak setting, use the following steps. 1. Enter your desired values. If you have multiple devices, enter values for each device. 2. Go to "Game Settings" and enter a name for your saved setting. 3. Select "Save". This will automatically save and apply your changes. NOTE: All saved settings are stored in this location: "HKEY_CURRENT_USER\Software\Logitech\DXTweak\Profiles" If you wish to manually change the profiles, you may do so at your own risk. Use the Windows Calculator to convert from HEX to a signed value. ======================================================== LOADING A SAVED DXTWEAK SETTING ======================================================== To load a saved DXTweak setting, use the following steps. 1. Go to "Game Settings", select the name of your setting and push "Load". This will automatically load and apply that setting. --or--- 1. If you wish to silently launch your setting, run DXTweak with the name of the setting. For example, if you had 2 settings: "F12001" and "Defaults"... C:> "DXTweak2.exe F12001" - this silently loads and applies the "F1 2001" setting C:> "DXTweak2.exe Defaults" - this silently loads and applies the "Defaults" setting. ======================================================== DELETING A SAVED DXTWEAK SETTING ======================================================== To delete a saved DXTweak setting, use the following steps. 1. Go to "Game Settings", select the name of your setting and push "Delete". ======================================================== HOW DOES THE CALIBRATION TWEAKING WORK? (IMPORTANT) ======================================================== A game controller driver usually*1* reports axis position information as integer values between 0 and 655 to DirectInput. DirectInput linearly scales these values up to 0 to 65535. If calibration values are present for an axis (checkbox is checked), DirectInput assumes that the range of the values received from the driver are 'Min' to 'Max'. Additionally it expects the center of a given axis to be at driver value 'Cen'. The driver doesn't know anything about that. It is just reporting 0 to 655 all the time. Any value reported that is lower than 'Min' is treated as 'Min'. Any value reported higher than 'Max' is treated as 'Max'. *1*: Some analog devices and some drivers report a totally different range...don't be surprised. In general , devices which require calibration (like analog devices / external rudder/pedals) will have different ranges. I think it's time for some illustrations: No calibration data present: Driver DirectInput 655 -------------- 65535 | | | 328 -------------- 32768 | | | 0 ----------------- 0 (full movement on game controller equals full movement in game) Calibration data present: (Min = 100, Max = 555, Cen = 328) Driver DirectInput 655 /-- 65535 | /----/ 555 ----/ | 328 -------------- 32768 | 100 ----\ | \----\ 0 \---- 0 (partial movement on game controller equals full movement in game) Calibration data present: (Min = 0, Max = 1000, Cen = 328) Driver DirectInput 655---\ 65535 | \-----\ | \--- 47868 | 328 -------------- 32768 | 100 | 0 ----------------- 0 (lower part of movement on game controller equals linear lower movement in game, but higher part of movement never reaches maximum value in game) As you will notice, to achieve the overcalibration effect on the lower end of an axis, you should enter a negative number as 'Min'. ======================================================== HOW CAN I CALIBRATE MY DEVICE USING DXTWEAK? ======================================================== If you understood the previous section, then you may already know the answer to this! Move to one side of your axis, and look at the raw value. Note down the raw value. Now move to the other side of the axis. Note down the second value. Set the calibration minimum to the smaller value and the calibration maximum to the larger value. You can use the same method to get the center value or calculate it using the following formula: center = min + ((max - min)/2) ======================================================== HOW DOES DEADZONE WORK? ======================================================== In contrast to the calibration, setting the deadzone for an axis will result in the deadzone being set on that axis across ALL devices. The value is a percentage which is applied against half the range of the axis. A deadzone of 100% means: report center position unless a 'Min' or 'Max' is seen. A deadzone of 50% means: report center unless the the position enters the first/last quarter of the range. ======================================================== I SET THE DEVICE DEFAULT AND NOW I CANT MOVE ALL THE WAY TO EITHER SIDE OF THE AXIS. WHY? ======================================================== For devices that are non-autocalibrated, they require manual calibration. For Logitech controllers, use the calibration utility provided in the gaming control panel. Or see the section above entitled "HOW CAN I CALIBRATE MY DEVICE USING DXTWEAK?" ======================================================== I TWEAKED MY CONTROLLER, BUT THE GAME SEEMS NOT TO SEE IT! ======================================================== 1. The game could use joyGetPos() vs. DirectInput resulting in different behaviour and different settings to be applied. 2. The game could rewrite the calibration information by itself and/or use some internal calibration. ======================================================== LIMITS OF THE VALUES ======================================================== Deadzone values can be adjusted between 0 and 100(%). Calibration values will vary depending on the device and the operating system. For USB-HID devices, the range is the logical range of the axis from the HID report. It is not uncommon for axis to report different range values. For non USB-HID devices, the range is 0-255 under Win2K and 0-655 under Win9x. ======================================================== FEEDBACK ======================================================== Please send any feedback to: suggestions@wingmanteam.com ======================================================== TRADEMARKS ======================================================== All names mentioned here and in the program are trademark of their respective owners. // end of Readme for DXTweak ///////////////////////////////////////////