Gamoover

[move]Bienvenue sur Gamoover, portail francophone de l'arcade.

[WIP] Besoin d'aide sur borne Cruis'N USA !

Démarré par LeMetalleuxGeek, Samedi 28 Novembre 2020, 22:26:11 PM

LeMetalleuxGeek

Mais en fait je ne comprends tout simplement pas cet écran.  ;D Toutes les cases sont décochées et grisées. faire un "reset all" visiblement ne change pas grand chose. Je ne comprends pas très bien comment utiliser cette partie du logiciel.

njz3

Cette page sert à mapper des "sorties" du jeu vers des sorties physiques sur l'arduino.


Si tu as la dernière version du logiciel (0.4.10-2), la première colonne en rouge contient des cases symbolisant les sorties du jeu (des variables lues dans l'émulateur), et la seconde colonne en bleu représente l'état des sorties physiques de l'arduino.

Par défaut quand tu fais reset all (bouton entouré de jaune), le soft va mapper 1 -> 1, 2 -> 2, et ainsi de suite (voir en vert ce que cela devrait afficher quand tu sélectionnes game lamp "1").
Si le soft a trouvé la carte, les cases à cocher de la première colonne en rouge (les sorties du jeu) sont sensées être cochable à la main pour tester le mapping et tes sorties.
Ensuite, quand le jeu tourne, ces sorties du jeu sont normalement automatiquement lues depuis le jeu. Dans le log tu dois avoir la trace dans le module [OUTPUT] des variables du jeu qui sortent si le jeu est correctement configuré. Bizarrement c'est cette étape là qui semble ne pas marcher chez toi.


LeMetalleuxGeek

Effectivement... je n'ai jamais rien eu sur cet écran. Toutes les cases restent éternellement grisées, même celles que tu as surlignées en rouge. Je n'ai pas non plus les éléments "Is sequenced ?" et "Sequence Delay" sur la droite. J'ai l'impression que je peux juste rien faire dans cet écran.

njz3

Tu as une ancienne version du logiciel.
Télécharges la dernière, et reflash ton arduino.

LeMetalleuxGeek

Le reflash de l'arduino est une étape essentielle ? Comme au fil de mes péripéties on a touché à pas mal de trucs dans le code ça me fait un peu peur de remettre les mains dedans...

J'avais effectivement une version plus ancienne du soft. Mais là c'est la panique. Après avoir installé la nouvelle et redémarré le PC, le soft crash instantanément à l'ouverture...

njz3

S'il crashe ca m'intéresse de reproduire le soucis  :D.
Fait une archive de backup du répertoire Mes Documents/BackForceFeeder et efface tes fichiers de configuration et de control set, ca devrait solutionner car c'est principalement là-dedans que j'ai fait de grosses modifs. Envoie moi ton archive backup pour que je lance le soft avec ta config et que j'essaie de voir si cela plante aussi. Question : lances-tu tes jeux en mode admin ? Avec Dvseb, on a vu qu'en mode admin certains jeux faisaient planter le feeder quand on utilisait les lampes (problème d'accès à la mémoire du process du jeu qui est refusé).

Pour le code arduino, tu peux probablement garder le tien, cela ne change pas le soucis de lampes.


LeMetalleuxGeek

Alors pour le mode admin je crois que je l'utilise au maximum car je suis sur PC portable, et ça m'entrainais beaucoup de problème de lancer des jeux sans être administrateur, notamment avec Tecknoparrot. Je t'envoie en message privé mon archive de backup !

njz3

ok alors le mode admin pour le jeu ca expliquerait pourquoi l'ancienne version du soft n'arrive pas à lire les lampes !
Essaie de lancer le jeu sans être admin.

LeMetalleuxGeek

#104
Je peux plus rien lancer... Le soft ne fonctionne plus maintenant  ;D


njz3

Merci pour ton test.
Bug normalement corrigé dans la version 0.4.10-3 dispo sur github.

LeMetalleuxGeek

#106
Bon, je viens au rapport ! Donc effectivement njz3 m'a beaucoup aidé dans mes problèmes hier en mettant notamment à jour le soft. J'ai pu bien comprendre le fonctionnement du logiciel avec ses différents profils, mais il me reste tout de même quelques interrogations :

- Déjà j'ai un bug à signaler, qui ne concerne apparemment que le Model 2. La lecture des Output se fait très très bien. Par contre, chose étonnante, si je quitte un jeu MODEL2, que je reviens dans mon hyperspin, et que je relance un jeu MODEL2, la lecture ne se fait plus. Toutes les lumières s'allument (comme pour chaque démarrage de jeu MODEL2), mais reste éternellement allumées pendant tout le jeu (alors qu'elles sont censées s'allumer juste une fraction de seconde au démarrage, comme un genre de "check"). Les lampes restent donc statiques. Le seul moyen que j'ai trouvé pour pallier à ça, et de lancer un autre type de jeu (par exemple, en lançant un jeu Supermodel via le Hyperspin), de le quitter, puis de relancer un jeu MODEL2 : à ce moment là, ça fonctionne normalement. Comme si jouer à la suite deux fois au MODEL2 créait un problème alors que si on lance un autre émulateur entre temps on ne rencontre pas le souci. Je sais pas si tu pourras faire quelque chose avec ces infos njz3  :D

- Je comptais poser la question sur le forum, mais du coup j'ai été pris de court : njz3 m'a montré comment, directement dans le soft BackForceFeeder, créer une programmation séquentielle des lumières pour qu'elles s'allument, notamment dans le Hyperspin. A ce niveau là, j'ai plusieurs choses à demander :

* Peut-on se servir de cette fonction pour se créer une séquence par profil ? Je pense notamment à tous les jeux qui ne lisent pas les Output, ce serait sympa d'allumer ou faire clignoter le Topper, et les boutons utilisés dans le jeu. En laissant par exemple les boutons inutilisés éteints, ce serait pratique et ergonomique.
* Dans ce cas, comment dit-on au soft quel lampe allumer ou éteindre selon le profil utilisé ? Car pour la configuration que tu m'as faites njz3, pour le Hyperspin, son déclenchement est ultra aléatoire (et plutôt rare). La plupart du temps, quand j'allume (ou retourne) dans mon Hyperspin, malgré que le profil se sélectionne bien à chaque fois, la séquence des lumières ne se déclenche pas. Je dirai que ça arrive environ 1 fois sur 10, donc difficile de dire pourquoi ça ne marche pas à tous les coups ?

- J'ai aussi, grâce à toi, découvert qu'on pouvait binder des boutons de la borne directement à des fonctions clavier comme le ESC ou le Alt+F4. Jusqu'à maintenant j'utilisais Joy2Key, et impossible de faire fonctionner un Alt+F4 avec lui, il ne voulait simplement pas fermer les fenêtres... là, la magie opère ! Effectivement, je peux fermer l'émulateur Model2 et Supermodel avec une fonction programmée sur mes touches. Par contre... Impossible d'en faire de même pour les autres, à savoir MAME, Demul, Dolphin et Tecknoparrot. Tout est bien configuré, les profils sont bien actifs, mais ça n'a tout simplement aucun effet !

njz3

Citation de: LeMetalleuxGeek le Mardi 02 Février 2021, 12:02:02 PM
- Déjà j'ai un bug à signaler, qui ne concerne apparemment que le Model 2. La lecture des Output se fait très très bien. Par contre, chose étonnante, si je quitte un jeu MODEL2, que je reviens dans mon hyperspin, et que je relance un jeu MODEL2, la lecture ne se fait plus. Toutes les lumières s'allument (comme pour chaque démarrage de jeu MODEL2), mais reste éternellement allumées pendant tout le jeu (alors qu'elles sont censées s'allumer juste une fraction de seconde au démarrage, comme un genre de "check"). Les lampes restent donc statiques. Le seul moyen que j'ai trouvé pour pallier à ça, et de lancer un autre type de jeu (par exemple, en lançant un jeu Supermodel via le Hyperspin), de le quitter, puis de relancer un jeu MODEL2 : à ce moment là, ça fonctionne normalement. Comme si jouer à la suite deux fois au MODEL2 créait un problème alors que si on lance un autre émulateur entre temps on ne rencontre pas le souci. Je sais pas si tu pourras faire quelque chose avec ces infos njz3  :D
Je vais regarder si je peux reproduire ce bug qd j'ai un peu de temps, peut être ce soir.

Citation de: LeMetalleuxGeek le Mardi 02 Février 2021, 12:02:02 PM
* Peut-on se servir de cette fonction pour se créer une séquence par profil ? Je pense notamment à tous les jeux qui ne lisent pas les Output, ce serait sympa d'allumer ou faire clignoter le Topper, et les boutons utilisés dans le jeu. En laissant par exemple les boutons inutilisés éteints, ce serait pratique et ergonomique.
Oui bien sûre, il faut faire un control set par jeu et mettre les output en inversées (actives quand il y a 0).

Citation de: LeMetalleuxGeek le Mardi 02 Février 2021, 12:02:02 PM
* Dans ce cas, comment dit-on au soft quel lampe allumer ou éteindre selon le profil utilisé ? Car pour la configuration que tu m'as faites njz3, pour le Hyperspin, son déclenchement est ultra aléatoire (et plutôt rare). La plupart du temps, quand j'allume (ou retourne) dans mon Hyperspin, malgré que le profil se sélectionne bien à chaque fois, la séquence des lumières ne se déclenche pas. Je dirai que ça arrive environ 1 fois sur 10, donc difficile de dire pourquoi ça ne marche pas à tous les coups ?
Normalement à chaque changement de control set, les sorties sont ré-initialisées à 0, et donc quand on inverse ca allume. A déboguer avec ton fichier log en mode debug?

Citation de: LeMetalleuxGeek le Mardi 02 Février 2021, 12:02:02 PM
- J'ai aussi, grâce à toi, découvert qu'on pouvait binder des boutons de la borne directement à des fonctions clavier comme le ESC ou le Alt+F4. Jusqu'à maintenant j'utilisais Joy2Key, et impossible de faire fonctionner un Alt+F4 avec lui, il ne voulait simplement pas fermer les fenêtres... là, la magie opère ! Effectivement, je peux fermer l'émulateur Model2 et Supermodel avec une fonction programmée sur mes touches. Par contre... Impossible d'en faire de même pour les autres, à savoir MAME, Demul, Dolphin et Tecknoparrot. Tout est bien configuré, les profils sont bien actifs, mais ça n'a tout simplement aucun effet !
Pas sûre de savoir d'où ca vient. Chaque émulateur à son propre code de touche pour quitter proprement, pour MAME par exemple c'est ESC et tu dois configurer MAME quelque part pour lui dire d'utiliser d'une part le mode dinput pour le clavier (keyboardprovider=dinput dans la config), et de ne pas revenir au menu principal. Les autres je ne sais pas.


LeMetalleuxGeek

En réalité, pour ce qui est des profils où il n'y a pas de lectures d'Output (donc ici, Hyperspin et tous les jeux n'en possédant pas) les lumières s'éteignent systématiquement lors du changement de profil. Si je veux activé la séquence "inversée" à la main, il faut que j'aille dans le menu des Output, que je coche la case (il ne se passe rien, normal on est en inversé) puis que je la décoche à nouveau manuellement. Mais la chose ne se fait pas automatiquement lors du changement de Control Set. Voici mon fichier log après avoir basculé manuellement d'un profil à l'autre. Bien sûr, les lampes ne se sont pas éclairées !

IMPOR|    0.150316:[MANAGER] Program configured for PWM_CENTERED
DEBUG|    0.153519:[USBSerial] The following serial ports were found:
DEBUG|    0.153522:[USBSerial] COM5
DEBUG|    0.153524:[USBSerial] Attempting to connect each with 1000000bauds...
IMPOR|    0.706443:Changing control set for Hyperspin
IMPOR|    1.269858:[MANAGER] Found io board on COM5 version=0.1.9.0 type=IO BOARD ON MEGA2560
DEBUG|    1.275779:[TIMER] Timer caps = 1 -> 1000000
DEBUG|    1.276169:[TIMER] Set Timer 1ms
IMPOR|    1.278044:[MANAGER] Initializing IO board
IMPOR|    1.279184:[USBSerial] Performing IO board initialization
DEBUG|    1.312264:[USBSerial] IOBOARD:Initialization started
DEBUG|    2.319509:[USBSerial] IOBOARD:Initialization done
IMPOR|    2.319525:[USBSerial] IO board initialization done
INFOR|    2.319531:[MANAGER] Configuring IO board for pwmmode=5
DEBUG|    2.337742:[USBSerial] IOBOARD:Set byte pwmmode to 5
INFOR|    2.337762:[MANAGER] Configuring IO board for wheelmode=2
DEBUG|    2.355193:[USBSerial] IOBOARD:Set byte wheelmode to 2
INFOR|    2.355214:[MANAGER] Configuring IO board for pedalmode=5
DEBUG|    2.372654:[USBSerial] IOBOARD:Set byte pedalmode to 0
INFOR|    2.372675:[MANAGER] Configuring IO board for ffbcontrollermode=0
DEBUG|    2.390239:[USBSerial] IOBOARD:Set byte ffbcontrollermode to 0
DEBUG|    2.585556:[VJOYFEEDER] Vendor: Shaul Eizikovich Product :vJoy - Virtual Joystick Version Number:2.2.1.0
DEBUG|    2.597494:[VJOYFEEDER] Version of Driver Matches DLL Version (221)
DEBUG|    2.603101:[VJOYFEEDER] vJoy Device 1 is free
DEBUG|    2.615851:[VJOYFEEDER] vJoy Device 1 capabilities:
DEBUG|    2.615856:[VJOYFEEDER] Numner of buttons 16
DEBUG|    2.615857:[VJOYFEEDER] Numner of Continuous POVs 0
DEBUG|    2.615857:[VJOYFEEDER] Numner of Descrete POVs 0
DEBUG|    2.616056:[VJOYFEEDER] Axis X Yes
DEBUG|    2.616225:[VJOYFEEDER]  Min= 0 Max=32767
DEBUG|    2.616229:[VJOYFEEDER] Axis Y Yes
DEBUG|    2.616231:[VJOYFEEDER]  Min= 0 Max=32767
DEBUG|    2.616389:[VJOYFEEDER] Axis Z Yes
DEBUG|    2.616392:[VJOYFEEDER]  Min= 0 Max=32767
DEBUG|    2.616394:[VJOYFEEDER] Axis RX No
DEBUG|    2.616395:[VJOYFEEDER] Axis RY No
DEBUG|    2.616397:[VJOYFEEDER] Axis RZ Yes
DEBUG|    2.616399:[VJOYFEEDER]  Min= 0 Max=32767
DEBUG|    2.616401:[VJOYFEEDER] Axis SL0 No
DEBUG|    2.616402:[VJOYFEEDER] Axis SL1 Yes
DEBUG|    2.616405:[VJOYFEEDER]  Min= 0 Max=32767
DEBUG|    2.616406:[VJOYFEEDER] Axis WHL No
DEBUG|    2.616408:[VJOYFEEDER] Axis AILERON No
DEBUG|    2.616410:[VJOYFEEDER] Axis RUDDER No
DEBUG|    2.616411:[VJOYFEEDER] Axis THROTTLE No
DEBUG|    2.616413:[VJOYFEEDER] Axis ACCELERATOR No
DEBUG|    2.616414:[VJOYFEEDER] Axis BRAKE No
DEBUG|    2.616416:[VJOYFEEDER] Axis CLUTCH No
DEBUG|    2.616418:[VJOYFEEDER] Axis STEERING No
DEBUG|    2.616947:[VJOYFEEDER] Acquired: vJoy device number 1.
DEBUG|    2.619539:[MAMEOutputsWinAgent] WinAgent created
DEBUG|    2.619694:[MAMEOutputsNetAgent] NetAgent created
DEBUG|    2.622344:[TIMER] Timer caps = 1 -> 1000000
DEBUG|    2.622345:[TIMER] Set Timer 1ms
DEBUG|    2.622996:[MANAGER] Sanity check for control set Hyperspin: ok
INFOR|    2.629618:[FFBMANAGER] [UNDEF] step 0 to [DEVICE_INIT] step 0
INFOR|    2.632971:[FFBMANAGER] [DEVICE_INIT] step 0 to [DEVICE_RESET] step 0
DEBUG|    2.638280:[FFBMANAGER] FFB Reset all effects
INFOR|    2.638309:[FFBMANAGER] [DEVICE_RESET] step 0 to [DEVICE_READY] step 0
IMPOR|    7.350985:Changing control set for Demul-CrazyTaxi
DEBUG|    7.350987:[MANAGER] Sanity check for control set Demul-CrazyTaxi: ok
INFOR|    7.394552:[MAMEOutputsWinAgent] Starting MAMEOutputAgent thread
DEBUG|    7.394854:[MAMEOutputsWinAgent] MAMEOutputAgent thread started
DEBUG|    7.395408:[MAMEOutputsNetAgent] MAMEOutputAgent already stopped
INFOR|    7.395463:[MAMEOutputsWinAgent] Entering Thread
IMPOR|   12.409120:Changing control set for Hyperspin
DEBUG|   12.409122:[MANAGER] Sanity check for control set Hyperspin: ok
DEBUG|   18.429099:[TIMER] Restore Timer 1ms
IMPOR|   18.433080:[OUTPUTS] Outputs manager terminated
DEBUG|   18.531175:[MAMEOutputsWinAgent] MAMEOutputAgent terminating thread
INFOR|   18.531176:[MAMEOutputsWinAgent] Thread done
DEBUG|   18.632046:[MAMEOutputsWinAgent] MAMEOutputAgent thread terminated
DEBUG|   18.632062:[MAMEOutputsNetAgent] MAMEOutputAgent already stopped
INFOR|   18.632409:[FFBMANAGER] [DEVICE_READY] step 0 to [UNDEF] step 0
INFOR|   18.633043:[FFBMANAGER] [UNDEF] step 0 to [DEVICE_INIT] step 0
DEBUG|   18.690500:[TIMER] Restore Timer 1ms

njz3

Je viens de rentrer et d'essayer, et évidemment chez moi ca marche.
Donc faut déboguer sur ton PC pour comprendre ce qui est différent.

LeMetalleuxGeek

Qu'est-ce qu'on peut faire pour dénicher le problème ?