Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Émulateur de Chip-8

Compilation

Pour compiler en débogage :

zig build

Pour compiler en release -Doptimize=ReleaseFast, -Doptimize=ReleaseSmall ou -Doptimize=ReleaseSafe.

La seule dépendance est SDL3. Utiliser le flag -Dsdl_link=statique, -Dsdl_link=dynamique ou -Dsdl_link=global. Global n'est que fonctionnelle sur une machine Linux ayant SDL3 d'installé globalement.

Comment utiliser

Des arguments de ligne de commandes sont disponibles. ./chip8 --help.

Les touches du clavier correspondent à leur position sur le clavier, et non pas à leur caractère correpondant du style de claver.

Les contrôles du clavier sont :

1 2 3 4
Q W E R
A S D F
Z X C V

Espace permet de faire pause à l'émulation.

Entrée permet d'avancer l'exécution d'un « step ». Utile pour le débogage.

Backspace permet de réinitialiser la ROM à son état de départ.

Il est possible de charger des ROMs en glissant-dépossant dans la fenêtre.

Tests fontionnels

  • Les arguments de ligne de commande sont tous fonctionnels.

    1. rom

    2. couleur0

    3. couleur1

    4. seed

    5. fps

    6. cps

    7. vitesse

    8. frequence

    9. onde

  • Appeler le programme avec --help affiche la description des arguments de ligne de commande.

  • La seed est aléatoire à chaque exécution lorsque --seed est null.

  • La fonctionnalité de glisser-déposer une ROM dans la fenêtre est fonctionnel.

  • Redimensionner la fenêtre change la taille d'affichage même lorsque l'émulation est mise sur pause.

Tests de ROM

Les ROMs dans test/ servent de tests.

Les ROMs de tests ont étés prises de :

La documentation de chacun des tests sont dans des les README de ces répos GitHub.

Les ROMs 3-corax+.ch8, 4-flags.ch8, 5-quirks.ch8, 6-keypad.ch8, et test_opcode.ch8 servent de tests unitaires.

Le chargement de la ROM taille_max.ch8 doit fonctionner, même si l'exécution même de la ROM lance une erreur.

Le chargement de la ROM taille_max_plus_1.ch8 doit lancer une erreur.

L'audio peut être testé avec 7-beep.ch8.

La seed peut être testé avec random_number_test.ch8.

About

Émulateur de Chip-8

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages