[.NET] Chip8DotNet : Un interpréteur Chip-8

Il y à quelques temps, je me suis intéressé à l’émulation, notamment de console de jeu, afin d’en comprendre le fonctionnement. A force de fouiller dans différentes documentation technique (Gameboy, NES, et autre consoles de mon enfance), j’ai fini par tomber sur quelques documents sur Chip-8.

Qu’est ce que c’est que Chip 8 ?

Chip-8 n’est pas à proprement parlé d’une console de jeu, il s’agit en fait d’un langage interprété, crée au milieu des années 70 afin d’être embarqué dans des micro-ordinateurs tels que le COSMAC VIP ou bien le Telmac 1800. Chip-8 a été développé afin de faciliter entre autre le développement de jeux vidéos tels que Pong sur ces machines.

Le micro-ordinateur Cosmac VIP

L’émulation, comment ça marche ?

L’émulation a pour but essentiellement de recréer virtuellement votre console de jeu ou un quelconque Hardware. Grossièrement, dans le cas de Chip-8, il m’a fallu, à l’aide d’une documentation technique, recréer morceau par morceau une sorte de Cosmac VIP virtuel afin qu’il puisse interpréter le langage Chip-8. Il y a bien entendu différentes façon de faire, qui dépendent essentiellement du hardware à émuler et du jeu ou logiciel à interpréter.

Pour créer mon émulateur, j’ai utilisé une documentation technique, il en existe plusieurs sur internet :

Et plus particulièrement cette page.

Ces documentations techniques sont essentielles pour créer l’émulateur, sans elles, rien n’est possible. En effets elles décrivent précisément comment interpréter chacune des instructions de Chip-8, comment afficher un sprite à l’écran, comment gérer les différents timers, les registres, etc… En gros, ces documentations vont devenir vos meilleures amies tout au long du développement de votre interpréteur.

Chip8DotNet ça ressemble à quoi ?

Chip8DotNet a été codé en utilisant le Framework .NET 2.0 et le langage C#. Il est théoriquement compatible sur la plupart des machines équipé de Windows, ainsi que sous Linux et Mac Os X grâce à Mono.

L’exécutable et le code source sont sous licence MIT et peuvent être téléchargés sur cette page : Chip8DotNet

Fenêtre principale de Chip8DotNet

Fenêtre principale de Chip8DotNet

Fenêtre de debug de Chip8DotNet

Fenêtre de debug de Chip8DotNet

Des mises à jour de prévue ?

Pour l’instant je ne sais pas si je vais retoucher à l’application, mais si cela me prend, je pense corriger quelques problèmes, comme la vitesse excessive, en la rendant paramétrable, régler quelques bugs que j’ai vu surgir en préparant cette note, et peut être même rajouter le support de SCHIP, qui est une extention de Chip-8 développé par un fan du langage dans les anneés 90.

Chip-8 est-il un langage d’avenir ?

Je ne crois pas. Cependant, certains fans ont développés depuis les dernières années de nombreuses applications, démos technique et jeux écris grace au langage, vous pouvez retrouvez de nombreux jeux et démos sur ces deux sites :