Difference between revisions of "Axis translation parameters"

From GIMX
Jump to: navigation, search
(Note)
 

(41 intermediate revisions by 2 users not shown)

Line 1: Line 1:
Work in progress...
+
TODO: Give simple use cases such as: how to bind a joystick axis to an axis
Give simple use cases such as: how to bind a joystick axis to an axis
 
A few things could be taken in this old forum tutorial: http://forum.gimx.fr/viewtopic.php?f=4&t=39#6
 
  
This page explains the purpose of each translation parameter.
+
<languages />
 +
<translate>
  
=Dead zone=
+
<!--T:1-->
 +
This page explains the purpose of each axis translation parameter.
 +
 
 +
=Dead zone= <!--T:2-->
 +
 
 +
<!--T:3-->
 +
[[File:DZShapeCircle.gif|left|frame|Visual Demonstration]] '''The dead zone parameter allows to shift the stick positions away from the stick center. Higher the DZ (Dead zone) is, larger mouse moves need to be done in order to aim.'''
 +
 
 +
This allows to skip all the stick positions around the stick center that do not generate in-game movement (these positions are called the dead zone of the stick).
  
The dead zone parameter allows to shift the stick positions away from the stick center.<br />
 
This allows to skip all the stick positions around the stick center that do not generate in-game movement (these positions are called the dead zone of the stick).<br />
 
 
If lowest input motion do not generate enough movement, increase the dead zone parameter.
 
If lowest input motion do not generate enough movement, increase the dead zone parameter.
  
=Dead zone shape=
+
When you calibrate the dead zone you want the aim to move as slowly and smoothly as possible (no jitters or random jumps)
 +
The aim should start moving by itself when you increase the dead zone using the mouse wheel, so all you need to do is fine tune it until the speed of the aim is slow and fluid.
 +
 
 +
Remember to go out of dead zone calibration to test the results of your adjustments. If the aim lags in calibration mode you'll need to save your configuration and run the emulator in normal Grab mode to test any changes you've made.
 +
 
 +
'''''Tip''''': ''To get rid of potential jerky aim when aiming slowly you need to increase DZ slightly above the game setting. So if you find through dead zone calibration that the aim starts moving by itself at '''22''', increase it to '''25'''-'''30''' instead.''
 +
<br/><br/>
 +
 
 +
=Dead zone shape= <!--T:4-->
 +
 
 +
<!--T:5-->
 +
The dead zone shape can be set to:
 +
 
 +
<div style="margin-top: 10px; "><ul style="margin-left:0px;">
 +
<li style="display: inline-block;"> [[File:DZShapeCircle.gif|frame|none|Circle]] </li>
 +
<li style="margin-left: 10px;display: inline-block;"> [[File:DZShapeRectangle.gif|frame|none|Rectangle]] </li>
 +
</ul></div>
 +
 
 +
<!-- I created my own images (Godlike), license Public Domain -->
 +
More shapes will be added in a future version.
 +
 
 +
=Sensitivity= <!--T:6-->
 +
 
 +
<!--T:7-->
 +
[[File:mpanim.gif|left|frame|Visual Demonstration]]'''The sensitivity parameter is nothing more than a multiplier: input motion is multiplied so as to scale to the output motion range.'''
 +
 
 +
Increase it if the movement is too slow and decrease it if the movement is too fast.
 +
 
 +
It can be a negative value, so as to reverse the motion direction.
  
The dead zone shape can be set to either rectangle or circle.<br />
+
Remember that the output motion range is limited (the stick has a max position).
Other shapes will be added in a future version.
 
  
=Sensitivity=
 
  
The sensitivity parameter is nothing more than a multiplier: input motion is multiplied so as to scale to the output motion range.<br />
+
<!--T:8-->
Increase it if the movement is too slow and decrease it if the movement is too fast.<br />
+
To map a joystick axis to a stick axis, use a value of 128/32768 (about 0.004).
It can be a negative value, so as to reverse the motion direction.<br />
 
Remember that the output motion range is limited (the stick has a max position).<br />
 
  
To map a joystick axis to a stick axis, use a value of 128/32768 (about 0.004).<br />
 
 
To map a joystick axis to a button axis, use a value of 256/32768 (about 0.008).
 
To map a joystick axis to a button axis, use a value of 256/32768 (about 0.008).
  
=Acceleration=
+
=X/Y ratio= <!--T:9-->
 +
 
 +
<!--T:10-->
 +
'''The x/y ratio allows to change the vertical sensitivity independently from the horizontal sensitivity''' i.e. it determines how much faster your vertical (Y axis) aim is in relation to your horizontal (X axis) aim.
 +
 
 +
A value of 3.0 would make you aim up and down incredibly fast, whereas 0.1 would make it almost impossible to move it up or down at all.
 +
 
 +
Some games require higher or lower value. It all depends on developers implementation of controls in the game engine.
  
The acceleration parameter allows to change the in-game acceleration.<br />
+
Vertical sensitivity formula is as follows:
Values higher than 1 increase the effective acceleration, whereas values lower that 1 decrease it.<br />
+
  vertical_sens = sens * xy_ratio
In-game acceleration is generally positive, which means there is a value in the 0..1 range that will cancel it (at least for games that use simple look mechanics).
 
  
=Smoothing=
+
=Acceleration= <!--T:11-->
  
The mouse motion can be smoothed using previous mouse motion reports.<br />
+
<!--T:12-->
This is useful for lowering jerkiness, especially with a low DPI mouse (below 2000 DPI).<br />
+
[[File:expanim.gif|left|frame|Visual Demonstration]] '''The acceleration parameter allows to change the in-game acceleration.'''
It is configurable with two parameters: a buffer size and a filter.<br />
 
A deeper description of the smoothing technique used by GIMX is available [http://www.flipcode.com/archives/Smooth_Mouse_Filtering.shtml there].
 
  
==Note==
+
Values higher than '''1''' increase the effective acceleration, whereas values lower that '''1''' decrease it.
  
Before adding smoothing, you should have properly set the other parameters. The [[Mouse Calibration ]] page explains how to do this.
+
FPS games generally have a positive acceleration, which means there is a value in the '''0..1''' range that will cancel it (at least for games that use simple look mechanics).
  
==Buffer size==
+
Acceleration value required for good aiming experience may vary from game to game as it depends on developers implementation of controls in the game engine.
  
The buffer size (in the 0..30 range) is the number of mouse motion reports that are used to smooth the mouse motion.<br />
+
After having played around with these settings and you've learned what does what and how they work together, you can start fine tuning configurations to fit your personal preference or make your very own ones that we hope you'd like to share with us on the [https://forum.gimx.fr/viewforum.php?f=9 forums!].
The smoothing window is the buffer size multiplied by the GIMX update period (inverse of the frequency).<br />
 
Examples:
 
GIMX frequency = 250Hz, buffer size = 10
 
1000/250 * 10 = 40ms
 
  
GIMX frequency = 100Hz, buffer size = 10
+
'''''Tip''''': ''In the Call of Duty series (since Call of Duty 4) for example, a value of 0.39 will give you a 1:1-like aim (meaning there is little to no acceleration when moving the mouse) Having a higher exponent will make the aim accelerate but you won't need a high multiplier (the higher the multiplier is the bigger the gaps are between each "step" in the speed curve)
1000/100 * 10 = 100ms
+
''
  
Keep in mind that increasing the buffer size makes motion smoother but increases the latency.
+
=Buffer size and filter= <!--T:13-->
  
==Filter==
+
<!--T:14-->
 +
These parameters are specific to the mouse smoothing, which is detailed on the [[Mouse_Calibration|Mouse calibration]] page.
  
The filter (in the 0..1 range) defines how much the previous motion reports will count in the final motion.<br />
+
</translate>
Value 1 means that the final motion is an average of the buffered motion reports.<br />
 
Value 0.5 means that the current motion report counts for 1, the previous one for 0.5, the next oldest one for 0.25 (=0.5x0.5), and so on.<br />
 
Value 0 means that only the current motion report counts (resulting in an unfiltered motion).<br />
 
So as to preserve a low latency, high filters (1) should only be used with low buffer sizes (2), and high buffer sizes (>10) should only be used with low filters (<0.5).
 

Latest revision as of 14:53, 26 January 2020

TODO: Give simple use cases such as: how to bind a joystick axis to an axis

Other languages:
Deutsch • ‎English • ‎français

This page explains the purpose of each axis translation parameter.

Dead zone

Visual Demonstration

The dead zone parameter allows to shift the stick positions away from the stick center. Higher the DZ (Dead zone) is, larger mouse moves need to be done in order to aim.

This allows to skip all the stick positions around the stick center that do not generate in-game movement (these positions are called the dead zone of the stick).

If lowest input motion do not generate enough movement, increase the dead zone parameter.

When you calibrate the dead zone you want the aim to move as slowly and smoothly as possible (no jitters or random jumps) The aim should start moving by itself when you increase the dead zone using the mouse wheel, so all you need to do is fine tune it until the speed of the aim is slow and fluid.

Remember to go out of dead zone calibration to test the results of your adjustments. If the aim lags in calibration mode you'll need to save your configuration and run the emulator in normal Grab mode to test any changes you've made.

Tip: To get rid of potential jerky aim when aiming slowly you need to increase DZ slightly above the game setting. So if you find through dead zone calibration that the aim starts moving by itself at 22, increase it to 25-30 instead.

Dead zone shape

The dead zone shape can be set to:

  • Circle
  • Rectangle

More shapes will be added in a future version.

Sensitivity

Visual Demonstration

The sensitivity parameter is nothing more than a multiplier: input motion is multiplied so as to scale to the output motion range.

Increase it if the movement is too slow and decrease it if the movement is too fast.

It can be a negative value, so as to reverse the motion direction.

Remember that the output motion range is limited (the stick has a max position).


To map a joystick axis to a stick axis, use a value of 128/32768 (about 0.004).

To map a joystick axis to a button axis, use a value of 256/32768 (about 0.008).

X/Y ratio

The x/y ratio allows to change the vertical sensitivity independently from the horizontal sensitivity i.e. it determines how much faster your vertical (Y axis) aim is in relation to your horizontal (X axis) aim.

A value of 3.0 would make you aim up and down incredibly fast, whereas 0.1 would make it almost impossible to move it up or down at all.

Some games require higher or lower value. It all depends on developers implementation of controls in the game engine.

Vertical sensitivity formula is as follows:

 vertical_sens = sens * xy_ratio

Acceleration

Visual Demonstration

The acceleration parameter allows to change the in-game acceleration.

Values higher than 1 increase the effective acceleration, whereas values lower that 1 decrease it.

FPS games generally have a positive acceleration, which means there is a value in the 0..1 range that will cancel it (at least for games that use simple look mechanics).

Acceleration value required for good aiming experience may vary from game to game as it depends on developers implementation of controls in the game engine.

After having played around with these settings and you've learned what does what and how they work together, you can start fine tuning configurations to fit your personal preference or make your very own ones that we hope you'd like to share with us on the forums!.

Tip: In the Call of Duty series (since Call of Duty 4) for example, a value of 0.39 will give you a 1:1-like aim (meaning there is little to no acceleration when moving the mouse) Having a higher exponent will make the aim accelerate but you won't need a high multiplier (the higher the multiplier is the bigger the gaps are between each "step" in the speed curve)

Buffer size and filter

These parameters are specific to the mouse smoothing, which is detailed on the Mouse calibration page.