Martin Galways Musik-Quelldateien aus Commodore-64-Spielen der 1980er
(github.com/MartinGalway)- Veröffentlichung von Musik-Quelldateien aus Commodore-64-Spielen der 1980er, sodass sich die interne Implementierung und Arbeitsweise der damaligen Musik-Player direkt nachvollziehen lässt
- Die Quelldateien können zum erneuten Assemblieren, Modifizieren und Erstellen neuer Musik verwendet werden; bei der Nutzung wird eine Nennung von Martin Galway verlangt
- Das Urheberrecht an Musik und Programmcode liegt derzeit bei Martin Galway; zum Zeitpunkt der Erstellung in den 1980ern war er nicht Rechteinhaber und hat die Rechte später von Infogrames erworben
- Der Player der 1. Generation wurde in Wizball verwendet und basiert auf einem Design, das von 1984 bis Mitte 1987 im Einsatz war; der Player der 2. Generation wurde für Athena geschrieben und später auch in Times Of Lore und Insects In Space eingesetzt
- Damit geht es über das bloße Anhören klassischer Spielmusik hinaus und ermöglicht auch Analyse und Wiederverwendung, sodass sich die damaligen Produktionstechniken direkt verstehen und erweitern lassen
Projektüberblick
- Veröffentlichung von Musik-Quelldateien aus Commodore-64-Spielen der 1980er, damit sich die damaligen Musik-Player und Arbeitsweisen direkt lesen und analysieren lassen
- Die Quelldateien können zum erneuten Assemblieren, Modifizieren und Erstellen neuer Musik verwendet werden; ausdrücklich wird darum gebeten, den ursprünglichen Urheber Martin Galway zu nennen
- Das Urheberrecht an dieser Musik und dem Programmcode liegt derzeit bei Martin Galway; in den 1980ern war er beim Erstellen noch nicht Rechteinhaber und hat die Rechte später von Infogrames erworben
Einteilung der Player-Generationen
- Der Player der 1. Generation wurde in "Wizball" verwendet und basiert auf einem Design, das von 1984 bis Mitte 1987 genutzt wurde
- Der Player der 2. Generation kam zuerst in "Athena" zum Einsatz und wurde für dieses Spiel geschrieben
- Später wurde der Player der 2. Generation auch in Spielen wie Times Of Lore und Insects In Space weiterverwendet
Warum das wichtig ist
- Dadurch lässt sich die interne Implementierung von C64-Musik-Playern und die tatsächliche Arbeitsweise der Zeit anhand des Original-Quellcodes nachvollziehen
- Es bleibt nicht beim bloßen Anhören, sondern ermöglicht auch Analyse und Wiederverwendung, sodass sich klassische Techniken der Spielmusik-Produktion direkt verstehen und erweitern lassen
1 Kommentare
Hacker-News-Kommentare
Die Wizball-Melodie kann man hier anhören
https://deepsid.chordian.net/?file=/MUSICIANS/G/Galway_Martin/Wizball.sid&subtune=4
Mit den kleinen Pfeilen nach oben/unten kann man die Subtune wechseln
Schön. Ich mochte früher die Short Circuit-Melodie sehr und habe sogar versucht, sie mit einem Cartridge-Monitor zu extrahieren,
um sie in meine eigene standalone player shell einzubauen. Vielleicht hat es damals sogar funktioniert
Es ist schön, jetzt im Quelltext die Adressen und Bedeutungen nachsehen zu können, bei denen man vor 40 Jahren noch raten musste
Übrigens ist sie auch in der
Short_circuit.siddes verlinkten Players enthalten. DankeGroßartig. Ich erinnere mich immer noch ganz genau daran, wie ich das vor etwa 35 Jahren zusammen mit meinem Vater gemacht habe
In dieser Datei https://github.com/MartinGalway/C64_music/blob/main/ocean_assembler_directives.txt
ist DSP wahrscheinlich eine Abkürzung für displacement. Es wird zusammen mit ORG verwendet:
ORG legt die Speicheradresse fest, an der der Code ausgeführt wird, während DSP den Code im Speicher weiter nach hinten verschiebt
und offenbar davon ausgeht, dass er zur Laufzeit wieder an die ORG-Adresse zurückkopiert wird
DFC scheint wie DFM zu sein, aber eine Direktive, die statt ASCII PETSCII erzeugt
Wirklich großartig. Ich habe Galways C64-Musik als Kind sehr geliebt und besonders Wizball und Parallax oft gehört
Ich erinnere mich auch daran, selbst einmal einen Player in Assembler schreiben zu wollen, aber wie so oft blieb es ein unvollendetes Projekt
Es war wirklich hervorragend. Nicht nur Galway, eigentlich die Musik dieser ganzen Ära
Während Corona hatte ich auf seltsame Weise Pech und saß 2,5 Monate in einem anderen Land fest, getrennt von meiner Frau und meinem Kind,
und landete zufällig allein in dem Haus, in dem ich aufgewachsen bin. Ich holte auf dem Dachboden meinen alten C128 hervor,
schaute YouTube-Videos, reinigte ihn, säuberte auch das Diskettenlaufwerk und ölte es leicht, um wieder alte Disketten zu laden
Commando ließ sich immer noch laden, und ich ließ die Rob-Hubbard-Musik auf dem Intro-Bildschirm oft stundenlang laufen, während ich andere Dinge tat
Ich habe zwar nie selbst SID-Stücke oder einen mod-player geschrieben, aber meine Nachbarn bauten einen Amiga mod player für den Atari ST.
Der Klang war anders und er fraß ziemlich viel CPU, aber 4-Kanal-Wiedergabe funktionierte tatsächlich
Vor Kurzem habe ich alte DOS-.ASM-Dateien Sonnet 4.6 vorgeworfen, damit sie sich wieder kompilieren lassen,
und nachdem ich von Tools wie UASM erfahren hatte, bekam ich sie am Ende tatsächlich wieder gebaut
Deshalb denke ich, dass sich mit solchen C64-Assembler-Dateien vielleicht dasselbe machen ließe.
Wenn man ein LLM fragt, wie man sie kompiliert und im Emulator abspielt, müsste das doch gehen.
Eine kurze Anleitung, wo man anfangen sollte, wäre schön
Das TL;DR für die alten DOS-.ASM-Dateien war ungefähr: „Mit kostenlosem UASM kompilieren und in DOSBox ausführen.“
Ich frage mich, ob jemand versucht hat, das nach Tidal Cycles oder Strudel JS zu portieren
also in eine Form von notation-based Pattern-Performance zu übersetzen
Laut AI ist die Übersetzung schwierig, aber möglich
https://claude.ai/share/65c16d60-5d27-496b-96a7-40959e95ac62
Es gibt auch eine KI-Übersetzung einiger Noten, die Claude für die Hauptmelodie hält
https://strudel.cc/#Ci8vIFdpemJhbGwgIklucHV0IE5hbWUiIC0gbWFpbiBtZWxvZHkgKGNoYW5uZWwgMCkKLy8gT3JpZ2luYWw6IE1hcnRpbiBHYWx3YXksIDE5ODcuIE5vdGUgaW5kaWNlcyBmcm9tIEM2NCBTSUQgYXNtCi8vIHRyYW5zbGF0ZWQgYXMgTUlESSA9IGluZGV4ICsgMTIuCgpzZXRjcHMoMTQwLzYwLzQpCgokOiBub3RlKGA8CiAgW2E0IH4gfiBhNF0gW2c0IH4gfiBnNF0gW2YjNCB%2BIH4gfl0KICBbfiB%2BIH4gYjRdIFtiNCBiNCBiNCB%2BXSBbYjQgfiBiNCB%2BXQogIFtkNSBkNSBkNSBkNV0gW2Q1IGQ1IGY1IGQ1XSBbYzUgZDUgYzUgZzRdCiAgW2E0IH4gfiBhNF0gW2c0IGc0IH4gfl0gW2YjNCB%2BIGE0IH5dCiAgW2c0IH4gfiB%2BXQo%2BYCkKICAucygic3F1YXJlIikKICAuYXR0YWNrKC4wMDUpLmRlY2F5KC4wOCkuc3VzdGFpbiguNCkucmVsZWFzZSguMSkKICAubHBmKDIyMDApLmxwcSgzKQogIC5nYWluKC42KQoKLy8gQ2hhbm5lbCAxOiB0aGUgaGlnaCBCNSBjaGltZSB0aGF0IHB1bmN0dWF0ZXMgdGhyb3VnaG91dAokOiBub3RlKCJiNSB%2BIH4gfiB%2BIH4gYjUgfiIuZmFzdCgyKSkKICAucygidHJpYW5nbGUiKQogIC5hdHRhY2soLjAwMSkuZGVjYXkoLjA0KS5zdXN0YWluKDApLnJlbGVhc2UoLjA1KQogIC5nYWluKC4zKQoKLy8gQ2hhbm5lbCAyOiBiYXNzIGxpbmUgLSByb290IG1vdGlvbiBEIC0gQSAtIEcgLSBECiQ6IG5vdGUoIjxkMyBhMiBnMiBkMz4iKQogIC5zKCJzYXd0b290aCIpCiAgLmxwZig4MDApLmxwcSgyKQogIC5hdHRhY2soLjAwNSkuZGVjYXkoLjIpLnN1c3RhaW4oLjYpLnJlbGVhc2UoLjEpCiAgLmdhaW4oLjUpCg%3D%3D
Und das Originalthema ist wirklich großartig und absolut hörenswert
https://youtu.be/sFYzjU-C3mA
Ich musste es am Ende einfach selbst ausprobieren
Claude hat dabei ein bisschen geschummelt: Es hat erkannt, worum es bei der Datei geht, im Web die psid heruntergeladen,
einen wasm sid player gefunden und darauf gleich eine Website gebaut
https://claude.ai/public/artifacts/df6cdcae-08dc-452b-ba19-ffae2d6546f6
https://claude.ai/share/4dd36c16-bc62-445a-b423-ad4637f06432
GPT-5.5 hat eine Menge Python-Skripte zum Extrahieren der Musikdaten erzeugt.
Die Strudel-Implementierung ist gescheitert, aber danach ließ ich es eine Website bauen
https://ubiquitous-vacherin-8e7993.netlify.app/
Das hier ist das Ergebnis einer Übersetzung der Musik von Assembler-Quelltext nach JavaScript
Beides war ziemlich beeindruckend, brauchte aber noch ein paar Iterationen
Leider klingt das überhaupt nicht wie die Wizball- oder Game Over-Tracks
Die Melodien von Green Beret und Rambo: First Blood Part 2 sind selbst heute noch erstaunlich, und Martin ist fast schon ein Magier
Dass Martin Galway das hier veröffentlicht hat, ist wirklich sehr lobenswert
Ich wünschte, so etwas wäre häufiger, und Autoren könnten beim Vertragsabschluss mit Verlagen vielleicht
auf kürzere Copyright-Laufzeiten bestehen
Natürlich weiß ich nicht, wie viel Buchautoren nach 10, 20 oder 30 Jahren noch verdienen.
Bei Fällen wie dem Nachlass von J. R. R. Tolkien oder K. K. Rowling gibt es offenbar noch erhebliche Einnahmen,
aber für weniger bekannte Autoren könnte so eine Strategie ziemlich sinnvoll sein
Das zeigt die Absurdität des heutigen Urheberrechts ziemlich gut
Ich höre seit über zehn Jahren immer wieder slayradio
https://slayradio.org
und ich höre und chatte dort auch schon seit Jahrzehnten mit den Leuten
Das weckt sofort Nostalgie. Ich mochte Galway und Hubbard wirklich sehr
Sie haben unter diesen Einschränkungen unglaublich interessante Dinge gemacht, und es klingt bis heute gut
aber ich habe als Kind auch Arkanoid enorm viel gespielt
Ich bin nicht alt genug, um das Computing dieser Zeit selbst erlebt zu haben, aber ich weiß, dass Cosmic Bakery fantastisch ist
Da diese Quelldateien die RAM-Kapazität des C64 überschreiten,
glaube ich nicht, dass die Musik ursprünglich in genau dieser Form von Quelldateien entwickelt wurde
Von Ocean weiß ich es nicht, aber viele Firmen nutzten den Tatung Einstein als Entwicklungsplattform,
und auch diese Maschine hatte nur etwa 64 KiB. Trotzdem konnten die Programme zum Bauen solcher Tools
vermutlich auch größere Quelldateien verarbeiten, die nicht komplett gleichzeitig in den Speicher passten
Als Wizball erschien, war man vielleicht schon auf Atari ST, IBM-Kompatible oder Amiga umgestiegen,
aber dass Musik in Form von Quelldateien erstellt wurde, war durchaus üblich
Nicht unbedingt, aber einige beliebte Assembler auf dem C64 verwendeten tokenisierten Text,
sodass man ziemlich viel in den RAM hineinquetschen konnte