Qu’est-ce que l’émulation ?

    1

Fri Apr 07 2023

Qu’est-ce que l’émulation ?

Introduction

L'émulation de manière générale est le fait de recréer le comportement d’un matériel spécifique (ex : une console de jeu vidéo) en faisant une transcription de son fonctionnement pour exécuter les jeux (ou programmes) développés pour ce matériel, sur un autre type de matériel initialement non compatible (ex : un ordinateur, un smartphone).

emulation

L’émulation va souvent essayer de reproduire au plus proche le comportement original de manière plus ou moins réussie. On peut lors de son utilisation subir des ralentissements si on manque de puissance ou qu’elle nécessite des optimisations mais elle peut aussi améliorer le résultat, par exemple on va pouvoir améliorer la fluidité d’un jeu ou sa qualité graphique pour un rendu plus moderne et agréable.

Cette émulation peut se faire sous deux formes, l’émulation logicielle, et l’émulation matérielle.

L’émulation logicielle

C’est la forme la plus fréquente de l’émulation. Dans ce cas, c'est un programme (un émulateur) qui va être développé, et qui va s’occuper de faire une transcription du comportement du matériel d’origine dans un langage compréhensible par votre ordinateur.

C’est celle-ci que l’on retrouve dans Recalbox, toutes versions confondues, sur tous les supports (Rapsberry Pi, PC, Odroid, etc.).

Recalbox

Mais on peut la retrouver dans d’autres contextes. Si l’on reste dans le milieu du jeu vidéo par exemple, sur le service Nintendo Switch Online qui inclut l’accès à d’anciens jeux, ceux-ci tournent grâce à des émulateurs développés pour la Nintendo Switch. C’est aussi ce qui est utilisé par Sony pour lancer des jeux des anciennes générations (notamment ps1 et ps2) sur leurs consoles plus récentes.

L’émulation matérielle

Cette forme est beaucoup moins répandue car le matériel nécessaire est coûteux, et le travail pour développer un émulateur est plus complexe que de l’émulation logicielle.

Les développeurs s’appuient en général sur des FPGA (Field-Programmable Gate Array, réseau de portes programmables) qui sont des puces contenant un circuit logique programmable, que l’on va programmer pour se comporter exactement comme le matériel d’origine.

FPGA

C’est ce que l’on retrouve dans la carte DE10-Nano (une carte de petite taille comme un Raspberry Pi mais incluant un FPGA) qui est utilisée dans le cadre du système MiSTer FPGA qui sert à faire de l’émulation de consoles.

DE10-Nano

Sur quelle base sont créés les émulateurs

Comme vous l’aurez compris, les émulateurs vont essayer de recréer au mieux le comportement du matériel d’origine. Selon qui le développe, plusieurs sources d’information vont permettre de créer et améliorer ces émulateurs. On va retrouver principalement deux cas.

La documentation de l’architecture originale

On peut s’appuyer, si on a accès à celle-ci, sur la documentation de l’architecture du matériel original. L’inconvénient en général c’est que ces documents sont rarement publics et donc souvent les seuls à pouvoir l’utiliser sont les fabricants du matériel original. C’est cependant le moyen le plus facile de répliquer le comportement original.

C’est ce qui est en général utilisé par les constructeurs comme Nintendo dans leurs émulateurs. Cette affirmation n’est pas en revanche toujours vraie selon les constructeurs, et la documentation qu’il leur reste de l’époque.

Swtich Online

Il arrive parfois que certains de ces documents d’architecture fuitent et se retrouvent sur internet, contre la volonté du constructeur. Les émulateurs accessibles au grand public sur internet, comme ceux présents dans Recalbox, ne s’appuient pas sur ces informations, car il y a un fort risque de rentrer dans l’illégalité à cause du fait que ce soit des documents volés.

Le rétro-engineering

C’est le cas que l’on va rencontrer sur Recalbox et sur tous les émulateurs développés par des individus ou équipes de passionnés, sans l’accord du constructeur du matériel original.

Pour le développement de l’émulateur, les développeurs vont effectuer ce qui s’appelle du retro engineering et vont donc s’appuyer tout simplement sur ce qui est disponible publiquement, principalement le matériel d’origine, et parfois son logiciel (firmware ou bios) qui a pu en être extrait du matériel.

Cela consiste à analyser cela pour en déduire le comportement, à la fois au niveau matériel et logiciel. Cela peut parfois impliquer de démonter entièrement le matériel d’origine, voire occasionnellement pour certaines puces en les détruisant de manière contrôlée afin les observer en détail.

Est-ce légal

Justice

La légalité de l’émulation va dépendre des lois du pays dans lequel vous êtes.

Par exemple, au Japon, les lois sont très protectrices des fabricants de ce point de vue et l’émulation d’anciennes consoles de jeu vidéo est totalement interdite (en dehors de celle proposée par les fabricants), et tous les youtubeurs et streamers Japonais par exemple doivent jouer uniquement sur du matériel original du coup.

Dans beaucoup d’autres pays, comme la France ou les Etats Unis, l’émulation est souvent légale, et l'utilisation de roms va être conditionnée aux différentes lois, ou si le propriétaire des droits d’auteur vous a donné l’autorisation de l’utiliser (parfois moyennement paiement).

Ça va être le cas notamment pour les jeux inclus de base, gratuitement, dans Recalbox, pour lesquels les auteurs nous ont gentillement autorisé à les redistribuer. Vous retrouverez d’ailleurs la liste de ces jeux à cette adresse

Il arrive même parfois que les constructeurs utilisent ce qui a été développé par la communauté en terme d’émulation, c’est le cas de Sony et de sa Playstation mini qui utilise elle-même un émulateur Open source : PCSX ReARMed.

Les Bios

Le bios est un firmware (ou micrologiciel) qui correspond à la partie logicielle chargée sur le matériel et permettant le fonctionnement de la console. Le bios reste en général un logiciel propriétaire du fabricant du matériel et ne peut donc être fourni avec l’émulateur publiquement s’il est nécessaire.

Bios

Certains de ces bios sont accessibles librement, c’est le cas de ceux inclus dans Recalbox, et les autres restent de la donnée privée et ce sera à vous de les extraire du matériel original.

Cependant ils ne sont pas toujours nécessaires au bon fonctionnement des émulateurs, certains développeurs ont réussi, toujours par rétro-ingénierie, à reproduire leur comportement dans le code de l’émulateur.

Les roms, La qualité des roms et les groupes

Une ROM (Read Only Memory) est le programme contenant le jeu auquel on souhaite jouer. Elle est nécessaire pour jouer via un émulateur au jeu. Elle peut soit être extraite du média original (cartouche, disque, etc.), soit être lue directement par l’émulateur, à condition d’avoir l’équipement adéquat.

Pour ceux d’entre vous qui récupérez les roms sur internet, il faut savoir que, selon la méthode d’extraction utilisée, les roms ne sont pas toujours une image parfaite du média original, et donc la qualité de l’émulation peut être impactée voire ne pas fonctionner du tout avec certaines roms de mauvaise qualité. Certaines roms ont d’ailleurs aussi été modifiées par des équipes de dumpers (ceux qui extraient les roms pour les publier) pour y insérer parfois leur signature dans le code voir ajouter une intro supplémentaire au jeu.

Certains groupes de passionnés se sont d’ailleurs donnés pour but de développer des méthodes permettant d’extraire les roms des médias originaux, sans altération du contenu, ceci dans un but d’aider à la conservation de ces vieux jeux, et du patrimoine vidéoludique plus largement, et de les répertorier.

Par exemple, le groupe no-intro s’est lancé dans ce projet entre autres à cause de ces groupes de dumpers qui ajoutaient des intro aux jeux cartouche (d’où le nom du groupe).

Groupes

Vous retrouverez plus d’informations sur ces groupes sur notre wiki à cette adresse.

Qualité de l’émulation

L’émulation d’un système est rarement parfaite car on essaie de reproduire un comportement d’un matériel original sur un matériel complètement différent. Certains émulateurs au fil des années de développement se sont grandement améliorés en qualité pour avoir un rendu extrêmement proche de l’original, notamment pour les émulateurs des consoles datant des générations 16 bits et précédentes.

Cependant, certains matériels étant plus complexes d’un point de vue de leur architecture matérielle, et aussi plus récents, par exemple la Saturn de Sega et la Nintendo 64, le travail pour les développeurs est plus conséquent pour arriver à un résultat proche de l’original.

Ci dessous par exemple à gauche une image issue directement d’une Nintendo 64 et à droite une image de la première version publique de l’émulateur Nintendo 64 pour la Switch, sur le jeu Zelda : Ocarina of time, on voit clairement la différence de traitement sur le brouillard et le rendu de l’eau.

Zelda 64

Les consoles moins connues ou moins populaires sont aussi souvent moins bien émulées car moins de personnes s’y penchent.

Il peut donc parfois être nécessaire d’utiliser différents émulateurs pour une même console selon le jeu auquel vous jouez afin d’avoir une meilleure compatibilité.

L’émulation et Recalbox

Recalbox s’appuie bien sûr sur ces émulateurs pour intégrer les consoles, certains sont d’ailleurs même développés par des membres de notre communauté ou nos développeurs.

Pour intégrer un émulateur (ou core) dans Recalbox, nous nous imposons tout de même quelques règles. Les émulateurs que l’on intègre doivent être Open Source, tout comme Recalbox l’est, et nous n’ajoutons à Recalbox que des consoles dont la vie commerciale est terminée. Enfin n’intègre un émulateur que si ses performances globales sont correctes pour du rétrogaming dans de bonnes conditions.

Pour une même console, vous verrez d’ailleurs souvent apparaître plusieurs cores que nous vous mettons à disposition afin d’augmenter les chances de trouver celui qui fera fonctionner vos jeux préférés au plus près de son fonctionnement sur du matériel original.

Le monde de l'émulation étant en constant développement, Recalbox, au fil de ses versions, a pour mission de tester et de vous proposer les dernières versions des meilleurs émulateurs.

Emulation
Recalbox
User
by kid