Col-Tracker, part I

Cette série d’articles parle du « Making of » de Col-Tracker, mon « Sound-Tracker » pour la Colecovision.

Petite précision avant de commencer, je n’ai pas commencé à écrire ces notes quand j’ai commencé le projet (en 2013) mais après une grosse pause de 2 ans où rien n’a bougé.

Je vais donc essentiellement lister les problèmes rencontrés (et j’espère résolus), en espérant que ça me permette de garder la motivation et de finir ce projet plus vite.

Pourquoi un Col-Tracker ?

J’ai fait quelques programmes pour la Colecovision, et si l’API est généralement claire et facile à utiliser, ce n’est pas le cas de tout ce qui touche aux sons et à la musique.

Le BIOS de la console a quelques routines permettant de jouer de la musique, mais composer une vrai musique et surtout l’encoder au format nécessaire reste un vrai challenge.

Il y a deux ans, je suis tombé sur une applet Flash qui jouait plusieurs musiques de jeux Colecovision, et surtout permettait de rentrer des données au format attendu par les routines du BIOS pour tester vos musiques. Ca m’a pas mal aidé à comprendre le fonctionnement, mais je voulais quelque chose de plus… quelque chose comme ce que j’avais sur mon Amiga il y a plus de 20 ans :o).

Flash ColecoVision Player Hifi par Daniel Bienvenu

L’auteur de cette applet (Daniel Bienvenu, une figure bien connue dans la scène Colecovision) a rendu les sources disponibles, et suggérait que quelqu’un de suffisamment motivé transforme l’applet en un vrai éditeur de musique en Flash pour Colecovision.

Je ne connais pas Flash (je n’en avais jamais fait avant) mais j’étais tenté. Plutôt que d’écrire un éditeur en Flash, j’ai préféré utiliser Javascript, et j’ai juste fait quelques modifications à l’applet Flash pour pouvoir la contrôler depuis Javascript.

Cette première étape a été incroyablement simple, et m’a pris environ 3 heures pour :

  • Googler et trouver un compilateur Flash avec une licence libre
  • L’installer
  • Ajouter à l’applet les deux fonctions dont j’avais besoin pour la contrôler (une pour envoyer des données au format BIOS et les jouer, une pour choisir entre PAL et NTSC selon la machine cible)

Après ce succès, j’étais super motivé pour commencer à écrire la partie Javascript de l’éditeur.

La deuxième partie de cette série est disponible ici.