Zum Hauptinhalt Zur Navigation

Raspberry Pi: Star-Fox-Klon läuft auf Bare Metal

Studenten haben eine Abwandlung des Nintendo-Klassikers Star Fox für das Raspberry Pi geschrieben – in Assembler. Dafür reichten weniger als 6.000 Zeilen Code.
/ Jörg Thoma
38 Kommentare News folgen (öffnet im neuen Fenster)
Der Nintendo-Klassiker Star Fox in Assembler nachgebaut (Bild: Raspberrypi.org)
Der Nintendo-Klassiker Star Fox in Assembler nachgebaut Bild: Raspberrypi.org

Der 3D-Shooter Star Fox für das Super Nintendo Entertainment System gilt als Klassiker. Studenten an der Universität College of London haben ihn jetzt für den Raspberry Pi nachgebaut. Er lässt sich dort mit einem NES-Controller steuern, der über die GPIO-Schnittstelle angeschlossen ist. Das Spiel wurde aber nicht auf Linux portiert, sondern läuft direkt auf der Hardware und wurde komplett in Assembler geschrieben.

Dafür brauchte das Studenten-Team mehr als 5.900 Zeilen Code(öffnet im neuen Fenster) . Es handelt sich um einen fast exakten Nachbau samt Software Rasterizer, 2D- und 3D-Objekten, Soundausgabe sowie einer Steuerung für den NES-Controller, die allesamt in einem Kernel-Image zusammengefasst wurden. Selbst dieses wurde in Assembler geschrieben. Das komplette Image hat etwa 3,6 MByte. Mit ihm lässt sich das Raspberry Pi starten und anschließend Star Fox spielen.

Bare-Metal-Vorlagen

Für ihr Projekt bedienten sich die Studenten Nandor Licker, Ilija Radosavovic, David Avedissian und Nic Prettejohn mehrerer Vorlagen. David Welch hat anhand verschiedener Dokumentationen zahlreiche Bare-Metal-Module für das Raspberry Pi in C entwickelt(öffnet im neuen Fenster) , die ohne die üblichen C-Bibliotheken auskommen und mit einem Cross-Compiler kompiliert werden können. Die einzelnen Beispiele laufen direkt auf dem Raspberry Pi, sozusagen als Bare-Metal-Anwendungen. Peter Lemon hat ebenfalls einige Demo-Anwendungen in Assembler geschrieben(öffnet im neuen Fenster) , mit denen das Raspberry Pi Animationen im Framebuffer-Modus darstellen kann.

In dem auf Git-Hub veröffentlichten Projekt stellte das Studenten-Team auch die Verdrahtung des NES-Controllers mit der GPIO-Schnittstelle des kleinen Rechners grafisch dar. Außerdem programmierten sie einen Emulator für ihr Spiel, der eine NES-Schnittstelle bereitstellt.

In Ihrem Blog-Post(öffnet im neuen Fenster) zu dem Projekt empfiehlt Liz Upton dem Team, sich auch den Quellcode des offenen Grafiktreibers für das Raspberry Pi anzusehen. Möglicherweise könnte die GPU statt des ARM-Prozessors als Rasterizer genutzt werden. So könnte das Spiel auch in größerer Auflösung laufen.


Relevante Themen