Ma chaine de compilation Amstrad CPC

Développement de BriXen: épisode 1

Introduction

Jusqu’il y a un peu de 6 mois, je n’avais jamais développé sur Amstrad CPC (mis à part en Basic il y a… plus de 30 ans). Lorsque Pascal Visa a lancé la CPC Gamedev Contest 2020 dans le groupe Facebook Amstrad CPC pour toujours and beyond !, je me suis dis que c’était l’occasion d’enfin m’y mettre. Le développement de mon émulateur CrocoDS m’a beaucoup appris sur les possibilités de notre ordinateur préféré.

Il restait donc à savoir comment programmer sur un Amstrad en 2020. Pas question évidemment de développer directement sur l’Amstrad mais plutôt de s’aider des outils modernes.

Comme beaucoup de développeurs actuellement, je suis passé sous Visual Studio Code,  l’éditeur de code multi plateforme et extensible développé par Microsoft.

Lorsque j’ai commencé à developper pour l’Amstrad CPC, il était donc évident que je puisse utiliser cette éditeur.

Mon langage de prédiléction étant depuis toujours le C pour sa simplicité et du fait qu’il soit un langage de très bas niveau. Je comptais donc developper en ce langage (avec évidemment l’ajout de code assembleurs pour les routines ayant besoin de plus d’optimisation).

Comment donc mélanger tout cela ?

Les outils

J’ai essayé divers environnements de developpement tels que CPCtelera, cpc-dev-tool-chain mais aucun ne m’a satisfait à 100%.

Ils m’auront au moins permis de me donner des idées sur plusieurs de mes futures outils. Ces outils auront leurs prochains articles détaillés à l’avenir.

  • SDCC comme compilateur C (et asm dans un premier temps). J’avais commencé avec Z88DK mais le codé généré par ce compilateur étaient beaucoup moins optimisé que celui de SDCC.
  • cpcrslib comme librairie de fonctions assembleur.
  • Arkos Tracker 2 pour la musique
  • Visual studio code (déjà évoqué auparavant)
  • Docker (je ne voulais pas devoir reinstaller un environnement de développement chaque fois que je change de machine)
  • Retro Virtual Machine comme émulateur multi-plateforme. J’ai mon propre émulateur (que j’utilise aussi au niveau developpement pour certaines de ces fonctionnalités) mais RVM va beaucoup plus loin au niveau debug.
  • Divers outils tels que convimgcpc, RGAS, iDSK…

Tout cela m’a permis de faire un template qui sera disponible sur GitHub dans les jours qui viennent qui me permet:

  • Via la commande SHIFT-CMD-B de faire un build de mes sources,
  • Via la commande SHIFT-CMD-R d’executer l’application directement dans Retro Virtual Machine.

A suivre pour l’épisode 2 très bientôt…

Laisser un commentaire