Gerade habe ich mit KI-Unterstützung Star Fox Enhanced auf PortMaster gebracht. Das ist nach meiner bezahlten App Router Monitor für iOS mein nächstes KI‑Projekt gewesen. Auch hier wäre ohne die Open-Source-Vorarbeit anderer nichts daraus geworden.
Warum das Spiel Starfox bzw. Starwing?
Ich war damals 1993 ein Riesenfan des Nintendo-Sternenshooters mit dem Fuchs. Es war durch den Super-FX‑Chip auf dem Modul das erste Spiel mit echter 3D-Polygongrafik auf dem Super Nintendo und somit bei mir zu Hause auf dem Fernseher. Das Intro, die Musik, der Sound und die anspruchsvolle, kurzweilige Action waren voll mein Ding.
Leider lief das Spiel nur mit 20 FPS. Ja, wirklich. Das ist weniger als Kinofilme und die ruckeln ja schon.
Was hinter dem Starfox-Port steckt
Normalerweise spielen wir Retrospiele im Emulator, der die alte Hardware nachbildet. Star Fox, bei uns als Starwing erschienen, nutzte 1993 dafür auch den Super-FX-Chip im SNES-Modul. Emulation allein liefert noch keine flüssigen 60 FPS.
Eine Dekompilierung rekonstruiert Quellcode aus einem Programm, aber nicht automatisch den ursprünglichen Text der Entwickler. Manche Projekte können daraus wieder eine bytegleiche ROM bauen. Die Portierung auf andere Hardware bleibt eigene Arbeit – wie bei Mario Kart 64 auf der Dreamcast. Das ist übrigens legal, weil das Spiele-ROM beim Port genutzt wird, um Grafiken, Sound und Level zu extrahieren. Ohne das Spiel, ist der Port wertlos.
Meine Grundlage war der bestehende C++-Port StarFox Enhanced. Er verbindet nativ ausgeführten Code mit emulierten Komponenten, etwa für Teile der Spiellogik und den Sound. Die Aufgabe war also, diese Version auf der Low-End-Hardware eines Retro-Handhelds zum Laufen zu bekommen, in dem die AI so lange selbst direkt auf dem Gerät optimiert, bis es flüssig läuft. Das Ergebnis ist der ARM64-Port für PortMaster namens Sternenfuchs.
Was kostet so ein Port über AI und wie organisierst du das?
Ich zahle für Claude Pro und für ChatGPT Plus jeweils ungefähr 20 EUR im Monat. Mehr nicht. Wenn die Limits bei der einen AI erreicht sind, übernimmt die andere. Das funktioniert über eine saubere Dokumentation direkt in den GitHub-Repositories über menschenlesbare Formate wie AGENTS.md und ähnliche Dokumente. Dadurch behalte ich selbst den Überblick und kann nahtlos zwischen den beiden Systemen wechseln. Außerdem können ChatGPT und Claude ohne die nativen Apps auch direkt mit GitHub kommunizieren. Das heißt, wenn die ChatGPT‑App ihr Limit erreicht hat, kann ich in der Regel noch etwas über den Code sprechen. Somit sind die finanziellen Aufwände sehr überschaubar. Denn das Projekt hier lief nur über 2 Tage und war dann freigeschaltet bei Portmaster.
Hört auf herumzuweinen: KI ist super!
Ja, ich rede mit euch, ihr Ludditen – den modernen Maschinenstürmern der KI-Ära. Wir Xennials hatten das Glück, den Aufstieg des Internets mitzuerleben. Jetzt kommt KI, und einige erklären vor allem, warum das nichts werden kann. Dabei werden gerade aberwitzige Dinge machbar. Es liegt an uns, das Beste daraus zu machen. Meckern hilft nicht. So, weiter im Text.
Open Source ist der Schlüssel für KI
Ohne Quelloffene Software wäre ein Projekt wie Sternenfuchs niemals möglich gewesen. Die Kette der Projekte sieht so aus:
- Argonaut Star Fox Source-Leak
- UltraStarFox (Decompilation)
- kandowontu2/starfox-enhanced (Windows, Mac, Linux-Port)
- mtoensing/sternenfuchs (Portmaster-Port)
- PortsMaster-MV/PortMaster-MV-New Portmaster Multiverse
Die KI konnte den gesamten Quellcode lesen und verstehen. Zudem sind die Specs der Retro-Handhelds und der Firmwares wie Knulli und Software wie Portmaster ebenfalls umfassend öffentlich dokumentiert. Und deswegen ging der Port meiner Ansicht nach auch recht schnell, weil die KI nicht herumprobieren musste, sondern durch das Wissen zielstrebig Code schreiben konnte. Dieser ist natürlich ebenfalls Open-Source und ich habe schon einen Pull-Request für den Upstream-Code eingereicht, weil sich diese Optimierungen auch auf den Starfox-Enhanced-Port auswirken könnten. Good times.
Wie der Port abgelaufen ist
Zuerst habe ich mich mit ChatGPT durch den Code gearbeitet. Daraus entstand eine AGENT_TASK.md mit einem Plan für den Anbernic RG40XX H. Mit Claude ging es an die Umsetzung: Erst sollten Menü, Controller, Ton und ein Level auf dem Handheld funktionieren.
Vulkan blieb beim Port deaktiviert. Das Spiel nutzt SDL3 über eine SDL2-Kompatibilitätsschicht und die vorhandenen Bibliotheken von KNULLI und PortMaster. Die 3D-Grafik berechnet hier die CPU; OpenGL ES übernimmt über SDL die Übertragung des fertigen Bildes, die Skalierung und die Ausgabe. Dafür musste ich weder Vulkan in OpenGL übersetzen noch direkt die Hardware programmieren. Nach wenigen Stunden lief es auf dem Handheld. Über WLAN und SSH wurden die Builds aufgespielt und getestet.

Von 35 auf rund 60 FPS mit Profiling
Danach begann der längere Teil: die Optimierung. Bei den ersten Spieltests waren es etwa 35 bis 45 FPS, und vor allem ein CPU-Kern hatte zu tun. Ein eingebauter Profiler zeigte auf dem RG40XX H, wo die Zeit blieb: weniger beim eigentlichen 3D-Rasterizer als bei Spiellogik, Soundberechnung und Hintergrunddarstellung.
Sound und Teile der Bildberechnung wurden auf weitere Threads verteilt, der Datenaustausch der Spiellogik gestrafft und einige Bildoperationen mit den NEON-Vektorbefehlen der ARM-CPU beschleunigt. Danach immer wieder derselbe Ablauf: bauen, auf den Handheld kopieren, Corneria mit denselben Eingaben durchlaufen lassen und messen. Entscheidend waren auch die Zeiten zwischen den einzelnen Bildern. Der FPS-Durchschnitt allein versteckt Ruckler.
In den reproduzierbaren Corneria-Tests stieg der Durchschnitt von rund 50 auf 59,7 FPS bei 640 × 480 Pixeln Bildausgabe. Die Optimierungen verändern weder das Spieltempo noch die Taktrate der Spiellogik. Bild- und Audiodaten stimmten in den Tests bytegenau mit der seriellen Referenz überein. Genau so wollte ich KI hier einsetzen: Änderungen ausprobieren und auf echter Hardware prüfen, ob sie etwas bringen. Und zwar automatisch und über Nacht.
Ist Emulation dank Decompilation tot?
Das ist eigentlich ein Thema für einen ganzen Artikel. Aber ich würde schon sagen, dass für alle 3D-Spiele der 90er Jahre die Dekompilierung viel besser ist als reine Emulation. Für 2D-Pixelgrafik sind höhere Auflösung völlig egal und die Spiele liefen in 60 FPS. Aber Wave Race oder andere Titel sowie Rare’s Klassiker profitieren enorm davon, da sie damals kaum in hoher Auflösung laufen konnten.
Kleine Projekte, großer Impact
Projekte wie diese sind ideal, um zu lernen, wie man KI nutzen kann. Wichtig ist mir immer dabei, dass ich mir ein oder mehrere Ziele setze, die ich kurzfristig erreichen kann. Also bewusst keine komplexen Projekte, sondern etwas, das schnell geht und maximalen Impact hat. In diesem Fall können nun alle Menschen mit einem Retro-Handheld mit Portmaster Starfox in 60 FPS spielen. Und ich freue mich, dass die Downloadzahlen von Sternenfuchs sich jeden Tag erhöhen. Dank Open Source kann jetzt jeder auch auf dieser Arbeit aufbauen.
- GitHub-Repository: mtoensing/sternenfuchs
- Sternenfuchs bei Portmaster: https://portmaster.games/detail.html?name=sternenfuchs








Schreibe einen Kommentar