Archivos fuente de la música de Martin Galway para juegos de Commodore 64 de los años 80
(github.com/MartinGalway)- Se publicaron los archivos fuente de música de juegos de Commodore 64 de los años 80, lo que permite revisar directamente la implementación interna de los reproductores musicales de la época y su forma de trabajo
- Los archivos fuente pueden usarse para reensamblar, modificar y crear música nueva, y se solicita dar crédito a Martin Galway al utilizarlos
- La titularidad de los derechos de autor de la música y del código de programación pertenece actualmente a Martin Galway; no era el propietario cuando fueron creados en los años 80 y posteriormente obtuvo los derechos de Infogrames
- El reproductor de primera generación se usó en Wizball y está basado en un diseño utilizado desde 1984 hasta mediados de 1987, mientras que el reproductor de segunda generación fue escrito para Athena y luego también se utilizó en Times Of Lore e Insects In Space
- Va más allá de simplemente escuchar música de juegos clásicos, al permitir también su análisis y reutilización, haciendo posible comprender y ampliar directamente las técnicas de producción de aquella época
Resumen del proyecto
- Se publicaron los archivos fuente de música de juegos de Commodore 64 de los años 80, permitiendo leer y analizar directamente los reproductores musicales de la época y su forma de trabajo
- Los archivos fuente pueden usarse para reensamblar, modificar y crear música nueva, y se indica que debe darse crédito a Martin Galway como autor original
- Actualmente, la titularidad de los derechos de autor de esta música y del código de programación pertenece a Martin Galway; no era el propietario cuando fueron creados en los años 80 y posteriormente obtuvo los derechos de Infogrames
Generaciones del reproductor
- El reproductor de primera generación se usó en "Wizball" y está basado en un diseño utilizado desde 1984 hasta mediados de 1987
- El reproductor de segunda generación se utilizó por primera vez en "Athena" y fue escrito para ese juego
- Después, el reproductor de segunda generación también se siguió usando en juegos como Times Of Lore e Insects In Space
Por qué es importante
- Permite verificar en el código fuente original la implementación interna de los reproductores musicales de C64 y la forma real de trabajo de la época
- Va más allá de la simple escucha y también permite análisis y reutilización, haciendo posible comprender y ampliar directamente las técnicas de creación de música para juegos clásicos
1 comentarios
Comentarios de Hacker News
La melodía de Wizball se puede escuchar aquí
https://deepsid.chordian.net/?file=/MUSICIANS/G/Galway_Martin/Wizball.sid&subtune=4
Puedes cambiar el subtune con las flechas pequeñas de arriba/abajo
Qué bueno. Antes me encantaba la melodía de Short Circuit, tanto que hasta traté de extraerla mirando el código con un monitor de cartucho
para meterla en mi propio shell de reproductor standalone. Puede que incluso me haya funcionado
Da gusto poder confirmar ahora en el código fuente las direcciones y significados que hace 40 años había que adivinar
Por cierto, también está en
Short_circuit.siddel reproductor enlazado. GraciasQué genial. Todavía recuerdo con mucha claridad haber hecho esto junto con mi papá hace unos 35 años
En este archivo https://github.com/MartinGalway/C64_music/blob/main/ocean_assembler_directives.txt
DSP probablemente signifique displacement. Como se usa junto con ORG,
parece que ORG especifica la ubicación de memoria donde correrá el código, mientras que DSP empuja el código a una posición más adelante en memoria
bajo la suposición de que al ejecutarse se volverá a mover a la dirección ORG
DFC parece ser una directiva como DFM, pero que genera PETSCII en vez de ASCII
Esto está increíble. De niño me encantaba la música de C64 de Galway, especialmente Wizball y Parallax, y las escuchaba mucho
También recuerdo haber intentado escribir mi propio reproductor en ensamblador, aunque como era de esperarse terminó siendo otro proyecto inconcluso
Era realmente extraordinario. Y no solo Galway, sino toda la música de esa época
Durante la pandemia tuve una racha rarísima de mala suerte y me quedé atrapado 2.5 meses en otro país, separado de mi esposa y mi hijo,
y por casualidad terminé quedándome solo en la casa donde crecí. Saqué mi vieja C128 del ático,
vi videos de YouTube, la limpié, limpié también la disquetera y hasta le puse un poco de aceite para probar mis discos viejos
Commando todavía cargaba, y a veces dejaba sonando durante horas la música de Rob Hubbard en la pantalla de introducción mientras hacía otras cosas
Yo no hice temas SID ni mod-players, pero unos vecinos míos sí hicieron un Amiga mod player para Atari ST. El sonido era distinto y usaba bastante CPU, pero de verdad lograba reproducir 4 canales
Hace poco también le pasé unos viejos archivos DOS .ASM a Sonnet 4.6 para volver a compilarlos,
y después de descubrir herramientas como UASM al final logré hacer el build
Así que siento que quizá con estos archivos de ensamblador de C64 podría hacerse algo parecido.
Supongo que bastaría con preguntarle a un LLM cómo compilarlos y cómo reproducirlos en un emulador,
pero me vendría bien aunque fuera una guía breve sobre por dónde empezar
En el caso de los viejos .ASM de DOS, el TL;DR fue algo como: "compílalos con UASM gratis y ejecútalos en DOSBox"
Me pregunto si alguien ya intentó portar esto a Tidal Cycles o Strudel JS
o sea, traducirlo a una forma de interpretación de patrones basada en notación
Según la IA, traducirlo es difícil pero posible
https://claude.ai/share/65c16d60-5d27-496b-96a7-40959e95ac62
También hay una traducción por IA de algunas notas que Claude afirmó que eran la melodía principal
https://strudel.cc/#Ci8vIFdpemJhbGwgIklucHV0IE5hbWUiIC0gbWFpbiBtZWxvZHkgKGNoYW5uZWwgMCkKLy8gT3JpZ2luYWw6IE1hcnRpbiBHYWx3YXksIDE5ODcuIE5vdGUgaW5kaWNlcyBmcm9tIEM2NCBTSUQgYXNtCi8vIHRyYW5zbGF0ZWQgYXMgTUlESSA9IGluZGV4ICsgMTIuCgpzZXRjcHMoMTQwLzYwLzQpCgokOiBub3RlKGA8CiAgW2E0IH4gfiBhNF0gW2c0IH4gfiBnNF0gW2YjNCB%2BIH4gfl0KICBbfiB%2BIH4gYjRdIFtiNCBiNCBiNCB%2BXSBbYjQgfiBiNCB%2BXQogIFtkNSBkNSBkNSBkNV0gW2Q1IGQ1IGY1IGQ1XSBbYzUgZDUgYzUgZzRdCiAgW2E0IH4gfiBhNF0gW2c0IGc0IH4gfl0gW2YjNCB%2BIGE0IH5dCiAgW2c0IH4gfiB%2BXQo%2BYCkKICAucygic3F1YXJlIikKICAuYXR0YWNrKC4wMDUpLmRlY2F5KC4wOCkuc3VzdGFpbiguNCkucmVsZWFzZSguMSkKICAubHBmKDIyMDApLmxwcSgzKQogIC5nYWluKC42KQoKLy8gQ2hhbm5lbCAxOiB0aGUgaGlnaCBCNSBjaGltZSB0aGF0IHB1bmN0dWF0ZXMgdGhyb3VnaG91dAokOiBub3RlKCJiNSB%2BIH4gfiB%2BIH4gYjUgfiIuZmFzdCgyKSkKICAucygidHJpYW5nbGUiKQogIC5hdHRhY2soLjAwMSkuZGVjYXkoLjA0KS5zdXN0YWluKDApLnJlbGVhc2UoLjA1KQogIC5nYWluKC4zKQoKLy8gQ2hhbm5lbCAyOiBiYXNzIGxpbmUgLSByb290IG1vdGlvbiBEIC0gQSAtIEcgLSBECiQ6IG5vdGUoIjxkMyBhMiBnMiBkMz4iKQogIC5zKCJzYXd0b290aCIpCiAgLmxwZig4MDApLmxwcSgyKQogIC5hdHRhY2soLjAwNSkuZGVjYXkoLjIpLnN1c3RhaW4oLjYpLnJlbGVhc2UoLjEpCiAgLmdhaW4oLjUpCg%3D%3D
Y el tema original de verdad es impresionante, vale mucho la pena escucharlo
https://youtu.be/sFYzjU-C3mA
No me quedó otra que probarlo yo mismo
Claude hizo un poco de trampa: reconoció qué era el archivo, bajó un psid de la web
y luego encontró un wasm sid player para construirle encima un sitio web
https://claude.ai/public/artifacts/df6cdcae-08dc-452b-ba19-ffae2d6546f6
https://claude.ai/share/4dd36c16-bc62-445a-b423-ad4637f06432
GPT-5.5 produjo un montón de scripts en Python para extraer los datos musicales.
Fracasó con la implementación en Strudel, pero luego lo puse a hacer un sitio web
https://ubiquitous-vacherin-8e7993.netlify.app/
Ese resultado está basado en traducir la música desde el código assembler a JavaScript
Ambos fueron bastante impresionantes, aunque sí necesitaron varias correcciones iterativas
Lamentablemente, eso suena completamente distinto de las pistas de Wizball o Game Over
Las melodías de Green Beret y Rambo: First Blood Part 2 siguen siendo asombrosas incluso hoy; Martin era casi un mago
Hay que reconocer mucho que Martin Galway haya publicado esto
Ojalá este tipo de cosas fueran más comunes, y que los autores también pudieran exigir al negociar con las editoriales
plazos de copyright más cortos
Claro, no sé muy bien cuánto siguen ganando los autores de libros después de 10, 20 o 30 años.
Habrá casos como el patrimonio de JRR Tolkien o K.K. Rowling, donde todavía entra muchísimo dinero,
pero para autores menos famosos quizá esa estrategia sí podría funcionar bastante bien
Eso muestra bastante bien lo absurda que es la ley de copyright actual
Llevo más de 10 años escuchando slayradio de vez en cuando
https://slayradio.org
y yo también llevo décadas escuchando y chateando con esa gente
Me pegó fuerte la nostalgia. Me encantaban Galway y Hubbard
Hicieron muchísimas cosas interesantes con esas limitaciones, y todavía hoy siguen sonando muy bien
pero de niño también jugué muchísimo Arkanoid
No tengo la edad suficiente como para haber vivido esa época de la computación de primera mano, pero sí sé que Cosmic Bakery es buenísimo
Como estos archivos fuente exceden la capacidad de RAM del C64,
no creo que la música se haya desarrollado originalmente en esta clase de archivos fuente
No conozco Ocean en particular, pero muchas empresas usaban la Tatung Einstein como plataforma de desarrollo,
y esa máquina también era del orden de 64 KiB. Aun así, el software usado para construir estas herramientas
probablemente sí podía manejar archivos fuente más grandes que no cupieran enteros en la memoria de la máquina al mismo tiempo
Para cuando salió Wizball, quizá ya se habían pasado a Atari ST, compatibles IBM o Amiga,
pero crear la música en forma de archivos fuente sí era algo común
No necesariamente, pero algunos assemblers populares que corrían en el C64
usaban texto tokenizado y podían meter bastante contenido en la RAM