Depuis le début de la reprise de ce projet en juin 2018, j'utilise un excellent outil manageDSK de Ludovic Deplanque. Il me permet d'extraire le contenu de disquettes virtuelles et de le modifier.

Sans cet outil, la reprise du projet aurait été fortement compromise. L'outil dispose d'une interface graphique facilitant ces manipulations et après un court apprentissage, on finit par en maîtriser tout les aspects. Le plus difficile a été de trouver comment récupérer les fichiers basic sous un format exploitable (ascii). En effet, lorsqu'un fichier basic est sauvegardé par défaut sur l'amstrad, il est en quelque sorte pré-digéré pour en rendre l'interprétation plus rapide. Sur l'amstrad ça reste transparent, et on peut continuer à éditer son source comme si de rien n'était. Mais par contre, lorsque l'on transfère ce fichier "pré-digéré" sur windows, le source est alors illisible. Heureusement l'outil manageDSK a une parade, et permet de retraduire ce source "pré-digéré" en un fichier ascii parfaitement exploitable sous windows.

Par contre, on constate rapidement 2 petits bugs :

  • Le premier, est qu'il supprime la dernière ligne du programme d'un fichier basic, si celle-ci ne se termine pas par un retour chariot. C'est embêtant, mais une fois qu'on le sait, on peut faire en sorte de contourner le problème.
  • Le second est plus contraignant, en fait tout les caractères accentués àéèê et surtout ù disparaissent lors de l'import de fichiers sur la disquette virtuelle.

Ce second problème implique donc à chaque import d'un fichier basic, de modifier le source directement sur l'émulateur.

Je m'étais habitué à cela, car tout au long du projet, j'ai principalement travaillé directement sur émulateur. Les rares fois, où je me suis servi d'un éditeur sous windows, pour des corrections massives, j'ai fait alors attention à ce détail !

A présent, que le projet est en bonne voie d'être fini, je dois prévoir un script pour construire des disquettes à partir des sources basic et des fichiers binaires du projet. Cela peut paraître surprenant, surtout à la fin du projet, mais il y a 2 raisons à celà :

  • Les dernières modifications que je souhaite faire supposent de beaucoup modifier la répartition des fichiers, en effet, je passe le jeu de 2 faces de disquettes à 4 !
  • J'ai pour objectif de mettre ce jeu en open source et par conséquent faire un script de build est un passage obligé.

Du coup, j'utilise toujours manageDsk qui peut aussi fonctionner en ligne de commande, mais malheureusement le bug sur les caractères accentués reste. Or j'utilise des RSX qui commencent par le caractère ù et donc la disparition de ce caractère entraine des syntax error au démarrage du jeu ! Mes nouvelles disquettes virtuelles nécessitent donc une correction manuelle, ce qui ruine une bonne partie de l'intérêt de faire un script de build.

Je vois 3 pistes pour résoudre cela :

  • Attendre une correction de l'outil manageDsk (je ne saurais pas la faire moi-même !)
  • Trouver un autre outil qui n'aurait pas ce problème.
  • Trouver un moyen de remplacer les appels RSX, par des call

La première solution me laisse du coup quasiment bloqué dans l'attente d'une hypothétique correction. Je me doute que ça doit être un problème complexe étant donné la diversité des jeux de caractères à gérer dans tout les cas.

La seconde solution, que j'ai bien sur déjà tenté sans succès, tout les outils que j'ai pu trouver sont orientés transfert de fichier binaires. A dire vrai, le transfert de fichiers binaires c'est le plus simple, puisqu'on ne touche à rien ! Ça fonctionne donc bien pour les fichiers compilés de l'assembleur, les images, les sons, mais pas pour les fichiers basic (hormis peut-être pour leur forme pré-digérée).

La troisième solution n'est pas vraiment bonne de toutes façons. Certes, l'absence du caractère ù est critique puisqu'elle entraîne une erreur de syntaxe au lancement, mais au delà de ça, j'utilise dans le title screen et dans les remerciements à la fin, des caractères accentués et ça m'embêterait de les supprimer.

Bref, pour le moment, ma seule solution est de me contenter d'un build qui ne fait tout son travail et de corriger mes sources manuellement sous émulateur.

Bon en tout cas, ça ne remet pas en cause, toute la gratitude que j'ai pour l'auteur de ce logiciel sans qui rien n'aurait été possible, et en plus il est aussi l'auteur du logiciel me permettant d'intégrer des samples, et aussi l'auteur de convimgcpc, qui m'a permis de faire le dernier écran manquant du jeu !

Bref, pour conclure, le projet continue d'avancer malgré tout. Je n'ai pas encore de date étant donné que je fais évoluer à la hausse le périmètre de ce que je veux intégrer dans le jeu, au fur et à mesure de mes découvertes.