Date : 23/10/2005

Les émulateurs

par Benoît

C'est quoi encore ces bidules ?

Un émulateur est un programme qui va recréer de façon logicielle les composants matériels d'un système informatique.

Drôle d'idée me direz-vous. Je ne peux vous contredire sur ce point, l'idée est originale mais des plus intéressantes à certains niveaux.

En fait l'émulateur va faire croire au système d'exploitation d'une machine A qu'il est bien sur du matériel de type A alors qu'il n'est qu'un programme exécuté dans un système B.

Que peut-on émuler ?

Un peu de tout. Ceci va des vieux micro-ordinateurs, des consoles de jeu, des PDAs, téléphones, calculatrices, ou même les ordinateurs actuels ; j'ai même déjà vu des émulateurs de petit jeu électronique ou de tamagotchis.

Ce qui nous intéresse le plus est l'émulation de consoles de jeu et des vieux micros qui constituent la majeure partie du domaine de l'émulation, mais également la plus aboutie.

"J'ai jamais utilisé d'émulateur moi !"

Pas si sûr :-) Il y a des émulateurs utilisés par le grand public dans les nouvelles technologies (sans forcément que ce public ne le sache). Donnons quelques exemples :

Théorie de base sur les ordinateurs et consoles de jeux.

Les consoles de jeu ont l'intérêt (contrairement aux micro-ordinateurs actuels) de toujours posséder le même matériel sur une même version, ce qui arrange bien les choses et éviter d'emuler 25 modèles différents de matériel pour chaque console. Il en est de même pour les vieux micro-ordinateurs (ceux des années 80) et des calculatrices. Pour les systèmes plus complexes (émulation de micro-ordinateur moderne), il a été pris pour matériel émulé des composants standards et très communs, très vite reconnus par le plupart des OS installables.

Pour démarrer, le système utilise un programme stocké dans une petite puce électronique du système. Ce petit programme s'appelle la Rom, Parfois la Rom ne constitue qu'une amorce pour lancer un autre système plus évolué (cas des PCs et Macs actuels), parfois ils contiennent à eux seuls tout le système sur lequel reposeront les programmes.

Pour les consoles de jeux l'émulateur remplace souvent (la Playstation ne fait pas partie de cette catégorie par exemple) directement la Rom qu'il n'est alors pas nécessaire d'obtenir autre part. La plupart des autres systèmes vont avoir besoin d'une Rom qu'il faudra obtenir. Seuls les émulateurs de PC (x86) peuvent fournir directement la Rom, qui dans le cas des PCs correspond au BIOS.

Obtenir la ROM

C'est là tout le problème. Les Rom ne sont pas libres de droit, c'est-à-dire que vous ne pouvez pas les trouver légalement au coin d'une page. Pour avoir le droit d'avoir un fichier contenant la Rom, il faut en posséder une licence, et donc avoir à disposition le composant électronique qui contient une Rom du même numéro (avec l'ensemble du système autour bien sûr). Pour un certain nombre de système (les vieux Mac et les Palm notamment), l'auteur du logiciel d'émulation vous fournit un utilitaire pour pouvoir récupérer la Rom directement à partir de la puce en passant par l'ordinateur qui la contient (il me semble inutile de préciser que celui-ci doit être alors en état de fonctionnement).

Il est parfois nécessaire d'avoir un système d'exploitation pour le système émulé (émuler un PC ou un Mac sans OS me semble d'intérêt limité). Pour ce qui est de Linux, vous trouverez des versions pour à peu près tous les systèmes en cherchant un peu sur le Net. Pour ce qui peut être de Windows et de Mac Os, il vaut mieux pour des questions de légalité se rendre à la Fnac et acheter l'OS là-bas (rien ne vous empêche de faire de même pour une version de Linux si vous voulez).

Programmes, jeux, disque dur et disquette

Bon, c'est bien beau de lancer un système sur un émulateur, mais si c'est juste pour faire joli, c'est limité comme usage.

Oui, d'un autre coté certains émulateurs relèvent tellement du bricolage qu'on cherche à y mettre un système juste pour l'exercice de style, mais bon, nous allons tout de même aborder la fonction qui nous intéresse : faire tourner un programme qui ne pourrait normalement pas tourner sur notre ordinateur.

Tout d'abord une petite définition : une image disque est la copie intégrale dans un fichier d'un média (une disquette, un CD-ROM, un disque Dur). Il est possible de créer des images disque "vides" qui feront comme si elles avaient été la copie de médias vides. Ceci a l'intérêt de pouvoir créer une image de disque dur à la taille voulue, sans pour autant devoir avoir un disque dur d'une telle taille disponible (les utilitaires pour créer ce type d'image vide sont soit disponibles sur le net, soit fournis avec l'émulateur, soit disponible en tant que fonction de l'émulateur.)

Nous préférerons toujours donner des images disques à manger à un émulateur plutôt que de vrais médias (même si l'émulateur le propose).

Vient maintenant le problème des cartouches de jeux, système utilisé pour les consoles de jeu portable (dont la PSP vient faire exception) et les vieilles consoles fixes. En fait ces cartouches ne contiennent que (tout simplement) des puces mémoires contenant le programme. Des "Dump" (copie de ces mémoires dans un fichier informatique) de ces cartouches sont faits par des bricoleurs et ils les rendent disponibles sur le net. Le problème de la légalité de la disponibilité de ce type de truc se pose bien entendu. Vous n'avez donc le droit de posséder une ROM (et oui ça porte le même nom) que si vous avez le jeu original (pour la console à laquelle correspond la ROM).

Après on fait rentrer les ROMs (de système et de jeu) dans les bons trous, de même pour les images disque, on suit bien les explications pour l'installation fournies par l'éditeur et on joue.

Pour terminer

Rentrer en détail dans l'utilisation de chaque émulateur me prendrait plusieurs heures à taper et prendrait l'équivalent d'un article par émulateur. LOPR n'étant pas un site sur l'émulation ce n'est donc pas son but.

Pour finir donc, je vous fournis une liste de quelques systèmes émulés et des émulateurs existants pour de tels systèmes.

WinSTon est par exemple un émulateur Atari ST de bonne qualité, bien qu'il ne soit plus développé actuellement. Stew, son dérivé a une bonne réputation de son côté. Pour les autres vieux ordinateurs je dois avouer mon ignorance, mais en général ils sont bien émulés.

Emulateur WinSTon
Les Lemmings émulés dans WinSTon

Pour ce qui est des consoles portables de vieille génération (Game Boy Classique/Color, Game gear, …) l'émulation en est tout aussi bonne. L'émulateur se choisira en fonction des fonctionnalités particulières qu'il proposera (simulation de la connexion multi-console sur le même ordinateur ou par internet par exemple) et du type d'ordinateur sur lequel vous voulez le faire tourner (il en existe de nombreux pour PDA notamment, ce qui permet de garder l'intérêt de sa mobilité).

Emulateur gameboy
Zelda émulé dans GBG

En parlant de PDA, POSE (Palm OS Emulator) émule les vieux Palm (< Version 5) ; il nécessite une ROM Palm que l'émulateur peut lui même extraire de la machine. Pour les plus récents, Palm Sim fait la même chose mais sans besoin de ROM annexe. Ces deux émulateurs sont fournis par Palm Source. Pour ne pas faire de jaloux, Microsoft fournit avec les kits de développement des émulateurs de machines correspondantes (Windows CE, Pocket PC, Windows mobile, Smartphone) mais ça ne tourne que sous windows.

Et Windows on peut l'émuler ? Oui WINE est un pseudo-émulateur Windows pour Linux (et autre Unix), les performances en sont moyennes mais il peut dépanner. Pseudo-émulateur car il s'agit en fait d'une ré-implémentation libre des API Windows. Une autre méthode est d'utiliser un émulateur de PC qui lui simulera l'ensemble de l'ordinateur : nous trouvons dans ce domaine Bochs et Qemu (sans son module KQemu).

Il existe des programmes de virtualisation comme VMWare, VirtualPC, VirtualBox ou encore Parallels. Ce sont des programmes de virtualisation et non des émulateurs car ils ne simulent pas logiciellement le microprocesseur, mais lui envoient directement les instructions. C'est pour cela que ces systèmes ne simulent que le type de machine sur lequel ils s'exécutent. Les versions MacOS de virtual PC sont eux des émulateurs.

Emulateur VMWare
Windows XP émulé dans VMWare

Pour le Mac justement , il faut différencier les vieux des récents (dû à un changement de type de CPU). Basillisc II fait une bonne émulation des vieux mac, pour les plus récents PearPC sera là pour vous, bien que n'offrant pas une émulation parfaite. Pour les futurs Mac, ceux-ci allant avoir une structure similaire aux PC nous passerons sur une structure similaire.

Pour terminer sur le moderne passons aux consoles de jeux. La Nintendo 64 semble bien s'en tirer à ce niveau. La PSone bien qu'émulée donne des résultats plus aléatoires, une meilleur prise en charge des jeux ayant été un sucès. L'émulation n'en est pas mauvaise mais montre tout de même rapidement ses limites.

Pour les consoles de nouvelle génération on en vient à la conclusion que tout ne peut pas être émulé.

Les émulateurs Dreamcast ne peuvent à la rigueur lancer qu'un ou deux jeux commerciaux soigneusement sélectionnés. Pour ce qui est de la PS2, l'émulation est possible à quelques bugs près mais une bonne machine s'avère nécessaire. La XboX elle est encore en dessous, seul Halo (dans sa version US) peut à peu près tourner, mais ceci tient plus d'un bricolage sur le jeu qu'autre chose.

Voila qui termine cet article (j'ai pas été inspiré pour la phrase de fin).

<< Article précédent      Article suivant >>

↑      Page d'accueil

Notre site accueille 591 membres qui ont posté pas moins de 4624 messages dans 396 topics : - )
Notre dernier membre inscrit est mike sorenzo.
Aucun membre connecté.
Jumper :
Sauf mention contraire, les articles sont sous licence by-nc-sa. Les images appartiennent à leurs propriétaires respectifs.