Force Feedback

From GIMX

Revision as of 14:39, 17 February 2017 by Matlo (talk | contribs)

Jump to: navigation, search
Other languages:
English • ‎français

Force feedback support is available for all Logitech wheel emulations:

  • EMUG29PS4: G29, for PS4 (does not work with PC as target)
  • EMUG27PS3: G27, for PS3 (does not work with PC as target)
  • EMUGTFPS2: GT Force, for PS2 (may work with PC as target)
  • EMUDFPS2: Driving Force, for PS2 (may work with PC as target)
  • EMUDFPPS2: Driving Force Pro, for PS2 (may work with PC as target)
  • EMUG27PC: G27, for PC

There are two force feedback conversion methods: direct translation and OS translation.

Notes

Compatibility mode

This concerns at least the EMUG27PS3 firmware.
The G27 is supposed to switch to compatibility mode (behaving as a Driving Force) when in the XMB. GIMX does not do this. As a consequence the controls do not work correctly in the XMB.
To work-around this issue, start the game with a Dualshock 3, and then reassign controllers.

Device selection strategy

GIMX only considers the first joystick device as the target for force feedback effects.
This means that wheel controls should be added first, and appear at the bottom in the button tab of gimx-config.

--todo: add screenshot

Direct translation

It works for the following Logitech wheels:

  • Formula Force GP
  • Driving Force
  • Driving Force Ex
  • Momo Force
  • Momo Racing Force
  • Driving Force Pro
  • G25
  • Driving Force GT
  • G27
  • G29

It also should work for all Fanatec wheels that have a Logitech compatibility mode.

OS translation

  • Windows: any wheel supporting force feedback over DirectInput should work
All PC/Windows-compatible force feedback wheels should work.
  • GNU/Linux: any wheel with force feedback support at driver level should work
Currently only the G29/G920 wheels have good support at driver level on GNU/Linux, with Linux kernel 4.6+.
The G29 has direct translation, and the G920 will have OS translation from GIMX 6.3 (with Linux kernel 4.6+ only).

Pedal axis correction

Joystick correction is only useful if the axis value can take both negative and positive values.

  1. rest = 32767, full = -32767: low_value = 32767, low_coef = -8192, high_value = 0, high_coef = 0 (Logitech case)
  2. rest = -32767, full = 32767: low_value = -32767, low_coef = 0, high_value = -32767, high_coef = 8192
  3. rest = 0 full = 32767: no correction needed
  4. rest = 0 full = -32767: set the sensitivity to -0.008 instead of 0.008

If your pedals are just reversed with no half-way dead zone, you should try 4. first.

Direct Input

Direct Input is a very tricky interface, and some wheels may require adjustments to have force feedback working.
Use the instructions below to provide useful information to the GIMX devs.

API monitor

This tools allows to observe how an application uses the Windows APIs.
Download: http://www.rohitab.com/download/api-monitor-v2r13-x86-x64.zip
Make sure to extract the whole archive.

fedit

This tool was provided by Microsoft in the DirectX 8 SDK.
Download: https://gimx.fr/download/b882e209a0ac023d03abbf560dfc3f25fe6367ca/fedit.zip
API capture instructions:

  • run the x86 version of API monitor (fedit is a 32-bit application)
  • in the "API filter" area on the left, unfold "Graphics and Gaming" and "DirectX Graphics and Gaming", and select "DirectX Input"
  • in the near "Monitored Processes" area, click on "Monitor New Process", and select fedit.exe
  • in fedit, select the wheel: File>Select Device
  • insert the desired effect: Effect>Insert>...
  • play the effect: click on the play button
  • quit fedit
  • save the capture

Make a capture for each of the following effects: constant, spring and damper.

ffb_x

This tool mimics the GIMX interactions with the Direct Input API.
Download: https://gimx.fr/download/4777c33d5c1b29f40605b3f898b6ed92d9a6eead/ffb_2.zip
In the following instructions, replace ffb_x with ffb_2.
Getting the tool text output:

  • unplug all joysticks for your computer, and only leave the FFB wheel plugged
  • open a command window (run cmd.exe)
  • click on the icon in the top left corner
  • click on Properties
  • click on the Layout tab
  • set the width of the Window Size to 240
  • go to the ffb_x.exe directory (cd C:\Users\<username>\Downloads\ffb_x)
  • run ffb_x.exe
  • let the test finish
  • right-click on the command window
  • click on Select all
  • press enter (this will copy the window contents)
  • paste in a text editor and save in a file

API capture instructions:

  • unplug all joysticks for your computer, and only leave the FFB wheel plugged
  • run the x64 version of API monitor (ffb_x is a 64-bit application)
  • in the "API filter" area on the left, unfold "Graphics and Gaming" and "DirectX Graphics and Gaming", and select "DirectX Input"
  • in the near "Monitored Processes" area, click on "Monitor New Process", and select ffb_x.exe
  • let the test finish
  • save the capture