Universal Control Remapper (UCR) - v0.1.17 21st Aug 2017

Post gaming related scripts
User avatar
evilC
Posts: 3574
Joined: 27 Feb 2014, 12:30

Universal Control Remapper (UCR) - v0.1.17 21st Aug 2017

25 Dec 2015, 14:12

Image

IMPORTANT!
For Virtual XBox controllers to work, you must:
a) Install the latest version of vJoy from http://vjoystick.sourceforge.net/
b) On first run of UCR, check the vJoy log to make sure vJoy loaded OK
From the UCR main menu: IOClasses -> vJoy -> Show vJoy log
If all went well, install the SCPVBus:
From the UCR main menu: IOClasses -> vJoy -> Install SCPVBus
If this step fails, open an admin command prompt and navigate to UCR's resources folder, there are .bat files in there


What is UCR?
UCR is an application similar to the kind of software that comes with a keyboard, mouse or joystick - it lets you alter the way your input devices work and remap one to the other - one unified app for all your input devices.
UCR is powered by AutoHotkey, specifically the AHK_H variant by HotkeyIt, but you do not need Autohotkey installed to use it. There is no installer of any kind, just download the zip, extract it and run.
At the core of UCR are plugins. You can add as many plugins as you like, with each typically performing a small task such as remapping one key to another.
Plugins can be organised into Profiles, so you can easily switch between different configurations.
Each plugin is simply an AHK script. Creating a new plugin is as simple as editing a text file and placing it in the plugins folder.
A number of "Core" plugins are included with UCR, but users are encouraged to write their own and distribute them. Custom GUI controls are provided for use by plugin writers to allow the user to select the inputs which trigger the plugin's functionality.

See the screenshot above for an idea of the kinds of things plugins can do in UCR, but the possibilities are pretty endless... A plugin can do anything AHK can do: Launch an app, fill out a form, etc, etc

"Core" Plugins that ship with UCR

ButtonToButton
Remaps one button (Keyboard key, mouse button, joystick button or joystick hat direction) to another.
With optional toggle.

AxisToAxis
Remaps one axis to another, with optional invert, sensitivity (curved or linear) and deadzone.

AxisToButton
Remaps an axis to a pair of buttons - use to remap an axis to left and right arrows, or use two to map a whole stick to arrow keys or WSAD.

AxisMerge
Remaps two axes from one or two physical sticks onto one virtual axis. Use eg to turn two-axis pedals into a one-axis "rudder".

AxisSplit
Splits one axis into two. Useful if you need to remap a normal axis to two pedals or XBox triggers.

MouseToJoy
Remaps mouse to joystick using Delta mouse information (Does not care about cursor position or if cursor hits edge of screen).

ProfileSwitcher
Allows you to switch profile and the press of a button, and optionally switch to another profile (eg return to original profile) on release. Can be used in combination with "Profile inheritance" to set up "Shift states" where holding one button alters the function of other buttons.

Profile Speaker
Speaks some text when a profile becomes active - handy with ProfileSwitchers so you know what profile you are in.

CodeRunner
Runs the AHK code that you type into a textbox when you press the button you bind to it.
Can do almost anything - launch programs, change window etc.

GameBind
Facilitates binding outputs to games when you cannot "block" the game from seeing your physical input (eg with Joystick input, which cannot be blocked), meaning that you cannot bind the game to UCR's outputs, because it sees your Input to UCR first.
This inserts a delay between your input and the simulated output, so you can move your input, double-click "Bind" in the game, then wait until UCR sends the simulated input, which the game then binds to.

OneSwitch plugins
UCR is targeted not just at regular gamers, but also disabled gamers. OneSwitch seeks to enable physically disabled kids, who can often only operate one button or very limited input devices, and UCR features some plugins which were made for them. I am always open to the idea of plugins that enable disabled people to play games, so please do let me know if you have any ideas.

A Note about Joysticks
Whilst UCR can "remap" keyboard and mouse (Make applications think one key was pressed when in fact another was pressed), it cannot remap your joystick in this way - applications and games will always be able to see the input you make on a joystick. What you can do though is send keyboard or mouse output in response to joystick input, or make a fake "virtual" joystick (A joystick that UCR creates that windows thinks is real) move in response to your real joystick's input. As long as you can get the game or application to ignore input from your real joystick, and only take input from the virtual joystick, then you can effectively "remap" a joystick using UCR. The "GameBind" plugin is an attempt to work around this issue. Plans are in motion to potentially be able to block games from seeing your physical stick move, but these are likely to be a long way off at best.

A Warning
UCR is currently still in the early stages of development. It is not a polished product, and there will be bugs and other issues. A clean upgrade path may not be provided from one version to the next, it may eat your homework, etc, etc.

Download link

Github page (Source code and Documentation)
Last edited by evilC on 21 Aug 2017, 14:24, edited 48 times in total.
User avatar
evilC
Posts: 3574
Joined: 27 Feb 2014, 12:30

Re: Universal Control Remapper (UCR) - v0.0.1 25th Dec 2015

25 Dec 2015, 14:17

Current Known Issues
For a full list of issues, please see the Issues section of the GitHub page.
But, so that things are clear, I will detail the most important things you will need to be aware of if trying out UCR.
  • Be wary of using mouse wheel while ComboBoxes, Dropdownlists etc have the focus.
    We have taken steps to work around this issue, but it is hacky at best, and only works in certain cases.

Version history
Key:
! : Warning
* : Comment
= : Change / Fix
+ : Added feature

0.1.18 - 27th Oct 2017
= Increased number of Titan One axes to 13
TouchX and TouchY are now selectable.
+ Axis Splitter now has invert options for output axes
+ Added second editbox to CodeRunner plugin for code to run on button release

0.1.17 - 21st Aug 2017
= You can now properly bind Mouse Wheel
= "Profile Inherits from Parent" checkbox now correctly updates when switching profile
+ Scale added to AxisToMouse, as sensitivity is a curve
+ The PauseButton plugin now beeps when you pause / unpause
+ Titan One D-Pad now correctly set
+ Titan One PS3 controllers now support accelerometer
+ Titan One PS4 controllers now support gyros

0.1.16 - 11th Jun 2017
= Revert out: Changed Associative array empty detection technique to Lexikos' one
Seems to break vJoy bindings on reload.

0.1.15 - 6th Jun 2017
+ Added AxisRangeToButtons plugin
This can be used to map an axis to up to 10 buttons.
eg for throttle operated by up to 10 keyboard keys
+ Added AxesToMouse plugin
Joystick to mouse
+ Added ButtonInitializer plugin
+ Adds Notes plugin
Useful if you send someone an INI - you can write instructions in here.
= Fixed previews in AxisMerger plugin
= Crash fix in InputDelta plugin
+ Adds Loading splash screen
+ Fixed warning in ProfileSwitcher plugin
When you first tried to select a target profile, you would get a warning
that the clear item already existed.
= Added #NoEnv to all threads for performance
= Changed Associative array empty detection technique to Lexikos' one

0.1.14 - 12th Mar 2017
= Massive changes to the MouseToButtons plugin
Is now a lot less "flickery"
There is now a "State Change" timeout value
This controls how long it takes to change state (reduce flicker)
= The MouseToJoy relative mode timeout value now works for the y axis

0.1.13 - 12th Mar 2017
+ Added Mouse Delta to Buttons plugin
+ Fixed suggested name for new plugins
+ Multiple InputAxis controls can now be bound to the same axis
+ Set default SetKeyDelay value to 0, 0
UCR does not send keypresses, it maps down events to down events etc
So this would likely only slow the code down

0.1.12 - 7th Mar 2017
+ Added AxisRangeToButtons plugin
This allows you to map an axis to up to 10 buttons
Each button has a "Low" and "High" value. If the axis is in this range...
Then the button is pressed. Else it is released.
If you need more buttons, more can be added by editing the source code.
+ You can now duplicate profiles using the "Copy" button in the toolbox.
Code contributed by Snoothy - thankyou!
+ You can now rename plugins to the same name but with different case
+ IOControl menus are now initialized when first opened.
This will mainly benefit users with large numbers of profiles.
UCR should load quicker, and you should not get a "Too many menus" error.
Code contributed by Snoothy - thankyou!
+ MaxThreads setting cranked up to 255
This seems to alleviate issues with fast, simultaneous input.
+ The InputDelta now self-updates Seen Mice

0.1.11 - 19th Feb 2017
+ You can now rename plugins
+ You can now re-order plugins
+ Plugin close button is now an icon
+ There are now preview GuiControls for Buttons and Axes
You no longer have to code your own in plugins
The Axis preview remains as a slider
The Button preview comes in two flavors:
A regular 25x25 icon with on/off states
A 3x34 icon that sits right next to an IOControl (To save horizontal space)
+ Added support for the following PS4 outputs on Titan One:
TouchPad X+Y
Aceelerometer X+Y
Touch Button
= Renamed Playstation LS/RS to L3/R3 in Titan One
= Fixed bad calculations in ButtonsToAxis plugin for Low/High options
+ Added support for Command-Line profile switching via CLI.ahk
Code contributed by Snoothy - thankyou!
+ You can now filter for individual mice in the MouseDelta
Thanks to David Baldwin for contributing the bulk of the code.

0.1.10 - 4th Feb 2017
= Ultrastik devices now work with UCR
Code contributed by Snoothy - thankyou!
= If vJoy is not installed, on startup you no longer get the error
"Error. An item with the name vJoy already exists in this menu"

0.1.9 - 26th Dec 2016
= Fix for disconnected sticks causing massive CPU usage
When a profile loads, it checks which sticks are connected.
Bindings for disconnected sticks will not be activated.
If you plug in the stick, try forcing a profile reload.
An easy way is by switching to global profile and then back

0.1.8 - 16th Dec 2016
= Fix for "invalid Gui Name" error for BindModePrompt
Hotkeys for bindmode were being enabled breifly on creation
= Fixed Joystick Hat/POV/D-Dpads in InputButtons
= Harmonized callback method for all input types to pseudo-threads

0.1.7 - 11th Dec 2016
= Fixed vJoy not acquring sticks until you changed a binding
* Merged Input-Output-Refactor into Master branch.

0.0.16 - 14th Aug 2016
+ The ButtonToButton plugin now has a Toggle mode
+ MouseToJoy plugin enhancements:
Added Scale Factor to Absolute mode.
Plugin can now be configured to only take input from a specific mouse.
You can now use multiple MouseToJoy plugins if you have more than one pointing device.
+ Added "HoldButton" functionality to OneSwitch Pulse plugin.
= InputActivity subscriptions no longer fire if the plugin is not active.
This only really affects OneSwitch Pulse or any custom plugins using InputActivity.
= Fixed bug that occurred when changing an InputButton plugin from button to hat:
The old binding was remaining active, this is now fixed.
= Fixed bug that occurred when changing an InputButton from keyboard to vJoy:
The vJoy selection UI would change selection of various elements in odd ways.
= A bunch of behind-the-scenes changes and fixes.
Please let me know if stuff that used to work now doesn't.
= MouseToJoy plugin fixes:
Fixed numerous bugs which made Absolute mode center the stick way too much.
The Timeout value for Absolute mode now works.

0.0.15 - 24th July 2016
! All ProfileSwitcher plugins will no longer be bound to a profile.
You are advised to delete and re-add the plugin.
+ Dialogs to choose name of new Profile / Plugin now appear in the center of the UCR GUI.
+ A new custom GuiControl - the ProfileSelect is now available for Plugin Authors to use.
This allows you to provide a guicontrol for users to choose a profile.
+ There is now a Text-To-Speech library provided in UCR.Libraries.TTS
+ Added Profile Speaker plugin.
This can be used to speak something when a profile becomes active.
+ The OneSwitch Pulse plugin now makes a beep on toggle on/off.
+ The OneSwitch Pulse plugin now has a "Timeout Warning" setting.
= The recommended development environment for UCR is now AHK Studio
Debugging of UCR and it's plugins is now much simpler.
See the UCR wiki for info on debugging plugins.
The code is now also split out into one file per class, so should be easier to work with.
= When you enter Bind Mode, the OnInActive() method is now called on all active plugins.
All plugins should cease all activity on OnInActive() and resume on OnActive()
= The code of the ProfileSwitcher plugin is now vastly simplified.
Most of it's code was moved into the ProfileSelect GuiControl.

0.0.14 - 19th June 2016
! INI (Settings) file format changed to 0.0.5. UCR will attempt to upgrade for you.
YOU ARE ADVISED TO BACK UP YOUR UCR.INI BEFORE RUNNING THIS VERSION.
+ Adds new "Profile Inherits Plugins from parent" option to profiles.
There is a new checkbox in the Profile Toolbox to turn this on or off for the current profile.
If this option is on for a given profile, then when the profile is active...
... the profile's parent profile (if it has one) will also be active.
This is useful when doing "Shift States", as it removes the need to duplicate plugins...
...in the "normal" and "shifted" profiles for things that don't change when shift is held.
= The Profile Switcher plugin now allows you to pick a profile for press and release.
This was needed because two plugins in the same profile cannot be bound to the same button...
... so two profile pickers (one for press, one for release) bound tot he same button didn't work.
= Bindings to Mouse Wheel now properly simulate the up (release) event.
Without this, if you remap mouse wheel to a key, that key is never released
= You can now control multiple vJoy sticks properly.
Previously, UCR would only control one stick at a time, resulting in weird behaviour.
+ All pop-up windows / dialogs now appear in the center of the GUI.
= Numpad Enter is now bindable

0.0.13 - 21st May 2016
! INI (Settings) file format changed to 0.0.4. UCR will attempt to upgrade for you.
YOU ARE ADVISED TO BACK UP YOUR UCR.INI BEFORE RUNNING THIS VERSION.
If you have problems, please post on the forums.
= Plugins are now uniquely identified by IDs.
This does not affect anything now, but it is an enabler for future features.
eg: Renaming of plugins, moving plugins between profiles, inter-plugin communication.
= All IDs (Profile and Plugin) are now GUIDs generated via windows APIs
+ Status of Input Threads is now show in the Profile Toolbox.
Blue = current profile, Green = active (eg global), Amber = Loaded but paused
= Fixes to logic for loading / unloading of Input Threads
= Up event for joystick buttons should now properly trigger...
... when entering a profile with the button already held.
+ UCR should now wait until done saving if you close the GUI mid-save.
+ Profile Toolbox now has a title in the GUI

0.0.12 - 17th May 2016
+ The Profile Toolbox is now integrated into the rest of the UI
The UI is now resizable horizontally, so you can resize the profile toolbox.

0.0.11 - 10th May 2016
= The following keyboard keys are now bindable as inputs / outputs:
PgUp, PgDn, End, Home, Left, Up, Right, Down, Insert, Delete
Please note that some of your existingly configured bindings may change.
eg Any binding set to NumpadLeft will now be Left arrow.
This can be fixed by simply re-binding.

0.0.10 - 4th May 2016
+ The ProfileSwitcher plugin now has a "Press/Release" option.
This controls whether the profile switch happens on press or release of the button.
You can use this to switch to another profile when you press a button...
... then switch back to the original profile when you release the button.

0.0.9 - 3rd May 2016
= Fixed Issue #83
The up event for a joystick button did not fire while a subsequently held button...
... was down, until you released the button.
eg Hold button A, then B. Up event for A would not fire until B was released.
= Fixed Issue #84
Output buttons were registering as Input buttons.

0.0.8 - 1st May 2016
+ Added memory management for profile Input Threads
The "Input Threads" which handle detection of input (one for each profile)...
... now start and stop dynamically as profiles change.
This is to limit the amount of memory UCR uses to a reasonable level.
A Profile's Input Thread will now be unloaded on profile change if they are a ...
... "Linked Profile" of the new profile or the global profile.
Profile A is considered a "Linked Profile" of Profile B if eg...
... a Profile Switcher plugin in Profile B is configured to point to Profile A.
Plugins can call UpdateLinkedProfiles() on the parent Profile...
... to set their relationship to other Profiles (Add or remove a link).
= All debug output now prefixed with UCR|
So if using DebugView, you can just filter for only UCR stuff using the string:
DBGVIEWCLEAR;UCR|*

0.0.7 - 13th Mar 2016
! Warning! Settings version has changed.
BACK UP your INI file before using it with this version, if you value it.
+ Profiles are now organized in a Tree instead of a flat list.
+ Added a "Profile Toolbox" to allow navigation of the profile tree.
Add / Add Child / Delete / Rename of profiles are all functional.
Dragging and dropping of items in the Profile Tree to change parenting or order is supported.
+ Profile Switcher plugin now has a "picker" that can be used to choose a profile from the tree.
If you later change the structure of the tree, it will still point to the same profile.
! Both the "Profile Toolbox" and the "Profile Picker" are experimental / placeholder.
The Profile Picker does not close unless you pick an item or close it.
Neither remember position or size.
= Multiple AxisMerge plugins can now be used together.

0.0.6 - 21st Feb 2016
= Fixed errors while switching profile at the same time as input was happening.
The ProfileSwitcher plugin should no longer crash UCR.

0.0.5 - 25th Jan 2016
= On change of profile, all held buttons are released.
= AxisToButton plugins now correctly manipulate the outputs.
= Multiple AxisToButton plugins now work together.

0.0.4 - 24th Jan 2016
+ Profile Switcher plugin added to allow changing profile using a hotkey.
This can be placed in the global profile to always be in effect.
+ Basic Joystick Axis to Button remapper plugin added.
+ Settings file is now written after one second's inactivity, rather than on every change.
+ Fix for Gui getting "Lost" when you minimized it.
If this happened to you, edit your INI file and reset the x and y coordinates at the top to 0.
+ vJoy API calls optimized.
= State property added to Output GuiControls, to match input GuiControls.
= AHK_H version updated
= Objects which are used in multiple threads are shared via COM using new AHK_H function ObjShare().


0.0.3 - 3rd Jan 2016
! WARNING: The Mouse To Joystick plugin is DANGEROUS in this version.
Adding one can be tricky (You will have to use keyboard to manipulate the Output Axis Combos)...
... But once you have added one, it will effectively break UCR - crashes all over the place :(
You will also not be able to remove the plugin via the GUI.
= AHK_H version updated
= Mouse Delta input now fires InputEvent like the other inputs
= InputEvent callbacks are now "Critical Objects".
Input from the global profile at the same time as the active profile should no longer crash UCR.
= Spamming button inputs quickly should no longer result in a "MaxHotkeysPerInterval" warning.
= Fix for current profile being forgotten on exit.
= Fix for multiple AxisToAxis plugins all using same output.

0.0.2 - 31st Dec 2015
= AHK_H version updated
+ Button To Axis remapper plugin added. Allows mapping of WSAD to vJoy
+ MouseDelta library added for reading of Delta Move information from mice.
+ Mouse to Joystick remapper plugin added for controlling a vJoy stick using mouse.
= Fix for: Leak of memory on each input event (eg button down/up, axis move).
= When in Bind Mode, only joystick buttons and hats that actually exist are polled.
This is better practice, and also seems to solve crashes on some systems.
= Split plugins folder into Core and User folders.
This should allow easier upgrading if you have your own plugins.
* If upgrading, it is advised that you back up your INI file and delete the old folder.

0.0.1 - 25th Dec 2015
+ First versioned release
Last edited by evilC on 27 Oct 2017, 06:58, edited 20 times in total.
shaul_1

Re: Universal Control Remapper (UCR) - v0.0.1 25th Dec 2015

26 Dec 2015, 07:46

I must be missing something.
I downloaded the ZIP file and extracted content to folder.
The double-clicked file UCR.exe and nothing happens.
System: Windows 8 x64

Shaul
Kurorai
Posts: 2
Joined: 24 Dec 2015, 12:52

Re: Universal Control Remapper (UCR) - v0.0.1 25th Dec 2015

26 Dec 2015, 09:53

I think i'm doing something wrong.
I have vJoy installed and working yet i can't bind the axis to axis plugin to any output. There are not outputs at all in fact, all there is a a clear bind option.
Also on maybe a related note i can no longer get UJR to recognise my vJoy install, UJR thinks its outdated despite me re-reinstalling the latest version from the sourceforge page.
I think something may be wrong with my vJoy but i cant tell what as it installs fine and is recognised by multiple games.

Any help is appreciated.
User avatar
evilC
Posts: 3574
Joined: 27 Feb 2014, 12:30

Re: Universal Control Remapper (UCR) - v0.0.1 25th Dec 2015

26 Dec 2015, 10:47

No idea why that may be, Shaul

Out of curiosity, try this:
Take a copy of UCR.exe from the zip, place it somewhere else, then make a text file called UCR.ahk that contains the following:



Then double-click the EXE. Do you see the message box?

UCR.exe is just Autohotkey.exe renamed. When you run an AHK exe, it checks the same folder for an .ahk file of the same name and if it finds it, executes the ahk file with the interpreter. I have no idea why this does not appear to be working for you.
User avatar
evilC
Posts: 3574
Joined: 27 Feb 2014, 12:30

Re: Universal Control Remapper (UCR) - v0.0.1 25th Dec 2015

26 Dec 2015, 10:51

Kurorai wrote:I think i'm doing something wrong.
I have vJoy installed and working yet i can't bind the axis to axis plugin to any output. There are not outputs at all in fact, all there is a a clear bind option.
Also on maybe a related note i can no longer get UJR to recognise my vJoy install, UJR thinks its outdated despite me re-reinstalling the latest version from the sourceforge page.
I think something may be wrong with my vJoy but i cant tell what as it installs fine and is recognised by multiple games.

Any help is appreciated.

This would be because UCR is not recognizing that you have vJoy installed. I have seen issues in the past with the vJoy registry keys getting mangled for some reason.
Games do not care where the reg keys are, they just see the stick moving. However UJR/UCR need to know where the DLL is so they can use it to grab control of the stick.

Try completely removing vJoy, then reinstalling.

I will also try improving error reporting WRT vJoy
Kurorai
Posts: 2
Joined: 24 Dec 2015, 12:52

Re: Universal Control Remapper (UCR) - v0.0.1 25th Dec 2015

26 Dec 2015, 11:27

Problem solved!
It seems that the vJoy installer was hanging on installation and not finishing properly.
The cause of this looked like the installer didn't like my X-55 Hotas being plugged in, unplugged it and everything went fine.
Though i did have to reinstall the X-55's drivers as it seems that vJoy doesn't play well with the HID portion of the stick and the Saitek profiler.
User avatar
evilC
Posts: 3574
Joined: 27 Feb 2014, 12:30

Re: Universal Control Remapper (UCR) - v0.0.1 25th Dec 2015

26 Dec 2015, 11:36

Awesome Kurorai!
Well Shaul_1 in this thread is the vJoy author - so maybe that is something for him to look at ;)
shaul
Posts: 7
Joined: 26 Dec 2015, 07:42
GitHub: shauleiz

Re: Universal Control Remapper (UCR) - v0.0.1 25th Dec 2015

26 Dec 2015, 15:16

EvilC - No luck.
shaul
Posts: 7
Joined: 26 Dec 2015, 07:42
GitHub: shauleiz

Re: Universal Control Remapper (UCR) - v0.0.1 25th Dec 2015

26 Dec 2015, 15:22

As for vJoy getting stuck.
There are rare cases when another device will veto the installation. You will see the word veto in file setupapi.dev.log.
In addition, there's a way to work around the vJoy installation deadlock: Run the installer from a command line with flag /VerySilent.
HotKeyIt
Posts: 1539
Joined: 29 Sep 2013, 18:35
Contact:

Re: Universal Control Remapper (UCR) - v0.0.1 25th Dec 2015

26 Dec 2015, 15:32

shaul wrote:EvilC - No luck.

Can you see UCR.exe in Task Manager after running it?
Also check if Windows or AntiVirus is blocking execution.
shaul
Posts: 7
Joined: 26 Dec 2015, 07:42
GitHub: shauleiz

Re: Universal Control Remapper (UCR) - v0.0.1 25th Dec 2015

26 Dec 2015, 15:52

Forget it. I'm total idiot. It's running.
I shall test it tomorrow.
shaul
Posts: 7
Joined: 26 Dec 2015, 07:42
GitHub: shauleiz

Re: Universal Control Remapper (UCR) - v0.0.1 25th Dec 2015

26 Dec 2015, 23:58

Fantastic work!
It is functional on my machine.
In the beginning it did not work. I can't reproduce the problem.
I have a few suggestions for you. Will pm you later on.
trafiken

Re: Universal Control Remapper (UCR) - v0.0.1 25th Dec 2015

27 Dec 2015, 10:14

The plugin system is great. Here is a few suggestions for easy editing.

Make it possible to reorder the plugins and maybe sort on plugin name.
Make it possible to collapse a plugin window so that only the title bar is visible. In that way we can make the configuration surface of each plugin larger.
When a plugin window is collapsed, show output in the title bar.

picture here:
sites.google.com/site/oldredwheel/home/uch
User avatar
evilC
Posts: 3574
Joined: 27 Feb 2014, 12:30

Re: Universal Control Remapper (UCR) - v0.0.1 25th Dec 2015

27 Dec 2015, 12:56

trafiken wrote:Make it possible to reorder the plugins and maybe sort on plugin name.

Re-ordering is on the to-do list, name order should not be too hard.
Renaming of plugins is also on the cards but is probably technically a little more complex, as each plugin is often indexed by name internally.

trafiken wrote:Make it possible to collapse a plugin window so that only the title bar is visible. In that way we can make the configuration surface of each plugin larger.

Definitely something I had planned on looking into. The GUI is still very much in it's infancy, there is still much to do in this area.

trafiken wrote:When a plugin window is collapsed, show output in the title bar.
picture here:
sites.google.com/site/oldredwheel/home/uch

That may be a little tougher. The title bar is actually another window to which the plugin is parented.
The only real way I see to achieve something like this would be to add the ability to specify where each GUI element of the plugin should appear in the title bar when collapsed.
But then you run into issues where long names would clash with the sliders in the collapsed plugins.
Certainly food for thought, and I appreciate you taking the time to mock up your ideas.

However, as alluded to above, a GUI polish is not high on my list of priorities - getting the code bug free and optimizing efficiency is priortiy #1 right now.
User avatar
evilC
Posts: 3574
Joined: 27 Feb 2014, 12:30

Re: Universal Control Remapper (UCR) - v0.0.1 25th Dec 2015

31 Dec 2015, 12:50

Version 0.0.2 has now been released:

0.0.2 - 31st Dec 2015
= AHK_H version updated
+ Button To Axis remapper plugin added. Allows mapping of WSAD to vJoy
+ MouseDelta library added for reading of Delta Move information from mice.
+ Mouse to Joystick remapper plugin added for controlling a vJoy stick using mouse.
= Fix for: Leak of memory on each input event (eg button down/up, axis move).
= When in Bind Mode, only joystick buttons and hats that actually exist are polled.
This is better practice, and also seems to solve crashes on some systems.
= Split plugins folder into Core and User folders.
This should allow easier upgrading if you have your own plugins.
* If upgrading, it is advised that you back up your INI file and delete the old folder.
User avatar
evilC
Posts: 3574
Joined: 27 Feb 2014, 12:30

Re: Universal Control Remapper (UCR) - v0.0.2 31st Dec 2015

03 Jan 2016, 12:40

Version 0.0.3 has now been released

0.0.3 - 3rd Jan 2016
! WARNING: The Mouse To Joystick plugin is DANGEROUS in this version.
Adding one can be tricky (You will have to use keyboard to manipulate the Output Axis Combos)...
... But once you have added one, it will effectively break UCR - crashes all over the place :(
You will also not be able to remove the plugin via the GUI.

ZIP updated with new version of AHK which seems to fix this issue. See next post.
= AHK_H version updated
= Mouse Delta input now fires InputEvent like the other inputs
= InputEvent callbacks are now "Critical Objects".
Input from the global profile at the same time as the active profile should no longer crash UCR.
= Spamming button inputs quickly should no longer result in a "MaxHotkeysPerInterval" warning.
= Fix for current profile being forgotten on exit.
= Fix for multiple AxisToAxis plugins all using same output.


As noted in the release notes, please avoid the mouse to joystick plugin for the moment.
Apart from that, does this version help alleviate the access violation issues?

Oh well, back to work on Monday, so the development pace will probably slow quite a bit for a while.
Last edited by evilC on 21 Jan 2016, 14:44, edited 1 time in total.
User avatar
evilC
Posts: 3574
Joined: 27 Feb 2014, 12:30

Re: Universal Control Remapper (UCR) - v0.0.3 3rd Jan 2016

20 Jan 2016, 15:36

New ZIP uploaded.
Version is the same (3.3) but the build of AutoHotkey used has been updated.
The crashing in the previous release appears to have been due to an issue with AHK_H, and HotkeyIt just released a new version which appears to fix this issue.

Same link as before (See the first post), all that has changed inside the zip is UCR.exe, so to upgrade you can just overwrite your UCR.exe with the one from the new zip.

If you were experiencing crashes, please give this new version a try and let me know if it fixes things for you.
The mouse to joy plugin should now be functional and safe to use.
shaul
Posts: 7
Joined: 26 Dec 2015, 07:42
GitHub: shauleiz

Re: Universal Control Remapper (UCR) - v0.0.3 3rd Jan 2016 - HOTFIXed 20th Jan 2016

21 Jan 2016, 03:37

Much better. No Crashes for me.
Q: Can't I use "Axis Merge" to merge 2 vJoy axes into a third axis on the same device? Spent not more that a minute so I must have missed it.

Return to “Gaming”

Who is online

Users browsing this forum: Google [Bot], Yahoo [Bot] and 5 guests