Change History of JoyToKey

JoyToKey 5.7.1
  • 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
JoyToKey 5.7
  • 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
JoyToKey 5.6
  • 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
JoyToKey 5.5
  • 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.
JoyToKey 5.4.2
  • 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.
    1. Run "regedit" program
    2. Create a key "HKEY_CURRENT_USER\Software\JoyToKey"
    3. Create a string value "IniFilePath=c:\WhateverPath\JoyToKey.ini"
JoyToKey 5.4.1
  • Supported various file formats (such as mp3) for sound notifications.
JoyToKey 5.4
  • 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.
JoyToKey 5.3
  • Support delayed input for a special function to switch profiles. If you want to keep JoyToKey running in background while you're playing a game with a native joystick support, the following trick may be useful.
    1. When the game with native Joystick support becomes active, temporarily switch to a profile, which is basically empty
    2. But it should have one button assigned for switching back to the original profile after being pressed for X seconds
    This way, JoyToKey won't do anything while you're playing the game, but you can come back to the original profile by long-pressing a special button.
  • Control the behavior when JoyToKey window is active from menu:
    "Preferences"-> "Don't emulate keyboard input when JoyToKey window is active"
JoyToKey 5.2.3
  • 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)
JoyToKey 5.2.2
  • Added a new menu "Open file folder in Explorer"
  • Support for loading configuration files from a common AppData folder (only when it exists).
    By default, configuration files are created in the same folder as "JoyToKey.exe". But once you create an empty file "JoyToKey.ini" in common AppData folder ("C:\ProgramData\JoyToKey\JoyToKey.ini"), you can share the configuration files across multiple users, or you can launch JoyToKey.exe from read-only folder.
JoyToKey 5.2.0
  • Support the combination of keyboard and mouse click.

    Ex) SHIFT+Click, CTRL+Click

    In order to assign a mouse click in keyboard assignment window, right-click the entry box and select mouse click from context menu
  • Bug fix: SHIFT + arrow keys were not properly processed for text selection and some games (such as Minecraft)
JoyToKey 5.1.x
  • 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")
JoyToKey 5.0.x
  • 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 -> C -> A -> B -> C -> 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 behavior from menu setting)
  • When the window is minimized, icon will be kept in the taskbar by default. If you prefer the old behavior 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 for each button like "This button is used for Jump".
  • Support for copying joystick configuration 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.
  • Added a menu "Help -> Overview"
  • Added a button "Edit button assignment"
JoyToKey 4.6
  • You can choose the default behavior when the target application switches to non-associated program
  • When you temporarily switch to the virtual joystick configuration while some button is being pressed, the pressed state will be kept without release-action, if its original key config and the new key config are the same. (e.g. if the arrow key is assigned for both the joystick1 config and the virtual joystick3 config, then switching between joystick1 and joystick3 won't trigger unnecessary release event)
JoyToKey 4.5
  • Support for associating config files with applications
    Active configuration file can be automatically switched based on the focused application.
  • Support dynamic acceleration of mouse cursor movement
    If you use mouse cursor emulation with analog sticks, the speed sensitivity can be accelerated at certain threshold.
  • Support 4-way and 8-way assignment for POV control
  • Auto repeat functionality, ranging from very slow repeat (1 time per 15 minutes) up to 60 times per second (with 2x processing mode)
  • Support for toggle button
    e.g. use it for drag&drop with mouse emulation, or for truly automated repeat of keys even when you are away from PC.
  • Window size became re-sizable
  • Task tray icon
    • left-click to open/close the main window
    • right-click to open popup menu
  • JoyToKey can be started even when joystick is not connected
    It will automatically detect a newly connected joystick. (NOTE: it only works the first joystick. If you connect the second one or more, please press "detect" button manually from preferences panel)
  • Several additions in the menu such as
    • copy configuration file
    • open game controller setting from control panel
    • suspend / resume the processing temporarily
    • 2x processing mode (if you want to minimize the input latency, sacrificing extra CPU load)
    • generate debug log

Return To Top