Émulation

Restez toujours informé : suivez-nous sur Google (☆)

Introduction

En informatique, l'émulation consiste à substituer un élément de matériel informatique – tel un terminal informatique, un ordinateur ou une console de jeux – par un logiciel.

La définition du terme émuler est « chercher à imiter ». Il faut voir dans l'émulation une imitation du comportement physique d'un matériel par un logiciel, et ne pas la confondre avec la simulation, laquelle vise à imiter un modèle abstrait. L'émulateur reproduit le comportement d'un modèle dont toutes les variables sont connues, alors que le simulateur tente de reproduire un modèle mais en devant extrapoler une partie des variables qui lui sont inconnues (exemple : la simulation du comportement d'un trou noir). Le recours à un émulateur, selon le contexte, permet de faciliter le développement ou le débogage d'un système ou de remplacer un système obsolète ou inutilisable par un autre. Dans ce cadre, il est possible de faire fonctionner le nouveau système, l'émulateur, de la même manière que le système imité.

Applications

Emulation de DOS par Cygwin.

On peut discerner plusieurs applications principales.

Émulateur de terminal

L'émulation de terminal informatique est particulièrement courante. En effet, les terminaux physiques sont devenus rares, mais le mode d'interaction est resté. Ainsi on utilise un émulateur de terminal comme xterm pour émuler une console VT100.

Émulation d'ordinateur

Pour une imitation logicielle d'un ordinateur, on stocke le contenu des périphériques de stockage (disque durs…) dans des fichiers images (reflets) des périphériques d'origine. Ces fichiers images peuvent être à taille fixe ( qui ne grandira pas) ou à taille dynamique ( qui grandira au fur et à mesure où l'on y stocke des données dans la limite de la taille du disque dur physique sur lequel ce fichier image se trouve) Parfois, ces émulateurs d'ordinateurs utilisent certains lecteurs physiques comme les lecteurs de CD rom ce qui permet d'utiliser directement les supports de stockage sans être obligé de transférer leurs données dans des fichiers images qui prennent de la place sur le disque dur.

Émulation en conception électronique

Dans le domaine de l'électronique de l'informatique embarquée, le terme émulateur désigne un dispositif matériel (électronique) qui permet de faire du développement et du débogage. Dans ce cadre, et afin de marquer la différence, on parle de simulateur pour un logiciel qui émule le comportement d'un microprocesseur.

L'émulateur remplace physiquement le microprocesseur (ou le microcontrôleur) à l'aide d'une sonde (connecteur dont le Brochage est compatible avec ce dernier). L'électronique pilotée de l'émulateur remplace ainsi (idéalement strictement à l'identique) le microprocesseur d'un point de vue électrique et numérique. La sonde est interfacée (généralement via une carte périphérique spécifique) avec un ordinateur de développement pour permettre à l'ingénieur de contrôler et d'observer le fonctionnement du microprocesseur émulé.

On parle d'émulateur temps-réel lorsque celui-ci respecte les contraintes temporelles du microprocesseur (cycles d'écriture, temps de réponse…).

Ce type de matériel est très coûteux en comparaison du circuit émulé, coût lié au développement complexe d'un tel dispositif et, au fait qu'il ne fait pas l'objet d'une utilisation massive : l'émulateur est utilisé dans le développement, le microprocesseur/microcontrôleur est utilisé pour la production (de masse). De plus, il n'existe généralement des émulateurs que pour les «petits» microcontrôleurs (8 bits). Pour les autres, il est plus fréquent de voir ce que l'on appelle un « in circuit emulator » (ICE) : l'émulateur est alors intégré au microprocesseur lui-même et est connecté à l'ordinateur de développement via une interface plus simple (comme le célèbre JTAG).

Émulation de jeu

Les extractions des jeux de consoles, sous forme de fichier, sont couramment appelés ROM. L'extension des fichiers ainsi que les renseignements concernant le jeu sont généralement indiqué dans le nom du fichier. Il s'agit d'une nomenclature particulière qui s'est imposé d'elle-même afin d'apporter des précisions utiles et importantes à la ROM et ainsi d'en faciliter son partage avec d'autre utilisateur. Ces codes, devenus standards, sont régit par le GoodXXXX Exemple de nom de ROM:

Arkanoid (Bung) (PD) [C] .GBC

Nom du JeuCodeurVersion (état)Type d'affichageExtension de fichier
ArkanoidBungPD = domaine publiqueC = Jeu en Couleur.gbc = pour Nintendo® Gameboy COLOR®
Version (état)[!]=Bon Dump, (Good Dump)Vérifié, conformes au support d'origine, parfaite, à choisir !
[a]=Alternative, jeux réalisées pour réparer des bugs ou pour éliminer les codes Game Genies
[b]=mal Dumpé(Bad Dump), mal sauvegardée pour être convertie en fichier ROM.
[f]=Réparée(Fixed), modifié , afin de mieux fonctionner sur l'émulateur.
[h]=rom Hackée(Hacked), son Header a été modifié ou Multi-régions, contient parfois scènes modifiés ou ajoutées. Illégale si le jeu n'est pas du domaine publique.
[o]=SurDumpé(Over Dump), elle contient plus de données que la cartouche originale mais le jeu n'est pas modifié.
[M#]=Multi-language(Multi-language), le symbole"#" indique le nombre de langues
[###]=Checksum
[ZZZ]=Non Classifiée
[p]=Pirate, ROM illégale, diffusion et utilisation interdite, respectez le droit sur la propriété intellectuelle
[t]=ROM d'entrainnement(Trained), le trainer, code spécial exécuté au début du jeu, permet d'accéder au tips (astuces).
[T]=ROM traduite(Traduced), Rom traduite, d'une langue vers une autre.
[x]=Mauvais checksum, une erreur c'est glissée dans le fichier ROM sauvegardée, ce qui cause parfois des plantages ou la rend inutilisable.
[??k]=Taille ROM (exprimé en octet, kilo-octet et en Méga-octet, le trainer, code spécial exécuté au début du jeu, permet d'accéder au tips (astuces).
[Unl]=Unlicensed (sans licence), ROM à réalisé sans la licence officielle du jeu, présente sur la cartouche d'origine. c'est le cas de nombreux jeux de console NES.
[-]=Version de ROM inconnue.
Extension de fichier*.GB=Jeu pour Nintendo® Gameboy®
*.GBC=Jeu pour Nintendo® Gameboy COLOR® (couleur)
*.GBA=Jeu pour Nintendo® Gameboy ADVANCE® (couleur, dernière génération)
*.NDS=Jeu pour Nintendo DS®
LangueE=Anglais
J=Japonais
EU=Principales langues européennes(Anglais, Français, Allemand, Espagnol, Italien)

Émulation de consoles de jeux

Dans ce contexte les systèmes de stockage de la console sont appelés des ROM, car dans les consoles de jeux (d'arcades ou autres) les programmes de jeux étaient effectivement stockés dans des mémoires mortes (soit sur la carte mère, soit dans des cartouches enfichables). Pour les machines utilisant comme support le CD-ROM ou le DVD, on utilise généralement le terme ISO.

Il est également possible d'émuler une console de jeu sur une autre console de jeu, par exemple, un émulateur qui permet de jouer aux jeux NES (Nintendo Entertainment System) sur une Playstation.

Émulation de systèmes d'arcade

Certains programmeurs se sont spécialisés dans l'émulation des systèmes inclus dans les bornes d'arcade (ces meubles de jeux-vidéo que l'on trouve souvent dans les bars).
Ce secteur est dominé par un projet célèbre et vivant nommé MAME, très structuré autour d'une équipe de développeurs réguliers et efficaces.

Popularisation de l'émulation

Les émulateurs étant devenus très populaires au milieu des années 1990, une très grande communauté de fans et de programmeurs s'est formée sur l'Internet, ce qui a popularisé plusieurs sites webs dédiés à l'émulation. Les artéfacts de cette 'culture de l'émulation' commencent à faire l'objet d'un effort de conservation. Le site web EmuWiki.com, l'encyclopédie de l'émulation a pour vocation de recenser l'ensemble des émulateurs ayant existé (toutes plateformes confondues) ainsi que leur historique respective, leur programmeur, et plus particulièrement vise à promouvoir la conservation des artéfacts de la culture de l'émulation de ses débuts à aujourd'hui. Le site détaille largement les différentes versions distribuées pour chaque émulateur ainsi que le contenu de chaque mise à jour. (par exemple, la révision complète de l'histoire de Final Burn ou de Basilisk II )