SCToolsfactory / SCJMapper-V2

SC Joystick Mapper (.Net 4; using sharpDX wrapper)
Other
137 stars 30 forks source link

Reassign Joystick Numbers T16000m HOTAS and Win10 ID's #109

Open iNgeon opened 3 years ago

iNgeon commented 3 years ago

In the past use to have constant issues with joystick assignments based on when or where i use to connect joysticks. As example have a T16000m and a TWCS throttle. To get Star Citizen or SCJmapper in this case to swap i could manipulate which one i connected when. This is no longer the case, it seems Microsoft has potentially fixed this. So with Star Citizen 3.14 ptu they have changed a vast amount of bindings and they have added a config file for t16000m in game. In the below keep your eyes on Flight - Movement Pitch, Yaw, Roll

Basically it would be nice if one could Reassign the joystick ID/jSN - Assignment then hit Reset to defaults but having the reset to defaults not also resetting the new Reassigned joystick numbers also

layout_my_joystick_ptu3.14.0_ingeon01a.xml.txt

https://user-images.githubusercontent.com/3817692/126897054-d147eb17-ec9f-4641-97cc-5ff12bc08ab0.jpg & https://user-images.githubusercontent.com/3817692/126897063-42288ebb-9d7c-4deb-8c01-a10cf856c36c.jpg

MWSnap 2021-07-25, 13_06_10 MWSnap 2021-07-25, 13_06_22 MWSnap 2021-07-25, 13_06_35 MWSnap 2021-07-25, 13_06_42 MWSnap 2021-07-25, 13_06_49 MWSnap 2021-07-25, 13_12_37 MWSnap 2021-07-25, 13_12_56

bm98 commented 3 years ago

The Reassign works only with a once valid configuration where things changed - i.e. the Header would need to have some devices added.

Now if you want to - this works here...

Get an old profile where the devices are listed i.e.

<ActionMaps version="1" optionsVersion="2" rebindVersion="2" profileName="my_x55_65t-js5_js6" js5="Saitek Pro Flight X-55 Rhino Stick" js5G="6f187bc0-5d28-11e7-8006-444553540000" js6="X65F Flight Controller" js6G="a7663300-5deb-11e7-8001-444553540000"

Copy the jsN lines away (notepad or the like)

js5="Saitek Pro Flight X-55 Rhino Stick" js5G="6f187bc0-5d28-11e7-8006-444553540000" 
js6="X65F Flight Controller" js6G="a7663300-5deb-11e7-8001-444553540000" 

I used the X55 Template as I have that stick - you would do the same with the TM template and device

Select Template (here x55)

RESET LOAD AND GRAB

In the new XML - change:

<ActionMaps  version="1" >

To

<ActionMaps  version="1" 
    js2="Saitek Pro Flight X-55 Rhino Stick" js5G="6f187bc0-5d28-11e7-8006-444553540000" 
>

(NOTE the device string is in the brackets... THE JS Number is changed to the one the template expects (for the x55 the Stick is js2)

You would need to add your devices

THEN...

GRAB (Button)

JS Reassign - all should be n.a. now - change X-55 ... To Js2 (the one from the template)

DUMP (Button)

JS Reassign change X-55 .. To Js6 (the real one now - yes mine is at Js6 ..) (you need to reassign both to the real ones)

DUMP (Button)

DUMP and SAVE to any file

RESET LOAD AND GRAB the saved one

This worked here...

iNgeon commented 2 years ago

Thanks, so basically i

I thought that using Reassign Joystick Numbers only swapped the mapped sticks vs the js names instead of rebinding\renaming\swapping all the js1 & js2 bind names also. I think having both options would be very handy

So SCJmapper at the moment thus completely swaps js1 with js2 (stick names and all bindings) and vice versa instead of only rebinding stick 1 to js2 and vice versa z

I prefer not to use any other 3rd party apps to swap around devices etc.

layout_my_joystick_03-manual-swap.xml.txt layout_my_joystick_02-js-reassign.xml.txt layout_my_joystick_01-default.xml.txt

sutex commented 2 years ago

These tools may help. I use devreorder https://github.com/briankendall/devreorder with HidHide https://github.com/ViGEm/HidHide/releases/tag/v1.1.50.0 to control Joystick ID's