CPC Workbench

Salut tout le monde ! :slight_smile:

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 :wink:

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 par ici : https://cpcworkbench.gradew.net

Dites-moi ce que vous en pensez :wink:

12 « J'aime »

Quelques fonctionnalités sympas comme l’affichage des NOP ! :+1:

1 « J'aime »

Merci ! Ouais, c’est un truc dont j’ai toujours eu envie depuis que j’ai commencé à utiliser WinApe pour enfin coder mes propres effets de raster :wink:

Ça a l’air vraiment sympa, mais ça ne lance pas mon jeu GX4000 :

Ronald In The Maze (GX4000) - Games! - CPCWiki

Qui tourne pourtant sur Arnold et Retro Virtual Machine.

Ce serait génial de pouvoir adapter ça ici ! :slight_smile:

Dabzy

1 « J'aime »

Merci pour le retour, je m’en occupe tout de suite ! :smiley:

Tu veux dire que tu n’arrives pas à le démarrer ? Parce qu’il semble fonctionner correctement chez moi :

Je l’ai chargé via Machine>Cartouche

Est-ce que ce ne serait pas le problème sur lequel je suis tombé en essayant de jouer sur cpcec et que j’ai signalé sur Ronald In The Maze (GX4000) - #5 by cpcitor ?

1 « J'aime »

Mmmm… Ça ne voulait pas démarrer… Je vais réessayer ! :slight_smile:

ÉDIT : Bon, ça a tourné… Mais ça n’affiche pas les sprites matériels (Ronald et les ennemis) :slight_smile:

Dabzy

2 « J'aime »

C’est noté, je vais regarder ça !

2 « J'aime »

Oups, effectivement, autant pour moi :smiley: J’ai corrigé le bug, les sprites s’affichent correctement maintenant.

Merci pour cette ROM, elle est géniale pour deux choses :

  • éliminer les bugs
  • ça me donne trop envie d’y jouer :smiley:
3 « J'aime »

Super ! :slight_smile:

Je suis ravi que Ronald ait pu t’aider ! :wink: héhéhé

Dabzy

2 « J'aime »

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.

1 « J'aime »

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 :clap:

1 « J'aime »

Merci pour le retour !
Cette démo est une autre mine d’or pour moi, je m’y mets sans plus attendre :slight_smile:

Merci pour ton retour !

C’est une très bonne remarque pour les barres de défilement, pourquoi n’y ai-je pas pensé… :smiley:

Je viens de les ajouter, tu devrais pouvoir les voir (aussi bien sur le Web qu’en version autonome).

1 « J'aime »

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 :smiley: 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.

MAP.asm (108,6 Ko)

1 « J'aime »

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 :slight_smile: Je regarde ça de près, je tiens peut-être une piste…

2 « J'aime »

Ok, les 4 lignes ont disparu, ta carte s’affiche désormais parfaitement :slight_smile: 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 :stuck_out_tongue:)

Maintenant, je me remets au travail sur la branche CRTC 2, parce que j’ai remarqué un truc bien tordu :smiley:

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 !

1 « J'aime »