Aller au menu - Aller au contenu

Icône L'émulation console

Mise à jour : 17/10/2011
Difficulté : Difficile Difficile Durée d'étude : 20 jours Creative Commons BY-NC-SA
632 visites depuis 7 jours, classé 181/786
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 ? :lol:

Ce tutoriel est alors fait pour vous. Un émulateur, en général, permet 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 allons donc voir quelques généralités sur l'émulation avant d'entrer dans le vif du sujet.
Ce cours est composé des parties suivantes :
Vous voilà fin prêts pour vous aventurer dans le monde de l'émulation console.
Ce tutoriel, loin d'être exhaustif, ne représente qu'un aperçu de ce vaste domaine. Après cette initiation, vous êtes en mesure de programmer des émulateurs bien plus complexes du point de vue architectural sans problème.

Comment programmer un émulateur ?

Vous devez me dire sans hésiter qu'il suffit de :
  • trouver les caractéristiques de la machine ;
  • traduire le tout dans le langage de programmation de votre choix.

Mais j'insiste : pour réaliser un émulateur Sony Next Generation Portable (NGP) ou Nintendo 3DS (ou même PS3 ou XBOX 360 pour les plus téméraires :lol: ), il faudra creuser un peu plus.

Deux ou trois autres TP verront bientôt le jour. Ce sera l'occasion pour vous d'apprendre des notions plus avancées et de passer en mode couleur.

Partager

20 commentaires pour "L'émulation console"
Note moyenne : 3.89 / 4 (27 votes)
Pseudo Commentaire
Hors ligne Nek' # Posté le 13/11/2011 à 10:26:20
LPL FTW
Avatar

Ville : Reims
Pays : France métropolitaine
Études : IUT Reims-Châlons-Charleville

Franchement c'est super intéressant, bien joué !

J'ai une petite question quand même, est-ce que tu comptes finir par présenter la virtualisation ? C'est dans le thème et je trouve que ça serait super intéressant. À la limite si tu connais des gens compétents, fait toi aider.

Ma foi je dis ça à tout hasard, je n'y connais rien et suis bien content de pouvoir lire un tuto pareil !

Rejoignez nous sur le chat #siteduzero
J'aide ceux qui codent leurs scripts eux même, inutile de me demander de coder pour vous.
Liens utiles (ou pas): Mon wiki (Symfony2) | JqueryForm | Mon site | Minecraft
 
Hors ligne BestCoder # Posté le 17/11/2011 à 17:11:03
Best Coder
Avatar

Avis : Très bon

Études : ESIGELEC

Merci Nek'!

Si c'est de cette virtualisation dont tu parles (==> ici <==), je n'ai pas assez de pratique dans le domaine (je ne connais que la théorie). Si quelqu'un veut se dévouer pour m'aider, ce ne serait pas de refus.
 
Hors ligne Sekigo Le Magnifique # Posté le 22/11/2011 à 16:55:16
Avatar

Bonjour.

Merci pour le cours. J'ai essayé d'appliquer le contenu sous Python, avec ncurses et/ou pygame.

Finalement, mon code n'a plus grand chose à voir (sauf les fonctions "essentielles") avec le code origiel présenté ici, et il bug pas mal sur certains trucs, mais je suis assez fier du résultat. Ce qui m’intéressait surtout, c'était de m’entraîner sur Python, le résultat n'a pas trop d'importance pour moi sur ce "projet". Et sur ce point, c'est réussi, j'ai appris pas mal de petits trucs.

Donc, un juste retour des choses, voilà le lien pour les sources :
Chipy8 sur Google-Code
Hors ligne demonixis # Posté le 22/11/2011 à 21:17:07
Avatar

Avis : Très bon
Flux RSS

Ville : Lyon
Pays : France métropolitaine

Salut,

Je vais regarder tes sources pour voir comment tu a implémenté l'émulateur. Perso j'ai 2 projets basé sur le Chip8
- SharpChip-8 : C# avec OpenTK, j'ai aussi ajouté tout un tas d'outils (débogueur, désassembleur, pad virtuel, etc...)
- Jeepy8 une version totalement expérimentale en Java ou je fais des tests sur le langage et sur différentes approches d'émulation.

Pour ma part le code ne ressemble pas à celui du tuto car je me suis basé sur d'autres documents et j'ai consulté les sources d'autres émulateurs.

En tout cas comme je l'ai déjà dit ailleurs un grand merci à BestCoder. D'ailleurs est ce que quelqu'un a des doc sur le Super Chip-8 et mega Chip-8 ? j'ai commencé l'implémentation dans mon premier émulateur.



 
Hors ligne BestCoder # Posté le 10/12/2011 à 18:54:21
Best Coder
Avatar

Avis : Très bon

Études : ESIGELEC

Félicitation à vous deux !

Pour des docs sur la superchip 8 et mégachip 8, voici un bon point de départ ICI (en anglais).
 

Voir tous les commentaires