Hands On Throttle-And-Stick est un concept développé pour les avions de chasse. Le principe c'est de foutre un max de boutons/potards/sticks directionnels sur la manette des gaz et le manche à balais histoire que le pilote puisse gérer un maximum de choses sans lâcher les commandes. Et ce de manière plus ou moins ergonomique.
Truc absolument nécessaire pour les fans de simulation de vol, histoire d'avoir le feeling le plus réaliste possible. Jusqu'ici, je m'étais toujours “contenté” (c'était déjà du super matos pour l'époque, hein!) des joystick microsoft sidewinder. Y avait 8 boutons, une mini manette de gaz et un petit stick 4 directions. Le reste des commandes se faisaient au clavier et je m'en contentais (surtout quand plein de jeux proposaient la fonction retour de force <3 ). Mais soyons honnêtes, j'ai toujours bavé devant les setup HOTAS, surtout ceux basés sur des commandes réelles.
J'apprécie les simulations de vol et de combat aérien, mais c'est pas mes jeux préférés. Par contre, les simulations de combat spatiaux c'est mon gros kif. Les Wing Commander, Privateer et autres I-wars, c'est ma came ! Et ces joysticks sont parfait pour ces jeux.
Donc quand une connaissance a proposé exactement le matos dont je rêvais à un prix vraiment très raisonnable, j'ai pas acheté de suite… parce que j'avais pas la thune lol Mais comme une petite somme est tombée dans mes poches, sur sont “kit” n'était pas encore vendu, j'en ai profité et lui ai racheté.
Maintenant équipé d'un Thrustmaster HOTAS Warthog Joystick et d'un Viper TQS du même constructeur, j'ai lancé mon pc gaming sous linux pour démarrer une partie de Star Citizen, histoire de tester ce qu'ils valent.
Ce n'est plus si compliqué grâce à proton, une variante de wine ! Y a parfois un peu d'instabilités, des plantages, mais c'est souvent vite réglé par des mises à jour de proton. Et il y a même quelques jeux qui tournent mieux sous linux avec proton que nativement sous windows.
Bah ouais, proton est plutôt prévu pour des claviers, des souris et joypads classiques que pour des setup avec un tas d'appareils USB différents avec pleins d'axes et de boutons qui servent tous en même temps pour le même jeu.
Ptit soucis, dans la plupart des jeux le stick est bien reconnu avec tous ses axes et boutons, par contre le throttle viper tqs est reconnu en tant que joypad x-input. Je peux vous dire qu'il manque beaucoup d'axes et de boutons!
Après avoir exploré diverses solutions proposées sur le web et voilà celle qui semble la plus simple et qui a fonctionné pour Elite Danggerous et X Rebirth :
Ce tuto expliquait comment forcer ge-proton (en tous cas à partir de sa version 10.10) à reconnaître le throttle viper en tant que device hid et pas x-input ou autre. Ça fonctionne évidemment aussi pour d'autres contrôleurs.
Dans les options de lancement je rajoute la variable d'environnement PROTON_ENABLE_HIDRAW=0x[VID device1]/0x[PID device1],0x[VID device2]/0x[PID device2] et comme ça, fini le viper tqs reconnu comme un joypad xbox !
Dans mon cas, le VID est 044f pour thrustmaster, et j'ai les PID 0402 (joystick warthog) et 0412 (viper tqs), infos récupérées en utilisant lsusb. Faudra probablement que je rajoute le palonnier vkb dès réception.
Ils recommandaient aussi d'ajouter une seconde variable d'environnement, SDL_JOYSTICK_HIDAPI=0.
L'avantage de cette solution c'est la simplicité de changer de version de proton et d'ajouter des variables d'environnement dans tous les launchers, que ça soit steam, lutris ou heroic.
C'est un jeu un peu particulier. Contrairement à mes autres jeux, je ne passe pas par un client “standard” (heroic, steam, lutris, itch.io ou autres) pour l'installer et le gérer, mais par LUG-Helper.
Pour ce dernier, il est indispensable d'ajouter les rêgles udev suivantes stockées dans /etc/udev/rules.d/40-starcitizen-joystick-uaccess.rules
# Set the "uaccess" tag for raw HID access for ThrustMaster Devices in wine
KERNEL=="hidraw*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="*", MODE="0660", TAG+="uaccess"
# Set the "uaccess" tag for raw HID access for VKB Devices in wine
KERNEL=="hidraw*", ATTRS{idVendor}=="231d", ATTRS{idProduct}=="*", MODE="0660", TAG+="uaccess"
On applique les nouvelles rêgles avec un petit coup de sudo udevadm control –reload-rules && sudo udevadm trigger
Ensuite, en passant par LUG-Helper “Maintenance and Troubleshooting” → “Open Wine controller configuration”, j'accède au GUI qui permet de passer tous les devices en DirectInput.
Après, “yapuka” bind les axes, boutons et autre sliders aux commandes qu'on souhaite in-game.
Du coup, une fois ces modifs appliquées à elite dangerous, il m'a été possible de jouer quasi sans toucher au clavier ni à la souris dans les phases de pilotage.
Main gauche sur viper tqs :
Main droite sur joystick :
Y a encore une tonne de boutons et autres libres, juste j'ai pas encore trouvé quoi bind dessus.
J'ai aussi essayé X4 dans sa version native linux. Mais pour une raison que j'ignore, quand j'essayais de rebind les contrôles, il ne détectait pas les axes. Donc j'ai installé la version windows, forcé l'usage de ge-proton et ajouté les