Release 12

Download Release 12 MSI Download Release 12 ZIP

Due to addition of a dedicated device identification handler class all existing custom modules will have to be modified. The modification requires the straight forward change of the decorators.

t16000 = gremlin.input_devices.JoystickDecorator(
    "T16000.M",
    72331539,
    "Default"
)

needs to be replaced with

t16000 = gremlin.input_devices.JoystickDecorator(
    "T16000.M",
    gremlin.common.DeviceIdentifier(72331539, 2),
    "Default"
)

The benefit of this is that no matter whether or not you use duplicate devices the code is the same and it allows the implementation of a forthcoming feature.

New Features

  • Reworked automatic update of profile device information to account for windows id changes
  • New tool to move configuration from (unused) devices to other devices Tools -> Swap Devices
  • Map to mouse now supports button clicks and more motion control
  • Option to enable profile on launch
  • Option added to switch between tabs based on physical device usage
  • Unified handling of device identities to prevent issues when moving between duplicate / non-duplicate setups
  • Containers are now considered valid if they can be partially executed

Fixes

  • Fix offset by one bug in the axis calibration usage
  • Don't ignore injected keyboard events as that breaks conditions etc.
  • Make value input boxes behave correctly with different decimal place character
  • Save profiles as UTF-8 to prevent issues with non ASCII characters
  • More robust recovery of vJoy device ownership
  • Input viewer should now show hat activations of very short duration
  • Response curves save changes when inverting the curve
  • More robust reading and writing of XML profiles
  • Handle device changes while Gremlin is active
  • Better handling of incompatible inputs in the UI
  • Reworked input device detection and handling logic
  • vJoy default value should be properly set again
  • Fix Gremlin not terminating if vJoy issues are encountered
  • Detect and handle a bunch of scenarios that would cause Gremlin to crash previously