Fichiers source des musiques de Martin Galway pour des jeux Commodore 64 des années 1980
(github.com/MartinGalway)- Publication des fichiers source de musiques de jeux Commodore 64 des années 1980, permettant d’examiner directement l’implémentation interne des lecteurs musicaux de l’époque et leur mode de travail
- Les fichiers source peuvent être utilisés pour réassembler, modifier et créer de nouvelles musiques, avec demande de créditer Martin Galway lors de leur utilisation
- La propriété du copyright de la musique et du code de programmation appartient actuellement à Martin Galway ; il n’en était pas propriétaire lors de leur création dans les années 1980 et a ensuite acquis les droits auprès d’Infogrames
- Le lecteur de première génération a été utilisé dans Wizball et repose sur une conception employée de 1984 à la mi-1987, tandis que le lecteur de deuxième génération a été écrit pour Athena puis réutilisé dans Times Of Lore et Insects In Space
- Cela permet d’aller au-delà de la simple écoute de musiques de jeux rétro vers leur analyse et leur réutilisation, afin de comprendre et d’étendre directement les techniques de production de l’époque
Aperçu du projet
- Publication des fichiers source de musiques de jeux Commodore 64 des années 1980 pour pouvoir lire et analyser directement les lecteurs musicaux de l’époque ainsi que leur mode de travail
- Les fichiers source peuvent être utilisés pour réassembler, modifier et créer de nouvelles musiques, avec mention explicite de créditer Martin Galway en tant qu’auteur original
- Actuellement, la propriété du copyright de cette musique et du code de programmation appartient à Martin Galway ; il n’en était pas propriétaire lors de leur création dans les années 1980 et a ensuite acquis les droits auprès d’Infogrames
Distinction entre les générations de lecteurs
- Le lecteur de première génération a été utilisé dans "Wizball" et repose sur une conception employée de 1984 à la mi-1987
- Le lecteur de deuxième génération a été utilisé pour la première fois dans "Athena" et a été écrit pour ce jeu
- Par la suite, le lecteur de deuxième génération a également été utilisé dans des jeux comme Times Of Lore et Insects In Space
Pourquoi c’est important
- Cela permet d’examiner, à partir des sources originales, l’implémentation interne des lecteurs musicaux C64 de l’époque et leur mode de travail réel
- On ne se limite pas à l’écoute : analyse et réutilisation deviennent possibles, ce qui permet de comprendre et d’étendre directement les techniques de création de musiques de jeux rétro
1 commentaires
Commentaires sur Hacker News
Le morceau de Wizball peut être écouté ici
https://deepsid.chordian.net/?file=/MUSICIANS/G/Galway_Martin/Wizball.sid&subtune=4
On peut changer de subtune avec les petites flèches haut/bas
Oui. J’adorais vraiment le morceau de Short Circuit à l’époque, au point d’inspecter le code avec le moniteur de cartouche
pour essayer de l’extraire et de l’intégrer dans mon player shell autonome. Il est même possible que j’y sois arrivé
C’est sympa de pouvoir maintenant vérifier dans la source les adresses et leur signification qu’on devait deviner il y a 40 ans
À noter qu’il est aussi présent dans le
Short_circuit.siddu player lié. MerciGénial. J’ai encore un souvenir très net d’avoir fait ça avec mon père il y a environ 35 ans
Dans ce fichier https://github.com/MartinGalway/C64_music/blob/main/ocean_assembler_directives.txt
DSP désigne probablement displacement. Utilisé avec ORG,
cela semble vouloir dire que, si ORG indique l’emplacement mémoire où le code doit s’exécuter, DSP décale le code plus loin en mémoire
en supposant qu’au moment de l’exécution il sera recopié à l’adresse ORG
DFC semble être la même chose que DFM, mais comme une directive qui produit du PETSCII au lieu de l’ASCII
Vraiment très cool. J’adorais vraiment la musique C64 de Galway quand j’étais gamin, surtout Wizball et Parallax, que j’écoutais souvent
Je me souviens aussi avoir essayé d’écrire moi-même un player en assembleur, mais c’est resté, là aussi, un projet inachevé de plus
C’était vraiment excellent. Pas seulement Galway, d’ailleurs, mais toute la musique de cette époque
Pendant le Covid, à cause d’un concours de circonstances assez absurde, je me suis retrouvé bloqué 2,5 mois dans un autre pays, séparé de ma femme et de mon enfant,
et je me suis retrouvé, par hasard, à séjourner seul dans la maison où j’ai grandi. J’ai ressorti mon vieux C128 du grenier,
regardé quelques vidéos YouTube, l’ai nettoyé, ai nettoyé le lecteur de disquettes et mis un peu d’huile, puis j’ai essayé quelques vieilles disquettes
Commando se chargeait encore, et je laissais la musique de Rob Hubbard sur l’écran d’intro tourner pendant des heures en faisant autre chose
Je n’ai jamais fait moi-même de morceau SID ni de mod-player, mais des voisins avaient créé un Amiga mod player pour Atari ST. Le son était différent et ça consommait pas mal de CPU, mais la lecture 4 canaux fonctionnait bel et bien
Récemment, j’ai aussi repris de vieux fichiers DOS .ASM en les passant à Sonnet 4.6 pour les rendre recompilables,
et après avoir découvert des outils comme UASM, j’ai fini par réussir à les builder
Du coup, je me dis que ces fichiers C64 assembly pourraient peut-être se traiter de la même manière.
On devrait pouvoir demander à un LLM comment les compiler et les lire dans un émulateur,
mais un petit guide, même bref, sur le bon point de départ serait apprécié
Pour mes vieux .ASM DOS, le TL;DR était en gros : « compiler avec UASM gratuit, puis lancer dans DOSBox »
Je me demande si quelqu’un a essayé de porter ça vers Tidal Cycles ou Strudel JS
autrement dit, d’en faire une traduction sous forme de jeu de motifs basé sur de la notation
D’après l’IA, la traduction est difficile mais possible
https://claude.ai/share/65c16d60-5d27-496b-96a7-40959e95ac62
Il y a aussi une traduction IA de certaines notes que Claude présente comme la mélodie principale
https://strudel.cc/#Ci8vIFdpemJhbGwgIklucHV0IE5hbWUiIC0gbWFpbiBtZWxvZHkgKGNoYW5uZWwgMCkKLy8gT3JpZ2luYWw6IE1hcnRpbiBHYWx3YXksIDE5ODcuIE5vdGUgaW5kaWNlcyBmcm9tIEM2NCBTSUQgYXNtCi8vIHRyYW5zbGF0ZWQgYXMgTUlESSA9IGluZGV4ICsgMTIuCgpzZXRjcHMoMTQwLzYwLzQpCgokOiBub3RlKGA8CiAgW2E0IH4gfiBhNF0gW2c0IH4gfiBnNF0gW2YjNCB%2BIH4gfl0KICBbfiB%2BIH4gYjRdIFtiNCBiNCBiNCB%2BXSBbYjQgfiBiNCB%2BXQogIFtkNSBkNSBkNSBkNV0gW2Q1IGQ1IGY1IGQ1XSBbYzUgZDUgYzUgZzRdCiAgW2E0IH4gfiBhNF0gW2c0IGc0IH4gfl0gW2YjNCB%2BIGE0IH5dCiAgW2c0IH4gfiB%2BXQo%2BYCkKICAucygic3F1YXJlIikKICAuYXR0YWNrKC4wMDUpLmRlY2F5KC4wOCkuc3VzdGFpbiguNCkucmVsZWFzZSguMSkKICAubHBmKDIyMDApLmxwcSgzKQogIC5nYWluKC42KQoKLy8gQ2hhbm5lbCAxOiB0aGUgaGlnaCBCNSBjaGltZSB0aGF0IHB1bmN0dWF0ZXMgdGhyb3VnaG91dAokOiBub3RlKCJiNSB%2BIH4gfiB%2BIH4gYjUgfiIuZmFzdCgyKSkKICAucygidHJpYW5nbGUiKQogIC5hdHRhY2soLjAwMSkuZGVjYXkoLjA0KS5zdXN0YWluKDApLnJlbGVhc2UoLjA1KQogIC5nYWluKC4zKQoKLy8gQ2hhbm5lbCAyOiBiYXNzIGxpbmUgLSByb290IG1vdGlvbiBEIC0gQSAtIEcgLSBECiQ6IG5vdGUoIjxkMyBhMiBnMiBkMz4iKQogIC5zKCJzYXd0b290aCIpCiAgLmxwZig4MDApLmxwcSgyKQogIC5hdHRhY2soLjAwNSkuZGVjYXkoLjIpLnN1c3RhaW4oLjYpLnJlbGVhc2UoLjEpCiAgLmdhaW4oLjUpCg%3D%3D
Et le thème original est vraiment formidable, ça vaut clairement l’écoute
https://youtu.be/sFYzjU-C3mA
J’ai fini par devoir essayer moi-même
Claude était un peu tricheur : il a reconnu de quoi il s’agissait, a téléchargé le psid sur le web,
puis a trouvé un lecteur SID en wasm et a carrément construit un site web par-dessus
https://claude.ai/public/artifacts/df6cdcae-08dc-452b-ba19-ffae2d6546f6
https://claude.ai/share/4dd36c16-bc62-445a-b423-ad4637f06432
GPT-5.5 a produit tout un tas de scripts Python pour extraire les données musicales.
L’implémentation Strudel a échoué, mais je lui ai ensuite fait créer un site web
https://ubiquitous-vacherin-8e7993.netlify.app/
Ici, il s’agit du résultat de la traduction de la musique en JavaScript à partir du code source assembleur
Les deux étaient assez impressionnants, même s’il a fallu plusieurs itérations de correction
Malheureusement, ça ne ressemble pas du tout aux morceaux de Wizball ou Game Over
Les morceaux de Green Beret et Rambo: First Blood Part 2 sont étonnants même aujourd’hui, et Martin touche presque à la magie
Il faut vraiment saluer le fait que Martin Galway ait publié ça
J’aimerais que ce genre de chose soit plus courant, et que les auteurs puissent aussi exiger, lors de la signature avec les éditeurs,
des durées de copyright plus courtes
Bien sûr, je ne sais pas combien un auteur de livres gagne encore après 10, 20 ou 30 ans.
Il y a des cas comme la succession de JRR Tolkien ou K.K. Rowling, qui rapportent encore énormément,
mais pour des auteurs moins connus, une telle stratégie pourrait être tout à fait intéressante
c’est une très bonne illustration de l’absurdité du droit d’auteur actuel
J’écoute slayradio par intermittence depuis plus de 10 ans
https://slayradio.org
et moi aussi j’écoute et discute avec eux depuis des décennies
Grosse montée de nostalgie. J’adorais Galway et Hubbard
Ils ont fait énormément de choses fascinantes avec ces contraintes, et ça sonne toujours bien aujourd’hui
mais j’ai aussi énormément joué à Arkanoid quand j’étais petit
Je ne suis pas assez âgé pour avoir connu directement l’informatique de cette époque, mais je sais que Cosmic Bakery est extraordinaire
Comme ces fichiers source dépassent la capacité RAM du C64,
je ne pense pas que la musique ait été développée à l’origine sous cette forme de fichiers source
Je ne connais pas le cas d’Ocean, mais beaucoup d’entreprises utilisaient le Tatung Einstein comme plateforme de développement,
et cette machine était elle aussi dans la classe des 64 KiB. Cela dit, le logiciel qui servait à construire ce genre d’outils
pouvait probablement gérer des fichiers source plus gros qui ne tenaient pas tous en mémoire d’un seul coup
À l’époque de Wizball, ils étaient peut-être déjà passés à des machines comme l’Atari ST, les compatibles IBM ou l’Amiga,
mais produire la musique sous forme de fichiers source restait courant
Pas exactement, mais certains assembleurs populaires tournant sur C64
utilisaient du texte tokenisé, ce qui permettait d’en faire tenir pas mal en RAM