Force Feedback

From GIMX
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 considers the first joystick device controlling the wheel axis as the target for force feedback effects.
Starting from GIMX 6.7, any device set in the "Overall>Force Feeback tweaks" panel gets selected as the target.
If the target has no force feedback capabilities, then no device receives the force feedback effects.

--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 wheels that have a Logitech compatibility mode. Many Fanatec wheel have such 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

From version 6.8 gimx-config includes a calibration tool for pedal axes. It is triggered when adding or editing a pedal axis mapping in the Axis tab. It automatically adds the right settings in the "Overall>Joystick corrections" tab.

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_3.zip
In the following instructions, replace ffb_x with ffb_3.
Getting the tool text output:

  • 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
  • select the device matching your wheel
  • 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:

  • 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
  • select the device matching your wheel
  • let the test finish
  • save the capture

Report

Make sure that your report contains all the following details:

  • fedit API capture, constant force
  • fedit API capture, spring force
  • fedit API capture, damper force
  • ffb_x command output as text
  • ffb_x spring force result OK/KO (move the wheel during the test)
  • ffb_x damper force result OK/KO (move the wheel during the test)
  • ffb_x API capture