Joshua Barretto
Hintergrund

Ein unmöglicher Port: «Super Mario 64» auf dem Game Boy Advance

Ein Softwareentwickler tüftelt in seiner Freizeit an einem Port von «Super Mario 64» für den Game Boy Advance. Sein Antrieb für dieses vermeintlich unmögliche Unterfangen: Beweisen, dass es eben doch geht.

«Super Mario 64» ist ein Meilenstein der Gaming-Geschichte. Dem revolutionären Plattformer gelang es 1996, das klassische Jump'n'Run-Gameplay von 2D-Mario-Spielen in die dritte Dimension zu übersetzen. Die intuitive Steuerung im dreidimensionalen Raum und die wunderschönen 3D-Grafiken sorgten bei Nintendo-Fans für offene Münder.

«Super Mario 64» setzte neue Massstäbe für 3D-Gamedesign.
«Super Mario 64» setzte neue Massstäbe für 3D-Gamedesign.
Quelle: Nintendo

Softwareentwickler Joshua Barretto hat es sich zum Ziel gesetzt, das legendäre 3D-Spiel auf den Game Boy Advance (GBA) zu portieren. Auf ein System ohne dedizierte 3D-Hardware und ohne die nötige Rechenleistung, um solch komplexe Landschaften und Charaktermodelle darstellen zu können.

«Du bist verrückt, das ist unmöglich» – so lauteten die ersten Reaktionen aus der GBA-Entwicklerszene, als Joshua sein Projekt angekündigt hat. Nun will er beweisen, dass dieses unmögliche Vorhaben doch irgendwie möglich ist.

Ich habe mich mit Joshua über seine Beweggründe, den technischen Hintergrund und seine zukünftigen Pläne zum Projekt ausgetauscht.

Spoiler: So sieht der aktuelle Stand von Joshuas Projekt aus.
Spoiler: So sieht der aktuelle Stand von Joshuas Projekt aus.
Quelle: Joshua Barretto

Der erste Prototyp sorgt für Aufsehen

Joshua ist mittlerweile fast 30 Jahre alt und schon seit langer Zeit Nintendo-Fan. In den frühen Nullerjahren war er stolzer Besitzer von Nintendos lilafarbenem Handheld. Er hat sich damals gewünscht, auf seinem GBA «Super Mario 64» spielen zu können. Joshua erinnert sich: «Ich habe sogar naiverweise in Erwägung gezogen, eine Petition für eine Portierung an Nintendo zu stellen». Seinen Traum von «Super Mario 64» auf dem GBA verwirklicht sich Joshua rund zwanzig Jahre später selbst.

Am 8. Mai 2024 veröffentlicht der Softwareentwickler auf seinem Youtube-Kanal ein erstes Video zu seinem «Super Mario 64»-Projekt für den GBA. Darin zu sehen ist das Anfangsgebiet des Spiels mit Peachs Schloss und Garten. Ein kleines rotes Dreieck rennt und hüpft durch die Gegend. Der Prototyp läuft mit einer niedrigen Framerate, die Texturen und die Geometrie verzerren die leere Landschaft bei der kleinsten Bewegung zu abstrakten Kunstwerken. Aber der Prototyp funktioniert – inklusive Kollisions- und Physiksystem.

Das Video verbreitet sich schnell in der Retro- und GBA-Entwicklerszene. Eben jener Szene, die ihm von diesem Unterfangen abgeraten hat, weil es «unmöglich» sei. Das hat den Softwareentwickler damals nicht abgeschreckt. Im Gegenteil, es hat ihn angespornt: «Ich liebe es, Hypothesen aufzustellen und zu widerlegen».

Stetiger Fortschritt

Für die nächsten Updates konzentriert sich Joshua auf das Charaktermodell und technische Optimierungen. Das abstrakte Dreieck als Spielcharakter ist Geschichte. Jetzt rennt ein «echter» Mario durch die pixelige Gegend – auch wenn er noch nicht animiert ist und lediglich in der T-Pose verharrt. Neu kann man auch das innere von Peachs Schloss sowie das erste Level des Spiels erkunden. Das Spiel läuft indessen auch deutlich geschmeidiger. In gewissen Spielszenen erreicht Joshua bis zu 30 FPS.

Für das Projekt benutzt Joshua die Rust-Programmiersprache. Den gesamten Code hat er von Grund auf neu geschrieben – es handelt sich also streng genommen nicht um einen «Port», sondern um ein von Grund auf neu entwickeltes Remake für den GBA. Wobei der Begriff «Demake» aufgrund der technischen Limitationen der Hardware besser passt.

Es sei unglaublich schwierig, ein solch komplexes 3D-Game ohne Grundlage komplett neu für Nintendos kleinen Handheld zu entwickeln. Die Hardware habe viele Limitationen, um die Joshua herumprogrammieren muss. Der GBA unterstütze in seiner Berechnungslogik keine Gleitkomma-, sondern nur ganze Zahlen. Der Handheld habe zudem keine dedizierte 3D-Hardware, weshalb alles Pixel für Pixel gerendert werden muss – so wie es beispielsweise bei «Doom» und «Quake» der Fall war:

Ebenfalls Probleme verursachen die niedrige RAM-Menge (32 KB schneller Speicher, 256 KB langsamer Speicher) sowie die schwache Rechenleistung des Systems: «Der GBA ist locker mehrere tausend Mal langsamer als ein heutiger Mittelklasse-Laptop».

Sein grosses Know-How im Bereich der GBA-Hardware hat Joshua diversen Vorreitern in der GBA-Entwicklerszene zu verdanken: «Ich möchte Projekten wie OpenLara und Leuten wie 3DSage dafür danken, dass sie der Welt gezeigt haben, was mit modernem Wissen auf dem GBA möglich ist».

Im GBA schlummern trotz grosser Limitationen ungeahnte Kräfte.
Im GBA schlummern trotz grosser Limitationen ungeahnte Kräfte.
Quelle: Shutterstock

Trotz dieser Limitationen schafft es Joshua innert kürzester Zeit, signifikante Fortschritte zu machen. Rund einen Monat nach dem Start des Projekts rennt Mario schon mit echten Animationen durch die Welt. Der Klempner hat zudem einen Teil seines Movesets aus dem Originalspiel wieder gelernt. Hechtsprünge, Vorwärts- und Rückwärtssaltos, lange Sprünge, Dreifachsprünge – das sieht schon sehr nach dem «echten» Game aus! Auch die Framerate ist dank diverser Optimierungen im Hintergrund um einiges stabiler und höher.

Der aktuelle Stand und ein Blick in die Zukunft

Im neuesten Update hat Joshua an weiteren Inhalten gearbeitet. Neu gibt es im Spiel sammelbare Sterne und funktionierende Türen, die den Klempner in verschiedene Levels transportieren. Mario hat zudem weitere Moves gelernt (Ground Pound, Wall Sliding und Wall Jumping) und bewegt sich dank flüssigerer Animationen und besserer Kamera viel natürlicher durch die Spielumgebung.

Joshua gibt sich aber noch nicht zufrieden: «Das Hinzufügen komplexerer Elemente wie Gegner wird der nächste Schritt sein. Aber es bleibt abzuwarten, ob sie in das Leistungsbudget passen werden».

Um weitere Elemente einbauen zu können, arbeitet Joshua im Hintergrund fleissig weiter an der Optimierung des Spiels. So besteht das aktuelle Mario-Modell lediglich aus 134 Dreiecken – das Original auf dem N64 hatte satte 764 Dreiecke. Joshua versichert mir, dass das Spiel in der aktuellen Fassung tatsächlich auf Original-GBA-Hardware läuft: «Auf dem GBA sieht es sogar noch besser aus, weil das LCD einen «Ghosting»-Effekt hat, der dafür sorgt, dass aufeinanderfolgende Frames ineinander verschmelzen. So spielt sich das Ganze noch flüssiger».

So sieht Joshuas Mario-Modell aus.
So sieht Joshuas Mario-Modell aus.
Quelle: Joshua Barretto

Das komplette «Super Mario 64»-Spiel mit allen Levels und Funktionen möchte der Softwareentwickler aber nicht replizieren: «Mein Ziel ist es zu beweisen, dass es grundsätzlich machbar ist» erklärt Joshua. Wenn das klappt, könne er sich vorstellen, mit der erarbeiteten Grundlage ein komplett neues 3D-Spiel für den GBA zu schreiben: «Ich bin ein grosser Fan von Open-World-Spielen, und ich denke, dass eine grosse offene Welt auf dem GBA eine beeindruckende Demonstration dessen wäre, was die Konsole wirklich leisten kann, wenn sie an ihre Grenzen gebracht wird».

Besonders spannend findet Joshua Voxel-Engines – er könne sich deshalb vorstellen, als Nächstes an einem «Minecraft»-Demake für den GBA zu arbeiten. Erfahrung mit offenen Spielwelten in Voxel-Optik hat Joshua schon gesammelt. Er arbeitet seit längerer Zeit am Open-World-RPG «Veloren», das du für Windows, Mac und Linux kostenlos herunterladen kannst.

«Veloren» sieht ziemlich hübsch aus.
«Veloren» sieht ziemlich hübsch aus.
Quelle: Joshua Barretto

Dass Joshua das «Super Mario 64»-Projekt irgendwann veröffentlicht, sei unwahrscheinlich: «Nintendo schützt sein geistiges Eigentum sehr streng, daher kann ich nichts mit Nintendo-Assets verbreiten. Trotzdem werde ich den Quellcode bereinigen und veröffentlichen, damit andere davon lernen oder das Spiel kompilieren können, um es selbst zu spielen».

Titelbild: Joshua Barretto

46 Personen gefällt dieser Artikel


Diese Beiträge könnten dich auch interessieren

  • Hintergrund

    Warum der DS der erfolgreichste Handheld aller Zeiten ist

    von Cassie Mammone

  • Hintergrund

    3D-Plattformer: Vom Durchbruch in die dritte Dimension, zum Fall in die Bedeutungslosigkeit

    von Cassie Mammone

  • Hintergrund

    Happy Birthday «Mario Kart 8» – das beste «Mario Kart» aller Zeiten wird zehn Jahre alt

    von Domagoj Belancic

Kommentare

Avatar