BACKUP YOUR CURRENT PROFILES – Make sure you export your profiles as .cmj files from your earlier version of ControlMyJoystick. In more recent versions, this was done automatically on shutdown. You should find them at: C:UsersYourNameDocumentsControlMyJoystick. You will need to import these into ControlMyJoystick.
UNINSTALL, THEN INSTALL – You must uninstall previous versions of ControlMyJoystick, so be sure to backup your profiles somewhere as they can be imported into the new version. The reason for the uninstall is that new drivers will be installed with the new version that cannot be used by the previous version. Also, previous versions cannot use the new drivers. If you installed over top of the old version, the new drivers *should* replace the old drivers and the new version should work, but the old version will not work properly.
UPDATE YOUR DXWARE – Update your 3DxWare10 version to 10.5.5 or higher if you are using a DxWare device.
- You can now accept input from one or more physical joystick devices and apply the usual smoothing and curves. This is in addition to the existing DxWare device input.
- You can now map the various buttons and axis from physical joystick and DxWare inputs to the output virtual joystick driver axis and buttons.
Added a VIRTUAL KEYBOARD DRIVER, which is way more reliable then the old SendInput method. You can still use SendInput, but after you use the driver, you won’t want to. This emulates a physical keyboard and it can do tons of stuff. Note: We don’t read keystrokes from the keyboard driver.
- We only send data to the driver so that it can appear as physical keystrokes.
- Added a VIRTUAL MOUSE DRIVER, which is also more reliable than the old SendInput methods.
- Refined how you bind output axis and made it more likely to be ‘seen’ by games.
- Greatly reduced CPU usage.
- For most output to be received by a target app(like a game), you need to set a profile target and enable it. Right-click on the profile picklist for this option.
- There is an import function to import older .cmj profiles. If you are using .cmjson files, these will upgraded automatically when you first select them in the profile picklist.
- We’ll be updating the knowledge base soon.
- You will notice new Input and Output tabs. In the Input tabs you set which DxWare or physical joystick devices you will accept input from. In the Output tab, you will map those inputs to the output virtual joystick driver.
- Axis and button gauges for input devices now show curve alignment and the raw and curved values.
- You can now have cross-device button combinations as a trigger. Think pressing button one on this joystick, button two on that joystick, and the Fit button on a DxWare controller to trigger a macro. We’re sure someone will find a good use for this.
- Added a ‘Reset Drivers’ item.
- Nested scripts now work properly.
- In the new Keyboard (Driver) option, all DOWN_UP, DOWN and UP keystrokes are done in the same dialog. You can also enter text and press the ‘Test’ button to send it to the targeted app.
- Tweaked how mouse movements and button presses works in scripts. See the new ‘Tutorial 15 – Draw an X in Microsoft Paint’ for a demo.
- You can now receive triggers from physical joystick devices as well as DxWare devices. It is very customizable – you can literally do a device button combo by pressing buttons across different input devices if you wanted to.
- You can now run a script triggered by axis movement. It’s kind of like Digital WASD, but with macros. See the new ‘Tutorial 16 – Digital Controller Axis Triggers’ for a demo.
- You can now apply smoothing and curves to input joysticks.
- In the Digital Joystick option, you can now specify one or more keystrokes, so it should be possible to do something like CTRL-F7 or something like that instead of a single key. To experiment with the keystrokes needed for your game, try launching the keystroke editor from the Output/Keyboard tab and experiment there.
- You can now use the Prev and Next buttons to change the current axis instead of having to close the curve dialog.
There is now the concept of curve alignment when editing a joystick curve. Axis curves that spring back to center should be set to Center alignment.
- Use Left or right alignment for joystick slider and dials. Yes, you can now curve a throttle axis!
There are now more curve presets to choose from.
- We never have and never will use ‘hooks’ to read mouse and keyboard output. We don’t monitor your keyboard. Period.
- Our drivers or fully cross-signed, legitimate drivers that we have developed in-house for use with ControlMyJoystick. No reduction of Windows security is required to install these drivers.
- Because the keyboard driver is so flexible, be careful when running scripts that you gotten from someone else. You can literally launch a command line or web browser and type stuff in and do pretty well anything you can do with a physical keyboard. So, never run an unknown without reviewing it first.
- ControlMyJoystick does not have a way to read memory or screen pixels, or relay axis and button data from a third party app to the
- ControlMyJoystick virtual drivers. This kind of functionality is typically used by cheat-bots and we do not condone this use, or provide a way to do so.
- You can view the driver output in the Output/Joystick tab.
- Dial, Slider, Wheel and Hat Switches are now supported.
- You can now map input axis and buttons to the output joystick driver axis and buttons. By default it is mapped to DxWare, but if you double-click on an axis you can remap it to something else.
- You can set absolute desktop cursor positions. Try this in the Output/Mouse tab. You can enter the coordinates and see where the mouse goes. You can also use a voice command to dump the current x,y coordinates to the mouse log so that you can use the coords later in a script (think navigating menus).
- You can no longer set relative mouse positions. You must use absolute. Relative really wasn’t too useful as you could never set where to start the relative movement.
- This driver is far more reliable than the old SendInput message we used in previous versions.
- This driver is far more reliable than the old SendInput message we used in previous versions. We still haven’t seen it fail to press a key in an app that could be pressed with a physical keyboard. SendInput failed quite often, depending on how the game devs restricted external inputs.
- If you send a key DN (down) to the driver, you better follow it up with an UP for the same key. If you don’t, the key will remain stuck, just like someone is still pressing the key on a physical keyboard. You can kill this stuck key by shutting down ControlMyJoystick. Best to review your Alt-Tab and Alt-F4 skills for killing ControlMyJoystick should this happen. Wear it as a badge of experimental honor.
- There used to be a list of output joystick buttons that you assigned names to. This has been removed as it is no longer required.
- Removed the particular theme that could cause a crash when selected.
- Now when you double-click on the upper-right-hand corner ‘x’ to shut down the app, it doesn’t crash.
- Nested scripts now work.
- Fixed bug when some dialogs would appear underneath the main window when Stay On Top was enabled, making it look like the app had crashed.
- Fixed odd placement and scaling of dialogs.
- Reduced the number of words stored in the speech recognition dictionary, which will make recognition a bit more accurate.
- Now if you hold down the keyboard shift key when starting ControlMyJoystick, it will launch with profile targets, voice and DxWare disabled as well as reset the layout to 1024×720 on the main monitor.
- Many other small fixes. A bunch, really.
- Fixed (for sure we hope) the mouse bug where after installation of the previous beta the virtual mouse driver would stick the cursor to the upper-left hand corner of the screen and you couldn’t move it without disabling the virtual mouse driver.