Je travaille sur mon propre émulateur pour le CPC, en mettant l’accent sur les outils de développement, et j’ai décidé de le partager ici, au cas où il pourrait être utile à d’autres personnes
Je ne vais pas écrire un gros pavé, mais pour faire simple :
écrit en C/WASM, donc il fonctionne dans un navigateur
également encapsulé dans Electron, ce qui le rend disponible sous forme d’application autonome (pour Windows et Linux)
conçu pour réussir la plupart des tests Shaker de Longshot, pour plus de précision
prend en charge les CPC 464, 664, 6128, 464 Plus, 6128 Plus et GX4000
convertisseur d’images, éditeur de sprites, éditeur de polices et éditeur de palettes intégrés
débogueur avec beam tracer, points d’arrêt (breakpoints), points d’arrêt d’E/S, ainsi que des points d’arrêt conditionnels
un profileur avec une carte thermique de la mémoire (memory heatmap)
un générateur de cartouches
un éditeur d’assembleur intégré qui affiche le nombre de NOP pris par une instruction
un éditeur BASIC intégré pour extraire ou réinjecter facilement du code
un éditeur de disquettes intégré (fichiers ou secteurs hexadécimaux)
C’est un ensemble d’outils vraiment super regroupés dans un IDE, facilement accessible de partout. C’est impressionnant ce qu’on peut faire dans un navigateur de nos jours. En tant qu’utilisateur de WinAPE, j’ai pu retrouver facilement la plupart des fonctionnalités que j’utilise souvent.
Pour tester, en plus des programmes de test fournis, j’ai aussi utilisé ma petite pré-démo « circles » pour voir si l’émulation du CRTC fonctionnait comme prévu. Et c’est le cas ! Il y a juste un petit détail : en bas de l’écran, les quatre dernières lignes de pixels ne s’affichent pas comme elles le devraient. Il semble que l’image soit décalée vers le haut de ces quatre lignes de pixels. Je ne peux pas tester sur le matériel d’origine, mais les autres émulateurs ne présentent pas cet effet. La démo configure exactement 272 lignes de pixels et ne s’occupe pas des 40 lignes restantes. La zone visible semble un peu décalée d’une manière ou d’une autre. Sur le vrai matériel, le cadre du moniteur masque peut-être cela.
Impressionnant travail, félicitations ! Si tu pouvais juste ajouter des ascenseurs sur la fenêtre du débogueur, ce serait parfait.
Le filtre TV rend particulièrement bien et correspond vraiment à ce que j’avais à l’époque
Petite question : sur quel CRTC as-tu eu ce problème ? Je vois que c’est complètement cassé pour le CRTC 3, bien plus que simplement quelques lignes de pixels Je commence par m’occuper de ça.
Ouais, j’ai remarqué moi aussi un petit bug avec les images en overscan. Ça affiche quelques lignes supplémentaires en bas.
Cette image fait 192x272. Je joins le code source si ça peut aider. Ça a l’air de toucher tous les types de CRTC.
J’ai corrigé le problème avec le CRTC 3 qui affichait une image complètement cassée.
J’ai réussi à reproduire le problème avec vos lignes manquantes, ça ressemble fort à un problème de timing classique Je regarde ça de près, je tiens peut-être une piste…
Ok, les 4 lignes ont disparu, ta carte s’affiche désormais parfaitement Merci beaucoup pour tes retours et tes sources, c’est vraiment apprécié <3
Émulateur web mis à jour, et v1.1 standalone recompilée (je travaille encore sur un vrai processus de CI/CD et de release en ce moment, donc je fais ça un peu à l’arrache )
Maintenant, je me remets au travail sur la branche CRTC 2, parce que j’ai remarqué un truc bien tordu
Ton problème devrait avoir disparu avec la version publiée (web et autonome). Dis-moi si tu remarques quoi que ce soit d’étrange, et merci infiniment pour toutes les infos et la démo que tu as fournies !