Arquivos-fonte das músicas de Martin Galway para jogos de Commodore 64 dos anos 1980
(github.com/MartinGalway)- Divulgação dos arquivos-fonte de músicas de jogos de Commodore 64 dos anos 1980, permitindo verificar diretamente a implementação interna e a forma de trabalho dos players musicais da época
- Os arquivos-fonte podem ser usados para remontagem, modificação e criação de novas músicas, com a exigência de dar crédito a Martin Galway ao utilizá-los
- Os direitos autorais sobre a música e o código de programação pertencem atualmente a Martin Galway; ele não era o proprietário na época da criação, nos anos 1980, e depois adquiriu os direitos da Infogrames
- O player de 1ª geração foi usado em Wizball e se baseia no design utilizado de 1984 até meados de 1987, enquanto o player de 2ª geração foi escrito para Athena e depois continuou a ser usado em Times Of Lore e Insects In Space
- Vai além de simplesmente ouvir música de jogos clássicos e torna possível analisar e reutilizar esse material, permitindo entender e expandir diretamente as técnicas de produção da época
Visão geral do projeto
- Divulgação dos arquivos-fonte de músicas de jogos de Commodore 64 dos anos 1980, permitindo ler e analisar diretamente os players musicais da época e sua forma de trabalho
- Os arquivos-fonte podem ser usados para remontagem, modificação e criação de novas músicas, com a indicação de que o autor original, Martin Galway, deve ser creditado
- Atualmente, os direitos autorais sobre essa música e o código de programação pertencem a Martin Galway; ele não era o proprietário na época da criação, nos anos 1980, e depois adquiriu os direitos da Infogrames
Divisão por gerações do player
- O player de 1ª geração foi usado em "Wizball" e se baseia no design utilizado de 1984 até meados de 1987
- O player de 2ª geração foi usado pela primeira vez em "Athena" e foi escrito para esse jogo
- Depois disso, o player de 2ª geração continuou a ser usado em jogos como Times Of Lore e Insects In Space
Por que isso é importante
- Permite verificar no código-fonte original a implementação interna dos players musicais de C64 e a forma real de trabalho da época
- Vai além da simples apreciação e possibilita também análise e reutilização, permitindo compreender e expandir diretamente as técnicas de produção de música para jogos clássicos
1 comentários
Comentários do Hacker News
A música de Wizball pode ser ouvida aqui
https://deepsid.chordian.net/?file=/MUSICIANS/G/Galway_Martin/Wizball.sid&subtune=4
Dá para mudar o subtune com as setinhas para cima/baixo
Que legal. Eu gostava muito da música de Short Circuit e, anos atrás, até tentei extrair olhando o código num monitor de cartucho
para colocar no meu player shell standalone. Talvez até tenha conseguido de fato
É bom poder confirmar no código-fonte os endereços e significados que, 40 anos atrás, eu só conseguia adivinhar
Aliás, ela também está no
Short_circuit.siddo player linkado. ValeuMuito bom. Ainda lembro claramente de fazer isso junto com meu pai uns 35 anos atrás
Neste arquivo https://github.com/MartinGalway/C64_music/blob/main/ocean_assembler_directives.txt
DSP provavelmente significa displacement. É usado junto com ORG;
parece que o ORG define o endereço de memória onde o código vai executar, enquanto o DSP empurra o código para mais adiante na memória
assumindo que, na execução real, ele será movido de volta para o endereço do ORG
DFC parece ser como DFM, mas uma diretiva que gera PETSCII em vez de ASCII
Muito legal. Eu adorava a música de C64 do Galway quando era criança, especialmente Wizball e Parallax
Também lembro de ter tentado escrever meu próprio player em assembly, mas, claro, virou mais um projeto inacabado
Era realmente brilhante. Não só o Galway, mas a música daquela época como um todo
Durante a pandemia, por um azar estranho, fiquei preso por 2,5 meses em outro país, separado da minha esposa e do meu filho,
e por coincidência acabei ficando sozinho na casa em que cresci. Tirei meu velho C128 do sótão,
vi vídeos no YouTube, limpei tudo, limpei também o disk drive, passei um pouco de óleo e coloquei meus discos antigos para rodar
Commando ainda carregava, e eu deixava a música do Rob Hubbard na tela de introdução tocando por horas enquanto fazia outras coisas
Eu nunca fiz músicas em SID nem mod-players, mas meus vizinhos fizeram um Amiga mod player
para Atari ST. O som era diferente e consumia bastante CPU, mas realmente tocava em 4 canais
Recentemente, joguei alguns arquivos antigos de DOS .ASM no Sonnet 4.6 para fazê-los compilar de novo e,
depois de descobrir ferramentas como o UASM, no fim consegui até gerar o build
Então imagino que talvez dê para fazer o mesmo com esses arquivos de assembly de C64.
Parece o tipo de coisa em que daria para perguntar a um LLM como compilar e como reproduzir no emulador,
mas seria ótimo ter pelo menos uma orientação rápida sobre por onde começar
O TL;DR da parte de DOS .ASM era algo como: "compile com o UASM gratuito e rode no DOSBox"
Fico curioso se alguém já tentou portar isso para Tidal Cycles ou Strudel JS
isto é, traduzir para uma forma de performance de padrões baseada em notação
Segundo a IA, a tradução é difícil, mas possível
https://claude.ai/share/65c16d60-5d27-496b-96a7-40959e95ac62
Também há uma tradução por IA de algumas notas que o Claude afirma ser a melodia principal
https://strudel.cc/#Ci8vIFdpemJhbGwgIklucHV0IE5hbWUiIC0gbWFpbiBtZWxvZHkgKGNoYW5uZWwgMCkKLy8gT3JpZ2luYWw6IE1hcnRpbiBHYWx3YXksIDE5ODcuIE5vdGUgaW5kaWNlcyBmcm9tIEM2NCBTSUQgYXNtCi8vIHRyYW5zbGF0ZWQgYXMgTUlESSA9IGluZGV4ICsgMTIuCgpzZXRjcHMoMTQwLzYwLzQpCgokOiBub3RlKGA8CiAgW2E0IH4gfiBhNF0gW2c0IH4gfiBnNF0gW2YjNCB%2BIH4gfl0KICBbfiB%2BIH4gYjRdIFtiNCBiNCBiNCB%2BXSBbYjQgfiBiNCB%2BXQogIFtkNSBkNSBkNSBkNV0gW2Q1IGQ1IGY1IGQ1XSBbYzUgZDUgYzUgZzRdCiAgW2E0IH4gfiBhNF0gW2c0IGc0IH4gfl0gW2YjNCB%2BIGE0IH5dCiAgW2c0IH4gfiB%2BXQo%2BYCkKICAucygic3F1YXJlIikKICAuYXR0YWNrKC4wMDUpLmRlY2F5KC4wOCkuc3VzdGFpbiguNCkucmVsZWFzZSguMSkKICAubHBmKDIyMDApLmxwcSgzKQogIC5nYWluKC42KQoKLy8gQ2hhbm5lbCAxOiB0aGUgaGlnaCBCNSBjaGltZSB0aGF0IHB1bmN0dWF0ZXMgdGhyb3VnaG91dAokOiBub3RlKCJiNSB%2BIH4gfiB%2BIH4gYjUgfiIuZmFzdCgyKSkKICAucygidHJpYW5nbGUiKQogIC5hdHRhY2soLjAwMSkuZGVjYXkoLjA0KS5zdXN0YWluKDApLnJlbGVhc2UoLjA1KQogIC5nYWluKC4zKQoKLy8gQ2hhbm5lbCAyOiBiYXNzIGxpbmUgLSByb290IG1vdGlvbiBEIC0gQSAtIEcgLSBECiQ6IG5vdGUoIjxkMyBhMiBnMiBkMz4iKQogIC5zKCJzYXd0b290aCIpCiAgLmxwZig4MDApLmxwcSgyKQogIC5hdHRhY2soLjAwNSkuZGVjYXkoLjIpLnN1c3RhaW4oLjYpLnJlbGVhc2UoLjEpCiAgLmdhaW4oLjUpCg%3D%3D
E o tema original é realmente incrível, vale muito a pena ouvir
https://youtu.be/sFYzjU-C3mA
Acabei tendo que tentar eu mesmo
O Claude foi meio apelão: reconheceu o que era o arquivo, baixou um psid da web
e depois encontrou um wasm sid player e construiu um site em cima disso
https://claude.ai/public/artifacts/df6cdcae-08dc-452b-ba19-ffae2d6546f6
https://claude.ai/share/4dd36c16-bc62-445a-b423-ad4637f06432
O GPT-5.5 criou um monte de scripts Python para extrair os dados musicais.
A implementação em Strudel falhou, mas depois eu o fiz montar um site
https://ubiquitous-vacherin-8e7993.netlify.app/
Nesse caso, o resultado é uma tradução da música para JavaScript com base no código assembler
Os dois ficaram bem impressionantes, embora tenham precisado de algumas correções iterativas
Infelizmente, isso não soa nada como as faixas de Wizball ou Game Over
As músicas de Green Beret e Rambo: First Blood Part 2 são impressionantes até hoje, e Martin era praticamente um mago
É realmente louvável que Martin Galway tenha publicado isso
Queria que esse tipo de coisa fosse mais comum, e que autores também pudessem exigir
prazos de copyright menores ao assinar contrato com editoras
Claro, não sei quanto um autor de livros ainda ganha depois de 10, 20 ou 30 anos.
Existem casos como o espólio de JRR Tolkien ou K.K. Rowling, que ainda rendem muito,
mas para autores menos famosos isso talvez fosse uma estratégia bem razoável
Isso mostra muito bem o absurdo da lei de copyright atual
Ouço a slayradio de vez em quando já faz mais de 10 anos
https://slayradio.org
e eu também escuto e converso com o pessoal de lá há décadas
Bateu forte a nostalgia. Eu adorava Galway e Hubbard
Eles fizeram muita coisa interessante dentro dessas limitações, e ainda soa bem hoje
mas também joguei Arkanoid demais quando era criança
Não sou velho o bastante para ter vivido aquela era da computação em primeira mão, mas sei que Cosmic Bakery é sensacional
Como esses arquivos-fonte passam da capacidade de RAM do C64,
não acho que a música tenha sido desenvolvida originalmente nesse formato de arquivo-fonte
Não sei no caso da Ocean, mas muitas empresas usavam o Tatung Einstein como plataforma de desenvolvimento, e
essa máquina também era da faixa de 64KiB. Mesmo assim, o software usado para construir essas ferramentas
provavelmente conseguia lidar com arquivos-fonte maiores do que cabiam de uma vez na memória da máquina
Na época em que Wizball saiu, talvez já tivessem migrado para Atari ST, PCs compatíveis com IBM ou Amiga, mas
desenvolver a música em formato de arquivo-fonte era algo comum
Não, mas alguns assemblers populares que rodavam no C64 usavam texto tokenizado, então conseguiam enfiar bastante coisa na RAM