Skip to content

edwardwbarber/JoystickGremlin

 
 

Repository files navigation

Joystick Gremlin

Introduction


Getting Help: If you have issues running Gremlin or questions on how to make certain things work, the best place to ask for help is in the #joystick-gremlin channel on the HOTAS discord which can be found here https://discord.gg/szqaJE7.

Joystick Gremlin is a program that allows the configuration of joystick like devices, similar to what CH Control Manager and Thrustmaster's T.A.R.G.E.T. do for their respectively supported joysticks. However, Joystick Gremlin works with any device be it from different manufacturers or custom devices that appear as a joystick to Windows. Joystick Gremlin uses the virtual joysticks provided by vJoy to map physical to virtual inputs and apply various other transformations such as response curves to analogue axes. In addition to managing joysticks, Joystick Gremlin also provides keyboard macros, a flexible mode system, scripting using Python, and many other features.

The main features are:

  • Works with arbitrary joystick like devices
  • User interface for common configuration tasks
  • Merging of multiple physical devices into a single virtual device
  • Axis response curve and dead zone configuration
  • Arbitrary number of modes with inheritance and customizable mode switching
  • Keyboard macros for joystick buttons and keyboard keys
  • Python scripting

Joystick Gremlin provides a graphical user interface which allows commonly performed tasks, such as input remapping, axis response curve setups, and macro recording to be performed easily. Functionality that is not accessible via the UI can be implemented through custom modules.

Used Software & Other Sources


Joystick Gremlin uses the following software and resources:

Currently the 32bit version of Python is needed. To create and activate a conda environment with the required modules, simply call:

conda config --env --set subdir win-32
conda env create -f conda_env.yaml
conda config --env --remove subdir win-32
conda activate joystick_gremlin32

Generating the MSI Installer


The job of turning the Python code in a windows executable and packaging everything up into an installable MSI file is performed by pyinstaller and wix. The steps needed to build the code and assemble it into the installer is automated using a batch script and can be run as:

deploy.bat

Note: This does not play nicely with the conda environment created above. Update TBD...

To simply generate the executable code without the MSI installer the following command can be used:

pyinstaller -y --clean joystick_gremlin.spec

This returns a distributable version under dist/joystick_gremlin. Build details are stored under build/joystick_gremlin.

About

A tool for configuring and managing joystick devices.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 93.5%
  • HTML 6.5%