L’émulation contient beaucoup d’outils différents afin de permettre d’émuler des jeux vidéos, ou faire du retrogaming. Ici, nous parlerons surtout de l’émulation et non des sources ports ou de ce qui touchent aux consoles originelles.
Le but de cet article est de faire le tour de plusieurs outils qui peuvent être utilisés pour émuler, et les différents apports des approches. Il ne s’agit pas de tutoriel en soi sur comment les utiliser, mais plus d’une première approche pour faire son choix.
Les émulateurs
Le premier outil, et le plus évident et utilisé sont les émulateurs, qui peuvent être installés sur PC et smartphone. Les émulateurs utilisent les fichiers ROMs (pour les consoles à cartouche) ou ISOs (pour les consoles CD) des jeux afin de pouvoir les émuler. Ces fichiers contiennent des dump du contenu du CD/DVD/etc pour l’ISOs ou de la mémoire morte (ROM = Read-Only Memory) de la cartouche, c'est-à-dire donc les données du jeu.
Dans ce genre de cas, il y a deux choix possibles :
- Utiliser des émulateurs spécifiques à la machine (par exemple Dolphin pour l’émulation Gamecube/Wii)
- Utiliser des méta-émulateur qui pourront gérer pas mal de machine différente (tel que par exemple Retroarch, ou Highscore pour la plateforme GNOME)
Chaque approche à ses avantages et ses désavantages. La première fait qu’on installe plus de logiciel et à moins cet aspect “tout-en-un”, mais offrira souvent de meilleures performances sur certaines machines critique, se passant d’intermédiaire (je pense par exemple à l’émulation gamecube avec Dolphin justement).
Pour ma part, ce que je fais souvent est que j’utilise Retroarch pour tous les cas simple (console retro et 2D), mais j’ai aussi un Dolphin ou un CEMU pour les plateformes plus complexe et récente à émuler.
Retroarch contient à l’intérieur une interface pour charger des cœurs (qui sont les émulateurs à proprement parler). Pour les vieilles machines, celui que vous utiliserez n'aura pas trop d’importance si ce n’est les fonctionnalités plus avancées (genre utiliser du widescreen, etc). À noter que RetroArch est capable de lire les CD PS1, Saturn, MegaCD, et de quelques autres consoles rétro.
Pour choisir des émulateurs, il peut être intéressant de consulter le Emulation General Wiki et de chercher la machine qui vous intéresse.
Les bios
Si les émulateurs sont techniquement légaux, certains ont besoin des fichiers contenant le logiciel de la machine, nommé le BIOS. Souvent, cela sera indiqué en lançant l’émulateur, ou sur la page “Emulator files” de l’emulation wiki, qui indiquera même quand et avec quels émulateurs ils sont optionnels ou non.
Les reproductions de machine
Pour rejouer à des jeux retro, un autre moyen est évidemment les reproductions de machines. Cette méthode coute de l’argent, mais peut permettre d’obtenir de meilleurs résultats. On peut les diviser en trois types, deux étant différent surtout sur le plan technique :
- Premièrement, ce sont les fameuses “consoles mini”, qui ne lisent souvent pas les jeux originels, et qui contiennent une liste de jeux prédéfinis. Si les jeux que vous cherchez sont dans la liste, elles peuvent être un choix acceptable, suivant la qualité du produit fini, surtout que les jeux présents dedans ne sont pas toujours à des prix resonnable sur le marché de l’occasion. Cependant, vous aurez moins de flexibilité qu’avec d’autres consoles
- Ensuite, on retrouve celles qui peuvent lire des jeux originels et/ou des ROMs, qui peuvent se diviser en deux types.
- Celles utilisant de l’émulation, dont la Retron5 ou la plus récente polymega. Ces consoles souvent pourront émuler plusieurs plateformes, mais auront des limites en terme de fidelité, pouvant causer des bugs sur certains jeux.
- Celles utilisant des puces reprogrammables (FGPA) pour simuler véritablement le hardware de la machine de l’époque. Le plus célèbre fabricant de ces consoles est Analogue qui construit des consoles qui sont réputées pour leur qualité… et leur prix.
C’est un choix qui peut être plus accessible sur le plan technique, mais beaucoup moins en terme financier et/ou d’espace. À titre personnel, je trouve ces projets intéressants, mais le prix des consoles Analogue me rebute un peu (même si je ne nie pas leur qualité).
Les machines d’émulation
Une autre possibilité qui peut exister est de vouloir acheter des machines spécialement pour émuler. Une grande partie de cela existe sous forme de console portable plus ou moins dédiées à l’émulation, que l’on peut diviser en deux grands types :
- Tout d’abord, il y a les machines se basant sur des processeurs mobiles (ARM), qui sont souvent moins cher mais moins puissants
- Il y a aussi les fameuses “console PC”, tel que la Steam Deck, l'Aya Neo, etc. Elles sont plus chères, mais offrent de meilleures performances.
Une partie de celles ARM ne sont pas complètement légales, cela dit, étant souvent vendues avec des jeux pré-intégré (il est possible de les acheter sans parfois). Elles sont souvent optimisées pour l’émulation, avec des systèmes d’exploitation custom intégrant des émulateurs open-source. Les choix les plus célèbres sont Ambernic, Powkiddy et Retroid.
Ces différentes machines peuvent être sous trois types de systèmes d’exploitation possible.
- Des systèmes basés sur Linux, souvent avec l’interface EmulationStation qui offre une UX plus agréable et console-like. Ces consoles ont ma préférence, de par la richesse des systèmes qu’il existe, notamment ceux communautaires, et de certains projets de portage de jeu comme Portmasters qui existent dessus.
- Des systèmes basés sur Android, qui souvent offriront des performances un peu meilleurs sur certains émulateurs optimisés pour Android, et du coup la compatibilité avec les jeux Android, ce qui offre un peu plus de jeux possibles dessus, surtout les jeux Android compatible manette. L’UX est parfois un peu moindre, passant par l’interface tactile
- Des systèmes basés sur Windows, qui sont les moins qualitatifs niveau UX, je trouve, mais offrent la grande compatibilité de Windows niveau jeux, émulateur, etc.
Les OS customs
Les systèmes d’exploitations par défaut sur ces consoles sont souvent imparfaites, et il est du coup parfois possible de les remplacer (parfois avec un simple swap de carte SD). Parmi les plus célèbres, on peut retrouver :
Pour les installer, il suffit généralement de les graver sur une carte SD (avec des outils comme GNOME Disks ou Belena Etcher), et de les utiliser dans l’appareil.
Construire sa machine
Cependant, il n’est pas nécessaire forcément d’acheter une console dédiée pour avoir une machine dédiée à l’émulation, puisqu’il est possible d’en construire une. Les deux principales manières d’en construire sont à partir d’un PC, et/ou d’un micro-ordinateur à la Raspberry Pi, et d’y ajouter un système d’exploitation dédié.
Avec un PC, ce qui comptera le plus sera le processeur, souvent plus que la carte graphique parce que beaucoup d’émulateurs auront des bottleneck sur les processeurs. Il est même possible d’utiliser des PC d'entreprises ou des mini-PC. Mais cela dépendra beaucoup de ce qu’on veut émuler. Pour savoir quel mini-pc choisir, la chaine Retro Game Corp produit de bon comparatif.
Du côté des Raspberry Pi, on aura souvent moins de performance qu’un PC, mais une machine plus légère niveau consommation énergétique. Il est meilleur dans ce genre de cas d’acheter en plus du raspberry pi un boitier (si possible avec refroidissement actif). À noter que certains OS vous permettent d’overclock le RaspberryPi, afin d’avoir de meilleures performances. Faites-le uniquement si vous avez un boitier avec refroidissement actif, parce que cela fera chauffer plus le Pi !
Dans ces deux cas, voici deux systèmes qui je pense sont parmi les meilleurs à utiliser pour ces cas de figure :
- Lakka est un système minimaliste, dédié uniquement à l’émulation via retroarch. Il a l’aventage d’être léger et clef en main pour pas mal d’usage.
- Batocera est un système contenant pas mal de feature, et ne se limitant pas à Retroarch. Il contient pas mal d’émulateur et de portage, ce qui fait sa puissance.
Les deux ont des tutoriels afin de pouvoir les installer plus facilement, depuis leur site officiel.