Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
Gandalf

TSW Raildriver connector

Recommended Posts

Gandalf    2,099

Bonjour,

Je crée ce post à part pour discuter du nouveau programme développé par l'utilisateur "S.Yamazaki" de Steam, TSW Raildriver Connector, disponible ici: https://github.com/Yamazaki93/TSWRDConnector

Il s'est inspiré du boulot qu'on avait fait avec Wagener avec MacroWorks 3 dans le sens émulation de frappe de touches, mais par contre, il va lire directement en mémoire les valeurs des variables concernées dans TSW en faisant du reverse engineering, ce qui est fort, très fort, brillant même je dirais! Et il a écrit son propre code de A à Z, aucune dépendance avec MacroWorks, à part l'utiliser pour calibrer le Raildriver.

La différence majeure en faisant ça, c'est que le programme ne fonctionne plus en "aveugle" comme avec MacroWorks, mais comme il est capable de savoir à quelle valeur sont réglés les freins, la puissance et les autres paramètres, il peut envoyer exactement le nombre d'appui de touches nécessaire, et rester synchronisé en permanence, quelle que soit la vitesse à laquelle on bouge les leviers, même si on en bouge 2 en même temps, etc...

Les premiers essais avec les quelques locos qu'il supporte déjà sont très concluants, c'est le jour et la nuit, et probablement très proche de ce qu'on obtiendrait avec un support officiel du Raildriver par DTG (qui à mon avis du coup sera encore moins dans leur priorités..).

Par conséquent je ne vais plus toucher à la version avec MacroWorks, je vais désormais consacrer mon peu de temps libre à bosser avec lui pour ajouter plus de locos et tester tout ça au fur et à mesure. Je vais commencer par un petit tuto en français sur l'utilisation du programme et bascule auto du clavier en Qwerty (pré-requis pour l'instant).

@wagener  je vais regarder comment fonctionne le reverse engineering, il a commencé à m'expliquer, il y a quelques outils à installer pour UE4 mais ça n'a pas l'air trop compliqué, tu serais intéressé pour bosser sur des locos que tu as? le plus on est à bosser, le plus vite ça avancera.

A suivre.

 

  • Thanks 1

Share this post


Link to post
Share on other sites
Gandalf    2,099

Bon, ça ne marche pas trop le switch de clavier en anglais.... il va falloir bosser sur le code en C et changer l'input mapper..... faut que je trouve comment compiler le bazar. Installation de Visual Studio 2019.

Share this post


Link to post
Share on other sites
wagener    1,000

@Gandalf, Pas de problème, mais, pour l'instant, je n'ai pas réussi à faire fonctionner son programme. J'attends ton tuto pour voir ce que j'ai loupé. J'ai UE4 et un compilateur C++ installés.

Edited by wagener

Share this post


Link to post
Share on other sites
Gandalf    2,099

Qu'est-ce qui ne fonctionne pas? Une fois dans la loco il faut klaxonner 2 à 3 fois (barre d'espace) pour qu'il chope la zone mémoire à monitorer, ensuite ça roule (l'affichage du Raildriver passe de CL à rD), mais il faut que le clavier soit (et reste..) en Qwerty pour l'instant.

Pour le reverse engineering il faut en plus UUU et CheatEngine, mais une chose à la fois :-)

Share this post


Link to post
Share on other sites
wagener    1,000

Je ré-essaye. Je viens de passer en QWERTY (Anglais) avec <Maj>-<Alt Gauche>. Faut-il QWERTY Américain ?

Je viens de re-tester. Pas de connection si je lance TSWMod avant TSW. OK, si je re-lance TSWMod après avoir connecté TSW et être dans la GP38.

A ce moment, j'ai bien "Train Connected". Ensuite, la seule chose qui marche - une seule fois- c'est l'inverseur qui réussit à bouger vers "Marche Arrière" et c'est tout, aucun autre levier ne fonctionne sauf le levier de puissance vers "Throttle Forward" qui me fait "Réinitialisation de l'alarme".

On continue : Le manipulateur de traction marche en activant le bouton "Alert" du Raildriver et le frein de train en activant "E-Stop".

Par contre, les valeurs du Raildriver s'affichent toutes correctement lorsque je bouge tous les leviers.

Qu'est ce que "UUU" ?  Je possède, et j'utilise un peu, Cheat Engine 6.4.

Edited by wagener

Share this post


Link to post
Share on other sites
Gandalf    2,099

Il a déjà sorti une release cette nuit (pour nous) qui s'adapte automatiquement à notre clavier, j'ai fait un test rapide à midi, fonctionne bien avec BR146.2 donc probablement avec les autres aussi. Bon il a une implémentation un peu différente des leviers de ce dont on a l'habitude, par exemple sur la 146.2 le reverser est mappé au levier AFB, le throttle est 1:1 avec le levier en cabine, etc.... il faut s'habituer, mais sinon ça marche superbement bien!

UUU c'est Universal UE4 Unlocker.

Sinon aucun souci ici avec TSW mod démarré même avant TSW, quand je lance TSW, il se connecte, après de toute façon à chaque loco il faut klaxonner 2 ou 3 fois pour qu'il chope la bonne zone mémoire.

Share this post


Link to post
Share on other sites
Gandalf    2,099

Bon, je n'arrive à rien de concret pour compiler, si il y a un spécialiste de Visual Studio 2019, aide bienvenue en mp :-)

Ce soir on va essayer le reverse engineering pour trouver les emplacements de variables de la Class 37. Pas gagné non plus. Le gars est vraiment balèze.

 

Share this post


Link to post
Share on other sites
wagener    1,000

J'ai réussi à le faire fonctionner avec un TSW en Anglais et les touches remises à leurs valeurs par défaut.

J'ai remis TSW en Français et ç'a marche aussi.

C'est vrai que c'est génial, mais cela ne va pas être facile de trouver les bonnes adresses mémoire à tester.

Avec Cheat Engine, je trouve bien des adresses liées au Throttle, mais je ne sais pas quoi en faire.

Si tu avances mieux que moi, une petite notice ne serait pas de refus (trouver l'adresse de base, etc ...).

Edited by wagener

Share this post


Link to post
Share on other sites
Gandalf    2,099

J'ai passé 2 heures avec lui hier soir en chat et team viewer sur la Class37, c'est super compliqué, il faut utiliser UUU+CheatEngine+Reclass... une nuit et une journée de boulot plus tard, je serais incapable de le refaire. Il faut que j'essaye de faire un guide pas à pas en repartant des 2H de chat, au bout de quelques fois ça ira mieux mais au,début chaud. Et c'est embêtant, une fois que tu as commencé une loco il faut tout terminer dans la même session, car au lancement suivant, évidemment c'est ailleurs en mémoire....

Share this post


Link to post
Share on other sites
wagener    1,000
il y a 13 minutes, Gandalf a dit :

une fois que tu as commencé une loco il faut tout terminer dans la même session, car au lancement suivant, évidemment c'est ailleurs en mémoire....

C'a, je l'avais bien compris.

J'attends avec impatience un tout début de guide, même simpliste. Je ne suis pas certain de pouvoir aider, car cela m'a l'air d'être très (trop) pointu pour moi, qui ne suis pas un vrai spécialiste programmeur, et, en plus, vieux retraité.

Share this post


Link to post
Share on other sites
Gandalf    2,099

Ben je me débrouille bien dans le domaine, depuis 40 ans, j'ai fait pas mal de programmation entres autres, mais même, là c'est assez compliqué. Promis j'essaye de faire un guide, j'en ai besoin pour moi-même de toute façon si je veux l'aider à rajouter des locos. Mais rien que ça, ça va prendre du temps en re-testant pas à pas au fur et à mesure. Et à un moment il a pris la main en team viewer et fait qques manips, ça je ne l'ai pas dans l'historique des messages.

Au final ce dont il a besoin, c'est de l'offset de chaque variable par rapport à l'adresse de base du train (celle qui change à chaque fois), et le range de la variable et si il y a des notches ou pas.

 

  • Like 1

Share this post


Link to post
Share on other sites
wagener    1,000

Je viens de faire deux, trois essais.

C'est bien les locomotives qui sont gérées par TSWMod.

Si on a installé les Mods de Trainsim.cz ("http://www.trainsim.cz/?mod=article&nod1=33&nod2=2"), permettant d'avoir toutes les locos d'un pays sur toutes les lignes de ce pays, on peut utiliser les locos compatibles sur toutes les lignes allemandes et toutes les lignes américaines (même la LIRR) :

- RSN (Ruhr-Sieg Nord) - Voyageurs et Fret

- MSB (Main-Spettard Bahn) - Voyageurs et Fret

- RRO (Rhein-Ruhr Osten) - Voyageurs et Fret

-  RT (Rapid Transit) - Voyageurs

- HRR (Hauptstrecke Rhein-Ruhr) - Voyageurs et Fret

- CSX (Heavy Haul)- Fret

- NEC (New-York) - Voyageurs et Fret

- LIRR (New-York) - Voyageurs

- SFJ (Peninsula Corridor) - Fret

Ce qui est déjà pas mal.

Edited by wagener
  • Thanks 1

Share this post


Link to post
Share on other sites
Gandalf    2,099

Du coup si on a une loco sur une ligne où elle n'est pas sensée être en théorie, ça marche aussi?

Share this post


Link to post
Share on other sites
wagener    1,000
il y a 24 minutes, Gandalf a dit :

Du coup si on a une loco sur une ligne où elle n'est pas sensée être en théorie, ça marche aussi?

Oui, c'est ce que j'explique juste au-dessus.

J'ai conduit la DB BR185 sur la Rhur-Sieg Nord et la GP38 sur la Peninsula Corridor, sans aucun soucis.

Le programme TSWMod reconnait automatiquement toutes les lignes de TSW et, avec les mods de Trainsim.cz, on peut conduire n'importe quelle loco (uniquement de son pays d'origine, toutes les locos allemandes sur les lignes allemandes et toutes les locos américaines sur les lignes américaines).

PS : J'ai vu aussi qu'on pouvait mixer TSWMod et notre implémentation de Macroworks pour avoir les touches de fonction du Raildriver qui ne sont pas encore implémentées dans TSWMod (quelques-unes sont implémentées, mais pas toutes).

Edited by wagener

Share this post


Link to post
Share on other sites
Gandalf    2,099

Macroworks + TSWMod démarrés en même temps? Ca ne cause pas de problèmes avec les leviers (double envoi de touches?..)

Share this post


Link to post
Share on other sites
wagener    1,000

Non, aucun problème avec un nouveau fichier .mw3 sans aucun paramétrage des leviers (tous les paramètres à 0), mais avec toutes les touches de fonction définies.

TSWMod a aussi programmé quelques touches de fonction et, dans ce cas, c'est lui qui gagne (en fait, je pense que c'est le dernier lancé qui gagne).

J'ai vaguement regardé comment TSWMod gérait les touches de fonction, mais cela a l'air d'être défini dans le code source qui est ensuite compilé.

Share this post


Link to post
Share on other sites
Gandalf    2,099

Ah oui OK tu as fait un script dédié "vierge" qui ne traite pas les leviers du tout, bonne idée en attendant qu'il rajoute le support des boutons.

Oui tout est codé en C# from scratch, ça lui donne un contrôle complet de la chaîne, fort efficace du coup.

 

Share this post


Link to post
Share on other sites
fildefer    1,478

Bonjour à vous deux :).

A force de vous lire, j'ai craqué. J'attend mon rail driver, d'autant que Aerosoft fait une promo! Bon courage. Bien que je n'y comprenne pas grand chose (un peu quand même), je suis vos échanges avec grand intérêt.

Amicalement

Share this post


Link to post
Share on other sites
wagener    1,000

C'est un très bon matériel, solide, ...

On peut l'utiliser sur TSW, TS2020 et nativement sur Trainz, TRS19, Run8, World of Subways 2 et 3, Open Rail et d'autres.

Je m'en sers pas mal sur TRS19.

>>>>>>>>>>>>>>>>>>>>>>>>>>

Pour TSWMod, il faudrait peut-être faire attention à ce que DTG ne cherche pas des ennuis au développeur, car je pense que le "Reverse Engineering" ne leur plaise pas du tout. C'est interdit en toutes lettres dans leurs contrats.

Edited by wagener
  • Thanks 1

Share this post


Link to post
Share on other sites
Gandalf    2,099

Nouvelle release 0.1.6:

  • New LIRR M7 Support #5
  • Improve dynamic brake setup issue #6
  • Fix NEC GP38-2 not detected #7
  • Fix auto brake notch unstable #8
  • French keyboard layout support
  • Thanks 1

Share this post


Link to post
Share on other sites
Gandalf    2,099
Le 29/04/2020 à 13:28, wagener a dit :

Pour TSWMod, il faudrait peut-être faire attention à ce que DTG ne cherche pas des ennuis au développeur, car je pense que le "Reverse Engineering" ne leur plaise pas du tout. C'est interdit en toutes lettres dans leurs contrats.

Il ne modifie rien au jeu, il se contente de lire des valeurs en mémoire, ça je ne vois pas comment ils pourraient l'interdire..... D'autant que c'est pour compenser leur incapacité à proposer le support du Raildriver nativement, qui n'arrivera probablement jamais.

Si ils cherchaient des noises pour ça ils le feraient aussi pour tous les reskins et les mods publiés vu qu'ils se basent tous sur des outils d'extraction/injection des objets UE4 etc...

Share this post


Link to post
Share on other sites
fildefer    1,478

Bonjour Gandalf et Wagener.

J'ai mon RailDriver. C'est effectivement très bien :). Concernant vos travaux que je suit, où charger TSWMod.exe? J'ai été sur le site de Yamazaki93, mais je n'y ai pas trouvé de fichier .exe.

Amicalement.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×