Skip to content

Latest commit

 

History

History
222 lines (172 loc) · 15 KB

CHANGELOG.md

File metadata and controls

222 lines (172 loc) · 15 KB

Change log for JoyShockMapper

Most recent updates will appear first. This is a summary of new features and bugfixes. Read the README to learn how to use the features mentioned here.

3.0.0

Nicolas added ViGEm support for virtual xbox and DS4 for buttons, triggers and sticks as well as rumble forwarding. Added colored console lines Added DS4 rumble commands and light bar setting Added hair trigger soft press as a negative threshold and trigger modes SCROLL_WHEEL and NO_SKIP_EXCLUSIVE Added ability to hide JSM from the taskbar when minimized, with a checkbox in the tray icon Added help strings for button mapping Handle drag n drop files into the console better Improve command error handling

Features

  • New Bindings: TOUCH, T1-T25 touch buttons, Touch stick bindings
  • New settings for touch joystick such as mode, inner deadzone, and stick radius
  • Assigning a negative value to trigger threshold enables hair trigger
  • New setting HIDE_MINIMIZED will hide JSM when set to ON. OFF is default

2.2.0

Nicolas added more keybinds. Robin fixed issues with building on Linux and improved PlayStation controller support.

Features

  • DualSense is now also supported when connected by Bluetooth.
  • New keybinds include: volume control, media control, windows keys and context menu key.

Bugfixes

  • DualShock 4's gyro should now be correctly activated even when connected by Bluetooth.

2.1.0

Jibb added experimental support for the DualSense controller (PlayStation 5) when connected by USB.

Features

  • The DualSense controller is now supported if connected by USB.

2.0.3

More bugfixes for bugs introduced by bugfixes, thanks to Nicolas. :P

Bugfixes

  • Gyro button fix. Bug was introduced by joycon fix. Sorry about that.

2.0.2

More bugfixes thanks to Nicolas.

Bugfixes

  • The HELP command will now work correctly even after looking at the HELP for a specific command.
  • GYRO_ON / GYRO_OFF behaviour with split Joy-Cons has been improved.
  • Fix display of descriptive Mappings.
  • Fix issue where multiple toggles on a single button wouldn't work properly.
  • Updated the "2.0.0" section of the CHANGELOG to show that stick sensitivity can be set separately in each axis.

2.0.1

Nicolas fixed some small hiccups with the new binding modifiers.

Bugfixes

  • The hold binding modifier should now be recognised correctly.
  • Restored CALIBRATE automatically working as a toggle when a tap modifier is used.

2.0.0

Nicolas refactored the command processing engine of JSM as well as some of the button processing logic. This enables a richer command line interface and new button mapping features. These changes will also make adding more settings less error prone and provide a more consistent feeling in the interface.

Nicolas also expanded the mapping options greatly, allowing a button to map to multiple key presses, a key press on press and on release, toggling, and more. He also made hold/simultaneous/double-press times configurable, and made it so any JSM command (including file loading) can be bound to a button press by putting it in quotes. The JSM directory can be set, which should help fix problems for those accessing JSM through a shortcut. A onreset.txt file can be automatically loaded when RESET_MAPPINGS is called, and the current working directory can be set from a command line argument when running JSM.

Jibb added motion stick options, exposing the orientation of the controller as a third stick. This third stick can do everything a regular stick can -- MOUSE_AREA, FLICK_STICK, or trigger key presses. He also added separate lean mappings so the controller can be leaned left or right to trigger key inputs. Stick modes can be made to work correctly when holding the controller sideways or backwards, and there's a new trackball binding option to help reset controller position. A onstartup.txt file can be automatically loaded with preferred settings, and a SLEEP command can help automate calibration.

Roy Straver added an optional forward deadzone for flick stick to help with engaging the stick for rotation when no flick is desired, and the option to make flick time proportional to the size of the flick when using flick stick.

Garrett added separate X and Y sensitivities for traditional stick aiming.

Features

  • All commands can now display help, or display their current value, have value filtering and notification.
  • Bindings can now have an action modifier (toggle/instant) and/or an event modifier (on press/release/tap/hold/turbo).
  • A button mapping can now enable multiple key presses.
  • WHITELIST_SHOW displays a link to the HIDCerberus console instead of opening it (security risk).
  • HELP command was renamed to README (it displays a web link to the latest README).
  • New HELP command shows a list of all commands or the help of all queried commands.
  • New settings added for button timings, HOLD_PRESS_TIME, SIM_PRESS_WINDOW and DBL_PRESS_WINDOW.
  • New setting JSM_DIRECTORY should help solve pathfinding issues with AutoLoad, by making the current working directory changeable.
  • Added possibility to bind any JSM command as an action by entering it within quotes. This enables the possibility to load a file on button press.
  • MOTION_STICK_MODE treats the whole controller's orientation as a stick, and can be set to anything LEFT_STICK_MODE can be set to.
  • LEAN_LEFT and LEAN_RIGHT can map leaning the controller left or right to key inputs.
  • LEFT_STICK_DEADZONE_* and RIGHT_STICK_DEADZONE_* can be set independently.
  • CONTROLLER_ORIENTATION changes the behaviour of sticks to work correctly when holding the controller sideways or backwards.
  • GYRO_TRACKBALL can be bound as an alternative to GYRO_OFF, GYRO_INVERT, etc. This will maintain the gyro's last velocity while held, and will decay according to the TRACKBALL_DECAY setting.
  • FLICK_DEADZONE_ANGLE defines a no-flick zone at the front of the stick for flick stick.
  • FLICK_TIME_EXPONENT determines how the size of the flick angle affects the time it takes to complete a flick.
  • If a file called onstartup.txt is found in the working directory, its contents will be loaded on startup. Use this for disabling AutoLoad or automatically whitelist and reconnect controllers.
  • If a file called onreset.txt is found in the working directory, its contents will be loaded right after startup and whenever RESET_MAPPINGS is called.
  • SLEEP will wait for a given number of seconds (up to 10).
  • Added support for the keypad's operator keys, decimal key and caps lock key.
  • STICK_SENS can accept two different sensitivities to set X and Y to different sensitivities.

Bugfixes

  • JSM should no longer sometimes get the mouse stuck on the side or top of the screen.

1.6.1

Lots of internal changes for developers. JSM can now be built for Linux, thanks to Romeo Calota. Since this is only developer-facing for now, this is still just a bug-fix update rather than a feature update. But if you're up for it, check out the Linux instructions in the README!

Regarding bugs, Nicolas fixed some bugs with disabling gyro and stick behaviour during mode shifts. Jibb added support for wired Switch Pro Controller (technically a new feature but the lack of support was a stumbling block for many new users) and made some changes to the DualShock 4 Bluetooth support that will hopefully fix issues some users have been having.

Bugfixes

  • Improved support for DualShock 4 and Switch Pro Controller.
  • Fixed an issue with stick behaviour and mode shift.
  • Fixed d-pad up always acting as a gyro off button even when it wasn't assigned.

1.6.0

Nicolas added modeshifts to JSM and all setting variables are now encapsulated in a structure. Therefore, to use any setting you need to query it through the accessor in Joyshock. All settings are now "optional" but should always be set in the base structure by the reset() function. Instances that are part of the modeshift map can have nullopt to indicate no alternate value for the setting when that modeshift is active. Nicolas also added MOUSE_AREA for a stick mode, which is useful for using mouse wheels in game where the wheel is not centered on the screen (in which case MOUSE_RING would work). See README for details.

Features

  • Added the ability to chord any setting (except autoload, and including NO_GYRO_BUTTON).
  • Modeshifts are removed by assigning NONE.
  • Added MOUSE_AREA as a stick mode.

1.5.1

Nicolas changed the tray icon to always be displayed.

Bugfixes

  • The one second pause when exiting JSM was not necessary.

1.5.0

Nicolas added double press bindings, improved chorded mapping behaviour when combined with taps and holds, and refactored a lot of code to prepare for some future changes. Also added support for mouse buttons forward and back, separate horizontal and vertical gyro sensitivities, and changed the way logs are displayed. Jibb added new ways to configue flick stick: customise flick stick's smoothing, disable some of its features, or snap to angles. Also made it so ring bindings work alongside any stick mode and added the MOUSE_RING stick mode for 2D twin-stick aiming.

Features

  • Added ability to assign Double Press mappings to a button, by entering the button chorded with itself (eg: S,S = SPACE).
  • Chords are now active when the controller button is down, instead of waiting for a bounded input to be resolved (such as taps and holds).
  • Support mouse buttons 4 and 5 (back and forward).
  • Horizontal and vertical gyro sensitivities can now be set independently by including a second number for the Y sensitivity (first will be used for X).
  • Added MOUSE_RING stick mode to let you use the stick to point the mouse in a direction relative to the centre of the screen.
  • Added new stick modes enabling only the flick (FLICK_ONLY) or rotation (ROTATE_ONLY) with flick stick.
  • Added FLICK_SNAP_MODE and FLICK_SNAP_STRENGTH for those who'd prefer flick stick snapped to cardinal (or intercardinal) directions with the initial flick.
  • LEFT_RING_MODE and RIGHT_RING_MODE = INNER/OUTER allows setting ring bindings regardless of what LEFT_STICK_MODE and RIGHT_STICK_MODE are.
  • Added the option to override the smoothing threshold for flick stick with ROTATE_SMOOTH_OVERRIDE. The smoothing window is still small, but it might soften things for those who found Switch sticks too twitchy.
  • Change some behind the scene mapping of commands to windows virtual key codes.

1.4.2

1.4.2 is a bugfix update. Nicolas fixed a crash and combo (aka Simultaneous and Chorded) presses not clearing properly, as well as some under-the-hood tweaks. Jibb tweaked communication with Bluetooth DualShock 4.

Bugfixes

  • Fixed crash when left clicking the tray icon.
  • RESET_MAPPINGS should now clear combo mappings.
  • Setting combo presses to NONE should now clear previous bindings.
  • Changes to how Bluetooth works with DualShock 4 controllers might fix issues some had with gyro not working.

1.4.1

1.4.1 is a bugfix update, with some minor features as well. Jibb improved flick stick's behaviour when the stick is released slowly, added the BACKSPACE mapping, and made the list of available configs update whenever the tray menu is re-opened. Nicolas added a "Whitelist" toggle to the tray menu.

Features

  • Added BACKSPACE mapping.
  • Added buffer between flick stick activation threshold and release threshold.
  • Added "Whitelist" toggle to tray menu.
  • Tray menu items are refreshed whenever the menu is re-opened.

Bugfixes

  • Fixed combined tap mappings on ZL and ZR not releasing correctly.
  • Fixed GYRO_INVERT overlapping ENTER keyboard mapping.
  • Fixed outer ring bindings not working properly.
  • Configs shortcuts in tray menu now use relative paths instead of absolute paths.
  • Minor fixes to the console text.
  • Fixed stick directional mappings to buttons not working as they should.

1.4.0

In 1.4, Nicolas added simultaneous and chorded press mappings, ring bindings, and options to map a button to inverting gyro input. He also added a HELP shortcut to the latest version of the README and a tray icon (created by Bryan and coloured by Contributer) that gives easy access to configs and useful commands when JSM is minimised. Jibb added Bluetooth support for the DualShock 4.

Features

  • Simultaneous press - map a pair of inputs pressed at about the same time to a unique output.
  • Chorded press - change the mappings of one or more buttons while a particular other button is pressed.
  • Bluetooth support for the DualShock 4.
  • Ring bindings - have a virtual input apply when either stick is fully pressed or only partially pressed, such as for walking or sprinting.
  • Invert gyro - have the gyro mouse inverted (in both axes or one axis of your choice) while pressing a button.
  • GYRO_OFF, GYRO_ON can appear on the right hand side of regular mappings for combining them with other inputs in interesting ways. Gyro-related mappings bound to a button tap will apply for 0.5s to give them time to be useful.
  • Whitelisting - add or remove JoyShockMapper to or from the HIDCerberus whitelist, if it's installed.
  • Tray icon - when minimised, JoyShockMapper has a tray icon that can be right-clicked to quickly access configs or useful commands.
  • The HELP command will open the README.

1.3.0

In 1.3, Nicolas added AutoLoad and dual stage triggers, while Jibb fixed a couple of bugs.

Features

  • AutoLoad - automatically load the appropriate config when an application comes into focus.
  • Dual Stage Triggers - map soft presses and full presses of the DualShock 4's triggers to different outputs.

Bugfixes

  • Fixed SL and SR not working properly on Joy-Cons.
  • Fixed hold NONE mappings not working.

1.2.0

In 1.2, Jibb added features to help with single Joy-Con control as well as more keyboard mappings and better comment support.

Features

  • Gyro axes can be mapped to different mouse axes using MOUSE_X_FROM_GYRO_AXIS and MOUSE_Y_FROM_GYRO_AXIS.
  • HOME and CAPTURE can now be mapped to any output. Any button can be mapped to CALIBRATE.
  • PAGEUP, PAGEDOWN, HOME, END, INSERT, and DELETE keyboard mappings were added.
  • /# comments can be added at the end of a line, instead of requiring their own line.

1.1.0

In 1.1, Jibb added more ways to enable or disable the gyro, changed the default behaviour of calibration, and fixed a couple of bugs.

Features

  • GYRO_OFF and GYRO_ON can be set to LEFT_STICK or RIGHT_STICK so that the gyro can be enabled or disabled depending on whether a given stick is being used.
  • Continuous calibration is now disabled when a device is first connected, since sometimes devices don't need to be calibrated on startup.

Bugfixes

  • Fixed d-pad up being the gyro off button when none was set.
  • Fixed a crash when a bad command was entered.

1.0.2

1.0.2 is a bugfix update.

Bugfixes

  • Fixed a bug where arrow keys couldn't be mapped properly.

1.0.1

1.0.1 is a bugfix update.

Bugfixes

  • Statically linked runtime so that users don't have to have any particular MSVC runtimes installed.

1.0

JoyShockMapper 1.0 was the first public release of JoyShockMapper, created by Jibb Smart. Its features are too many to list in the changelog, but explore the README to see what it offers!