Fin de l’année dernière, j’avais repris contact avec Lazycow, créateur de jeux-vidéo indépendants avec lequel j’ai travaillé ces dernières années au projet Powerglove sur Commodore 64 et Amiga 500. Il se lançait dans un nouveau défi, la réalisation d’un jeu destiné à la console NES de Nintendo. Une mission plus complexe puisque jusqu’ici je maitrisais assez bien les caractérises sonores des machines de Commodore, là où je devais un peu plus apprendre de ce que la première console à renommé mondiale de Big N était capable. Cette dernière dispose de 5 canaux sonores contre 3 pour le Commodore 64.
Cependant là où il est possible de définir à chaque fréquence ce que l’on veut utiliser comme modulateur d’ondes sur le Commodore, la NES fonctionne avec des générateurs fixes. 2 ondes de type ‘Pulse’ qui produisent des sons “Chiptunes” très spécifiques, un générateur d’ondes Triangle efficaces pour des séquences de basses et enfin un générateur de bruits plutôt orienté à la création des percussions ou effets spéciaux. Un 5° canal dit DPCM permet par exemple d’utiliser des samples, mais dans notre projet je n’y avais pas accès. Je pense que ce dernier pouvait être utilisé via des compétences plus poussées des cartouches. Bref, de nos jours pour composer des musiques pour la NES, l’outil le mieux adapté est donc FamiTracker un outil dans l’esprit des SoundTrackers que j’ai l’habitude d’utiliser depuis près de 25 ans.
Mon premier essai était plutôt concluant avec une séquence à l’ambiance “dans les tuyaux” un peu groovy. Cependant j’allais vite être confronté à une série de limitation technique à prendre en compte que l’outil FamiTracker, lui ne s’impose pas. Des limitations propres aux outils de développement sur NES.
– Les notes doivent être comprises entre C-1 et D-6 mais je peux utiliser le Note Cut – Seules les enveloppes de Volume, Arpeggio, and Pitch sequences ont supportés – Tous les instruments doivent avoir une enveloppe de volume assignée – Je peux créer un loop dans ma séquence, mais pas une fin de loop. – 64 instruments max – La colonne de Volume n’est pas supportée (Ce qui implique au besoin de créer des instruments à l’enveloppe de volume différente) – Le Tempo est initialisé par la variable globale, mais on pourrait le faire varier avec la commande Fxx (1..21) – On ne peut pas utiliser la commande Bxx pour faire un LOOP sans intro, la commande n’accepte pas de cibler un pattern suivant – D00 peut être utiliser pour couper un patterns prématurément – Seul les effets listés peuvent être utilisé – On peut créer jusqu’à 17 SubTune qui partagent les mêmes instruments et données.
Bref, avec ce thème j’ai de quoi mettre en place une identité pour le futur Wolfing Zero avec son petit personnage féminin qui a la capacité de se transformer en loup. Graphiquement, cela semble se diriger dans un graphisme à la Castlevania, titre de Konami bien connu de la NES. Mais j’ai encore quelques mélodies à ajouter à mon projet. Sans vouloir trop être influencé en allant écouter à nouveaux des musiques de jeux sur NES, j’ai tout de même des références de comment les choses devraient sonner : Castlevania ‘Vampire Killer’ , Tortue Ninja ‘Overworld’ , Final Fantasy ‘Battle Theme’ , Legend of Zelda ‘Overworld’ , Contra/Probotector ‘Jungle’ ,…
Et sinon pour les bruitages du jeu ?
Le concept est similaires, un deuxième fichier FamiTracker qui sera décomposé en “Subtune” pour chaque effet. A l’inverse des restrictions imposées pour créer les musiques, on peut ici utiliser la palette d’effet spéciaux de FamiTracker. Il faudra cependant couper toutes les canaux et insérer un C00 à la fin de chaque SubTune. Pensez cependant à utiliser des instruments à un volume élevé pour bien se démarquer des musiques en cours de jeu.
Tags : Commodore 64, Cyborg Jeff, Legend of Zelda, Lazycow, développement, Final Fantasy, NES, Powerglove