JoyToKey Changelog

What's new in JoyToKey 6.9.3.551

Mar 24, 2024
  • Bug fix for the mouse cursor movement to an absolute position.
  • Other minor bug fix

New in JoyToKey 7.0.0.560 Beta (Mar 24, 2024)

  • On the joystick tabs, device names will be displayed by default. In case you want to override the tab label, you can also specify a custom label. (Right-click on the tab, and select "Override the label for this tab")
  • Support for the dark mode
  • Support for high DPI display

New in JoyToKey 6.9.3.546 Beta (Oct 9, 2023)

  • Bug fix for the mouse cursor movement to an absolute position.
  • Other minor bug fix

New in JoyToKey 6.9.2.543 (Sep 9, 2023)

  • For those who have trouble displaying UNICODE arrow characters (such as "←") in certain PC environments, an alternative build is now provided which only uses ASCII characters.
  • Added a task tray right-click menu "Reset main window position to (0,0)". This can be useful in case JoyToKey window is lost somewhere and you want to forcibly bring it back to the screen.
  • Renamed and re-ordered the right-click menu items during button assignment
  • Several bug fixes

New in JoyToKey 6.9.2.538 Beta (Feb 11, 2023)

  • Disabled the use of arrow characters (such as "←") as it didn't seem available on certain PC environment
  • Bug fix for "sqrt DOMAIN error" for certain controller.

New in JoyToKey 6.9.1.535 (Aug 30, 2022)

  • Bug fix for Access Violation Error in certain PC environment.

New in JoyToKey 6.9.0.532 (Aug 14, 2022)

  • Enhancement for the "Keyboard" tabs - Added the right-click menu to specify the mouse wheel input. This enables the wheel input to be easily combined
  • with other key inputs such as "ALT + wheel" or "CTRL + wheel" for zoom-in/out shortcut
  • Added the feature to trigger the custom vibration pattern when the active profile is switched (under the Options tab)
  • NOTE: At this moment, it's limited to the first XInput device
  • Added the right-click menu to easily swap two button assignments
  • Added a few menu items for easier access (License key, donation and TIPs)
  • Fixed the behavior when TAB key is pressed in "Keyboard Multi" setting window so that the basic configuration can be done without using a mouse
  • Fixed the "Notify via a sound" feature in Preference menu

New in JoyToKey 6.9.0.531 Beta (Aug 4, 2022)

  • Added the feature to trigger the custom vibration pattern when the active profile is switched (under the Options tab).
  • NOTE: At this moment, it's limited to the first Input device.
  • Added the right-click menu to easily swap two button assignments.
  • Enhancement for the "Keyboard" tabs - Support the mouse wheel input from right-click menu, which can be easily combined with other key inputs such as "ALT + wheel" or "CTRL + wheel" for zoom-in/out shortcut.
  • Added a few menu items for easier access (License key, donation and TIPs).
  • Fied the behavior when TAB key is pressed in "Keyboard Multi" setting window so that the basic configuration can be done without using a mouse.
  • Fied the "Notify via a sound" feature in Preference menu.

New in JoyToKey 6.8.1.522 Beta (May 10, 2022)

  • Enhancement for the "Keyboard" tabs - Support the mouse wheel input from right-click menu, which can be easily combined with other key inputs such as "ALT + wheel" or "CTRL + wheel" for zoom-in/out shortcut.

New in JoyToKey 6.8.1.521 Beta (Apr 19, 2022)

  • Fixed the behavior when TAB key is pressed in "Keyboard Multi" setting window so that the basic configuration can be done without using a mouse.

New in JoyToKey 6.8.0.520 (Jan 29, 2022)

  • Enhanced "Configure diagonal input as separate buttons" feature such that it can be configured separately for left and right sticks. (Under "Options" tab -> Show/Hide Buttons)

New in JoyToKey 6.8 Beta (Dec 29, 2021)

  • Enhanced "Configure diagonal input as separate buttons" feature. It can be configured separately for left and right sticks.

New in JoyToKey 6.7 Beta (Apr 2, 2021)

  • From keyboard (multi) tab, you can now trigger the assignments on different buttons. In order to use it, when assigning a key code, open the right-click context menu, and select Button 1~128. For example, you can assign Input1=Button31, Input2=Button32 and switch them based on the button hold duration, and they could be defined to switch to a different profile.
  • Enhanced switch rotation in Keyboard(Multi) tab - Added an ability to reset the counter when a button isn't pressed for a certain duration. That means, when the button is pressed next time, it will go back to start with Input1.
  • Enhanced assignment based on the press duration (Keyboard-Multi): It is now possible to assign an additional key "Input3" when the long-press is released.
  • Further improvement for "Experimental" mode (support triggers on certain case)
  • Bug fix: make the mouse movement consistent between Mouse tab and Keyboard tab.

New in JoyToKey 6.6.1 Beta (Mar 15, 2021)

  • Further improvement for "Experimental" mode (support triggers on certain case)
  • Bug fix: make the mouse movement consistent between Mouse tab and Keyboard tab.

New in JoyToKey 6.6.0 (Mar 14, 2021)

  • Experimental support for a "Share" button on XBox Series X/S controller. In order to use a "Share" button, you need to enable the experimental mode from menu "Settings" -> "Preferences", and change "Input device types" to "Experimental Logic (Beta)".
  • Improved the automatic detection when an additional joystick is connected.
  • Supported a negative coordinate for moving the mouse cursor to the absolute location. It might be useful in case you want to jump to a monitor which is positioned left to the main monitor.
  • Added a new command line option "-q" (quiet) to disable the log file generation.
  • Added a new parameter in "JoyToKey.ini" file to default the configuration for newly detected devices for https://www.oneswitch.org.uk/
  • Stopped the support for Windows XP, in order to use a new API. For those who are using Windows XP or 2000, DO NOT upgrade and please continue to use the old version you have been using.
  • Other minor bug fixes

New in JoyToKey 6.6.0 Beta (Dec 31, 2020)

  • Experimental support for a "Share" button on XBox Series X/S controller. In order to use a "Share" button, you need to enable the experimental mode from menu "Settings" -> "Preferences", and change "Input device types" to "Experimental Logic (Beta)".
  • Improved the automatic detection when an additional joystick is connected.
  • Supported a negative coordinate for moving the mouse cursor to the absolute location. It might be useful in case you want to jump to a monitor which is positioned left to the main monitor.
  • Added a new command line option "-q" (quiet) to disable the log file generation.
  • Added a new parameter in "JoyToKey.ini" file to default the configuration for newly detected devices for https://www.oneswitch.org.uk/
  • Stopped the support for Windows XP, in order to use a new API. For those who are using Windows XP or 2000, DO NOT upgrade and please continue to use the old version you have been using.
  • Other minor bug fixes

New in JoyToKey 6.5.1 Beta (Oct 28, 2020)

  • Added a new command line option "-l" to disable the generation of log file.
  • Added a new parameter in "JoyToKey.ini" file to default the configuration for newly detected devices for https://www.oneswitch.org.uk/
  • Bug fix for assigning mouse movement in Keyboard tab

New in JoyToKey 6.5 (Oct 7, 2020)

  • New feature to paste a pre-defined text to the target application
  • "Re-process when the same key continues while it's already pressed" option
  • Minor bug fixes

New in JoyToKey 6.4.3 (Jul 12, 2020)

  • Improved the association of a profile based on the target window title.
  • Minor bug fixes

New in JoyToKey 6.4.3 Beta (May 13, 2020)

  • Improved the association of a profile based on the target window title.

New in JoyToKey 6.4.2 (Apr 6, 2020)

  • Minor bug fixes

New in JoyToKey 6.4.1 Beta (Feb 16, 2020)

  • Supported the association of profiles based on the target window title, besides the file path of the target application.

New in JoyToKey 6.4 Beta (Aug 26, 2019)

  • Support repeat and toggle click in mouse absolute movement mode.

New in JoyToKey 6.3 (Jul 21, 2019)

  • Starting from this version, user configuration data will be by default stored in "JoyToKey" folder in user's "Documents" folder.
  • In case you upgrade JoyToKey from an older version, please copy (or move) the old "JoyToKey" folder into your "Documents" folder so that you can continue to access your configuration data.
  • To be more friendly for new users,
  • JoyToKey is packaged as an installer, instead of a zip file format
  • Tab names in the button assignment window are made clearer (e.g. "Keyboard 2" -> "Keyboard (Multi)")
  • UI layout for assigning the mouse cursor movement is made easier
  • Minor bug fixes

New in JoyToKey 6.2 (Feb 2, 2019)

  • Support up to max 50 joysticks (previously 32 joysticks)
  • Support up to max 128 buttons (previously 32 buttons)
  • Enhanced an execution of an external program to be able to
  • pass command parameters
  • specify the starting working directory
  • In the button assignment window, added navigation buttons to go to the next and the previous assignment.
  • In case JoyToKey is started when no controller is connected, JoyToKey tries to automatically detect devices until one controller is connected.
  • But some users may want to continue the auto detection until two controllers are connected, or some users may want to disable this auto detection completely. From this version, you can change the behaviour by changing the following line in "JoyToKey.ini" file.
  • # in case you want to continue the auto-detection until two devices
  • AutoDetectDevicesUpTo=2
  • # in case you want to disable the auto-detection
  • AutoDetectDevicesUpTo=0
  • NOTE: Repeated auto-detection of devices while playing the game may lead to a slight delay or input lag occasionally. So this auto detection should be only used for the number of devices which are always connected.

New in JoyToKey 6.1.2 Beta (Nov 11, 2018)

  • Support up to max 50 joysticks (previously 32 joysticks)
  • Support up to max 128 buttons (previously 32 buttons)

New in JoyToKey 6.1.1 (Sep 23, 2018)

  • Supported multiple displays for the absolute movement of mouse cursor.
  • Important bug fix for version 6.x

New in JoyToKey 6.0 (Sep 9, 2018)

  • Supported additional key-code emulations such as the volume control (up / down / mute), media control (prev / next / play / stop), and SCROLL_LOCK key.
  • Changed the default key emulation code for arrow keys, R-Alt and R-Ctrl, to fix some compatibility issue with recent Windows 10. In case it causes a problem for certain old games and you want to use the old key code, in the button assignment window, please select an equivalent key (from right-click menu) which is labeled as "for DirectInput".
  • Single click a task tray icon to refresh joystick connections
  • When you connect a new joystick to the PC, you can just click the task tray icon to get it recognized (either left click or right click).
  • Ability to re-process the key emulation event when the same key continues during the processing of Input1-Input4 sequence (Keyboard 2).
  • By default, when processing the sequence of key emulation through Input1 to Input4, if the same key assignment continues, it's emulated only once. In the example below, key "↓" will be only pressed once and will be kept pressed until Input2 is released.
  • Input1 = "↓"
  • Input2 = "↓" + "→"
  • Input3 = "→"
  • Going forward, this behaviour can be changed from "Options" tab by enabling the following checkbox: "Re-process when the same key continues in sequence"
  • Misc bug fixes such as button highlighting

New in JoyToKey 5.9.1 Beta (Jul 17, 2017)

  • In "Keyboard2" page, send the new release and press event when the same key is assigned in the following sequence.

New in JoyToKey 5.9 (Feb 23, 2017)

  • Fixed a crash issue for some online games
  • Enhanced "Keyboard2" page to support the followings: ◦Supported the emulation of Input1 ~ Input4 in sequence at the specified interval (hold duration)
  • Supported different key assignment based on how many times a button is pressed within the specified time threshold
  • Supported the key assignment when a button is released
  • Supported the definition of mouse cursor movement via right click menu. For example, this enables one button input to cycle through up, right, down, left mouse cursor movement whenever it's pressed
  • Supported a mouse horizontal wheel rotation
  • Improved the keycode emulation for the Numpad '/' and a few other keys
  • Miscellaneous configuration options were added for OneSwitch.org.uk ex) FontSizeProfileList=20 FontSizeButtonList=20 ProfileImageFullScreenRatio=1.0

New in JoyToKey 5.8.2 (Dec 28, 2015)

  • Increased the maximum number of joysticks from 16 to 32
  • Bug fix for the preferred joystick number assignment
  • Support two modes for highlighting pressed buttons on the JoyToKey main window:
  • Only highlight on the corresponding joystick tab (default)
  • Highlight on all tabs regardless of the joystick number (useful for configuring virtual joysticks)

New in JoyToKey 5.8 (Nov 7, 2015)

  • Added support for XInput devices besides DirectInput devices. Enhanced auto-repeat definition to support more flexible definition.
  • Added an ability to show an image file when an active profile is changed. Image file can be registered in Options tab for each profile.
  • A few minor bug fixes
  • Enhanced the support for XBox360 controller:
  • The silver guide button can be assigned as button 13
  • Left/Right trigger can be assigned as analog input button 11, 12

New in JoyToKey 5.7.1 (Aug 28, 2015)

  • Support "Numpad Enter" key assignment via right-click menu
  • Support up to 4 POV inputs
  • Enhanced the right-click menu on the joystick tab and on the button list such that the selected configuration can be copied-to or pasted-from a clipboard
  • Enhanced device configuration to support stick-axis mapping across all 8 axes

New in JoyToKey 5.7 (Apr 18, 2015)

  • Support for an absolute mouse movement (a.k.a. spring mode)
  • Mouse cursor can be positioned at a configured center location and can be moved within a specified range with an analog input stick. This can be useful for controlling an application like a flight simulator.
  • Besides, a regular button can be also used like a mouse shortcut by jumping the mouse cursor to a preconfigured position, followed by a mouse click.
  • Enhanced SHIFT key (virtual joystick) function to support delayed switch.
  • For example, combined with a "Button Number Mapping" feature, one button can be assigned for both a regular key input (for a short press) as well as for a SHIFT function (for a long press).
  • Enhanced "Switch depending on how long the button is pressed" in Keyboard2.
  • In case the event emulation is not recognized reliably when you press the button too quickly, JoyToKey can now hold it for a minimum duration. (default 20 msec)
  • Exposed hidden parameter "AnalogDeadZone" (which is used for DirectInput setup) in "Settings -> Configure Joysticks".
  • If you want to minimize the input threshold for your device, please try setting it to zero. If you need a different threshold for Stick1 and Stick2, you can continue to do so in "Options" tab for each profile.
  • Other minor bug fixes

New in JoyToKey 5.6 (May 14, 2014)

  • Enhanced "Keyboard 2" functionality to support the followings:
  • support 4 keys per definition
  • support the rotation of 4 input definitions
  • support auto repeat and toggle configuration
  • Upgraded DirectX library version from 7 to 8

New in JoyToKey 5.5.1 (Jan 27, 2014)

  • Minor bug fix

New in JoyToKey 5.5 (Jan 20, 2014)

  • Support "Button Number Mapping"
  • Example Usage1: Swap button numbers if the connected joystick has a different layout from your favorite one.
  • Example Usage2: Associate Button21 with Button1 so that both functions are triggered when Button1 is pressed.
  • Example Usage3: It is also possible to configure some button (e.g. Button22) to be triggered when both Button5 and Button6 are pressed simultaneously.
  • If some buttons are pressed when profile is changed or SHIFT function is triggered, those button press are likely to trigger both old and new assignments right before/after the switch.
  • It is now possible to define certain duration (e.g. 100 msec) to ignore those inputs right after the switch (from preference menu)
  • When both mouse cursor movement and mouse click are assigned to a button, click&hold will be processed before cursor movement.
  • Improved the reliability after resuming from PC sleep.
  • Preferences were moved from menu items to a separate window.
  • Added an ability to specify the number of buttons to configure.
  • Changed the user interface font to Calibri
  • Configuration files are now saved in Unicode format (UTF8+BOM). This may fix garbled character issues for the use of non-default language.

New in JoyToKey 5.4.2 (Nov 4, 2013)

  • Fixed garbled characters for some non-Japanese PC and keyboard.
  • (only for advanced users) Support configuring "JoyToKey.ini" file path via registry.
  • If you have any reason why you need to forcibly specify "JoyToKey.ini" file path (e.g. you're using some launcher like Hyperlaunch), you can do that via registry editor:
  • Run "regedit" program
  • Create a key "HKEY_CURRENT_USER\Software\JoyToKey"
  • Create a string value "IniFilePath=c:\WhateverPath\JoyToKey.ini"

New in JoyToKey 5.4.1 (Oct 17, 2013)

  • Support various file formats (such as mp3) for sound notifications.

New in JoyToKey 5.4 (Oct 16, 2013)

  • Added an ability to play sound or show tasktray balloon when the selected profile is changed.
  • Tasktray balloon can be enabled from "Preferences" menu.
  • Sound notification can be configured for each profile in "Options" tab. (currently, only WAV files are supported)
  • For example, sound notification could be useful for visually impaired users, while they step through different profiles to help them to pick the right one.
  • The size of profile files is made smaller by eliminating empty lines.
  • In case "JoyToKey.ini" file or its directory is not write-able, JoyToKey will try to make them write-able.

New in JoyToKey 5.3.1 (Sep 4, 2013)

  • URL was changed to http://joytokey.net/

New in JoyToKey 5.3.0 (Sep 4, 2013)

  • Support delayed input for a special function to switch profiles. If you want to keep JoyToKey running while you're playing a game which has a native joystick support, the followings may be useful.
  • Temporarily switch to a profile, which is basically empty
  • But it has one button assigned for switching back to the original profile after being pressed for X seconds.
  • Control the behaviour when JoyToKey window is active from menu "Preferences" ->"Don't emulate keyboard input when JoyToKey window is active" (by default true)

New in JoyToKey 5.2.3 (Sep 4, 2013)

  • Support emulation for 4th and 5th mouse button. They could be useful if you're using mouse gestures with joysticks.
  • Turbo mode was enhanced to support up to x16 processing speed. However, this is experimental and should not be used for regular use as it's very CPU intensive and is likely to slow down the PC.

New in JoyToKey 5.2.2 (Sep 4, 2013)

  • Support for loading configuration files from a common AppData folder when it exists. (e.g. C:\ProgramData\JoyToKey)
  • Added a new menu "Open file folder in Explorer"

New in JoyToKey 5.2.1 (Sep 4, 2013)

  • Bug fix: garbled characters for allow keys

New in JoyToKey 5.2.0 (Sep 4, 2013)

  • Support the combination of keyboard and mouse click Ex) SHIFT+Click, CTRL+Click. In order to specify a mouse click in keyboard assignment window, please right-click the entry box.
  • Bug fix: minor bug fix for 5.1.2

New in JoyToKey 5.1.2 (Sep 4, 2013)

  • Bug fix: SHIFT + arrow keys were not properly processed.

New in JoyToKey 5.1.1 (Sep 4, 2013)

  • Mouse cursor emulation with analog sticks is further improved.

New in JoyToKey 5.1.0 (Sep 4, 2013)

  • Mouse cursor emulation is now much smoother with analog sticks, by using a continuous acceleration without a threshold.
  • In case analog stick input has been wrong, axis mapping can be manually specified. (Menu: "Preferences" -> "Configure joysticks")
  • In case you have multiple joysticks and want to always use one of them as "Joystick 2" (or any other joystick number), you can define a priority/preferred number for each device. (Menu: "Preferences" -> "Configure joysticks")
  • Miscellaneous bug fixes.

New in JoyToKey 5.0.3 (Sep 4, 2013)

  • (Improvement) Re-detect joysticks after resuming from sleep.

New in JoyToKey 5.0.2 (Sep 4, 2013)

  • Bug fix: Preference "Highlight buttons when JoyToKey is active" was not properly saved.

New in JoyToKey 5.0.1 (Sep 4, 2013)

  • Added a menu "Help -> Overview"
  • Added a button "Edit button assignment"
  • Minor bug fixes

New in JoyToKey 5.0 (Sep 4, 2013)

  • Support for different key assignments based on analog stick input level.
  • Support for different key assignments based on button hold duration.
  • Support for rotating key assignments. For example, whenever the same button is pressed, its key assignment can rotate like "A -> B -> A -> B -> A ..."
  • Enhanced auto-repeat key functionality:
  • The following auto-repeat definitions are newly possible
  • "1.5 repeats per second"
  • "one repeat per 123.4 seconds"
  • "auto-repeat only after 500 milli-seconds"
  • When the main window of JoyToKey is activated and joystick buttons are pressed, those buttons will be highlighted in the main window so that you can easily see which button corresponds to which row in the config. (You can change it back to the old behaviour from menu setting)
  • When the window is minimized, icon will be kept in the taskbar by default. If you prefer the old behavoir and want to hide it from taskbar, you can change it back to the old behavior from settings menu.
  • Added a comment field for each button definition. For example, you can record a memo like "This button is used for Jump".
  • Support for copying joystick configration from one to another. Right-click "Joystick 1" header in the main menu, to open a popup menu.
  • Support for at maximum 4 key assignments for each button.
  • Various small bug fixes

New in JoyToKey 3.7.9 (Jul 9, 2007)

  • Bug fix - disable keeping minimized state on exit (made in 3.7.8) so that Windows OS will not stop on exit.