Jouer un soundtrack sur CPC

Jouer un soundtrack sur CPC

Dans notre série ‘et si on faisait un jeu musical’, nous allons commencer par apprendre a jouer de la musique sur CPC. Ou plus précisément jouer un soundtrack, en l’occurence créé avec Arkos Tracker. Je ne fais que reprendre les explications livrées avec ce tracker, toujours en utilisant RASM comme assembleur. Le but c’est qu’a la fin de ce billet, nous ayons un squelette d’application pour aborder la suite.

Export binaire d’un fichier aks

La première chose a faire, c’est d’exporter un fichier Arkos Tracker en fichier binaire, qui sera lisible par le player fourni avec arkos tracker. Ici c’est Arkos Tracker 1 qui est utilisé pour l’export.

Pour cela, on a besoin de connaitre l’adresse ou l’on souhaite charger la musique dans la mémoire de l’Amstrad. Soyons généreux, attribuons le bloc #4000-#7FFF. Le player sera logé en #8000, notre programme en #a000.

Adresse du player 0x8000
Adresse de la track 0x4000
Adresse du programme 0xA000 (point d'entrée)

Dans Arkos Tracker, apres avoir ouvert le fichier que l’on souhaite exporter, dans le menu export, choisir ‘exporter en binaire’, et indiquer 4000 comme addresse.

Application minimale

Le « squelette » de notre application est  le suivant:

Il manque la définition de quelques macros (Attente synchro écran, récupération état du clavier…), nous allons mettre tout cela dans un fichier à part, toolbox.asm. D’abord quelques définitions, les registres du PPI en particulier:

Ensuite une macro pour désactiver proprement les interruptions:

Il est toujours de bon ton de restaurer les registres miroirs en quittant notre application:

L’attente de synchro écran se fait par la lecture d’un bit du PPI:

Enfin, le plus complexe, la lecture de l’état du clavier, ici on récupére l’état complet. Cela nous sert pour le moment a  quitter l’application, mais a terme, d’autres touches seront utilisables.

Il reste maintenant à compiler le tout, charger le binaire en mémoire, et exécuter avec CALL &A000. La musique devrait se jouer, et l’application quitter en pressant la barre espace.

Références

Formats Audio pour CPC: https://cpcrulez.fr/coding_amslive15-YM.htm

Arkos Tracker: http://www.julien-nevo.com/arkostracker/