Cela fait plus de 2 ans et demi que je me suis mis en tête le projet de créer un émulateur de l’Amstrad CPC, LA machine de mon enfance sur laquelle j’ai passé de longues heures et appris les bases de la programmation. Et je me suis dis que ce serait intéressant de partager les étapes de création d’un émulateur avec les passionnés de ce forum..

Il existe certes de nombreux émulateurs pour cette machine mais il s’agissait surtout pour moi d’un défi intellectuel : créer mon émulateur, un émulateur le plus fidèle possible en partant d’une feuille blanche, juste à partir des docs techniques & des dataSheets des différents composants (et ils sont nombreux sur CPC heureusement). Un truc un peu fou quand même...
Je précise que je n’ai jamais lancé ou installé d’émulateurs de CPC pour ne pas être influencé, ou découragé devant la tâche qui s’annonce car cela reste un chantier de longue haleine et il est très facile de laisser tomber tant les obstacles sont nombreux. Enfin, j’ai pris le parti de ne pas reprendre de code source existant. Tout le code a été créé à partir de zéro, que ce soit l’émulation du processeur (Z80A), du Gâte Array, du CRTC, du AY..Je préfère avoir la maitrise de A à Z de mon code. Je pars du principe que l’on ne comprend bien que ce que l’on développe soit même.
Je précise aussi que je ne suis pas informaticien, juste un amateur averti ayant quelques bases de programmation tout au plus et qu’à l’occasion de ce projet j’ai du parcourir énormément de tutoriels et de forums rien que pour apprendre la base de la programmation dans un environnement Windows... Première étape : créer une fenêtre Windows

Enfin, celui-ci est développé uniquement sur mon temps libre, qui reste (trop) limité.. Il faut donc être patient, très patient...
Après cette longue introduction et quelques centaines (milliers ?) d’heures de recherches, de coding, de tâtonnements, je lance l’émulateur et arrive enfin le jour où..ô miracle.. quelque chose s’affiche à l’écran. Ce n'est pas brillant pour une première mais c'est un grand moment d'émotion que tous les développeurs d'émulateur ont dû connaitre. Les premiers signes de vie d'un émulateur :

Et on se dit que le plus dur est passé, et bien non...C'est tout le contraire. C'est la traque aux tous petits bugs bien coriaces qui commencent. Maintenant commence la longue (et fastidieuse) phase de débogage pour aboutir enfin au fameux écran bleu avec ses lettres d'or indiquant que le CPC a terminé sa phase d'initialisation et est prêt à l'emploi


..mais c'est encore loin d'être fini. Des petits dysfonctionnements apparaissent toujours par-ci, par-là selon les commandes Basic qui sont tapées. La traque aux bugs persiste jusqu'à pouvoir exécuter les premiers programmes en Basic sans erreur...Un bon début mais toujours pas une fin en soi.

A ce jour l'émulateur tourne plutôt bien en usage basique (et Basic). Les timings semblent Ok, les interruptions sont fonctionnelles (on peut même faire clignoter les couleurs

Pour ceux que la partie technique intéresserait, je donnerai par la suite plus de détails sur les étapes de construction de l'émulateur et des outils spécifiques que j'ai dû développer pour en arriver là ...
Wait & see

EDIT 08 / 2021 ___________________
L'émulateur est désormais disponible en téléchargement. Compatible avec Windows 7, 8, 10 et 11 en version 32 ou 64 bits.
Afin de ne pas perdre de temps à chercher le dernier fichier disponible dans les pages qui suivent, vous trouverez toujours en lien ci-dessous la version la plus récente. Amusez vous bien


EDIT 05 /2023
---------
DERNIERE VERSION DISPONIBLE : AMSPIRIT v0.863b en date du 12/05/2023.
12/05/2023 : v0.863b
- Divers petits correctifs sur l’émulation du FDC et CRTC
- Correction d’un bug sur l’émulation du PSG
- Amélioration de la gestion des Roms Additionnelles
- Implémentation d’une commande en ligne
Vous trouverez désormais les dernières versions de Amspirit, ainsi que l'historique des différentes versions, sur le site internet officiel présent à l'adresse suivante :
https://amspirit.amstrad.info/