RPI2JAMMA ou comment brancher un RPI sur une borne d'arcade
-
Salut à tous' Voilà, je viens présenter une carte dont je viens de terminer le premier proto, il y aura sûrement une production en fonction du nombre d'intéressé. C'est donc une carte permettant de brancher un raspberry pi sur une borne d'arcade équipée d'un port jamma. Donc voilà la bête montée avec un RPI3 : Et en utilisation (bon, ma borne n'est pas super bien réglée :oops: ) La majorité des gpio sont utilisés pour la gestion de l'écran et les contrôles sont lus par l'I2C. J'ai pour le moment testé avec succès deux distribs retro : recalbox et retropie. Le soucis avec la recalbox c'est que le driver mk_arcade_joystick_rpi présent dans la version 4 ne supporte plus l'I2C, heureusement un membre de gamoover m'a compilé une version compatible. Serait il possible de réintégrer cette fonctionnalité ? Pour ce qui est de l'écran, une borne fonctionne en 15khz et 60Hz de rafraichissement, par contre à différentes résolutions en fonction du jeu. Les jeux d'arcade n'utilisent donc pas tous la même résolution. Le pi est capable de fournir ces résolutions (à part certaines aux timing trop serrés) mais par contre le gros inconvénient maintenant, c'est que je n'ai pas trouvé d'autre moyen que de configurer la résolution dans le config.txt. L'idéal serait de pouvoir changer la résolution "on the fly", sans redémarrer le système. Le jeu serait donc "pixel perfect" sur un écran d'arcade Pour ceci il faudrait avoir accès aux hdmi timing depuis la console avant le lancement d'une rom et/ou émulateur. Quelqu'un d'assez calé ici pour m'expliquer comment faire ? Je ne suis pas un expert en linux, juste un "amateur éclairé", mais j'aimerai idéalement pouvoir faire une distrib spécifique à base de recalbox. Voilà, voilà A bientôt
-
Pouet Joli projet ! Tu peux nous détailler d'avantage le fonctionnement ? (tu as quoi entre les GPIO et la sortie RGB, tu fais quoi comme modifs dans ton config.txt, etc) Et sinon pour tes demandes: avec le binaire tvservice et fbset tu peux faire normalement ce que tu veux. quelques liens: https://pylci.readthedocs.io/en/latest/apps/tvservice.html https://github.com/adammw/rpi-output-swapper Merci
-
Bonjour Faudrait te rendre sur irc pr discuter av les dev aux sujets de i2c. Pour la resolution video as tu regardé si recalbox.conf ne ferait pas laffaire. Voir le wiki.
-
@ajefr magnifique projet mec ! Et je pense que ca va en intéresser plus d'un ... Par contre, je vais te poser une question très bête : j'ai vu récemment sur youtube un mec brancher un pi sur une blast city je crois avec un shcéma bcp plus simple : PI -> HDMI2VGA -> carte VGA-> JAMMA. Quelle différence avec ton projet ? Autre question con : tu n'as jamais testé la sortie composite du pi ? La sortie jack envoie de l'audio ET du composite ... Pour les résolutions, vik t'a bien répondu. Par contre je ne suis pas sur que tvservice marche sur gpio, mais autant essayer
-
alors @ajefr ca marche ?
-
Salut, Désolé de la réponse tardive. En fait TVservice et outputswapper ne font pas "suffisament" l'affaire. Ils permettent juste de zapper entre des modes connus, là je veux redéfinir un mode custom. On peut définir dans le "config.txt" un mode custom, et là, je veux le redéfinir une nouvelle fois sans avoir à redémarrer le système. @subs Le projet évite de multiplier les câbles, et surtout, les bornes ne fonctionnent pas toutes en VGA mais plutôt en CGA, le but ici étant de sortir un signal vidéo identique à une carte de jeu originale. A+
-
ben avec xrandr ou fbset tu peux definir tout comme tu veux normalement (et sinon tu peux meme ecrire directement dans /sys/class/graphics/fb0/mode mais c'est ce que fait fbset ...) c'est quel param de la conf que tu veux changer sans reboot ? hdmi_cvt ?
-
C'est surtout le paramètre hdmi_timing que je veux mettre à jour. Xrandr met à jour le serveur X, mais est ce celui ci utilisé pour emulationstation et/ou les émulateurs ? Je vais jeter un oeil, mais j'ai un doute
-
effectivement c'est pas X du coup les pistes que j'ai trouvé: il existe des interfaces "mailboxes" sur rpi qui permettent de faire interaction ARM <=> GPU (doc: https://github.com/raspberrypi/firmware/wiki/Mailboxes) qui permet de faire certaines actions sur le videocore (https://github.com/raspberrypi/firmware/wiki/Mailbox-property-interface#set-physical-display-widthheight) un mec s'en sert pour tester l'overscan sans reboot: https://github.com/ukscone/set_overscan/blob/master/overscan.c mais je crois qu'il y a rien d'utile pour les timings la dedans
-
Ya une commande "vcgencmd" pour obtenir les timings définis, entre autre pour hdmi, dpi, pixel etc et je soupçonne que ca doit etre défini au boot (avant le cpu ARM, c'est d'abord le GPU qui lit le config.txt, donc ca m'étonnerait pas que ca soit fixé au boot ...) http://elinux.org/RPI_vcgencmd_usage
-
J'ai trouvé la liste des commandes qu'on peut send au videocore. Dedans ya un "vc_tv_hdmi_set_property" (L489) qui prend un "HDMI_PROPERTY_PARAM_T" (defini la dedans) mais osef aussi je crois... Faudrait faire une issue sur https://github.com/raspberrypi/firmware/issues pour avoir les meilleures infos possibles je pense
-
Salut, Merci de tes infos, je vais regarder ça de plus près, avec les mailbox, on doit pas être très loin, je suis tombé sur toutes les différentes property : https://github.com/raspberrypi/firmware/wiki/Mailbox-property-interface Mais il n'y a toujours pas celles qui m'intéressent. Je vais tenter l'issue sur le site raspberry, j'ai déjà contacté dom du forum, mais aucune nouvelles. A bientôt
-
@ajefr je sais que le sujet est ancien, mais les choses ont changé chez RPI et on peut à présent regler les timings HDMI à la volée
-
ahh Néo-arcadia arrive, hein aje_fr!! (moi c'est zico92)
Je me demandais pourquoi tu n'étais pas encore venu par ici!!
J'ai vraiment hâte de voir ce projet aboutir!!!
-
@zico92 on a un sujet sur crt qui avance à grands grands pas et qui donne des resultats très prometteurs
-
@subs oui mais mon astro city est en jamma et ce projet peut toucher une grosse communauté
-
@zico92 je ne dis pas le contraire je me contentais de parler du crt
-
@zico92 Une interface J-PAC à 40 euros connectée sur la sortie VGA d'un convertisseur HDMI-VGA branché sur le pi avec un signal envoyé à 240P comme indiqué dans le topic "Recalbox sur CRT" permet sans problème une connexion JAMMA sur une Astro City (du moins pour la partie vidéo). Pour le son (qui est en sortie ligne sur le pi mais doit être amplifié pour la connexion en entrée JAMMA sur la borne, un bête ampli surmoulé réglable (avec alimentation par deux piles boutons 3v) à 10 euros branché entre la sortie Audio Jack du converto HDMI-VGA et l'entrée audio du J-PAC et tada !! Le tour est joué :=). Au final cela ne requière que 2 câbles, une carte J-PAC et.... moins de 60 euros de budget en se débrouillant bien :=)
Sinon il y a plus simple en n'utilisant qu'un seul cable VGA+Audio->SCART (environ une vingtaine d'euros port inclus chez retrocable.es) branché sur le convertisseur HDMI->VGA+Audio d'un côté et sur une carte SCART2JAMMA comme celle décrite ici : http://etim.net.au/scart2arcV20/scart2arc2.htm de l'autre
Par contre cette solution semble être plus chère que la première et il faut compter sur un budget autour de 100 euros , la carte SCART2JAMMA se négociant autour de 70 -80 euros sur eBay US. -
@gkralicek2 pk un jpac ? tu peux faire sur gpio ...
-
@subs Le J-PAC permet l'amplification des signaux RGB avant entrée sur le connecteur JAMMA car les moniteurs arcade (à contrario des TVs) n'amplifient pas le signal vidéo et veulent en entrée un signal à niveau TTL (5V) alors que la sortie VGA du Pi ne fournit que des signaux RGB sur 0.7-1v (comme les TVs). Je ne suis pas sûr que le GPIO en fasse autant et permette d'avoir en sortie des signaux RGB sur 5v (mais je dis peut être une connerie car je ne me suis jamais penché sur le GPIO pour la sortie des signaux RGB donc si çà se trouve, il est possible de leur faire cracher du 5v... mais j'ai un gros doute là-dessus :=) )