TARGET Script to use two Thrustmaster T16000 Joysticks with E:D

@andreas: using keyboard events for the base button is a good idea. I'll integrate that in the next version. Though I'm not sure which keys I should use...

@Bob 'snake' Plissken: I'll try to write a better explanation for the script for the next version. The "shift mode" is entered when you hold the "shift button" (by default it's the trigger button on the left stick). When in shift mode, every other button act as a new button.
 
Thank you very much for this script, this has made my life so much easier!

Still, I think there is a bug related to FA off mode. As soon as I switch FA to off, throttle is put to foll backwards speed. I've changed line 257 to read:

DXAxis(DX_THROTTLE_AXIS, 0);

and the problem went away. Also, right after loading the script, the throttle would show no value in the analysis too. So I changed lines 198-199 to read:

currentCurve = curve50;
currentSpeed = 0.50;
DXAxis(DX_THROTTLE_AXIS, 0);

Hi Andreas,
i also do the changes like you wrote above, but mean there are no changes in the stick reaction. when i press FA on and press the Axis down or up, the Axis still go full backward... after press FA off, the Axis goes to null...

@drakmaniso thank you for the explanation of the shifted mode ;)

cheers
snake
 
Last edited:
Hi there. Do you have some news about new Version?

Regards snake

Update... Today after i started the scirpt and elite the system did changed everything, my left stick is now combined device and the right stick ist the normal one. last two months it was in other order. confused i am...

UPDATE: after some usb reseat joysticks sessions the config is working fine again, news about new scipt Version?

Regards snake
 
Last edited:
Hmm.. not sure what I'm doing wrong with the script. But when I run it and the device analyzer I get no input from either stick. I was really wanting to get this working since Elite keeps screwing up the mappings since its confusing the sticks when they're no combined. Is there something else that I'm missing?

I'm running on Windows 8.1 (64-bit). The two TM-16000Ms are plugged into a powered USB2.0 hub on my flight mount and connected back to my machine over a USB extension cable. They work normally without the script but as soon as I run it I can't get input from either stick.
 
Same here, also Win 8.1 x64

Connected direkt to my Mainboards USB 2.0 Ports

Edit

Seems that is a Problem with the USB Powermangement in Windows 8.1.

look here
http://mwomercs.com/forums/topic/141024-psa-windows-81-update-and-target-users/
they found some workaround but unfortunately non of them work for my.

Edit 2

Found the solution:
http://support.microsoft.com/kb/2900614/en-us
Doe exactly what it says (except the first part (Steps 1-6), start the target script to get your ID faster) and restart afterwards.
 
Last edited:
Well, what i can say is i use both sticks, one as normal stick and one as combined device. one on usb 3.0 and another one on usb 2.0 . Last Probs i have was as i do an BIOS update from my Motherboard. I was not able for connect them correctly to the System and let them workin' with the script. Now it working again. I still waiting for the new Version of the script.

Drakmaniso wrote he want to write a new one with some new things... also things Andreas wrote in the post here... i don't understand how to write my own script.... damn ;)

at first you need the T.A.R.G.E.T Software from Thrustmaster and the Script; then if the script and the sticks working together (Device Analyzer) you can setup the buttons and axes ingame
 
Last edited:
Here's the workaround I found to make the second POV hat work when using two T16000 joysticks with TARGET.

  1. First, locate the TARGET installation folder (should be something like "C:\Program Files (x86)\Thrustmaster\TARGET").
  2. Open the "scripts" folder.
  3. Copy the "target.tmh" file to the directory where you have saved my script. (The copy must still be named "target.tmh".)
  4. Open this copy in a editor suitable for plain text (e.g. Notepad).
  5. There is only one line to change. Search for line 258, or for the following text: "if(&dev == &T16000)".
  6. This line should read:
    Code:
    	else if(&dev == &T16000)
    remove everything except the "else":
    Code:
    	else
  7. Save, and launch my script. The two hats should work now, the second one is bound to joystick buttons 21 to 24 (25 to 28 in shift mode).

Note that this should work with any custom script (as long as it's in the same folder), and AFAIK should not interfere with any other (current) Thrustmaster joysticks.

Hi!
Im using another TARGET script that I got from a guy on reddit, everything is working fine except the second joystick hat. I tried your solution but im expecting that it only works together with your script?

Is there a way I can get it to work with mine?

Here is the script i got from reddit:
http://pastebin.com/TsVkmm8x
 
I'm not using Target, I just want to know if it's possible with a hack, to change the name that windows sees once you connect the stick. With two stick you see two t16000m
Just need to change the name of one and i'm ok.
 
Hey, new forum user here with a T-16000M pair here.

Where did we wind up on this? I just filed a support ticket w/ Frontier to address, but if hacking up the Device Manager a bit gets the goods sooner, I'd love to hear it.
 
Hey, new forum user here with a T-16000M pair here.

Where did we wind up on this? I just filed a support ticket w/ Frontier to address, but if hacking up the Device Manager a bit gets the goods sooner, I'd love to hear it.

Use the Target script editor. Maybe I can upload my script, but it's based on the one above. I am using 2 sticks with rotation on one and translation on the other. I have shift and layers so that buttons are "chorded" -- i.e. shift-fire does something different to fire (shift I have mapped to the bottom button on the second stick.

and it is lovely. I also have CH Pro Pedals for throttle cause you don't want that on the stick

HERE https://onedrive.live.com/redir?resid=A4413297DDA8AA8D!106&authkey=!AE3M1c_0k6EPUXU&ithint=file,zip
This contains the modified Target.tmh file, the Elite bindings script and another file containing the key definitions.

I am lefty so the main controls are on the Left stick but it'd be easy to switch them in the script. Right stick TS2 (bottom) is shift, U and D layers are TS3 and TS4. Secondary fire Right stick TS2. Then the hat on the left stick is multi-functional so I have "next fire group", "previous fire group" and so on -- the script should be clear enough, I hope.
 
Last edited:
Hi, im also lefty using the skript from drakmaniso. @Christopsy, your mappings are the same as by drakmaniso or different? i already download your mappings but did not found time at the moment to play something with it.... at the Moment i use the right stick for flying, fire, boost and the left one for throttle up/down strafe left/right & up/down, flight assist on/off. all buttons on the bottom of both sticks are undefined at the moment.... also flying with FA off is still in testing ;)

regards snake
 
Hi, im also lefty using the skript from drakmaniso. @Christopsy, your mappings are the same as by drakmaniso or different? i already download your mappings but did not found time at the moment to play something with it.... at the Moment i use the right stick for flying, fire, boost and the left one for throttle up/down strafe left/right & up/down, flight assist on/off. all buttons on the bottom of both sticks are undefined at the moment.... also flying with FA off is still in testing ;)

regards snake

Hi Snake,

My mappings are a bit different, I think. I just went with something that seemed comfortable to me. I make use of the shift and layers to give control of things like Subsystem and Fire group selection, Target select, etc. on the same hat switch, plus different modifiers.

I've also tweaked/refactored the code to be easier to modify things like the mappings -- all the keypress events are #defined separately so the bit where I assign events is easier to read.

It's a WIP of course, and I've now changed Boost to be a two-button event, plus added the alternate supercruise/fsd buttons etc. I can't remember whether I'm also only using a few of the base buttons, for things like reset headlook that I won't use often. Not sure which version I uploaded above though...
 
Sorry to have disappeared from the forum like that. I'm glad to see the script is still being used. Unfortunately I don't own two T16000 anymore, so I won't be able to release new versions of it. I'll try to answer if you have questions about it, though.

I think that I saw in a recent patch changelog that the game should now correctly recognize two identical joysticks, has anyone tested it? This would remove the need for a hack to use the second hat...

@Anders85: my answer is probably too late, but yes, the workaround should work for any script, as long as you put it in the same folder than the modified file.
 
Hi Christopsy, Hi Drakmaniso,

@Christopsy, will play a bit with your setup. @Drakmaniso, oh cool to hear there is a changelog with correct recognization of two identical sticks i will also try it out. i also found on the thrustamster website a config for SC with two t16000m and will look into it if it is possible to build something....

Regards snake

@drakmaniso at your entire skript, combined device when i press the fire button and the button15(FAon/off), button 19 react. what does it mean in your setup?
 
Last edited:
I am using 2 sticks with rotation on one and translation on the other.
That's the layout I use too, and it works nicely for me elsewhere. but I find that if I use the twist that's configured as Z axis for yaw, I get a weird input strobing effect that makes it impossible to pass the pre-flight checks.
Do you map that twist (stick 1 in your config) to yaw?

Also on the subject of hats not working...
DirectX/DirectInput supports 8 analogue axes, 32 buttons, and 1 hat.
a pair of T16000M have 8 analogue axes, 32 buttons, and 2 hats - it's not a target bug or limitation... it's windows.
The second hat can be mapped to keys through the target script, or in my case: it controls the mouse pointer (though I'm thinking of switching that to arrow keys instead)
The rest of my setup just enumerates all the buttons as normal directx buttons so they can be mapped in anything.
 
a pair of T16000M have 8 analogue axes, 32 buttons, and 2 hats - it's not a target bug or limitation... it's windows

Actually, there is (or at least was, when I wrote the script) a limitation in the Target software, where only the hat of the first T16000 recognized by the software was bindable (i.e. you couldn't bind the second joystick hat at all, not even to keys). That's what the workaround I posted on the first page was for.
 
My bad, I noticed the comments in the TARGET script about a bug and took that to mean you wanted them recognised as hats, since you'd obviously already solved this issue :)
Also rather than shortening it to else (which could potentially catch stuff from other devices) it finds the second hat nicely for me with: else if(&dev == &T16000 | &dev == &T16001)
 
Yes, this works too, but only if the user script uses the name 'T16001' for the second stick (only 'T16000' is defined in the header script). Also, since all other target-compatible joysticks are caught before that 'else', it's pretty safe to just drop the condition. If Thrustmaster decides to create new joysticks, they will have to update the software anyway (or, I hope, rewrite it).
 
Back
Top Bottom