まこと の ブログ

MaKoTo no burogu — Journal de bord…

Aller au contenu | Aller au menu | Aller à la recherche

Mot-clé - Jeux video

Fil des billets - Fil des commentaires

vendredi, 29 mai 2020

Mini Game Center -7-

Suite de l'étude précédente :

Où en étions-nous donc avant cet interlude de mhhh au moins 3 billets…
Ha oui, je promettais qu'on verrait comment intégrer l'écran dans la maquette et qu'on aurait terminé cette Sega Astro City. Donc l'heure est venue ! Par contre je dirais plutôt « peut-être » terminée, avant de pouvoir la peindre… Voyons donc cela.

Dans le premier billet sur le sujet, on a vu qu'il était donc possible d'utiliser un écran LCD de 2,2 pouces, et qu'il était de taille idéale pour aller dans la maquette de la borne au 1/12 !
En plus avec la vitre en plastique bombée, l'effet loupe rendait vraiment bien, on se croirait presque sur un cathodique haha.
Mais comment le faire tenir en place ? Le coller ? Et si on veut mettre l'écran à la verticale pour jouer des vidéos de jeux en tate, ça risque d'être compromis non ? En plus la maquette à été pensée de telle façon à ce que le capot de l'écran, le bezel et le panel soient démontable…

Intégration de l'écran :

J'ai donc passé du temps avec mon pied à coulisse, à concevoir une pièce de remplacement pour la pièce d'origine (en noir) destinée à tenir une photo d'écran contre la vitre. Il s'agissait donc que la pièce tienne l'écran en place contre la vitre, en compensant son épaisseur.
Autre contrainte à tenir compte, l'écran est plus large à droite, du fait de la conception de la nappe de connectique.
Et enfin il fallait bien entendu pouvoir disposer l'écran horizontalement ou verticalement.

  • Après une demi-journée à modéliser et 3 prototypes imprimés, j'ai enfin obtenu satisfaction (pièce grise imprimée en ABS, dispo aussi en annexe) :

dsc04472.jpg

  • Pour terminer la pièce, il faut élargir les trous avec un forêt de 2 mm, ainsi le bezel se clipsera facilement, sans pour autant se défaire.

dsc04483.jpg dsc04503.jpg dsc04485.jpg dsc04486.jpg
dsc04487.jpg

  • Pour les tenons de fixations, j'ai utilisé des morceaux d'un gros trombonne, rentré en place par insertion à chaud, puis coupé et limé à une longueur correcte.

dsc04490.jpg dsc04491.jpg

Lire la suite...

mardi, 26 mai 2020

Mini Game Center -6-

Suite de l'étude précédente :

Toujours à la recherche d'une solution simple pour piloter les bornes du MiniGameCenter, c'est maintenant vers la transmission infrarouge directement au Raspberry que je vais me tourner.
Ce n'est pas une technique qui m'est inconnue, puisque je l'utilise sur mon médiacenter et mon WebRadioReveilWifi, mais pensant faire autrement je ne l'avais pas envisagée jusqu'alors.

Ainsi je devrais pourvoir faire la même chose qu'avec ce qu'on à vu la dernière fois sans fil avec le bluetooth, en utilisant 2 fils soit un GPIO.
Et si je veux pouvoir utiliser la fonction « Power ON », il faudra me résoudre à câbler un fil supplémentaire.

Voyons déjà comment ça se passe avec le soft Lirc, car c'est pas toujours évident à faire marcher, déjà la fois dernière j'avais dû bricoler un peu pour que ça fonctionne sur le Raspbian de l'époque, alors que plutôt encore, c'était bien passé…


Support de l'infra-rouge :

  • Installer le soft de gestion de l'infrarouge :
sudo apt update
sudo apt install lirc

À l'heure où j'installe ce soft, l’installation plante (Ha ça commence !)

  • Mais rien n'est perdu, y faut bricoler, et déplacer un fichier…
sudo mv /etc/lirc/lirc_options.conf.dist /etc/lirc/lirc_options.conf
  • Puis relancer l'installation :
sudo apt install lirc
  • Ensuite on va modifier le fichier de configuration comme suis :
sudo nano /etc/lirc/lirc_options.conf
driver = default
device = /dev/lirc0
  • Renommer cet autre fichier :
sudo mv /etc/lirc/lircd.conf.dist /etc/lirc/lircd.conf

  • Activer le module sur le Raspberry en éditant config.txt afin d'ajouter la ligne suivante pour activer le GPIO6 et redémarrer le Rpi.



Le Capteur IR est impérativement alimenté par le 3,3V du Raspberry, et donc sa broche de signal branchée sur le GPIO6.
J'ai mis le dessin standard d'une RpiZero, mais on passera ici par le connecteur GPIO du Pi-HAT.

Lire la suite...

lundi, 25 mai 2020

Mini Game Center -5-

Nous revoici pour la suite de notre étude sur le MiniGameCenter :

J'ai nommé celle-ci de cette manière pour évoquer une salle d'arcade, réunissant donc plusieurs bornes… sinon j'aurais plutôt dit « MiniBorne »…
L'important au final c'est qu'on puisse donc interagir avec plusieurs machines sans que cela ne devienne compliqué, ni que ça ressemble à une usine à gaz.
Et c'est pour cette raison que j'écris ceci… Je me suis rendu compte que mon idée de départ, à savoir comme on l'a vu lors du billet N°3, piloter chaque borne par ses GPIO se révélerait assez inadaptée, nous allons voir pourquoi.

C'est impec pour une seule borne, mais pour plusieurs on se retrouverait alors avec un tas de boutons poussoirs de partout.

  • J'ai alors pensé à les mutualiser, c'est à dire relier ensembles les GPIO respectifs de chaque Rpi et d'utiliser la masse comme sélecteur de Rpi. En effet si on débranche la masse, de tous les Rpi sauf un seul, alors on pilotera seulement celui-ci avec les boutons. Pour cela j'aurais utilisé des CD4066B (quad bilateral switch), piloté avec un Arduino, et quelques boutons supplémentaire pour choisir à quel Rpi on se serait adressé. Je n'ai dessiné que pour deux Rpi, mais on peut en rajouter presque autant qu'on veut (la limite venant du nombre d'in/out de l'arduino):


  • Et puis… bon, au final c'est plus un hack qu'une solution académique, alors je me serais orienté vers une solution à base de 74LS573 (Octal D-Type Latch with 3-STATE Outputs).


Et puis en dessinant tout ça, de vite me rendre compte que Ok, j'ai un nombre minimum de boutons poussoir, mais il va y avoir un gros tas de câbles à passer dans le faux plancher du MiniGameCenter, et des boutons à mettre quelque part, et qu'en plus de ça, si on le place en vitrine, bah on pilote rien sans avoir à l'ouvrir pour actionner les boutons… Cerise sur le gâteau, faut en plus se taper une nouvelle carte électronique à réaliser, voire à revoir le Pi-Hat pour y intégrer les 74LS573.

  • Alors pour le pilotage à travers la vitrine, j'ai expérimenté très facilement d'utiliser un capteur infrarouge sur l'Arduino et une télécommande de récup.


Ça fonctionne très bien, et j'aurais conservé l'idée à base de 74LS573 + boutons + Arduino + capteur IR, mais non, tout ce câblage et une PCB à faire… La flemme, il me fallait continuer à expérimenter d'autres solutions, et puis j'ai repensé au fait que le Rpi Zero W embarquait un module Bluetooth

Lire la suite...

jeudi, 16 avril 2020

Créer une vidéo à partir d'une sauvegarde de partie MAME

Comme je le racontais il y a 6 ans, il est possible d'enregistrer des parties de jeux sur MAME, de rejouer la partie et si besoin d'enregistrer une vidéo de celle-ci.

J'en avais profité pour publier une page dédiée.
Comme je trouvais les manipulations en ligne de commande fastidieuses, j'avais écris un script bash pour faciliter l'opération, mais ça restait de l'austère ligne de commande.

  • Un peu moins austère, j'ambitionnais de créer une interface graphique pour faire cela, et c'est donc aujourd'hui que je publie enfin un script python3 qui permet donc en quelques clicks de rejouer une partie et d'en générer une vidéo au format mp4/h264, le tout de manière automatisée.

Le code de ce logiciel est disponible ici, mais il vous manquera l'exécutable MAME que j'ai compilé.

  • J'ai donc réunis tout le nécessaire dans le fichier zip en annexe de ce billet.[1]

Une fois extrait, il suffit d'exécuter install.sh afin d'installer les paquets pré-requis.
Ensuite exécuter Lanceur_Mame-inp2video4GnuLinux.sh qui a pour tâche de démarrer le logiciel que j'ai nommé pompeusement Mame-inp2video4GnuLinux.

  • Voici une capture d'écran…


C'est un peu moins austère que je disais…

  • À toute fin utiles, et comme il faudra bien ça pour alimenter le logiciel, voici la commande qui permettra d'enregistrer la partie de jeu, valable pour Windows® ou GNU/Linux :
mame nom_de_la_rom -record ma_partie.inp

Attention, il faut juste se contenter de jouer et de quitter l'émulateur en fin de partie, le fichier inp étant dés lors disponible, généralement dans le dossier inp.
En effet il semble qu'utiliser les menu mame ou les raccourcis clavier (par ex pour faire un save_state) soit incompatible avec un enregistrement correct de la partie de jeu dans le fichier inp.

  • Enfin, puisqu'il faut évidemment le préciser, le Logiciel Mame-inp2video4GnuLinux fonctionnera, depuis n'importe quel ordinateur équipé de GNU/Linux de la famille Debian (Ubuntu18.04 testé ok).

Il n'est pas nécessaire d'avoir MAME installé sur cette machine.
Vous aurez besoin cependant du fichier ROM et bien entendu du fichier INP correspondant.
Laissez vous ensuite guidé par l'interface graphique…

  • Je suis débutant dans l'exercice, suis ouvert à l'apprentissage, et ne recevrais donc aucune critique non-constructive. Vous pouvez bien entendu me faire part des problèmes d'exécutions qui pourraient advenir.

Note

[1] Ci-dessous…

- page 1 de 40