Logo Pierre Techer
Les projetsLe blog
Drapeau français
Drapeau englais
Githubtecherpierre.pro@gmail.com

Emulateur Chip8

Un émulateur chip 8 codé en typescript qui tourne dans le navigateur.

Pong game emulator

🎯 Pourquoi ce projet ?

Ce projet est né de l’envie de relever un défi technique stimulant. Émuler une architecture comme le CHIP-8 demande de comprendre en profondeur son fonctionnement, tout en traduisant ces mécanismes dans un langage typé et structuré. C’est une excellente façon de progresser à la fois en algorithmie, en architecture logicielle et en TypeScript.

🎮 Pourquoi avoir choisi le Chip8 ?

Le CHIP-8 est connu pour sa simplicité, ce qui en fait un bon point de départ pour créer un premier émulateur. C’est une manière concrète d’apprendre le fonctionnement d’un processeur virtuel, les instructions machines et le rendu graphique, sans se perdre dans la complexité d’une vraie console. Ce projet m’a permis de découvrir les bases de l’émulation en profondeur.

🕹️ Quelque détails

C'est quoi le CHIP-8 ?

Le CHIP-8 est un système embarqué utilisé dans les années 70-80 pour des jeux très simples. Pour en savoir plus, il est possible de se référer à la page Wikipédia du CHIP-8.

Architecture utilisés

Pour l'intégration de mon émulateur, j'ai choisi d'utiliser la programmation orientée objet (POO) en TypeScript. La POO m'a permis de séparer les différentes parties de l'émulateur en objets distincts: CPU, affichage, mémoire, etc. Cela m'a aidé à mieux représenter les différents composants à émuler tout en conservant une architecture claire.

đź“™ Notes

  • L'Ă©mulateur CHIP-8 que j'ai rĂ©alisĂ© n'est pas une version fonctionnelle. Quelques bugs persistent et rendent l'utilisation impossible, notamment au niveau des entrĂ©es clavier.

đź”— Quelques liens ?

Pour réaliser ce projet, j'ai dû me plonger dans la documentation du CHIP-8 et des émulateurs en général. Voici quelques liens utiles pour en apprendre davantage et consulter le code source :

  • Un tutoriel sur la rĂ©alisation du Ă©mulateur Chip8 en C
  • Une liste des opcodes du Chip8
  • Le repo Github dut projet