Skip to content

Releases: WhiteMagic/JoystickGremlin

Release 14.1

09 Feb 22:59

Choose a tag to compare

New Features

  • Log files are limited in size
  • Option added that re-evaluates axis action upon mode change or profile activation
  • Gremlin will ask to save a profile before closing if changes exist
  • KeyboardVariable type added for user scripts
  • Input highlighting implemented
  • Version checking and update notification added

Fixes

  • Auto mapper correctly updates the UI elements
  • Ensure axes are named consistently
  • Improved vJoy error handling
  • Fix Map to Mouse action for hat inputs
  • Improve error displays
  • Input auto-release fixed
  • Prevent response curve rendering from escaping the axis view
  • Fixed ModeVariable not being populated correctly
  • Modified default action order
  • Action selection updated with input behavior change
  • Several Response Curve action fixes
  • Tempo mode change interaction fixed
  • Input listener reworked
  • Input visualizer uses step-functions for line graphs
  • Fix issue with VirtualButton creation
  • Updated dill version, possibly fixing some rare issues

Release 14

17 Jan 18:49

Choose a tag to compare

Release 14

This release is a complete rewrite of the user interface and how the profile architecture. Along the way a lot of other things have changed, some of which are summarised below.

  • User interface entirely redone in QML using PySide6
    • Drag & drop for action reordering
    • Collapsing actions
    • Dark mode support
    • Turning axis or hat into a button accessible at the top of an action sequence
  • Profile architecture completely redone with actions and inputs no longer being tied together
    • Assigning existing actions to different inputs
    • Copying contents of an action to new inputs
    • Only actions which can be nested to an arbitrary depth
    • Actions can exist on multiple inputs, enabling, multi-input actions
  • Conditions are actions too now
  • User configurable folder for third-party action plugins
  • An internal logical device was added that can be used as an internal storage
  • Mode switching supports more complicated flows
  • Improved various tools such as calibration and 1:1 mapping
  • Improved actions
    • Piecewise linear response curve added
    • More control over the activation of "Map to X" actions

A side effect of these changes, especially the profile architecture, is that previous profiles are not compatible. For now there is no conversion tool and there may never be one as writing a robust one likely will take significant amount of time to write and especially test. There are also some aspects that are still missing. Depending on their utility they will over time be added back in.

Release 14 is bigger both in size and memory usage compared to Release 13. Some of that is down to things getting bigger over time but also QML probably using more resources. There are also likely still a variety of Qt components being packaged despite not being needed. Over time this will improve a bit but it is unlikely that Release 14 and onward will be as small as Release 13 was. However, that shouldn't affect runtime performance with regards to reacting to and processing events.

Some fun statistics:

  • 2377 days since Release 13.3
  • 1118 commits
  • 702 files changed
  • 75117 insertions
  • 30556 deletions

Release 14 Preview 1

25 Feb 21:15

Choose a tag to compare

Release 14 Preview 1 Pre-release
Pre-release

This is the first preview of the new R14 version of Gremlin.

An overview of some of the changes and differences can be found in the R14 Introduction document. If you want to try to run the code in a development environment, there is documentation in the contributing guide which should be quite easy to do compared to prior releases.

GitHub is also building nightly builds of the code base and uploading it to the Nightly release. There is something a bit odd with it as it doesn't behave exactly as my local build but that's a problem to chase down in the future.

Nightly

23 Feb 16:37

Choose a tag to compare

Nightly Pre-release
Pre-release

Nightly builds of the develop branch.

Release 13.3 Debug

13 Jan 08:09

Choose a tag to compare

Release 13.3 Debug Pre-release
Pre-release

This release fixes a few issues present in R13.3 the main ones are:

  • HidGuardian initialization order
  • Accepting newer vJoy versions, needed for Windows 1903 issues
  • Condition settings failing to be remembered

This is not a proper full new release and should not be needed if R13.3 is not causing any issues.

Release 13.3

16 Jul 20:22

Choose a tag to compare

Fixes

  • Added missing comparison operator for GUID objects
  • Better handling of missing modes in profiles
  • Input Viewer value rounding issues addressed
  • Change vJoy version check to accept any version greater or equal to 2.1.8

Release 13.2

01 Jun 00:07

Choose a tag to compare

New Features

  • Choice of operation to perform when merging two axes
  • User plugin variable exposing fixed choices via a dropdown menu
  • User plugin variables can be marked as optional

Fixes

  • Updated DILL version to handle device based edge cases better
  • vJoy keep alive code fixed again
  • Invalid axis index handling fixes

At the time of writing the PyInstaller system is upsetting more then usual anti virus systems, see https://www.virustotal.com/gui/file/939d5da4f97294213a45d287370b6651c4a4f71dc2a7ad62179a326a99c38357/detection

Release 13.1

12 Apr 11:48

Choose a tag to compare

Fixes

  • Incorrect string creation from GUIDs
  • Button conditions being broken for button 8 onward
  • Relative axis being interruptible by axis value changes

Release 13

09 Apr 11:24

Choose a tag to compare

New Features

  • New input handling library which permits usage of device GUID for device identification
  • User plugin system added, allows plugins to be written that can be configured via the UI
  • Remap actions for axis now support a relative mode which increments an axis' value based on the axis' deflection
  • Macros can issue relative axis motion to vJoy axis
  • Two new containers, double tap and smart toggle, thanks to jmriego
  • vJoy inputs can now be used in conditions
  • Improved map to mouse action, support for motion on button and mapping to mouse buttons for all inputs types
  • Default macro action delay can be configured on a per profile basis

Fixes

  • Cheathseet generator now handles hats properly
  • Improved robustness of UI against missing inputs
  • Macros and conditions now user device GUID
  • Handle unexpected registry entries for HidGuardian
  • Fixed several issues with the save system
    Fix for vJoy curves not being applied correctly

Release 12

22 Dec 18:59

Choose a tag to compare

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