Jump to content

Help Request To Thrustmaster Target Users


9 replies to this topic

#1 Victor DeVedici

    Rookie

  • 4 posts

Posted 07 April 2013 - 01:16 PM

Folks, I am hoping for some assistance. I have a Thrustmaster T.16000M joystick, which is the cheapest one I could find that had Hall sensors. I loaded the Thrustmaster TARGET software on my Windows 7 x64 computer. I have defined the buttons and axes 'S' and 'J' curves in the TARGET software. I have mapped only the axes in the MWO game options. I have ensured that the 'Relative' input option in both the TARGET software and the MWO game options is NOT selected. The problem is that when I run the TARGET configuration file and then start MWO, I find that while in a Match, my mech does not auto-center with the joystick, as I would expect with the default condition of Absolute inputs rather than Relative inputs. Currently, if I Twist my stick, the mech's torso turns as expected. However, if I then release the twist and allow it to return to its neutral position, the mech's tors remains twisted, rather than returning to neutral position. By neutral position I mean the legs and torso are aligned straight-ahead and level to the horizon. I would be very grateful for any advice anyone cares to give. Thanks!

#2 CyBerkut

    Member

  • PipPipPipPipPipPipPip
  • 609 posts
  • LocationSomewhere north of St. Petersburg

Posted 07 April 2013 - 03:10 PM

Loc Nar is probably the guy you want to ask about it. Along with posts in this section of the forums, he also has posts in the Hardware and Peripherals section. He has some experience with T.A.R.G.E.T., and has developed MWO applicable scripts for it.

#3 Loc Nar

    Member

  • PipPipPipPipPipPipPipPip
  • 1,132 posts

Posted 08 April 2013 - 10:15 AM

Hi Victor,

I indeed have a useable script for the T16000, which I should really update to reflect the latest developments in MWO as well as with my own implementations of TARGET. Rather than keeping you waiting for the ver1.1 (although I did at least just update it to reflect analog turning), I have copypatad my original T16000 stuff below, which will get you going pretty quickly. I will also get to updating it to latest features and post back with that, but one of the many wonderful things about TARGET, is how easy it is to make changes once you have a functioning setup as a template.

The subject of sticks and MWO is a long winded one for me, but the short version is that I have constructed my own stick out of
a resurrected Cougar. The stick was intended for [my mechpit](http://mwomercs.com/...440-my-mechpit/), but that project stalled and it is now installed in my new mechpit, which I just started posting about, but back to your stick:

You may prefer adjustments or remap buttons, and that is easy peasy once you have the script up and running, and either I can tell you how to do it or I can just tweak it for you.

When using this stick, your kbm are still active, so you can chat if you like, or grab the mouse at any point if things get too goofy. Here is the diagram with the button mapping:
Posted Image


Installation instructions:

1. Open TARGET Script Editor (not GUI)
2. *click Menu and select 'new' and select TARGET .tmc file and fill in the name blank and click 'open'
3.delete entire contents of the page that comes up, and copypasta the TARGET script below in it's place
4. Save current script (click folder symbol between fwd/back arrows and joystick at upper left)
5. Run script
6. open your MWO user.cfg folder (C:\Games\Piranha Games\MechWarrior Online\user.cfg) with Notepad and add the following 2 lines:
cl_joystick_throttle_range = 0  //fwd/x/reverse
cl_joystick_invert_throttle = 1  //fwd=fwd


7. close notepad/user.cfg and save edits when prompted
8. Open the MWO client and go to Menu>options and scroll down to bottom of 'configure controls' list. (be the controls are set to default at this stage)
9. click the far right cell for Throttle, and move the throttle on the stick to bind that axis; click yes when asked if you want to remap controls
10. click the far right cell for analog Turning, and twist the stick, being careful not to disturb the other axes! click yes when asked if you want to remap controls and save/exit.
11. Enjoy!

//**************************************************************************
//	  UNOFFICIAL MECHWARRIOR JOYSTICK SUPPORT
//			For the Thrustmaster T16000
//
//
//				  Written by Loc Nar
//	 (http://mwomercs.com/forums/user/190978-loc-nar/)
//
//  MechWarrior Online Joystick -> Mouse/Keyboard override
//
//**************************************************************************
 
 
include "target.tmh"
int main()
{
	Configure(&HCougar, MODE_EXCLUDED);
	Configure(&Joystick, MODE_EXCLUDED);
	Configure(&Throttle, MODE_EXCLUDED);
	Configure(&LMFD, MODE_EXCLUDED);
	Configure(&RMFD, MODE_EXCLUDED);
  
	if(Init(&EventHandle)) return 1;
  
	SetKBRate(32, 50);
	SetKBLayout(KB_ENG);
  
////////////////////////////////////////
//////MOVEMENT
////////////////////////////////////////
	  
	//JOY Y
	MapAxis(&T16000, JOYY, MOUSE_Y_AXIS, AXIS_REVERSED, MAP_RELATIVE);
	SetSCurve(&T16000, JOYY, 0, 5, 0, 7, -9);
  
	//JOY X
	MapAxis(&T16000, JOYX, MOUSE_X_AXIS, AXIS_NORMAL, MAP_RELATIVE);
	SetSCurve(&T16000, JOYX, 0, 0, 0, 7, -8);
  
	//Turning  
	MapAxis(&T16000, RUDDER, AXIS_NORMAL, MAP_RELATIVE);
	SetSCurve(&T16000, RUDDER, 0, 10, 0, 0, 0);
  
	//Throttle
	MapAxis(&T16000, THR, DX_SLIDER_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
	SetSCurve(&T16000, THR, 0, 10, 0, 0, 0);
  
	//Jump Jets/Center Torso
	MapKey(&T16000, B9, SPC);
  
////////////////////////////////////////
//////STICK MAPPING
////////////////////////////////////////  
 
	//Firing Weapons
	MapKey(&T16000, TS1, '1'); //Fire Weapon 1
	MapKey(&T16000, H1L, '2'); //Fire Weapon 2
	MapKey(&T16000, H1U, '3'); //Fire Weapon 3
	MapKey(&T16000, H1R, '4'); //Fire Weapon 4
	MapKey(&T16000, H1D, '5'); //Fire Weapon 5
	MapKey(&T16000, TS2, '6'); //Fire Weapon 6
	//MapKey(&T16000, TS1, '\'); //Alpha
  
  
	//Targeting/Toggle ECM
	MapKey(&T16000, TS4, PULSE+'r');
 
	//Display Team Info/Toggle Chainfire
	MapKey(&T16000, TS3, 'q');
 
////////////////////////////////////////
//////BASE MAPPING, Primary Functions
////////////////////////////////////////
  
	//Freelook
	MapKey(&T16000, B9, L_CTL);
  
	//Heat Vision
	MapKey(&T16000, B10, PULSE+'h');
	
	//Night Vision
	MapKey(&T16000, B5, PULSE+'n');
  
	//Zoom/Advanced Zoom
	MapKey(&T16000, B6, PULSE+'z');
  
	//Jump Jets/Center Torso
	MapKey(&T16000, B7, SPC);
  
//////////////////////////////////
//////Shift Layer Functions
//////////////////////////////////
  
	SetShiftButton(&T16000, B8, 0, 0, 0, 0);
  
	//Firing Weapons
MapKeyIO(&T16000, TS1, USB[0x31], '1');	   //Alpha Strike
  
	//Weapons List Navigation  
MapKeyIO(&T16000, H1L, PULSE+LARROW, '2');	//left arrow
MapKeyIO(&T16000, H1U, PULSE+UARROW, '3');	//up arrow
MapKeyIO(&T16000, H1R, PULSE+RARROW, '4');	//right arrow
MapKeyIO(&T16000, H1D, PULSE+DARROW, '5');	//down arrow
MapKeyIO(&T16000, TS2, PULSE+R_CTL, '6');	 //select/deselect weapons
 
	//Toggle ECM
MapKeyIO(&T16000, TS4, PULSE+'j', PULSE+'r');		   //toggle ECM
 
	//Toggle Chainfire
MapKeyIO(&T16000, TS3, PULSE+BSP, 'q');	//toggle chainfire
 
	//Advanced Zoom
MapKeyIO(&T16000, B6, PULSE+'v', PULSE+'z');	//advanced zoom
 
	//Center Torso
MapKeyIO(&T16000, B7, PULSE+'c', SPC);	//center torso
 
	//Toggle Chainfire
MapKeyIO(&T16000, TS3, PULSE+BSP, 'q');	//toggle chainfire
 
 
 
 
  
/////////////////////////////////////////////////
//////BASE MAPPING. Secondary functions
/////////////////////////////////////////////////
  
	//Power
	MapKey(&T16000, B14, 'p');
  
	//Battlegrid
	MapKey(&T16000, B15, PULSE+'b');
  
	//Toggle Missile Doors
	MapKey(&T16000, B16, PULSE+'/');
  
	//Heat Shutdown Override
	MapKey(&T16000, B13, 'o');
  
	//Scoreboard
	MapKey(&T16000, B12, TAB);
  
	//Cockpit Light
	MapKey(&T16000, B11, PULSE+'.');
  
printf("ALL SYSTEMS NOMINAL!");  
 
}
int EventHandle(int type, alias o, int x)
{
	DefaultMapping(&o, x);
}


#4 Victor DeVedici

    Rookie

  • 4 posts

Posted 08 April 2013 - 08:55 PM

Loc Nar, thank you very much for posting your configuration. Unfortunately, it does not resolve my issue of the mech's attitude not returning to a neutral position once the stick is allowed to return to a neutral position. I still must move the stick in the opposite direction in order to return the mech to a centered, neutral position. Thanks, anyway.

#5 Loc Nar

    Member

  • PipPipPipPipPipPipPipPip
  • 1,132 posts

Posted 08 April 2013 - 09:14 PM

Replace the section //Turning with this one, which makes that axis absolute instead of relative...

		//Turning  
		MapAxis(&T16000, RUDDER, AXIS_NORMAL, MAP_ABSOLUTE);
		SetSCurve(&T16000, RUDDER, 0, 10, 0, 0, 0);


edit: or to change any axis you want to behave as you describe, change to MAP_ABSOLUTE instead of MAP_RELATIVE...

Edited by Loc Nar, 08 April 2013 - 09:18 PM.


#6 Victor DeVedici

    Rookie

  • 4 posts

Posted 12 April 2013 - 05:00 PM

Loc Nar, I tried your suggestion of changing the Relative string to Absolute. This, however, did not have the desired effect. I will just wait to see what support PGI provides for the game. Thanks anyway.

#7 Loc Nar

    Member

  • PipPipPipPipPipPipPipPip
  • 1,132 posts

Posted 12 April 2013 - 09:22 PM

Your welcome, but you should not be giving up so quickly. The whole point of TARGET is that it is so malleable, and it's not hard to tweak/mod it to tune it precisely to ones liking. especially now with the luxury of a training ground and the ability to esc in/out to make changes to TARGET and get right to testing them until you get it where you want. Assuming you got the absolute inputs on the axes you wanted, from there you need to play with the numbers before throwing in your towel. I am not making this up, but there is no level of support that PGI could ever hope to provide in the future that is not already at your fingertips with TARGET.

The numbers inside the SetCurve line are as follows: (L_deadzone, C_deadzone, R_deadzone, curve, scale)

Of those numbers, the ones that are important to you are the second one, C_deadzone, and the last one, scale, which are responsible for center deadzone and sensitivity. If you are using absolute inputs, I forgot to tell you to make C_deadzone value zero, since you do not want a deadzone on an absolute axis. The last number is the one that will allow you to set the sensitivity to the range you want that will offer you the best balance between range of motion and controllability. The initial values for those parameters I set for relative inputs, and will not likely be right with absolute.

Honestly, the real problem has nothing to do with PGI. It comes from using an airplane joystick who's entire design principal is engineered around restricted relative inputs and trying to use it to pilot a mech, which is designed around unrestricted absolute inputs. Simply swapping input types or playing with sensitivities or deadzones (all very easy to do with TARGET) does not address the fundamentally opposing design criteria in these two elements. This is why it is such a long winded subject for me, and there is much misconception. Short of making a gimbal for a stick that is designed around unrestricted absolute inputs, playing MWO with a stick is hard mode at best but again this is not PGI's lack of support. Be happy you picked the T16000, cause it's the cheapest/fastest route to get you right past the technical hurdles that keep most of this shrouded in mystery, and allows you to immediately sense it's not going to go well in the long term even under the best of conditions.

#8 Hammerhai

    Member

  • PipPipPipPipPipPipPip
  • Bad Company
  • Bad Company
  • 998 posts

Posted 13 April 2013 - 08:45 AM

TL;DR of Loc Narpost above:
MW:O is designed around the way a mouse works, not a joystick. Basically.

#9 Loc Nar

    Member

  • PipPipPipPipPipPipPipPip
  • 1,132 posts

Posted 14 April 2013 - 11:41 AM

Quote

TL;DR of Loc Narpost above:
MW:O is designed around the way a mouse works, not a joystick. Basically.


Close... more accurate would be:

TL;DR: MW:O is designed around unrestricted absolute inputs, not restricted relative inputs. The only known ways to achieve this type of input is a mouse, or making a joystick that satisfies this criteria of this type of input.

#10 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 17 December 2014 - 12:00 PM

I have Warthog Flight Stick

I wan't to try to use it instead of mouse altough I know that using mouse is superior. But how can I find what to put in SetSCurve parameters? Currently the mouse cursor moves only little in the middle of the screen :(





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users