Ausführbare Game-Boy-Musik mit LSDj unter Linux erstellen
Diese Anleitung erklärt, wie ihr unter Linux eine Pipeline für ausführbare Game-Boy-Musik einrichtet: den Sequencer LSDj aufsetzen, einen Controller anschließen und euren fertigen Song mit LSDpack zu einer ausführbaren .gb-Datei kompilieren.
Den Sequencer einrichten
LSDj läuft als Game-Boy-ROM, ihr braucht unter Linux also einen Emulator. Empfehlenswert ist BGB, der unter Wine gut läuft.
- Ladet den Game-Boy-Emulator BGB (Windows-Version) herunter und entpackt das ZIP.
- Ladet das LSDj-ROM-Image herunter und entpackt es.
- Installiert Wine:
sudo apt install wine - Öffnet ein Terminal im BGB-Ordner und startet den Emulator:
wine bgb.exe - Klickt mit der rechten Maustaste auf den Emulatorbildschirm und wählt euer LSDj-ROM aus.
Nachschlagewerke
Controller einrichten
Mit einem USB-SNES-Controller lässt sich LSDj bequem bedienen. Wenn die Pfeiltasten über Wine nicht richtig zugeordnet werden, könnt ihr sie mit AntiMicroX von Hand neu belegen.
- Installiert AntiMicroX:
sudo apt install antimicrox - Startet es:
antimicrox - Belegt die Controller-Tasten passend zur Standard-Tastaturbelegung von BGB: | Controller-Taste | Tastatur-Taste | |—|—| | Steuerkreuz rechts | Pfeil rechts | | Steuerkreuz links | Pfeil links | | Steuerkreuz oben | Pfeil hoch | | Steuerkreuz unten | Pfeil runter | | A | S | | B | A | | Start | Enter | | Select | Shift |
- Lasst AntiMicroX in einem Terminal laufen und startet BGB in einem anderen.
Den Song zu einem ausführbaren ROM kompilieren
Wenn euer Song in LSDj fertig ist, könnt ihr ihn mit lsdpack und RGBDS aufnehmen und zu einem eigenständigen .gb-ROM kompilieren.
Die Werkzeuge installieren
- Installiert die Build-Abhängigkeiten und RGBDS (den Game-Boy-Assembler/Linker):
sudo apt install -y cmake build-essential git rgbdsHinweis: Wenn
apt install rgbdsfehlschlägt oder eine veraltete Version installiert, installiert RGBDS von Hand über github.com/gbdev/rgbds/releases. Auch CMake könnt ihr von Hand aus den offiziellen Binärpaketen (Linux x86_64) installieren. - lsdpack klonen:
git clone https://github.com/jkotlinski/lsdpack.git cd lsdpack - Konfigurieren und bauen:
cmake -B build -S . cmake --build build
Den Spielstand in ein ROM umwandeln
1. Speichert euren Song in LSDj. Dabei entsteht eine .sav-Datei.
2. Sorgt dafür, dass der Song endet. Jeder Song muss sauber enden – verwendet dazu in LSDj den Befehl HFF am Ende der Song-Sequenz.
3. Nehmt den Song auf. Legt eure .sav- und .gb-Datei (das LSDj-ROM) in dasselbe Verzeichnis und führt aus:
./lsdpack.exe -g -d lsdj.gb
Die Parameter im Einzelnen:
-g– GBS-Konvertierungsmodus; nimmt jeden Song in eine eigene, nummerierte.s-Datei auf (z. B.lsdj-1.s,lsdj-2.s)-d– Aufnahme mit emuliertem DMG (dem ursprünglichen Game Boy) statt CGB (Game Boy Color)Wichtig: Verwendet immer den Parameter
-d. Eine Aufnahme im Game-Boy-Color-Modus verfälscht die Wiedergabegeschwindigkeit des Songs im fertigen ROM.
4. Assembliert die Komponenten mit RGBDS:
rgbasm -o boot.o boot.s
rgbasm -o player.o player.s
rgbasm -o lsdj-1.o lsdj-1.s
5. Linkt alles zu einem einzigen ROM:
rgblink -o player.gb boot.o player.o lsdj-1.o
6. Korrigiert den ROM-Header (nötig, damit das ROM gültig ist):
rgbfix -v -m 0x19 -p 0xff player.gb
Das Ergebnis ist player.gb – ein eigenständiges Game-Boy-ROM, das euren Song abspielt. Ladet es genauso in BGB wie das LSDj-ROM, um zu prüfen, ob es funktioniert.