Raspberry Pi: Star-Fox-Klon läuft auf Bare Metal
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.
- Anzeige Hier geht es zum Handbuch für Softwareentwickler bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.



