Ce tutoriel est une adaptation du tutoriel publié sur le Site du Zéro par @BestCoder. Nous le remercions d’avoir permis cette adaptation.
Vous vous êtes toujours demandé par où commencer pour programmer un émulateur ? Vous voulez mettre en pratique vos connaissances dans un langage de programmation ? Ou vous voulez ramener à la vie votre console des années 70 ? Ce tutoriel est alors fait pour vous. Un émulateur permet généralement de simuler une machine spécifique. Dans notre cas, nous allons copier le fonctionnement d’une console de jeu.
Étant donné l’abondance et la diversité de ces machines, il est utile de préciser que ce tutoriel n’expliquera pas tout ce qu’il faut pour émuler n’importe quelle console, mais il sera surtout un support pour bien débuter dans le passionnant domaine de l’émulation.
Nous verrons donc quelques généralités sur l’émulation avant d’entrer dans le vif du sujet et de coder un petit émulateur. Le langage utilisé dans ce tutoriel est le C (avec la SDL 2) ; il est bien sûr possible d’utiliser un autre langage pour le suivre.
Prérequis
Avoir des bases en représentation des nombres en machines.
Connaître les opérateurs bits à bits (un tutoriel est disponible ici).
Prérequis optionnel
Savoir programmer en langage C (un tutoriel est disponible ici).
Savoir utiliser la SDL 2.
Objectifs
Écrire un petit émulateur et introduire au monde de l’émulation.
Un tour d’horizon
Quelle console émuler
La base
Simulation des instructions
Implémentation des instructions
Aller plus loin
C’est (déjà) la fin de ce tutoriel. Le dernier chapitre donne des pistes pour poursuivre et devenir le meilleur dresseur de consoles ; bonne chance à ceux qui se lancent sur ce chemin. Pour finir, voici une ressource qui pourra aider les téméraires prêts à se lancer dans la folle aventure, on y trouve des explications (et du code) de plusieurs émulateurs dont la Game Boy !
Encore un grand merci à BestCoder qui a permis cette adaptation. Merci également à tous ceux qui ont aidé à son écriture, et bien sûr merci à tous les lecteurs.
N’hésitez pas à partager vos projets d’émulateur ou à poser vos questions sur le forum.