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'...
То есть джойстик (любой!) выдаёт максимальное значение 655, а DirectInput уже его прямо пропорционально увеличивает до 64К. Разумеется, разные джои выдают значение (то, что от 0 до 655) с разной точностью.
Короче, по-любому максимальное значение при отсутствии дополнительных калибровок должно быть 64К. У кого не так - ищите почему![]()