FUSE RUNNER
Autor: Jungsi (Idee), Claude und Jungsi (Code)
Jahr: 2026
Rechner: Sinclair QL (mit mindestens 256 KB RAM)
Download
Ein Bombenleger. Neun Orte. Eine brennende Lunte.
Irgendwo zwischen Großstadt und Mondbasis hat ein Unbekannter zugeschlagen: Auf Dächern, Felsvorsprüngen, Burgzinnen und sogar am Hang eines aktiven Vulkans liegen Bomben. An einer davon glimmt bereits die Lunte. Nur einer ist schnell genug, sie alle einzusammeln: Jack, der Fuse Runner.
FUSE RUNNER ist ein Spiel im Stil von „Bomb Jack“ für den Sinclair QL, geschrieben in 68000-Assembler. Und ja: Ich habe es zusammen mit Claude Code entwickelt. Dazu weiter unten mehr.
Eine Idee zu später Stunde
Entstanden ist das Ganze beim Online-Stammtisch des Retrokompott Podcast, der jeden Freitag ab 21 Uhr stattfindet. Zu später Stunde ging es um das Thema KI. Und plötzlich war da die Idee: Ich entwickle ein Spiel.
Als Plattform wählte ich den Sinclair QL. Er war nie als Spielmaschine gedacht, und genau das reizte mich. Dreißig Minuten später gab es die erste Version zum Testen.
Ein Held, eine Lunte
Das Prinzip ist schnell erklärt. Jeder Bildschirm ist ein fester Level mit Plattformen und Bomben. Ihr sammelt alle ein, dann geht es in die nächste Runde. Dabei jagen euch die Handlanger des Bombenlegers: Läufer, die sich in Flieger verwandeln, hartnäckige Sucher und, ab der Burg, hinterhältige Hüpfer.
Jack trägt Sprungstiefel. Er springt höher als jedes Hochhaus und gleitet danach sanft wieder herab. Genau das macht das Spiel aus.
Springen, schweben, sammeln
Die Steuerung ist bewusst einfach, per Joystick oder Cursortasten plus Leertaste:
- Links und rechts: laufen
- Hoch oder Leertaste: springen, je länger gedrückt, desto höher
- Taste beim Fallen gedrückt halten: gleiten
- Runter: schneller fallen
- Enter: Pause, Esc: Menü
Das Gleiten ist der Schlüssel. Wer es beherrscht, steuert Jack millimetergenau auf die nächste Plattform.
Eine Bombe brennt immer. Schnappt ihr sie zuerst, gibt es 200 Punkte. Sammelt ihr die restlichen Bomben der Reihe nach, kommen 500 Bonuspunkte pro Bombe dazu. Alle 20.000 Punkte gibt es ein Extraleben.
Unterwegs warten drei Extras:
- Herz: ein Extraleben
- Schneeflocke: friert alle Gegner ein
- Stern: lässt die Gegner explodieren

Neun Runden um die Welt
Das Spiel führt euch durch neun Schauplätze: Stadt, Berge, Wüste, Hafen, Burg, Wald, Mondbasis, Arktis und zum Schluss den Vulkan. Danach geht es von vorn los, nur schneller.
Jede Runde hat eigene Plattformen, einen eigenen Hintergrund und ein eigenes Farbschema des Rahmens. Im Hafen liegt ein Schiff vor dem Leuchtturm, über der Mondbasis hängt die Erde am Himmel, in der Arktis leuchten Polarlichter. Die Hintergründe sind keine Bilder, sondern kleine Zeichenprogramme, die beim Laden aufgebaut werden. So passen alle neun zusammen in knapp 28 KB.
Der Vulkan als letzte Runde war ein eigenes Stück Arbeit. Dazu gleich mehr.
Wie schwer ist es wirklich?
Die Gegnertypen kommen nach und nach ins Spiel: Läufer und Sucher von Anfang an, die Hüpfer erst ab der Burg. Die Runden werden enger und verlangen mehr Planung bei den Sprüngen. Der Vulkan ist etwas enger gebaut als der Wald und damit eher noch ein Stück schwerer.
Im Menü könnt ihr den Schwierigkeitsgrad einstellen, die Musik ein- und ausschalten und zwischen Deutsch und Englisch wechseln. Es gibt eine Highscore-Liste mit Namenseingabe.

Eine Besonderheit: Nach Runde 9 beginnt der zweite Durchlauf, und das Spiel wird schneller. Für Highscore-Jäger ist also kein Ende in Sicht.
Unter der Haube
Das Spiel läuft mit 25 Bildern pro Sekunde auf einem QL mit Originaltakt, in Mode 8 mit 256×256 Pixeln und 8 Farben. Das Programm ist rund 89 KB groß und besteht aus etwa 3900 Zeilen Assembler.
Entwickelt habe ich unter Windows mit WSL. Claude Code arbeitet direkt im Projektordner, baut das Spiel, startet es im Emulator sQLux auf einem unsichtbaren Bildschirm, drückt per Skript Tasten und schaut sich Screenshots an. Als Assembler dient vasm. Fast alle Daten entstehen aus Python-Skripten: Sprites, Hintergründe, Level, Melodien, sogar der Ladebildschirm. Von Hand bearbeitet wird nichts davon.
Zwei Dinge fand ich besonders gelungen:
- Erreichbarkeitsprüfung: Die Level-Skripte bilden die Sprungphysik des Spiels exakt nach und prüfen bei jedem Build, ob jede Bombe erreichbar ist. Ist eine unerreichbar, bricht der Build ab.
- Lag-Anzeige: Mit einem Testschalter zeigt das Spiel als Ziffer, wie viele Bildwechsel eine Spielschleife höchstens gebraucht hat. Soll-Wert ist 2, also 25 Bilder pro Sekunde.
Der Vulkan. Ich wollte einen dunkelroten Himmel. Mode 8 kennt aber kein dunkles Rot. Die Lösung: rote Punkte im Raster auf Schwarz, oben 12,5 %, zum Horizont hin 25 %. Das wirkt wie ein glühender Nachthimmel. Der erste Entwurf war außerdem mit 4,8 KB viel zu groß. Ellipsen und Polygone erzeugen hunderte einzelne Linien. Erst als Rauchwolke und Felsbrocken anders gezeichnet wurden, schrumpfte der Hintergrund auf knapp 3 KB. Die Lavaströme sind übrigens senkrechte Spalten mit rotem Bett und gelbem Kern.

Feedback hilft. Nach der Veröffentlichung meldete ein Tester, der Core der ZX Spectrum Next sei flott, aber Kollisionen, vor allem beim Springen, fühlten sich unfair an. Er hatte recht. Die Hauptschleife prüfte Zusammenstöße an Positionen, die der Spieler noch nie gesehen hatte. Jack bewegt sich im Sprung bis zu 12 Pixel pro Schritt, man starb also, obwohl auf dem Bildschirm noch eine Lücke war.
Version 1.1 prüft jetzt direkt nach dem Zeichnen, also auf dem, was ihr tatsächlich seht. Außerdem hat jeder Gegnertyp sein eigenes, kleineres Trefferfenster. Ein Sucher ist schließlich nur 7 bis 9 Pixel hoch. Dazu kommt ein Ausgleichsmechanismus gegen Ruckeln auf langsameren Systemen. Die Rückmeldung vom N-GO danach: Lag-Ziffer immer 2, Bewegung flüssiger, und endlich ein Spiel, das nicht die Ressourcen auffrisst.
Das Spiel läuft nachweislich im Emulator sQLux, auf dem MiSTer (QL-Core mit QL-SD-ROM) und auf dem QLCore der ZX Spectrum Next beziehungsweise der N-GO.
FUSE RUNNER auf dem MiSTer: in drei Schritten
- Passendes ROM herunterladen: Das Archiv MiSTer_QL_OS_qlsd109.zip enthält QL-Betriebssystem-ROMs mit QL-SD-Treiber (JS und Minerva, auch in deutscher Version). Entpacken und eine der ROM-Dateien auswählen.
- WIN-Datei auf den MiSTer kopieren: Die Datei
fuserunner.win(zu finden bei den GitHub-Releases) und die ROM-Datei in den Ordner/media/fat/QLauf der SD-Karte des MiSTer legen. - WIN-Datei einbinden: QL-Core starten und mit F12 das Menü öffnen. Unter „Mount HD image“ die Datei
fuserunner.winauswählen, unter „Load OS ROM“ das ROM. CPU-Speed auf „QL“ stellen, RAM auf mindestens 256 KB (zum Beispiel 640 KB), dann den Core zurücksetzen. Sobald die Datei eingebunden ist, startet FUSE RUNNER automatisch.
Tipp: Benennt ihr die WIN-Datei im QL-Ordner in boot.vhd um, wird sie beim Start des Cores automatisch eingebunden. Heißt die ROM-Datei zusätzlich boot.rom, wird auch sie ohne Menü geladen.

Conclusion
FUSE RUNNER ist ein kleines, flottes Arcade-Spiel, das zeigt, was im QL steckt: bunte Hintergründe, flüssige 25 Bilder pro Sekunde und eine Steuerung, die sich nach ein paar Minuten richtig gut anfühlt. Gleiten, springen, die brennende Bombe zuerst. Mehr braucht es nicht für „Noch eine Runde!“
Und für mich war es der Beweis, dass ein Assembler-Projekt für den QL heute mit KI-Unterstützung machbar ist, auch wenn die Ideen, das Testen und die Entscheidungen bei mir lagen. Das Spiel ist komplett kostenlos. Auf Spenden verzichte ich bewusst. Ladet es euch einfach herunter und spielt es.
Für alle, die den Code interessiert: Der komplette Quelltext liegt unter MIT-Lizenz auf GitHub: Jungsis-Corner/fuserunner – Bomb-Jack-artiges Spiel für den Sinclair QL, geschrieben in 68000-Assembler. Dort findet ihr auch die Releases mit der fertigen WIN-Datei.
Und es bleibt nicht bei einem Spiel: Ein weiteres steckt gerade im Endspurt des Playtests, und für das dritte entsteht aktuell das Grundgerüst. Es lohnt sich also, hier vorbeizuschauen.

![FUSE RUNNER [Sinclair QL]](https://www.jungsi.de/blog/wp-content/uploads/12_loading_screen-1024x750.png)






Leave a Reply