Petit compte-rendu et retour sur expérience après environ 2 semaines.
M'étant récemment remis à une utilisation ludique de mon ordinateur, j'ai fait l'acquisition, il y a environ deux semaines, d'un ensemble Thrustmaster T16000m et TWCS Throttle.
Le set est très agréable à l'usage et offre, selon mois, un bon rapport qualité/prix, un compromis valable pour jouer avec plus d'immersion sans devoir revendre d'organe
Après installation du logiciel, je constate un premier soucis, l'interface TARGET GUI refuse de se lancer...
Une recherche de solution sur Internet propose différentes solutions qui se révèlent soit inadaptées, soit inefficaces.
Heureusement, TARGET Script editor fonctionne et je peux accéder aux fonctionnalités avancées du HOTAS.
Falcon BMS 4.33 pourra le reconnaitre correctement.
Je commence par retrouver le nom des axes et des boutons dans le fichier defines.tmh
Vient alors la phase de programmation de l'engin (phase dans laquelle je suis toujours).
Et c'est là que je rencontre quelques bizzareries qui pourraient trouver réponse ici ou qui pourrait aider d'autres utilisateurs.
1. Malgré la documentation de TARGET, ne pas assigner de commandes aux positions du POVHAT (que ce soit celui du T16000 ou celui du TWCS), ne le fait pas passer tout seul en mode DirectX.
configuration adaptée pour les vues via POVHAT
Code : Tout sélectionner
// Throttle POV HAT pour les vues
MapKey(&TWCSThrottle, THAT2U, DXHATUP);
MapKey(&TWCSThrottle, THAT2R, DXHATRIGHT);
MapKey(&TWCSThrottle, THAT2D, DXHATDOWN);
MapKey(&TWCSThrottle, THAT2L, DXHATLEFT);
Code : Tout sélectionner
MapKey(&TWCSThrottle, TLOCK, L_SHIFT + HOME);
il me faut donc bidouiller avec les CHAIN
Code : Tout sélectionner
MapKey(&TWCSThrottle, TLOCK, CHAIN(DOWN+L_SHIFT, D(), DOWN+HOME, D(500), UP+HOME, D(), UP+L_SHIFT) ); // RDR Lock
pour finir, mon code dans sa version actuelle (très peu de fonctions car je viens de solutionner le problème "2")
Code : Tout sélectionner
include "target.tmh" //here we link this file to the file that contains function code
int main()
{
if(Init(&EventHandle)) return 1; // declare the event handler, return on error
// Exclusion des commandes inutilisées
Configure(&HCougar, MODE_EXCLUDED);
Configure(&Joystick, MODE_EXCLUDED);
Configure(&Throttle, MODE_EXCLUDED);
Configure(&T16000L, MODE_EXCLUDED);
Configure(&LMFD, MODE_EXCLUDED);
Configure(&RMFD, MODE_EXCLUDED);
Configure(&TFRPRudder, MODE_EXCLUDED);
//script and function functions go here
// Nommenclature pour le T-16000M
// Nom du contrôleur : T16000
// Nom des axes
// ------------
// Roulis : JOYX
// Tangage : JOYY
// Lacet : RUDDER
// Gazes : THR
// ==================
// Nom des boutons
// ---------------
// Nommenclature pour le TWCS Throttle
// Nom du contrôleur : TWCSThrottle
// Nom des axes
// ------------
// Palette : RUDDER
// Gazes : THROTTLE
// Ministick vertical : TMSTY
// Ministick horizontal : TMSTX
// Potentiomètre : TANT
// =========================
// Nom des boutons
// ---------------
// Hat 8 : THAT2*
// Hat Central : THAT1*
// Hat Bas : THAT3*
// Assignation des axes du T-16000M
MapAxis(&T16000, JOYX, DX_X_AXIS); // Roulis
MapAxis(&T16000, JOYY, DX_Y_AXIS); // Tangage
MapAxis(&T16000, RUDDER, DX_ZROT_AXIS); // Lacet
// Assignation des axes du TWCS Throttle
MapAxis(&TWCSThrottle, TTHR, DX_THROTTLE_AXIS); // Gazes
KeyAxis(&TWCSThrottle, TMSTY, 0, AXMAP2(3, CHAIN(DOWN+L_SHIFT, D(), DOWN+UARROW), CHAIN(UP+UARROW, UP+DARROW, D(), UP+ L_SHIFT), CHAIN(DOWN+L_SHIFT, D(), DOWN+DARROW))); // RDR Cursor V
KeyAxis(&TWCSThrottle, TMSTX, 0, AXMAP2(3, CHAIN(DOWN+L_SHIFT, D(), DOWN+LARROW), CHAIN(UP+RARROW, UP+LARROW, D(), UP+ L_SHIFT), CHAIN(DOWN+L_SHIFT, D(), DOWN+RARROW))); // RDR Cursor H
// Throttle POV HAT pour les vues
MapKey(&TWCSThrottle, THAT2U, DXHATUP);
MapKey(&TWCSThrottle, THAT2R, DXHATRIGHT);
MapKey(&TWCSThrottle, THAT2D, DXHATDOWN);
MapKey(&TWCSThrottle, THAT2L, DXHATLEFT);
MapKey(&T16000, TS1, DX1); // Détente en DirectX button 1
MapKey(&T16000, TS2, DX2);
MapKey(&T16000, TS3, DX3);
MapKey(&T16000, TS4, DX4);
MapKey(&T16000, B5, 'g'); // Toggle GEAR
MapKey(&TWCSThrottle, TLOCK, CHAIN(DOWN+L_SHIFT, D(), DOWN+HOME, D(500), UP+HOME, D(), UP+L_SHIFT) ); // RDR Lock
// Assignation du HAT central TWCS
MapKey(&TWCSThrottle, THAT1U, TEMPO('d','c', 500)); // Dogfight mode / cancel mode
MapKey(&TWCSThrottle, THAT1R, 'm'); // MRM Override
MapKey(&TWCSThrottle, THAT1L, 'b'); // Air Brakes toggle
// Assignation des boutons du TWCS à rien à l'heure actuelle, juste pour éviter les doublons
// avec le T16000
MapKey(&TWCSThrottle, TBTN1, 0);
MapKey(&TWCSThrottle, TBTN2, 0);
MapKey(&TWCSThrottle, TBTN3, 0);
}
int
EventHandle
(
int type, alias o, int x)
{
DefaultMapping(&o, x);
}