Transformez votre Raspberry Pi en borne d'Arcade

Cette série de billets vous permettra de transformer votre Raspberry PI 4 B en borne d'arcade. Je vais vous expliquer chacune des étapes qui vous permettront d'y arriver. Il faut avoir quelques connaissances minimales sur Unix comme comprendre ce qu'est une ligne de commande mais vous n'avez pas besoin d'être un expert non plus. Je ne suis pas un administrateur système et j'ai élaboré cette solution en glanant mes informations sur le web et c'est plus ma passion pour la technologie et l'informatique qui m'ont permis d'y arriver.

Mon objectif était de trouver une solution simple pour mettre en œuvre et maintenir une borne d'arcade qui fonctionne sur un Raspberry Pi 4 B. J'ai donc créé une série de scripts Unix qui permettent de réaliser la plupart des étapes de mise en œuvre de la borne d'arcade automatiquement. Ces scripts sont téléchargeables à partir de mon dépôt Git rpi4mame.

Mais ce blog n'aurait jamais pu voir le jour et je ne me serais d'ailleurs jamais lancé dans cette aventure si je n'avais pas trouvé à travers mes différentes recherches le repo git de Benoît alias Sonicprod. Son blog, Comment réaliser un système MAME dédié sur un Raspberry Pi 4/Pi 400, a été le déclic pour moi. Il m'a permis de me lancer et de me donner toutes les bases pour pouvoir réaliser mon projet. Un grand merci à lui.

Mes recherches m'ont également amené vers les travaux de Radek Dutkiewicz alias oomek qui a créé AttracPlus. C'est un logiciel qui reprend et modernise le fantastique logiciel de Andrew Mickelson, Attract Mode. Ce logiciel permet de créer des interfaces utilisateur magnifiques et très graphiques pour lancer les jeux.

Mais plus encore, je tiens à remercier la communauté qui anime et gravitent autour de MAME. C'est ce logiciel qui permet entre autres d'émuler quasiment toutes les bornes d'arcade et les jeux qui vont avec. Rien ne serait possible sans lui.

Je tiens à les remercier eux et toute la communauté qui gravite autour de ce monde qu'est l'émulation des bornes d'Arcade. J'y ai personnellement trouvé un plaisir immense et la possibilité de revivre des moments inoubliables de mon adolescence où je rentrais dans un café pour jouer à Moon Patrol ou dans une salle d'arcade pour me lancer un défi sur Galaga ou Bomb Jack.

Un très grand merci à eux !

Le matériel de base dont vous aurez besoin.

Avant toute chose, je tiens à préciser que personne ne sponsorise ce blog et que je n'ai bénéficié d'aucun code promotionnel fourni par un tiers qui aurait pu influencer mes choix lors de mes achats. Ce sont mes propres recherches et aussi mes préférences personnelles qui m'ont fait choisir tel ou tel produit. Mais il ne faut pour autant que ces choix sont les seuls possibles. C'est plus une sorte d’outil d'aide à la décision. Les images qui illustrent les différents matériels qu'il faut acquérir correspondent aux produits que j'ai acheté. Mais ces produits ont évolué depuis que je les ai achetés et certains ne sont d'ailleurs plus disponibles à la vente car ils ont été remplacés par des versions plus récentes. Ces images sont plutôt là pour illustrer mes propos et donner une idée concrète du matériel dont je parle.

Maintenant voyons ce dont vous aurez besoin pour réaliser ce projet et ces améliorations.

Le Desktop kit de Raspberry Pi...

Solution recommandée pour démarrer votre premier projet.

Si vous n'avez rien du tout comme matériel, il vous faudra en plus un bloc d'alimentation compatible avec votre Raspberry, un clavier, un adaptateur micro HDMI et une carte micro SD. Et tant qu'à faire un boitier de protection pour votre Raspberry ne sera pas de trop. Le Desktop kit de Raspberry contient tout ça. La carte Micro SD ne fait que 16Gb mais c'est suffisant pour démarrer. Et vous aurez en plus un livre très bien fait pour apprendre à faire tout un tas de trucs sympa avec votre Raspberry. C'est la solution idéale pour vous lancer. Il vous faudra quand même, en plus, un écran d'affichage. Vous pouvez choisir votre télé ou votre écran d'ordinateur et connecter l'adaptateur micro HDMI du Raspberry à un câble HDMI standard. Mais utiliser une télé pour configurer le système n'est pas la solution idéale lors de la phase de mise en œuvre de ce projet. Le mieux est d'avoir un écran dédié ou, si vous disposez d'un ordinateur, d'une carte d'acquisition vidéo qui vous permettra d'afficher l'écran du Raspberry sur votre ordinateur. Cette dernière solution est bien plus pratique et peu couteuse. J'avais initialement choisi un petit moniteur dédié à près de 150 € ce qui n'était pas hors de prix mais j'ai très récemment acquis une carte d'acquisition vidéo à 15€ que j'ai branché sur mon ordinateur personnel. Vous pouvez, grâce à cette approche, piloter à la fois le Raspberry depuis votre ordinateur et afficher sa sortie vidéo sur ce même ordinateur. C'est super pratique et plus économique.

C'est la solution parfaite pour démarrer ce projet sans engager de frais importants. C'est personnellement avec ce kit et un petit moniteur que j'ai démarré cette aventure.

Plus d'information

... ou uniquement la carte Raspberry Pi.

Approche "pièce détachée" pour les experts qui savent déjà ce qu'ils veulent.

Si vous avez déjà tous les accessoires, vous pouvez acheter uniquement le Raspberry Pi 4B. La version avec 4Gb de mémoire vive est suffisante. Personnellement j'ai pris la version avec 8gb et je n'ai pas personnellement testé la solution ave 4gb mais d'autres passionnés comme moi l'on fait et ça avait l'air de marcher plutôt bien. Mais attention, pour n'acheter que le Raspberry il faut que vous ayez déjà une alimentation compatible, une carte Micro SD, un clavier, un adaptateur micro HDMI vers HDMI standard, une carte Micro SD et un écran d'affichage, que ce soit votre télé ou un moniteur vidéo dédié. Si vous n'avez pas tout ça, vous pouvez prendre le Desktop kit proposé par Raspberry qui contient tout ça et pourra se connecter à votre télé... à condition d'avoir en plus un câble HDMI assez long pour aller de l'adaptateur à la télé.

Plus d'information

Pour une première expérience avec le Raspberry Pi, le Desktop kit est la meilleure option.

Une carte d'acquisition vidéo...

Solution recommandée si l'on dispose d'un ordinateur afin de remplacer le moniteur.

Si vous choisissez de construire une borne d'arcade, celle-ci disposera de son propre écran d'affichage. S'il s'agit d'une console d'arcade elle sera sans doute connectée à une télé. Mais dans tous les cas c'est une fois que la borne ou la console seront terminées que ces écrans seront utilisés. Durant la phase de mise en œuvre, bien que ce soit possible, il n'est vraiment pas recommandé d'utiliser ces écrans pour procéder à la mise en place du système, le téléchargement des logiciels et du contenu ou bien encore pour compiler et tester les programmes. Pour ces taches, il vaut mieux utiliser un écran dédié. Quand on dispose d'un ordinateur de bureau, celui-ci dispose déjà d'un écran dédié. C'est là que la carte d'acquisition vidéo prend tout son intérêt.

C'est en voulant éviter de monter et démonter le moniteur pour la énième fois que j'ai cherché à trouver une solution de contournement au moniteur. Je me suis dit que l'écran de mon portable pourrait servir de moniteur. Le souci c'est qu'un ordinateur portable ou non, ne dispose en général que de sorties vidéos et pas d'entrée. Si l'on souhaite afficher l'écran du Raspberry sur son ordinateur il faut arriver à connecter le câble HDMI à cet ordinateur et surtout que le signal aille du Raspberry vers l'ordinateur et pas l'inverse. La solution passe par une carte d'acquisition vidéo. Il en existe de nombreuses qui sont petites, fonctionnent très bien et permettent d'envoyer un signal à l'ordinateur au format HD. Et elles sont en plus pour la plupart pas très cher, tout du moins, bien moins cher qu'un moniteur. C'est donc la solution à privilégier si l'on dispose d'un ordinateur. Il faudra y ajouter un logiciel pour afficher l'image. Pour mon Mac j'utilise l'application gratuite Quick Camera.

La solution la plus pratique pour l'écran d'affichage lors de la mise en œuvre de votre projet.

... ou un moniteur d'affichage.

Solution recommandée si l'on ne dispose pas d'un ordinateur afin d'éviter d'utiliser une télé lors de la mise en place du système.

Si l’on dispose d'un ordinateur portable, celui-ci intègre son propre écran. Donc disposer d'un écran dédié pour son Raspberry est logique. Il faut considérer le Raspberry comme un ordinateur... ce qu'il est d'ailleurs. La taille du moniteur importe peu. C'est plus votre confort personnel qui déterminera sa taille. Personnellement j'avais choisi un moniteur HD de 13" disposant d'une résolution de 1920x1080 ce qui est le standard des téléviseurs HD. Mais si vous voulez un moniteur 4K, c'est possible car le Raspberry est compatible avec cette norme mais cela ralentira grandement les jeux car la taille de l'image a généré par le système devra être 4x plus grande en 4K que le format HD. Personnellement, je ne pense pas que ce soit une bonne idée.

Si vous disposez d'un ordinateur, choisissez plutôt la carte d'acquisition vidéo pour remplacer le moniteur. C'est moins cher et plus pratique.

Une borne d'arcade en kit...

Solution "Tout en un" conçue pour fonctionner avec un Raspberry Pi 4.

Une fois que j'avais terminé mon premier projet qui s'appuyait sur le Desktop Kit de Raspberry, j'ai pu constater que ça fonctionnait super bien. Mais bon, je devais faire fonctionner tous les jeux à partir d'un clavier. Alors j'ai voulu aller plus loin. La solution la plus simple pour améliorer mon projet était de brancher une manette de jeu. Je l'ai fait mais ce n'était pas vraiment adapté aux jeux d'arcade. C'était mieux mais pas la solution idéale. Il me fallait un Controller de type Arcade. Je savais que ça existait et j'ai commencé mes recherches. J'ai finalement trouvé la solution idéale "Tout en un" sous la forme d'une véritable petite borne d'arcade conçue pour le Raspberry Pi 4. Il s'agit du Picade. Je me suis donc lancé sur ce projet. Elle n’est pas très chère et une fois terminée, elle fonctionne super bien. Bon, il faut être minutieux lors du montage, surtout pour le branchement du moniteur et des boutons, mais à la sortie, ça marche nickel. Je l'adore et les personnes qui l'utilisent l'adorent également. C'est elle qui est à l'origine de ce blog.

Plus d'information

Le lien que je fournis vous permet d'avoir plus d'information sur cette borne d'arcade mais vous pouvez bien sur la trouver et l'acheter en France, ce qui, depuis le Brexit, est plus facile que de l'acheter en Angleterre.

Il y a même une version incluant le Raspberry Pi 4b avec 8gb de RAM et une carte Micro SD de 32Gb.

... ou une console d'arcade ...

Solution "Tout en un" à brancher sur une télé conçue pour fonctionner avec un Raspberry Pi 4.

Si vous souhaitez jouer depuis votre canapé avec une console d'arcade "Tout en un" dans vos mains, connectée à votre télé, Pimoroni propose également sa borne d'arcade sous forme d'une console "Tout en un" qui inclut un Controller d'arcade. Il s'agit du même produit que la borne d'arcade mais sans l'écran.

Plus d'information

Le lien que je fournis vous permet d'avoir plus d'information sur cette console d'arcade mais vous pouvez facilement la trouver et l'acheter en France, ce qui, depuis le Brexit, est plus facile que de l'acheter en Angleterre.

Il y a même une version incluant le Raspberry Pi 4b avec 8gb de RAM et une carte Micro SD de 32Gb.

Une carte Micro SD performante ...

Matériel obligatoire pour des projets avancés

Il faut ensuite une carte micro SD qui servira à stocker le système et les programmes nécessaire pour lancer les jeux. Une capacité de 64Gb est largement suffisante. C'est même large, 32Gb me semble suffisant. Cependant cette carte doit être fiable et rapide car elle hébergera le système et les jeux et devra lire et écrire de nombreuses données. Dans le cas où vous choisiriez d'avoir une borne d'arcade avec son écran intégré et non une console branchée sur votre télé, il sera sans doute nécessaire d'avoir une carte Micro SD d'une capacité plus importante pour stocker plus de jeux avec leur copie d'écran et vidéo de présentation. Car l'alimentation du Raspberry Pi ne peut pas à la fois alimenter le Raspberry, un écran et un disque dur externe. D'autant plus que j'ai rajouté des boutons lumineux qui consomme aussi un peu ce qui n'arrange pas les choses.

... ou une carte Micro SD de grande capacité ...

Matériel nécessaire si l'on souhaite accéder à un nombre de jeux importants à partir d'une borne d'arcade.

Si vous choisissez de construire une borne d'arcade qui est une solution "Tout en un", le système, les jeux, les images et les vidéos devront être stockés sur la même carte Micro SD. C'est alors votre porte-monnaie qui déterminera sa taille maximale et donc le nombre de jeux auxquels vous pourrez accéder. Avec ce projet, il sera potentiellement possible d'accéder à plus de 30.000 jeux. Oui, oui, j'ai bien écrit trente mille. Et je crois même que c'est plus. Mais accéder à la totalité des jeux nécessite un espace de stockage de près de 3To ! Bon, on parle quand même de plus de 30.000 jeux. Comme il n'existe pas de carte Micro SD de 3To, vous devrez faire des choix. Sachant qu'un espace de stockage plus important permet de stocker plus de jeux mais veut aussi dire qu’il est plus cher. Pour ma borne d'arcade j'ai fait un compromis à 512Go. Une telle capacité permet déjà d'accéder à plusieurs milliers de jeux.

... ou encore un disque externe de très grande capacité ...

Matériel nécessaire si l'on souhaite accéder à tous les jeux. Mais il ne peut être utilisé que si vous construisez une console d'arcade connectée à une télé et non une borne d'arcade qui dispose de son propre écran.

Si vous choisissez de construire une console d'arcade à la place d'une borne d'arcade en la branchant sur votre télé, vous aurez suffisamment de puissance avec l'alimentation standard du Raspberry pour connecter une unité de stockage externe en plus de la carte Micro SD puisque l'alimentation n'aura pas à alimenter l'écran. Cette option supprime la contrainte liée à la limitation de l'espace de stockage des cartes Micro SD. Quant au type d'unité de stockage, bien que les disques SSD soient plus chers que les disques durs standards, ils sont beaucoup plus fiables et performants. Ils sont de plus totalement silencieux. Cependant, il n'est pas nécessaire d'acheter le nec plus ultra du SSD. Dans notre cas d'usage, le disque SSD sera principalement utilisé en lecture. Pour ma console d'arcade, j'ai choisi un disque SSD de 4To de chez Samsung mais de type QVO et non EVO dont la technologie est moins performante mais aussi moins chère. Mais dites-vous quand même que sans unité de stockage externe, vous aurez déjà accès à des centaines de jeux d'arcade avec une carte micro SD de 64Go. Il faut aussi savoir que le Raspberry n'est pas une fusée et que par conséquent tous les jeux installables ne pourront pas s'exécuter dessus. Mais pour les jeux d'arcade des années 80, 90, il n'y aura aucun problème et une carte SD de 64Go sera amplement suffisante.

Cette option nécessite quand même d'acquérir une carte Micro SD qui servira à démarrer la console mais elle ne stockera que le système et pas les jeux. Tous les jeux et les médias qui vont avec seront stockés sur le disque externe.

... avec son boitier de connexion.

Matériel nécessaire si l'on souhaite utiliser un disque externe.

Dans le cas où vous avez choisi d'utiliser une unité de stockage externe, il vous faudra la placer dans un boitier pour pouvoir à la fois la protéger et la connecter à votre Raspberry. Il est nécessaire de prendre un boitier avec un câble de connexion USB-3 car le Raspberry ne propose pas de connecteur USB-C à part pour son alimentation. Cependant un boitier avec une sortie USB-C et un câble USB-C vers USB-3 est pour moi la solution la mieux adaptée car elle est non seulement compatible avec le Raspberry mais également avec un ordinateur disposant d'entrées USB-C.

La cerise sur le gâteau.

Ces boutons lumineux programmables sont conçus pour fonctionner avec la borne d'arcade Picade ou sa version console.

Vous pouvez, une fois votre projet de borne d'arcade ou de console d'arcade terminé, l'améliorer en remplaçant leurs boutons de base par des boutons lumineux entièrement programmables. Le résultat est un peu Bling Bling mais c'est super joli quand on joue dans la pénombre. On peut créer des enchainements de couleurs comme on le souhaite. Mais cette amélioration est un plus qui n'est absolument pas obligatoire. La solution de base fonctionne déjà parfaitement bien et ces boutons lumineux n'apporteront aucune amélioration de fonctionnement de la borne d'arcade... C'est juste joli à voir et du plus bel effet.

Plus d'information

Le lien que je fournis vous permet d'avoir plus d'information sur ce produit mais vous pouvez facilement le trouver et l'acheter en France, ce qui, depuis le Brexit, est plus facile que de l'acheter en Angleterre.

Les applications qu'il faut installer et configurer

La plupart des applications nécessaires au bon fonctionnement de la borne d'arcade s'installent et se configurent à partir de script Unix que j'ai rédigé en Bash. Ils font souvent appel à la commande Unix whiptail. Cette commande affiche des boîtes de dialogue et permet de prendre des décisions qui peuvent être ensuite interprétés dans les scripts Unix. Il s'agit de la même commande qu'utilise le script Bash raspi-config qui sert à configurer le Raspberry Pi.

Ces mêmes scripts font aussi appel à des fonctions que j'ai également rédigées en Bash dans des fichiers séparées. Cela permet de les inclure plus facilement dans les scripts d'installation et de configuration de la borne d'arcade.

Tous ces outils et fonctions que j'utilise dans mes scripts Bash sont décrits dans mon blog sur Bash. Tous les scripts qui permettent d'installer, de configurer et de faire fonctionner la borne d'arcade sont également décrits dans ce même blog. Je les ai aussi regroupés dans mon Repository Git rpi4mame d'où vous pourrez les télécharger ou les cloner dans votre système.