Gamoover

[move]Vous aimez la série Ricky la belle vie, Julio Iglésias ou l'émission Kohlanta ? Alors soyez les bienvenus sur Gamoover ! [/move]

M3 MEGA Adapter

Démarré par Tibal, Dimanche 27 Novembre 2022, 15:37:03 PM

Tibal

Pour me faciliter la vie sur la conversion PC de Racecabs à base de MEGA 2560 selon la méthode de njz3, et comme il le mentionnait ici, je me suis amusé à dessiner une carte pour que toute la partie matérielle soit instantanément Plugn'Play, sans avoir à préparer quoi que ce soit (aucun câblage à faire, aucun marquage de pinout, etc.)

Edit : La carte est prête et dispo

M3 MEGA Adapter v1.0 avec toutes les options installées, Mega 2560 retiré :


M3 MEGA Adapter v1.0 avec toutes les options installées, Mega 2560 inséré :


M3 MEGA Adapter v2.0, Mega 2560 inséré :



L'intérêt principal de la méthode de njz3 est de garder toutes les cartes d'origine et de permettre le mode M2PAC de BackForceFeeder.
Le mode M2PAC est un mode assez ultime dès qu'il s'agit de fidélité au FFB original sur Model 3 puisqu'il reprend les codes FFB envoyés par le jeu pour les retransmettre tels quels au matériel d'origine pour lequel il a été conçu (jeu Scud Race sur borne Scud Race par exemple). Sur des jeux comme Sega Rally 2, c'est le jour et la nuit.
La méthode conserve bien sûr le mode Compatibility de BFF qui permet de jouer aux jeux prévus pour une autre borne avec un FFB émulé.

A l'inverse, l'inconvénient de cette méthode est de rendre dépendant du matériel d'origine, réputé pour être fragile, mais qui est réparable. Et une fois réparé, ça tient sans problème (j'ai un twin qui tourne 8h par jour pour une asso, depuis plus d'un an, RAS à ce jour)

Concernant ma carte, l'idée est que les connecteurs JST se présentent selon la même disposition que la filterboard d'origine d'une borne SEGA Model 3. Comme ça, les câbles viennent naturellement dessus et il devient très rapide de passer du Stack au PC et inversement.


J'en ai profité pour ajouter quelques features optionnelles :

- Un convertisseur simple de synchro RGBHV vers RGBS à base de transistor, pour pouvoir tester sur certains CRT :
On envoie le signal video sur le port VGA de la carte, il ressort sur le câblage d'origine, et sur un connecteur RGBS pour éventuellement déporter l'affichage

- Une compatibilité avec l'Ampli Vidéo 15/24/31khz de Bandicoot et njz3 (a.k.a. VideoAmp) :
On branche la sortie de l'ampli sur le connecteur "RGBS OUT" (carte v1.0) ou "RGBS OUT / VIDEOAMP IN" (carte v2.0) pour que le signal passe sur le câblage d'origine.

- Un stabilisateur des signaux des potentiomètres Volant/Accélérateur/Frein :
Si l'on a du bruit sur un de ces signaux (aiguille de BFF qui bouge sans qu'on touche le volant par exemple), ce sera atténué.

- Une compatibilité avec un projet de Multi EPROM de Driveboard dont je parlerai bientôt (EDIT : c'est là :)), et avec la méthode Piggyback de Squallrs :
On connecte les fils de la télécommande ou de l'interrupteur (qui ne sont donc plus nécessaires) pour sélectionner l'EPROM directement sur la carte.

- La possibilité d'utiliser une "Extra Lamp" puisque l'ULN2003 permet d'en gérer 7 alors que seulement 6 sont utilisées au maximum sur la plupart des cabs :
On peut soit partir du pin "Lamp" de "Extra Lamp" pour aller piloter une lampe supplémentaire (ajout d'un bouton d'action par exemple), soit mettre un jumper entre "Lamp" et "CoinM1" pour piloter la lampe Credit sur les panels de bornes qui ne seraient pas équipées de Klingon ou équivalent (bornes japonaises par exemple).

EDIT du 14/05/2023 :
Options exclusives à la v2.0 (mais accessibles à la v1.0 en usant du fer à souder) :

- bypass des boutons et des lampes, pour utiliser des boutons/lampes supplémentaires qui ne seraient pas câblés d'origine ou remanier entièrement les boutons. Idéal pour remplacer le shifter ou la plaque VR.

- Une sortie UART pour piloter les cartes PWM d'Aganyte, comme la Driveboard de remplacement :
On connecte le TX du Mega Adapter au Serial RX de la Driveboard de remplacement, et le GND au GND. Dans BFF on active le Target Hardware : "PWM_Centered" et on coche "Digital PWM".

- Un support Plug and Play des Shifters de Delo H4+Seq et Evo H6+Seq :
On connecte un câble droit entre le port RJ45 du Mega Adapter et le shifter, en s'assurant côté shifter que la masse est sur le Pin 8 (ce qui est le cas si c'est Delo qui vous l'a monté)

- Support de boutons suppémentaires "Extra Buttons" B1 à B8.
Attention, ces boutons sont routés sur les mêmes pins de l'Arduino que le Shifter. N'utilisez donc pas ces boutons et le Shifter de Delo en même temps (sauf pour B8 qui n'est a priori pas physiquement utilisé sur le shifter, bien que routé sur la carte)


Voilà pour ce projet :) Je vous tiendrai au courant de son avancée ! Officiellement en v2.0 !
Un projet similaire pour Model 2 est également dans les cartons. Edit : ici

Un gros merci à njz3 pour tout le taf initial, pour BFF, et pour fournir le code qui va dans le MEGA, ainsi qu'à BigPanik pour avoir développé le M2PAC de l'amour  :-*


Voici pour information un extrait du tableau de BigPanik pour visualiser sur quelles bornes peut aller la carte, et sur quels jeux on peut activer le mode M2PAC selon son hardware :



Les bornes pouvant accueillir ce M3 MEGA Adapter sont donc :
Le Mans 24
Dirt Devils
Emergency Call Ambulance
Scud Race / Sega Super GT
Sega Rally Championship 2
Daytona USA 2
Harley-Davidson and L.A. Riders (sans FFB)

EDIT du 05/12/2022 :
Vidéo d'installation du M3MA dans une cab Scud Race, et test sur Sega Rally 2 :


Concernant la partie Vidéo, je n'ai pas encore pu la tester. Je n'ai pas le setup pour tester moi-même, mais si ce schéma est correct, ça devrait marcher (et si PC et CRT utilisent le même type de synchro aussi, mais c'est probable. Un expert CRT peut confirmer ? <:)).
Sa seule utilité a priori est de pouvoir utiliser un CRT 24khz d'origine avec un PC qui lui enverrait du 15khz (les CRT 24khz supportent aussi le 15khz), et il faut s'attendre à avoir une image plus sombre qu'à l'origine puisque ma carte n'amplifie pas. On pourrait obtenir une image satisfaisante en poussant les potards de la platine du CRT, mais pas dit que ce soit très bon pour elle, et si on passe du PC au Stack, il faudra re-régler l'image à chaque changement. Ca reste donc une utilisation à la marge. L'utilisation de l'ampli de Bandicoot/njz3 semble donc plus pertinente (autant pour l'amplification que pour le choix du 15/24/31khz) et il pourra être couplé au M3MA.
Edit du 4/03/2023 : C'est testé, ça fonctionne (nécessité de relier une masse sur les v1.0, voir en page 3), mais le résultat est médiocre, comme attendu. La fonctionnalité restera exclusive à la v1.0 et sera remplacée par un full support du VideoAmp pour la v2.0. La v2.0 cumule les 2 options !



EDIT du 12/12/2022 :
Configuration du PC connecté au M3MA :

0) Installation minimale depuis un PC sans rien :

Si vous ne partez pas d'un SSD préconfiguré et/ou que c'est une première installation, il vous faut :
- installer le driver du Mega2560 CH340 que voici
- installer vJoy (il se trouve dans l'archive de BFF, sous le nom "vJoySetup-2.2.1-signed.exe")
- installer BFF (le "setup.exe" de l'archive BFF)

1) Configuration générale de BFF :

Déjà, il est conseillé d'utiliser la dernière version de BackForceFeeder.
A ce jour c'est la v0.6.0.98, et si vous avez déjà installé BFF, la version apparait dans le nom de fenêtre (entouré en vert ci-dessous).
Profitez-en pour contacter njz3 pour prendre une licence. Toutes les infos pour ça sont dans l'onglet "About" (entouré en jaune).
Cela vous évitera des bugs en mode M2PAC notamment, et d'avoir un pop-up ou de courts freezes des commandes.
NB : il y a actuellement un bug qui, en mode Comp_SR2, fait que, en l'absence d'ordre de couple, le volant part à gauche à 90°. Dès qu'il y a des ordres (en jeu notamment), le bug n'apparait pas.
njz3 est sur le coup.
Corrigé depuis BFF v0.6.0.98

Ensuite, faites un tour dans l'onglet "App. and hardware" (entouré en rouge)



Vérifiez que tout est coché/décoché comme ci-dessous, notamment dans le cadre rouge où tout doit être décoché :



Dans le cadre orange, vous pouvez choisir entre le mode M2PAC et le mode Compatibility correspondant à votre Driveboard ("Comp_SR2" pour une Driveboard Model3 à EPROM Sega Rally 2 par exemple).
Pour cela, cliquez sur le bouton vert "Running (Stop)" (il devient rouge), ouvrez le menu déroulant de "Target Hardware" (cadre orange), choisissez, puis rappuyez sur le bouton rouge, puis cliquez sur "Commit eeprom & reset" (les boutons deviennent rouges et repassent au vert)

Voilà, le minimum pour BFF est configuré !
Plus de détails sur l'utilisation de BFF sur le topic dédié ou la partie Software du tuto de Gojirien

Il reste à configurer ses ControlSets :


2) Configuration des ControlSets :

a) Les Boutons

Ci-dessous, le choix des Raw Inputs est fait à la conception de la carte et du code Arduino. On peut considérer ça comme figé.
Par exemple, le fait que le bouton physique Start soit le Raw Input 4 est figé.
Le reste est modifiable au besoin, mais voici une base cohérente et assez universelle :

Choisissez le ControlSet à modifier dans le menu déroulant de la fenêtre principale de BFF.
Allez dans l'onglet Buttons (entouré en bleu) et affectez les boutons selon cette correspondance :

# Cas où votre panel a assez de boutons pour jouer à tout ou presque
-Exemple du panel de Scud Race/Daytona USA 2 (4 boutons VR, Shifter H)-


Raw input 1 (Test)            mapped to joy button 10
              2 (Service)                                        9
              3 (Credit/Coin1)                                16
              4 (Start)                                            1
              5 (VR1)                                            2
              6 (VR2)                                            3
              7 (VR3)                                            4
              8 (VR4)                                            15
              9 (Shifter Down)                              none
              10 (Shifter Up)                                none
              11 (Shifter Left/Right)                      none

Dans "Hshifter" de l'onglet "Buttons" :
Raw input for Up switch (1/3) :    10
Raw input for Left/Right switch :  11
Raw input for Down switch (2/4) :  9
Maintain delay (ms) : 0
List of buttons : 11 12 13 14
First is neutral : non-coché

Si votre Shifter est un Shifter Up/Down, affectez comme ça, et effacez tout dans "HShifter"  :
Raw input 9 (Shifter Down) mapped to joy button 11
              10 (Shifter Up)                                    12


# Cas où le panel n'a pas assez de boutons pour jouer à tout (Panel SR2, LeMans...)
-Exemple du panel de Sega Rally 2 (1 bouton VR, Shifter H)-


ControlSet : Daytona USA 2 Serie

Identique au précédent sauf pour le bouton VR2 :
Raw input 6 (VR2) mapped to joy button none

Dans "Up/Down Sequence" de l'onglet "Buttons" :
Sequence 1
Raw input for Up (+) switch :    6
Raw input for Down (-) switch :  none
Up/Dn delay for neutral (ms) :  200
Maintain delay (ms) :                200
List of buttons :                        2, 3, 4, 15
First is Neutral et Roll over :      non-cochés

Ceci fait que des pressions successives sur le bouton VR bleu (VR2) équivaut à balayer les 4 boutons VR les uns après les autres.
C'est utile pour jouer aux Daytona 1/2 par exemple, mais pas pour jouer à Sega Rally 1/2 où la config d'avant convient mieux.


b) Les Lampes

Dans l'onglet "Game Outputs" de BFF, configurez comme ça :

# Cas du panel avec assez de boutons (exemple de Scud Race/Daytona USA 2 : 4 lampes VR)
Mapping game lamp bit 3 to raw bit(s) 7 (Start Lamp)
                                  4                  6 (VR1 Lamp)
                                  5                  5 (VR2 Lamp)
                                  6                  4 (VR3 Lamp)
                                  7                  3 (VR4 Lamp)
                                  8                  1 (Leader Lamp)

# Cas où le panel n'a pas assez de boutons (exemple de Sega Rally 2 : 1 lampe VR)
Mapping game lamp bit 3 to raw bit(s) 7 (Start Lamp)
                                  4                  5 (VR2 Lamp)
                                  5                  5 (VR2 Lamp)
                                  6                  5 (VR2 Lamp)
                                  7                  5 (VR2 Lamp)
                                  8                  1 (Leader Lamp)
Ainsi, quand le jeu veut allumer la lampe de VR1 qui est absente (il n'y a que VR2 sur un panel SR2), c'est celle de VR2 qui s'allume.
Idem pour VR3 et 4.



3) Configuration des Emulateurs :

Une fois BFF et les ControlSets configurés, affectez les "joy buttons" aux commandes du jeu.
Pour Supermodel par exemple, c'est dans le supermodel.ini du dossier Config de Supermodel. Pour Nebula Model 2 et Technoparrot, c'est directement dans l'interface de l'émulateur. Etc. Là encore le mieux est de jeter un oeil au super tuto de Gojirien

Quelques fichiers prêts à l'emploi :
Vous pouvez aussi prendre ce fichier qui contient :
- le dossier Config de BFF préconfiguré (Target Hardware : M2PAC sélectionné par défaut)
- quelques ControlSets déjà réglés (pour un panel Scud/D2)
- quelques supermodel.ini
Bref, de quoi jouer directement à quelques jeux.

Mgt1275

HA encore un super projet !   ^-^
Ayant deja un twin  (FFB/M3HACK/LCD ..) j aimerais un single en plus avec un CRT ce projet tombe a pique !  :D

Un merci général a ceux qui nous pondent des cartes ( et softs )  comme ca franchement chapeau ! :-*
You TOKI to me ?

njz3

Bravo Tibal !
Un beau projet de plus

AsPiC

Je n'ai pas assez de creuser la scène internationale arcadienne pour savoir comment ça ce passe ailleurs mais en tous cas je trouve que l'on as une scène Française du coté hardware dédié à l'émulation bien vivante :-)=

Ça fait plaisir de voir tous ces projets 8)

Aganyte

Beau travail, Il est vrai que le problème sera la nécessité d'avoir une driver board et une servo board fonctionnelles bien qu'avec la driver board que l'on a testé ensemble, seul la servo board est vraiment indispensable.

S_W

Très sympa ce projet. Beau taf a priori. ^-^

bandicoot

Mon pincab
https://www.gamoover.net/Forums/index.php?topic=23174.0
Excusez mes fautes d'orthographe , je tape vite et ne me relis qu'en diagonale , mais j'espère ne pas être le pire :)

Tibal

Merci les amis ! Ca fait plaisir !  :-*

J'ai reçu tous les composants et tout installé. J'ai mis à jour le premier post en conséquences (les photos quoi).

J'ai commencé les tests dans une cab Le Mans 24. Ca s'installe en 2 secondes  :-)=
Voici la bête in situ :





Les commandes, boutons, lumières, marchent nickel. Le FFB aussi.

Il me reste à tester le son (je n'ai pas pu, ma carte ampli semble HS), le sélecteur d'EPROM, la partie Vidéo.



psyko44

Citation de: Tibal le Vendredi 02 Décembre 2022, 15:33:16 PM
Merci les amis ! Ca fait plaisir !  :-*

J'ai reçu tous les composants et tout installé. J'ai mis à jour le premier post en conséquences (les photos quoi).

J'ai commencé les tests dans une cab Le Mans 24. Ca s'installe en 2 secondes  :-)=

Ton projet tombe ultra bien. Je viens enfin de mettre la main sur une le mans 24  =:)) donc je suis chaud bouillant  :D

Little_Rabbit

Salut,

C'est un super projet (ou un super produit devrais-je dire !) !  ^-^

Je n'ai pas de racecab Sega, aussi j'ai toujours suivi d'un peu loin tous les super développements de l'équipe aganyte/njz3/BigPanik et compagnie. Du coup, tout cela reste assez nébuleux et confus pour moi : ta carte a le mérite je trouve de synthétiser et proposer un tout en un beaucoup plus simple à appréhender pour le néophyte : c'est super !  8)

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

Tibal

Merci ! :)

Oui quand je vois comment j'ai pu galérer parfois à comprendre ce que font nos experts adorés, j'essaie de faire accessible, en tout cas avec le moins de background technique possible.
Mais bon, galérer c'est formateur aussi !

skullface

La vitesse de la lumière étant plus rapide que celle du son c'est pour cela que certains paraissent brillant avant d'avoir l'air con !!!

gojirien


gtranche

Coucou, c'est ultra top comme idée j'ai envie de dire que je me mets directement en file d'attente pour quand tu en vends ! :) une super idée qui fait gagner énormément de temps !!


Michel Maeva

Citation de: psyko44 le Vendredi 02 Décembre 2022, 19:18:16 PM
Ton projet tombe ultra bien. Je viens enfin de mettre la main sur une le mans 24  =:)) donc je suis chaud bouillant  :D

Je comprends pourquoi tu étais en attente d'une Le Mans 24 !

C'est un nouveau projet de dingue une fois de plus car je me rends compte qu'il existe de plus en plus de projets réalisés par plusieurs passionnés dans différents pays pour faire revivre certaines de nos vieilles machines. C'est très encourageant pour le futur, l'arcade n'est pas mort et loin de là !
Sauvegardons notre patrimoine arcade !!!
Président du Celtic Arcade Museum (Musée de l'arcade à Quimperlé (29))
https://www.facebook.com/CelticArcadeMuseum

Bakaskal

Salut Tibal,

Vraiment génial ta carte, j'en ai rêvé et tu l'as fait.
Cela va énormément nous faciliter la tâche, merci pour ton taff.
Je me mets aussi dans la liste d'attente lorsque tu lanceras les batchs.

Merci