Gamoover

[move]Vous vous épilez le maillot et collectionnez les bornes d'arcade avec des hommes musclés dessus ? Alors soyez les bienvenus sur Gamoover ! [/move]

Substitution d'un PCB Pole Position par un PC sous MAME

Démarré par Little_Rabbit, Lundi 06 Avril 2020, 18:36:44 PM

spectroman


Little_Rabbit

@Spectro : certes, mais là je ne parlais que du stockage des vieilles consoles et vieux ordi, pas du stockage des bornes d'arcade !... ;)

Le pauvre Sentinelle en sait quelque chose !...  :-\

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

Michel Maeva

Citation de: Little_Rabbit le Jeudi 28 Mai 2020, 13:41:42 PM

Le pauvre Sentinelle en sait quelque chose !...  :-\


Sentinelle m'a parlé de la Saint Jean en juin, je ne sais pas pourquoi...  ;D  :D
Sauvegardons notre patrimoine arcade !!!
Président du Celtic Arcade Museum (Musée de l'arcade à Quimperlé (29))
https://www.facebook.com/CelticArcadeMuseum

Little_Rabbit

Salut,

Vous aurez remarqué, les semaines (mois ! :-\) filent et il y a peu d'avancées... Force est de constater que le sujet ne me passionne pas, comme je n'y connais rien en MAME, je tâtonne et y vais un peu à reculons, il faut que je me fasse un peu violence pour avancer... ;)

Comme je vous le proposais dans l'épisode précédent, abordons un peu la configuration des « inputs » sous MAME.

Je vous préviens d'emblée que je ne maîtrise pas du tout le sujet ! Mais je partage avec vous les quelques trucs que j'ai compris (ou pas ! ;)).

Comme vous le savez, pour paramétrer les « inputs » sous MAME, il faut presser la touche TAB, puis choisir « Input (this Game) ». Là on choisit input par input celle qu'on veut affecter à telle touche de clavier, ou plutôt dans mon cas à tel ou tel bouton du mon panel Pole Position.

J'effectue donc les affectations suivantes :

Coin 1Joy 1 bouton 1
Coin 2Joy 1 bouton 2
SERVICEJoy 1 bouton 3
Gear change (levier de vitesse)       Joy 1 bouton 0
P1 Pedal 1 AnalogJoy 1 Manette des gaz
Dial 1 Analog (le volant)Mouse X

(je fais mes tests avec le bloc pédale de l'upright sur lequel il n'y a que la pédale d'accélération, je n'ai donc pas paramétré de frein)

Le 1er truc dont je me suis rendu compte, c'est qu'il faut faire très attention aux conflits engendrés par les réglages par défaut de MAME !

Ainsi dans mon cas, au début, quand je changeais de vitesse, je décélérais alors que j'étais pourtant pied au planché ! Il fallait relâcher l'accélérateur puis accélérer à nouveau pour pouvoir à nouveau accélérer. Cela venait tout simplement du fait que par défaut, le bouton 0 est également affecté à l'incrément de l'accélération ! Mon levier de vitesse restant en position fixe, il maintenait en permanence Bouton 0 enfoncé, et annulait la valeur de ma pédale d'accélération avant le changement de vitesse !



Je vous conseille donc de virer toutes les configurations par défaut qui utilisent les mêmes boutons que ceux de votre panel. Pour cela, sélectionnez l'entrée qui peut engendrer un conflit, faites Entrée, puis Escape pour que « None » soit affecté à l'entrée en question ;

Vous devez avoir quelque chose dans ce style :



Mais pour réussir à faire cela, qui paraît tellement simple, j'ai souvent galéré, sans comprendre pourquoi mon interface était bloquée :(.

En effet, souvent je relançais MAME et voulais parfaire l'affectation des entrées et faire des tests, mais après avoir fait TAB, il m'était impossible de sélectionner quoique ce soit ! Tantôt cela marchait, et tantôt c'était complètement bloqué ! Ce n'est que tout récemment que j'ai fini par comprendre l'origine de ces blocages ! Je m'étais concentré sur « Input (this game) », mais il peut y avoir des conflits ailleurs !

Si vous allez cette fois dans « Input (general) », puis « User interface », vous verrez tout en bas que le Bouton 0 est là aussi affecté à UI Select, c'est-à-dire la validation d'un choix dans les menus de l'interface utilisateur : avec mon Bouton 0 qui est le levier de vitesse, qui peut rester dans une position activée en permanence, cela bloquait toute autre sélection dans les menus !



Ce problème a failli me rendre dingue :D.

C'en est au point où je me demande si je ne vais pas revoir le code pour l'Arduino de sorte que les boutons physiques soient affectés aux boutons logiques 4, 5, 6 et compagnie pour éviter tout conflit avec les 1er boutons que MAME utilise déjà par défaut !

Autre truc que je n'ai pas bien compris, toujours pour le levier de vitesse, dans mes nombreux essais, où parfois je repartais de zéro avec une config vierge, je refaisais toutes mes configurations et je me retrouvais avec le levier de vitesse qui fonctionnait à l'envers !  ;D

J'ai pas mal tâtonné, pour parvenir à la conclusion suivante : il suffit de changer ou ajouter dans le fichier .cfg le champ « value ».

Dans mon cas, je partais de cette config :

<port tag=":IN0L" type="P1_BUTTON1" mask="2" defvalue="2">
  <newseq type="standard">
    JOYCODE_1_BUTTON1
   </newseq>
</port>



A laquelle j'ajoutais le « toggle » abordé dans le post précédent (pour que le levier ne fonctionne pas comme un bouton qu'on enfonce puis relâche) :

<port tag=":IN0L" type="P1_BUTTON1" mask="2" defvalue="2" toggle="no">
  <newseq type="standard">
    JOYCODE_1_BUTTON1
  </newseq>
</port>


Et j'ajoute enfin un "value=0" :

<port tag=":IN0L" type="P1_BUTTON1" mask="2" defvalue="2" value="0" toggle="no">
   <newseq type="standard">
    JOYCODE_1_BUTTON1
   </newseq>
</port>


Ainsi mon levier de vitesse fonctionne comme je le souhaite !  ^-



Toujours au chapitre de la configuration des Inputs, il y a un truc que je n'ai jamais réussi à faire : affecter à un des boutons du panel le passage en mode « Service ».

Par défaut c'est la touche F2 qui permet de basculer en mode Service. Une nouvelle pression sur F2 et on repasse en mode « Jeu ».

Je suis pourtant passé par « Input (general) », puis « Other controls ». Là j'ai affecté mon bouton 3 à la place de F2.



Cela me donne fichier default.cfg suivant :

<?xml version="1.0"?>
<!-- This file is autogenerated; comments and unknown tags will be stripped -->
<mameconfig version="10">
    <system name="default">
        <input>
            <port type="SERVICE">
                <newseq type="standard">
                    JOYCODE_1_BUTTON4
                </newseq>
            </port>
            <port type="UI_SELECT">
                <newseq type="standard">
                    KEYCODE_ENTER
                </newseq>
            </port>
        </input>
    </system>
</mameconfig>


Mais pour autant rien n'y fait : j'ai beau appuyer sur le bouton affecté cela ne fait rien, et c'est toujours seulement la touche F2 qui permet d'aller en mode service !  :(

Si vous avez la solution, je suis preneur !  <:)

De la même façon, si quelqu'un a un lien vers des explications sur la syntaxe et la signification de chacun des mots clés de ces fichiers de config XML, je suis preneur car je me suis souvent arraché les cheveux à ne pas comprendre comme cela fonctionnait ! :)

Voilà, c'est tout ce que j'aurais à dire sur ces configs. Cela reste pour ma part nébuleux et capricieux...


Donc si je récapitule l'ensemble de toutes les manip :

- mame –cc pour générer le mame.ini
- dans mame.ini, remplacer « mouse   0 » par « mouse    1 »
- dans « Input (this game) », virer tous les conflits possible en les mettant à None
- dans « Input (this game) », affectez les entrées correspondant à votre panel
- dans « Input (general », affectez à « UI Select » uniquement la touche Entrée
- dans le fichier xml du jeu (polepos.cfg dans mon cas), modifier la ligne définissant le levier de vitesse en mettant « <port tag=":IN0L" type="P1_BUTTON1" mask="2" defvalue="2" value="0" toggle="no">

Prochain épisode : GroovyMAME et comment passer l'affichage de son PC en 15 kHz ! :)

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


Little_Rabbit

#37
Salut,

Même si cela fait des mois que je ne vous en ai pas parlé, ce projet est toujours d'actualité, et je n'en suis toujours pas venu à bout ! :D

J'ai avancé sur pas mal de points (sans mettre à jour ce WIP, je sais, c'est mal... :-\), mais aujourd'hui je bute sur le choix du Front-end !...

Quel front-end choisir ?

Mon cahier des charges est simple et basique :

- ne lancer que 5 ou 6 jeux sous MAME
- une interface simple qui ne cherche pas à vous faire croire que vous êtes à la Foire du Trône, et qui tourne sur une petite config
- qui fonctionne sous Win XP en 640x480, et en 15 KHz
- sélection des jeux avec souris/spinner et boutons, voire pédales d'accélération/de frein

J'en ai déjà testé plusieurs, ai passé des heures à m'arracher les cheveux avec certains, et je reviens toujours à la case départ  >:(

1) Attract Mode
Je l'avais vu sur les bartops de berunours, et je trouvais ça très sympa (notamment la vue en mosaïque). Sauf que je dois être une quiche ou maudit, je n'ai jamais réussi à le faire fonctionner sous WinXP. J'ai pourtant téléchargé la version WinXP 32 bits, l'ai testé sur 2 postes sous XP, et à peine lancé c'est retour au bureau direct !...

2) Maximus Arcade
Il m'avait été recommandé par chelnov. Je m'y suis collé pendant un bon bout de temps, et ça aurait dû marcher au poil, sauf que mystérieusement, il ne reconnaît pas les boutons de mon pseudo gamepad hybride fait à partir de Leonardo, le panel dont je vous ai parlé dans les posts précédents. Le truc de dingue, c'est que sur l'onglet View de Preferences.exe, je vois bien mes boutons, ils s'allument immédiatement si je presse un bouton. Mais par contre sur l'onglet "Controller/Setup 1", l'interface reste parfaitement muette et ignore tous mes boutons :'(. Si je branche un gamepad du commerce, l'interface les prend bien en compte. Je l'ai également testé sur d'autres postes, sous Windows 7 et Windows XP : à chaque fois il ignore les boutons de mon pannel.

J'ai essayé de contourné le problème avec joy2key, mais ça finissait par être une usine à gaz, et très souvent, je ne parvenais pas à revenir au front-end en quittant MAME, restant sur un écran noir  :-[

3) Hardcade
Je viens de le tester à l'instant : il est immédiatement éliminé puisqu'il ne gère pas la souris ou un spinner :'(. La navigation dans ses menus ne peut se faire qu'avec des boutons ou touches. C'est bien dommage, car Hardcade reconnaît bien les boutons de mon gamepad Arduino !

Il me reste à tester MaLa et AtomicFE notamment : vous en pensez quoi, et quel front-end me recommanderiez-vous compte tenu de mon cahier des charges ?

Merci pour votre aide !  ^-

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

AsPiC


Little_Rabbit

Salut,

Pour des tas de raisons ! :D

- pourquoi réinventer la roue quand elle existe déjà

- je n'ai jamais programmé d'applications graphiques sous Windows

- je n'ai jamais programmé d'applications tout court sous Windows ! :D

- aujourd'hui, mes compétences en programmation sur PC se limitent à peu près à faire des macros en Visual Basic sous Excel ! ;)

Donc je crois que d'une part tu surestimes grandement mes compétences, et d'autre part tu sous-estimes grandement la courbe d'apprentissage que cela réclamerait pour assimiler tout ce qu'il y a à connaître pour programmer un front-end, aussi basique soit-il sous environnement Windows :).

Je suis en train de tester "Kymaera"... C'est laid, mais la définition des skins est en fichier XLM... donc à voir ;).

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

funkycochise

mala pourrait faire le job.
il est vieux mais avec un os qui l'est aussi...
en plus un thème mala fonct avec attract mode.

Little_Rabbit

#41
Salut,

Merci funkycochise pour ton conseil, je vais tester cela !  ^-^

Je l'avais pour l'instant mis de côté, car les quelques captures d'écrans que j'avais vues sur le net me montraient des choses en relativement haute définition, mais si il accepte des skins en 640x480, ça m'intéresse !  ^-

[edit : je suis en train de lire ton sujet de 2016 et surtout ton super tuto ! ;)  ^-
]

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

funkycochise

#42
oui il descend en 320x240

après faut voir pour la souris.
mais il me semble que c'est géré dans le menu.

mala  est clairement pas la meilleure option parce que p'us vraiment maintenu.
mais sur une config plus ancienne c'est encore pertinent je pense.

Little_Rabbit

#43
Salut,

@funkycochise : j'ai poursuivi mes tests de Mala ce soir : la souris est parfaitement gérée !  ^-

J'ai également terminé la lecture/mise en œuvre de ton tuto : un énorme merci à toi, cela m'a été d'un très grand secours !!  ^-^  :-*

Mala reconnait également parfaitement mon gamepad hybride à base d'Arduino : les boutons, la pédale d'accélération et de frein, le volant/spinner sont tous parfaitement reconnus et utilisables dans l'interface !  ^-

Je ne me suis pas encore frotté à la création d'un layout (rien d'indispensable), mais en l'état, avec le layout "RetroGUI", je pense que Mala répond parfaitement à tous mes besoins !  :-)=

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

funkycochise

faut que ressorte mon bundle tout en un, quelque part sur le net.

Solkan

Citation de: funkycochise le Jeudi 28 Janvier 2021, 03:28:20 AM
faut que ressorte mon bundle tout en un, quelque part sur le net.
yes, c'est tellement bien Mala et c'est vraiment dommage qu'il ne soit plus maintenu (ni même disponible)
Solkan
"There is too much blood in my Coca-Cola System"

Mes Recherches : Marquee et PCB MK2, Konami Gyruss/Pooyan/Time Pilot/Yie Ar Kung Fu/Commando/Track & Field

Tibal

Salut !

Je déterre ce topic car, après avoir perdu la motivation d'avancer sur mon WIP Pole Position pour cause de PCB HS, le travail de Little_Rabbit expliqué ici m'a reboosté.
Faut dire que, depuis le début de mon WIP en 2020, j'ai beaucoup appris grâce aux gens de ce forum, notamment sur les RaceCabs, l'implémentation de PC, et le dessin de PCB. Si je ne désespère pas d'un jour réparer ma PCB originale, je voulais donc tenter la conversion de ma Polpo ! Et si ça se passe comme je l'espère, que tout est jouable comme il faut, certainement que ça me motivera pour dépanner l'écran qui est lui aussi HS !

J'ai commencé par faire une PCB-Prototype basée sur les schémas de Little_Rabbit, avec son aide. C'est globalement un Mega Adapter, mais pour accueillir un Arduino Leonardo, où j'ai gardé toutes les fonctionnalités susceptibles de servir à un moment, et ajouté un péritel-hack pour connecter à une TV (idée de L_R  ^-)



J'ai également fait une PCB de remplacement d'Opto Coupleur, puisque j'ai lu que les originaux pouvaient être récalcitrants associés à du matériel moderne. Là encore, Little_Rabbit m'a bien aidé (Merci pour toutes les mesures quand ma borne était inaccessible !).



Pourquoi il y en a deux ? Parce que l'une est faite avec des optocoupleurs ITR-9606 et l'autre des ITR-9608. Comme je n'ai pas compris la différence à partir des datasheets, j'ai fait les 2, et on verra si ça change quelque chose en test.

J'ai poussé le vice en m'approchant des écritures du verso et du routage original, pour le fun  ;D




J'ai ensuite récupéré des Leonardo, et, après quelques galères dues à un IDE mal installé et des librairies prêtant à confusion, je les ai flashés avec le code de Little_Rabbit (merci pour le support, et à njz3 aussi !)

J'ai fait un premier test pour voir déjà si le Leo Adapter s'insère bien et s'il ne met pas le feu à la maison.
On fait un peu de place autour de la borne, on approche un PC, un écran, on branche dans le même sens que d'origine...





On met sous tension et... Rien ne brûle !

Je connecte au PC, il détecte le Leonardo comme il faut  :-)=

Je teste le volant... Aïe, le curseur de souris ne bouge pas alors qu'il devrait.
Je teste le shifter, il est détecté ! Idem pour les boutons de service derrière la Coin Door !
Je teste le potentiomètre de l'accélérateur, c'est bon pour lui aussi.

Je connecte un câble audio entre le PC et les entrées Sound 1 et 2 qui théoriquement sont les bonnes pour ma Upright, je monte le son du PC, mais rien ne sort.

Voilà pour ces débuts !

Dans les jours qui viennent, je testerai mes cartes Opto voir si ça change des choses pour le curseur de souris.
Je testerai les autres entrées Sound, je regarderai si le son de la borne n'était pas au minimum  ;D

A suivre !


Little_Rabbit

Salut,

Bravo Tibal pour cette superbe réalisation !  ^-^

Tu deviens le spécialiste des cartes d'intégration plug and play des solutions d'émulation pour race cab !  :D

Et merci aussi d'avoir déterré ce sujet, cela va j'espère m'inciter à le terminer ! (car oui, il est toujours en cours... :-\)

Pour ton problème de volant qui ne fonctionne pas, je viens de jeter un œil à plusieurs trucs :

- la dernière version du source que je t'ai transmise utilise bien les entrées numériques 2 et 3 du Leonardo
- j'ai repris le schéma ATARI pour suivre sur le PCB les traces du circuit menant aux broches auxquelles le coupleur est relié



=> on est bien sur les broches 8 et H


(j'ai d'abord cru que tu avais câblé la broche G, mais en fait on passe de F à H, il n'y a pas G :D)

J'ai également vérifié que les résistances de pull-down sont bien présentes : tout me semble en ordre.

Donc je ne saurais dire pourquoi cela ne fonctionne pas :'(.

Les vérifications à effectuer :

- as-tu bien 5V entre les bornes 2 et 3 du coupleur ?
- avec un oscilloscope (ou analyseur logique), peux-tu regarder quel signal on a sur les entrées 2 et 3 du Leonardo quand on tourne le volant ?

Quant à la partie son, comme je te l'avais dit quand tu développais la carte, je ne suis pas sûr de comprendre comment cela fonctionne... Il faudrait un vrai électronicien :D.



Au hasard, @Fred G5  :D , saurais-tu nous expliquer comment les sorties "son" fonctionnent ?

- il y a une masse Audio
- et chaque sortie a une sortie + et une sortie -

Sur la borne, seules les sorties + semblent reliées aux cartes AudioRegulator II qui sont en charge de l'amplification :



Peut-on bien ignorer les sorties "Sound -" ?

Sur ton PCB Tibal, j'ai vérifié et on a bien les 4 entrées "son" en T, 15, 18 et 16, et les broches U et V sont bien à la masse.

Vérifie en effet le réglage du volume (sur ces bornes ATARI, la carte ampli AR2 amplifie plein pot tout le temps, et en aval ce sont des potards bobinés (rhéostats) qui permettent de régler le volume :) ).

Sur mon PCB dont le mode Service fonctionne encore, j'essayerai de mesurer quelle tension on a en sortie de l'étage audio :).

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