Universal Control Remapper (UCR) - v0.1.22 28th Oct 2018

Post gaming related scripts
Bayyari15

Re: Universal Control Remapper (UCR) - v0.1.11 19th Feb 2017

20 Feb 2017, 18:49

I feel like a bother, but, after updating my folder with the update you put up, after i install "SCPVBus" am i supposed to see something different? The menu item still has the highlighted "Install" option, and not the Uninstall, and the mouse movement is still not working as a left joystick. Any ideas? And thanks for the help!
User avatar
evilC
Posts: 4823
Joined: 27 Feb 2014, 12:30

Re: Universal Control Remapper (UCR) - v0.1.11 19th Feb 2017

21 Feb 2017, 03:17

You will know when it works, as an XBox stick will appear in windows game controllers as soon as something is bound to vXBox in UCR.
If doing it from within UCR does not work, just go to the resources folder and in an admin command prompt, run the install.bat
Bayyari15

Re: Universal Control Remapper (UCR) - v0.1.11 19th Feb 2017

21 Feb 2017, 08:25

This is the message i now get:

Device node created. Install is complete when drivers are installed...
Updating drivers for root\ScpVBus from c:\UCR\Resources\ScpVBus\ScpVBus.inf.
devcon.exe failed.
Bayyari15

Re: Universal Control Remapper (UCR) - v0.1.11 19th Feb 2017

27 Feb 2017, 12:52

I'll move over to his thread, thanks for your help!
Guest

Re: Universal Control Remapper (UCR) - v0.1.11 19th Feb 2017

03 Mar 2017, 12:28

Hi,

The problem I have with UJR I posted in the other thread exists here too. My X-55 Throttle registers just fine as Stick 3, but my joystick (which I assume is stick 2, the only other available) won't pick up at all under any other stick and axis.
User avatar
evilC
Posts: 4823
Joined: 27 Feb 2014, 12:30

Re: Universal Control Remapper (UCR) - v0.1.11 19th Feb 2017

03 Mar 2017, 13:47

Try mapping a button on the stick. When binding a button, you can just press the button, and UCR should detect the press, so you do not have to find the joystick ID.

Also try running PJP JoyId - this will tell you the ID of all sticks connected to your system (And let you change them)
Guest

Re: Universal Control Remapper (UCR) - v0.1.11 19th Feb 2017

03 Mar 2017, 14:58

Trying to map buttons doesn't work either. Nothing happens when I press buttons on the stick. Works for the throttle fine.

In JoyID it picks up my stick and throttle properly, Stick as #1 and throttle as #2.

I tried moving my stick to #6 and Throttle to #7, and then they both worked. So it seems there's something wrong with ID#1. What could that be?
Guest

Re: Universal Control Remapper (UCR) - v0.1.11 19th Feb 2017

03 Mar 2017, 22:01

I do, but even if it's turned off and it shows up blank in JoyID this still happens. I've also tried moving the vjoy joystick.
User avatar
evilC
Posts: 4823
Joined: 27 Feb 2014, 12:30

Re: Universal Control Remapper (UCR) - v0.1.11 19th Feb 2017

04 Mar 2017, 11:53

did you try enabling the vJoy stick, and if it appears as ID 1, change it to a different ID. Does ID 1 work with your stick then?

This is my usual setup (vJoy on ID1) and you never normally need to use ID1 as input, so now that you have gotten your sticks working, I would not worry about it. There are advantages to having vJoy on ID1.
User avatar
evilC
Posts: 4823
Joined: 27 Feb 2014, 12:30

Re: Universal Control Remapper (UCR) - v0.1.11 19th Feb 2017

04 Mar 2017, 23:33

I have been having a play with Lexikos' CLR Interop which allows you to load C# DLLs, then instantiate classes from within the DLL.
I wrote a C# wrapper DLL for SlimDX.DirectInput which allows wrapping of DirectInput calls.

This will bring the following benefits over the current system:

Full 8 axis support (Currently we have 6)
Full 4 POV support (Currently we have 1)
Full 128 button support (Currently we have 32)
Native 16-Bit values with EXACT 32767 mid-point (Currently we have 0...100 floating point with middle being 49.9997)

At the moment, it is only polling, but if it is possible, I hope to implement event based.

See https://autohotkey.com/boards/viewtopic ... 09#p135309 for demo

Oh, and this technique is probably possible for RawInput etc too, so I could maybe do a similar thing for wrapping mouse delta input.
Tharg
Posts: 4
Joined: 05 Mar 2017, 08:42

Re: Universal Control Remapper (UCR) - v0.1.11 19th Feb 2017

05 Mar 2017, 09:01

Thank you for this great app.

At the moment I'm still running my own AHK script at the same time as this for one piece of functionality that it'd be really cool if you could add.

I have the dials on my X45 mapped so that they press keys as they pass thresholds in certain directions. I use this to open and close the 4 HUD elements in Elite Dangerous like this (the HUD elements are configured to work on continuous button presses in-game) :
* As the value passes from > 40 to <= 40 "b" is pressed ( to open HUD 2).
* As the value passes from > 20 to <= 20 "b" is released (to close HUD 2) and "a" is pressed (to open HUD 1)
* As the value passes from <= 20 to > 20 "a" is released (to close HUD 1) and "b" is pressed (to open HUD 2)
* As the value passes from <= 40 to > 40 "b" is released (to close HUD 2)
* ... And the same for the other HUD elements at values 60 and 80. So when the dial is between 40 and 60 no extra HUD elements are open.

I see you have the ability to map an axis to two buttons, and perhaps by combining this with splitting axis I guess the same might be possible? But IMO this would be very messy and it'd be really nice to have an easy way to do the above easily.

PS apologies I didn't read the whole thread to see if this was already addressed.
Last edited by Tharg on 05 Mar 2017, 09:36, edited 1 time in total.
User avatar
evilC
Posts: 4823
Joined: 27 Feb 2014, 12:30

Re: Universal Control Remapper (UCR) - v0.1.11 19th Feb 2017

05 Mar 2017, 09:09

So you want an InputAxis as the input, and ?6? OutputButtons as the output?
And for each OutputButton, you want it to have a "band" where as it enters the band it presses the key, and as it leaves it, it releases the key?

This is something I would like to implement *properly* at some point, but by properly I mean a dynamic number of buttons (ie you can add any number of "bands" that you want).
That would probably take quite a lot of effort though - I could probably knock up a POC with a static number of bands quite easily.
User avatar
evilC
Posts: 4823
Joined: 27 Feb 2014, 12:30

Re: Universal Control Remapper (UCR) - v0.1.11 19th Feb 2017

05 Mar 2017, 09:44

Is this what you want?

Image

Save this code as Plugins\User\AxisRangeToButtons.ahk

You can edit the code and change NumBands near the start to change how many bands you want, but unfortunately cannot define how many bands you want at run-time.

I suppose I could just add 10 bands or something - you can just leave bands unconfigured if you want.

Code: Select all

/*
Remaps a band on a physical joystick axis to bunch of button outputs
*/
class AxisRangeToButtons extends _UCR.Classes.Plugin {
	Type := "Remapper (Axis Range To Buttons)"
	Description := "Maps a band in a joystick axis input to a button output"
	LastState := 0
	
	NumBands := 5
	CurrentBand := 0
	
	; Set up the GUI to allow the user to select inputs and outputs
	Init(){
		iow := 125
		Gui, Add, GroupBox, Center xm ym w240 h70 section, Input Axis
		Gui, Add, Text, % "Center xs+5 yp+15 w" iow, Axis
		Gui, Add, Text, % "Center x+5 w100 ys+15", Preview
		this.AddControl("InputAxis", "InputAxis", 0, this.MyInputChangedState.Bind(this), "xs+5 yp+15")
		this.AddControl("AxisPreview", "", 0, this.IOControls.InputAxis, "x+5 yp+5 w100", 50)

		;~ Gui, Add, GroupBox, Center x255 ym w90 h70 section, Settings
		;~ Gui, Add, Text, % "xs+5 yp+20", Invert
		;~ this.AddControl("CheckBox", "Invert", 0, "xs+60 yp w25")
		;~ Gui, Add, Text, % "xs+5 y+10", DeadZone
		;~ this.AddControl("Edit", "Deadzone", 0, "xs+60 yp-3 w25", "0")
		
		Loop % this.NumBands {
			Gui, Add, Text, % "Center xm y+20", % "Band #" A_Index
			this.AddControl("Edit", "Band" A_Index "Low", 0, "x+5 yp-3 w25")
			Gui, Add, Text, x+5 yp+3, % " to "
			this.AddControl("Edit", "Band" A_Index "High", 0, "x+5 yp-3 w25")
			this.AddControl("OutputButton", "OB" A_Index, 0, "x+5 yp-10")
			this.AddControl("ButtonPreview", "", 0, this.IOControls["OB" A_Index], "x+5 yp+5")
		}
	}
	
	; The user moved the selected input axis. Manipulate the output buttons accordingly
	MyInputChangedState(value){
		in_band := 0
		Loop % this.NumBands {
			lo := this.GuiControls["Band" A_Index "Low"].Get()
			hi := this.GuiControls["Band" A_Index "High"].Get()
			if (value >= lo && value <= hi){
				;OutputDebug % "UCR| axis is in band: " A_Index
				in_band := A_Index
			}
		}
		
		if (this.CurrentBand != in_band){
			this.IOControls["OB" this.CurrentBand].Set(0)
			if (in_band){
				this.IOControls["OB" in_band].Set(1)
			}
		}
		
		this.CurrentBand := in_band
	}
}

Tharg
Posts: 4
Joined: 05 Mar 2017, 08:42

Re: Universal Control Remapper (UCR) - v0.1.11 19th Feb 2017

05 Mar 2017, 09:59

Yeah this is exactly it. I want 4 buttons for my specific example, so at any time one of the 4 is pressed, or none of them is, depending where the dial is. I agree it'd be best to do it "properly" as you suggest - probably including the option for single button presses (instead of holding them) too.

I have a "workaround" with my script running at the same time so no need to do extra work for just this one user - but I'll eagerly keep an this thread for when / if its implemented in UCR and I can drop my extra script.

... Lol you replied again before I clicked submit on the above. Thanks v much, I'll give that a look.
Jamz
Posts: 5
Joined: 05 Mar 2017, 09:08

Re: Universal Control Remapper (UCR) - v0.1.11 19th Feb 2017

05 Mar 2017, 10:15

Hi, i'm hopeing UCR can solve my issue but can't seem to find a way, maybe I'm missing it?

I'm looking to invert the axis of a second mouse, is this possible?

My setup: A virtual table top/TV embedded into a table. So I want one mouse on one side of the table as normal, and a second mouse on the opposite side with it's x and y axis reversed (as they are viewing windows upside down). I really don't need a separate cursor, just the axis changed for a second mouse. (Both mice are logitech 5 button mice)

Return to “Gaming Scripts (v1)”

Who is online

Users browsing this forum: No registered users and 143 guests