Original-URL des Artikels: https://www.golem.de/news/raspberry-pi-star-fox-laeuft-auf-bare-metal-1406-107479.html    Veröffentlicht: 26.06.2014 10:03    Kurz-URL: https://glm.io/107479

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.

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.

<#youtube id="-5n9IxSQH1M">

Dafür brauchte das Studenten-Team mehr als 5.900 Zeilen Code. 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, 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, 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 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.  (jt)


Verwandte Artikel:
Spieletest: Starfox Command - Handliche SciFi-Action   
(07.02.2007, https://glm.io/50384 )
Raspad: Raspberry Pi kommt ins Bastel-Tablet-Gehäuse   
(06.03.2018, https://glm.io/133180 )
MenuetOS: In Assembler geschriebenes Betriebssystem   
(20.08.2009, https://glm.io/69201 )
i3.metal: AWS bietet Bare-Metal System mit 72 Threads in der Cloud an   
(29.11.2017, https://glm.io/131380 )
Bastelrechner Eagleye 530s: Zigbee und Flash-Speicher im Raspberry-Pi-Format   
(01.03.2018, https://glm.io/133078 )

© 1997–2020 Golem.de, https://www.golem.de/