Concevoir une console de jeux vidéo retro avec un Raspberry PI !

Par:
ftonic

mar, 14/08/2018 - 08:19

Dossier d'Aurélie Vache (Cloud Developer & DevOps chez Continental, Duchess France & Toulouse Data Science Leader, organisatrice du DevFest Toulouse) @aurelievache

Depuis l’année dernière j’ai eu envie de rejouer aux jeux vidéos de mon enfance. J’adore la Nintendo NES et j’ai eu l’agréable surprise de l’avoir à mon anniversaire. Jouer à Super Mario World, The Legend of Zelda, Donkey Kong ... quel régal ! :-)

Note : cet article a été publié initialement dans Programmez! 196. Les distributions ont évolué mais le fonctionnement reste identique. L'article a été légèrement réédité pour sa publication en ligne. Enjoy !

Note 2 : les distributions de retrogaming fonctionnent avec d'autres cartes que les Pi mais les supports ne sont toujours stables et officiels. N'hésitez pas à tester des cartes plus puissantes (Asus Thinker Board, ODROID)

Mon mari est dans le même esprit et aimerait bien re-jouer aux jeux de son enfance sur la Super Nintendo et la Nintendo 64, au minimum.

Problème, on ne va pas racheter toutes les consoles Nintendo et Sega pour pouvoir jouer à quelques jeux vidéos. Le budget à avoir serait conséquent, le rerogaming étant à la mode depuis quelques années, acheter une console avec 2 manettes revient entre 70 et 100€, il faut à cela ajouter entre 10 et 20€ par jeux et je ne vous parle pas du prix d’un Zelda qui peut monter jusqu'à 100€ en version boite…

En ce moment je m’intéresse aux objets connectés, je me suis donc renseigné sur les Arduino et les Raspberry et du coup j’ai eu l’idée de monter ma propre console de jeux vidéo retro avec un petit objet qui fait beaucoup parler de lui : le Raspberry PI et sa version 2 modèle B embarquant un processeur d’1Ghz et 4 ports USB.

Quelques semaines après mon achat du PI 2 la version 3 est sortie, mais tout ce que vous verrez dans cet article sera valable avec la version 3 du Raspberry.

Le matériel

Histoire de bien commencer, mon choix s’est porté sur un starter kit acheté chez “The Pi Hut” :

Pour 55-60 € (frais de port inclus) le kit comprend :

-      Un Raspberry Pi 2

-      Une microSD de classe 10 de 8Go (avec NOOBS pré-installé)

-      Une alimentation 5V 2A au format européen

-      Un boitier noir pour protéger le Raspberry (ce sera plus joli pour la console rétro)

-      Un câble HDMI

-      Un câble Ethernet (RJ45)

Ce kit est disponible avec une Pi 3.  

A cela il va falloir rajouter quelques manettes USB pour pouvoir avoir la même sensation de jeux qu’avec nos vieilles consoles. J’ai fait le choix de commander, dans un premier temps, des USB controller reproduisant les manettes de la Super Nintendo. Si tout fonctionne bien je commanderai des manettes USB Nintendo 64 également.

Si vous partez sur la distribution RetroPie, il faut également un clavier USB qu’il faudra brancher pour installer l’OS et dans tous les cas, une souris en USB.

Si vous voulez une configuration optimale pour jouer aux anciens jeux vidéo, il faut savoir que la PI communiquera avec vos jeux via la carte microSD, donc plus cette dernière a une capacité de stockage élevée et plus vous pourrez y mettre des jeux. Je conseille donc minimum d’avoir une 16Go, et une carte de classe 10 minimum (pour que la communication entre la Pi et la carte soit optimale). Pour ma part j’ai acheté, en plus du kit de base, une micro SD de 32Go de classe 10.

Le logiciel

En faisant le tour des distributions et des solutions qui existaient, je suis tombée sur plusieurs noms qui revenaient sans cesse : RetroPie et RecalBox.J’ai décidé d’en faire un comparatif pour que vous ayez toutes les informations avant de vous lancer.

Si vous voulez bidouiller, optimiser votre configuration, alors RetroPie sera faites pour vous, vous pouvez tout contrôler de bout en bout.RecalBox est vraiment prête à l’emploi. Vous installez, suivez les installations et c’est déjà l’heure de jouer ! Cette distribution intègre Kodi, un media center.

Les systèmes supportés

Que ce soit via RetroPie ou la RecalBox, voici la liste des systèmes supportés (à l’heure où j’écris cet article) : Arcade, Arcade Classics, Nes, FDS (Family Computer Disk System), Super Nintendo,     Master System, Playstation, Megadrive, Game Boy, Game Boy Color, Game Boy Advance, Atari 7800, Atari 2600, PC Engine, Sega SG1000, MSX, Nintendo 64, Sega 23x / CD, Vectrex, Game Gear, Lynx, NeoGeo, etc. 

NDLR : rajoutons à cette liste les Amstrad CPC, l’Atari ST et surtout l’Amiga 500/600 (support récent sur RecalBox) !

L’installation

Après avoir effectué un comparatif de ces 2 OS, je choisie de partir sur la RecalBox.

Pourquoi ? Pour sa simplicité, sa rapidité d’installation, ses mises à jour fréquente, sa compatibilité et sa communauté.

Rendez-vous surhttps://github.com/digitalLumberjack/recalbox-os/releasespour télécharger la dernière version de la distribution (actuellement il s’agit de la version 4.0.0-beta2). 

Vous pouvez installer recalboxOS sur une carte formatée en FAT32. Utilisez pour cela le logiciel de formatage “SD Formatter” disponible à l'adresse :

https://www.sdcard.org/downloads/formatter_4/

pour Windows et macOS, ou gparted sous Linux. Ces logiciels sont vraiment optimisés pour les cartes SD donc il est conseillé de les utiliser à la place du logiciel de base de votre système d’exploitation.

Décompressez le fichier recalboxOS*.zip et copiez tous les fichiers à la base de votre carte SD.

Il faut maintenant insérer la micro SD dans le Raspberry, brancher votre souris, brancher le HDMI et le relier à votre TV, puis en dernier brancher l'alimentation.

Votre Raspberry démarre, charge le programme d'installation et lance automatiquement la copie des fichiers. 

Vous pouvez changer la langue, qui est l’anglais par défaut, via votre souris ou la toucheLde votre clavier si vous en avez relié un.

Lorsque l’installation est terminée, vous aurez un écran d’accueil avec une jolie musique de Zelda. Ca y est, votre Recalbox est prête à être utilisée. Pour ma part la langue était encore en anglais donc je l’ai changé via un réglage de la langue accessible via le menu.

Si vous naviguez de console en console et que vous n’apercevez pas la MegaDrive par exemple, pas de panique, l’émulateur est bien configuré mais pour qu’une console apparaisse il faut qu’il y ait au moins un jeu (une rom) dans le répertoire correspondant sur la RecalBox.

La configuration

RecalBox possède un fichier de configuration, vous allez être amené à modifier ce dernier, il se trouve ici :/recalbox/share/system/recalbox.conf.

Configurer les manettes

Si vous avez une manette USB, branchez-la et appuyez sur le bouton START ce qui fera apparaître une fenêtre Configure Input. Il vous suffit d’appuyer sur un bouton de la manette, de suivre les instructions pour configurer votre manette. Le nom des touches est basé sur les boutons de la Super Nintendo donc cela tombe bien !

Il est conseillé de configurer le bouton Select pour le “Hotkey” car ce fameux Hotkey vous permettra en cours de jeu de quitter le jeu par exemple en combo avec le bouton Start.

Si vous avez une manette PS3 et une clé bluetooth, utilisez un câble mini USB pour relier la manette à la recalbox. Patientez quelques secondes pendant que les leds clignotent lentement. Débranchez la manette et appuyez sur le bouton HOME. Votre manette est configurée !

Contrôles 

Dans l’interface :

Voici les commandes :

A → Sélectionner

B → Retour

Y → Favoris

X → Démarrer Kodi

Start → Menu

Select → Options (sur l'écran système, ouvre le menu de redémarrage)

R → Page Suivante

L → Page Précédente

Dans un jeu :

Lorsque vous êtes en plein jeu, des commandes spéciales sont disponibles. Appuyez en même temps sur le bouton Hotkey et sur un des boutons suivants :

 Y→  Sauvegarder l'état dans le slot sélectionné

X →  Charger l'état dans le slot sélectionné

START →  Quitter (très utile !)

B →  Menu

UP →  Sélectionner le Slot de sauvegarde -1

DOWN →  Sélectionner le Slot de sauvegarde +1

L1 →  Screenshot

RIGHT→  Accélérer le jeu

LEFT →  Rembobinage (si l'option est activée)

R2 →  Shader suivant

L2 →  Shader précédent

Et les jeux dans tout ça ?

Quelques jeux sont installés par défaut mais si vous voulez jouer aux jeux retros de votre enfance il faut que vous vous procurez les ROMs.

Pour pouvoir les copier de votre ordinateur à votre Raspberry, il faut tout d’abord que cette dernière soit connectée à internet/à votre réseau donc branchez un câble ethernet et redémarrez la, ou bien branchez un dongle Wi-Fi (la PI3 en as déjà un).

Appuyez sur la touche START pour afficher le menu de RecalBox puis naviguez vers “Options réseau”. Vous pourrez voir si la Raspberry est connectée ou pas et connaître son adresse IP.

Si vous devez configurer le Wi-Fi, saisissez le SSID et la clé de votre réseau wifi avec un clavier. Une fois les informations validées, le wifi sera activé et la Pi sera connectée.

Si vous ne pouvez pas entrer certains caractères nécessaires à vos informations réseau,  configurez alors votre accès wifi directement dans le fichierrecalbox.conf.

Une fois la RecalBox connectée, celle-ci partage automatiquement des dossiers sur le réseau local. Sur votre ordinateur, tapez l’IP de la RecalBox dans la barre d'adresse de l’explorateur (exemple : \\192.168.1.30), ça y est vous pouvez accéder aux fichiers de votre console retro et copier vos ROMs dans le répertoire correspondant à l’émulateur/la console d’origine.

Pour mettre à jour la liste des jeux il vous suffit d’aller dans le Menu, puis Options Des Jeuxpuis Mettre A jour les listes des jeux.

Optimiser/Configurer votre RecalBox

Pour pouvoir jouer de manière optimale à vos jeux rétro préférés quelques tips sont utiles à connaitre.

Super Nintendo : Vous voulez jouer à Bomberman ou Micro Machines a 4 joueurs et cela ne fonctionne pas ? Pas de panique, il y a une petite manipulation pour ça.

Il suffit de modifier le fichier recalbox.conf pour remplacer l'émulateur SNES par snes9x_next

# ------------ I - EMULATORS CHOICES ----------- #
## You can override the global configuration here
snes.core=snes9x_next

Enregistrer puis redémarrer proprement la box.

Il faut maintenant lancer un jeu, Super Nintendo puis ouvrer le menu Retroarch avec le bouton Hotkey et le bouton B et modifier les paramètres suivants :

Setting / Configuration / Save Configuration On Exit : ON
Setting / Input / User 2 Device Type / Multitap
Quick menu / Restart Content

Vous pouvez remettre Save Configuration On Exitsur OFFaprès avoir redémarré le jeu.

Game Boy

Vous voulez à 2 joueurs à certains jeux GB ? Pas de soucis :

Modifiez le fichierrecalbox.confpour remplacer l'émulateur Game Boy (et Game Boy couleur) par tgbdual :

 # ------------ I - EMULATORS CHOICES ----------- #

## You can override the global configuration here
gb.core = tgbdual ;GameBoy
gb.ratio=custom
gbc.core = tgbdual ;GameBoyColor
gbc.ratio=custom

Enregistrez puis redémarrez votre Recalbox.

Lancez un jeu GameBoy, ouvrez le menu Retroarch avec le bouton Hotkey et le bouton B puis changez les paramètres suivants :

Setting / Configuration / Save Configuration On Exit : ON
Quick menu / Core Options / GB Link Enable (restart) : enabled
Quick menu / Core Options / Screen placement (restart) : horizontal
Quick menu / Core Options / Switch player screens : normal ; joueur 1 à gauche et joueur 2 à droite
Quick menu / Core Options / Show player screens : both players
Settings / Video / Aspect Ratio Index : 20:9 (1:1 PAR) ; 100% conforme ratio GB
Quick menu / Restart Content

Vous pouvez remettre Save Configuration On Exitsur OFF après avoir redémarré le jeu.

Attention les jeux mono-joueurs vont aussi êtres doublés. Pas super pratique, donc vous pouvez configurer le multi-joueur pour l’emulateur gb et mono joueur sur gbc ou inversement.

Nintendo 64 : J’avais lu qu’il fallait obligatoirement overclocker la “console” pour pouvoir jouer aux jeux Nintendo 64. Après en avoir testé plusieurs, je peux vous dire qu’il n’y a pas de soucis sur Mario Kart 64 par exemple mais il y a des ralentissements sur Goldeneye et Super Mario 64.

Soit vous êtes un Jedi et souhaitez overclocker vous-même votre Pi, pour cela je vous conseille le tuto de Hayden : http://haydenjames.io/raspberry-pi-2-overclock/.

Soit vous voulez vous laisser guider par la RecalBox, aller dans le Menu, dans les Options système et vous pourrez overclocker votre Pi simplement. Lors de la sélection du changement de la fréquence, la RecalBox redémarrera. Pour pouvoir jouer tranquillement j’ai overclocké jusqu'à 1050 Mhz (900Mhz par défaut).

Kodi : Si au lieu de démarrer sur la console de jeu retro vous voulez que votre Pi lance par défaut le media center, c’est possible.

Encore une fois, il suffit de modifier recalbox.conf(ligne 10)

#Show or hide kodi in emulationstation

enable_kodi=1

#Start kodi at launch

kodi_at_start=1

Une utilisation de plus à rajouter au Raspberry Pi qui nous permet de rejouer aux jeux de notre enfance. A quelques semaines j’aurais pu avoir une RecalBox tournant sur une Pi3 mais ce n’est pas grave je ne suis tout de même pas déçue de mon achat.

Commentaires

Pour info retropie propose egalement Kodi et même d émuler la Dreamcast et la Saturne :) 

Ne fonctionnerait pas sur le dernier raspberry 3B+

Bravo !! Excellent article très complet et clair :) Je file m'équiper. Question : PS va un jour être ajouté à la liste ? merci