dxtweak Просмотр ZIP-архива

README~1.TXT

========================================================================
Readme for DXTweak
========================================================================



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.



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.
Use your mouse/keyboard to change the values in the edit boxes and to
checkmark the different options. Any change you make is written to the 
registry and DirectInput is notified about the change as soon as you
leave the edit box (TAB).

4.
Move your game controller to see the values it generates and how
DirectInput/joyGetPos() modifies them.

5. 
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 
loose the game controller object...



How does the calibration tweaking work? (IMPORTANT)
---------------------------------------------------

1. DirectInput

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'.


2. joyGetPos() and joyGetPosEx() (Win32 Multimedia API)

-> not completely figured out how these functions perform calibration.
If you have a clue, mail it to 'suggestions@wingmanteam.com'.



How does deadzone work?
-----------------------

In contrast to the calibration, the deadzone applies *all* the time to
the values and is also the same for *all* game controllers.

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 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 can be adjusted between -1000 and 1655.



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 ///////////////////////////////////////////

DXTWEAK.zip

Имя файла Дата Размер
DXTWEAK.EXE 17.06.2001 19:12 152 KB
README~1.TXT 17.06.2001 19:08 6 KB
avsim_ru.diz 14.03.2004 00:17 375 B
Итого: 158 KB
Прога для калибровки и тестирования Game-контроллера
→ Размер: 72 KB
→ Дата: 21 год назад (18.11.2003 16:36)
→ Автор: Неизвестен
→ Прислал: rykketid (прислал 11 файлов )
→ Лицензия: Freeware - Бесплатная версия, распространение не ограничено
→ Скачан: 1460 раз