Emulatore CHIP-8

Introduzione

Il CHIP-8 è una macchina virtuale progettata negli anni '70 da Joseph Weisbecker per la scrittura sui primi microcomputers, come il COSMAC VIP. La macchina non è mai esistita come hardware fisico. I programmi CHIP-8 erano interpretati. Eppure, implementare un emulatore per il CHIP-8 è una esperienza didattica molto utile, in quanto offre una occasione per analizzare il ciclo fetch-decode-execute presente in ogni processore.

L'utilità del CHIP-8 come strumento didattico è la sua semplicità. La macchina infatti ha solamente 35 opcode, le singole istruzioni che può eseguire, 4KB di memoria e uno schermo monocromatico 64x32. Questa semplicità rende il CHIP-8 il progetto "hello world" nel contesto dell'emulazione software.

Il progetto è diviso in varie milestone: all'inizio si procede definendo le strutture dati principali e caricando la ROM in memoria. Successivamente si inizia ad implementare il ciclo di processamento degli opcode, per poi implementare tutta quanta la logica degli opcode. Infine si passa a lavorare al layer di piattaforma che permette di visualizzare ciò che il processore del CHIP-8 calcola a livello grafico e di suono.

Struttura del progetto

4 Milestone
~
15 Step