Joshua Barretto
Achtergrond

Een onmogelijke port: "Super Mario 64" op de Game Boy Advance

Domagoj Belancic
14/7/2024
Vertaling: machinaal vertaald

Een softwareontwikkelaar werkt in zijn vrije tijd aan een port van "Super Mario 64" voor de Game Boy Advance. Zijn motivatie voor deze zogenaamd onmogelijke onderneming: Bewijzen dat het toch mogelijk is.

"Super Mario 64" is een mijlpaal in de gamegeschiedenis. In 1996 slaagde de revolutionaire platformgame erin om de klassieke platformgameplay van 2D Mario-spellen te vertalen naar de derde dimensie. De intuïtieve besturing in de driedimensionale ruimte en de prachtige 3D-graphics lieten Nintendo-fans met open mond staan.

Softwareontwikkelaar Joshua Barretto heeft zich ten doel gesteld het legendarische 3D-spel over te zetten naar de Game Boy Advance (GBA). Op een systeem zonder speciale 3D-hardware en zonder de benodigde rekenkracht om zulke complexe landschappen en karaktermodellen weer te geven.

"Je bent gek, het is onmogelijk" - dat was de eerste reactie van de GBA-ontwikkelaars toen Joshua zijn project aankondigde. Nu wil hij bewijzen dat deze onmogelijke onderneming op de een of andere manier toch mogelijk is.

Ik sprak met Joshua over zijn motivaties, de technische achtergrond en zijn toekomstplannen voor het project.

Spoiler: Dit is de huidige status van Joshua's project.
Spoiler: Dit is de huidige status van Joshua's project.
Bron: Joshua Barretto

Het eerste prototype zorgt voor opschudding

Joshua is nu bijna 30 jaar oud en is al heel lang een Nintendo-fan. In het begin van de jaren negentig was hij de trotse eigenaar van Nintendo's paarse handheld. In die tijd wenste hij dat hij "Super Mario 64" op zijn GBA kon spelen. Joshua herinnert zich: "Ik heb zelfs naïef overwogen om een verzoekschrift in te dienen bij Nintendo voor een port. Joshua realiseerde zijn droom om "Super Mario 64" zelf op de GBA te spelen zo'n twintig jaar later.

Op 8 mei 2024 publiceerde de softwareontwikkelaar de eerste video van zijn "Super Mario 64"-project voor de GBA op zijn Youtube-kanaal. De video toont het openingsgebied van het spel met het kasteel en de tuin van Peach. Een klein rood driehoekje rent en springt door het gebied. Het prototype draait op een lage framerate, de texturen en geometrie vervormen het lege landschap tot abstracte kunstwerken bij de minste beweging. Maar het prototype werkt - inclusief het botsings- en fysicasysteem.

De video verspreidt zich snel in de retro- en GBA-ontwikkelaarsscene. Dezelfde scène die hem deze onderneming afraadde omdat het "onmogelijk" was. Dit heeft de softwareontwikkelaar destijds niet afgeschrikt. Integendeel, het stimuleerde hem juist: "Ik hou ervan om hypotheses te maken en te ontkrachten".

Continue vooruitgang

Voor de volgende updates concentreert Joshua zich op het karaktermodel en technische optimalisaties. De abstracte driehoek als spelfiguur is verleden tijd. Nu rent er een "echte" Mario door de gepixeleerde buurt - ook al is hij nog niet geanimeerd en blijft hij alleen in de T-houding staan. Je kunt nu ook de binnenkant van Peachs kasteel en het eerste level van het spel verkennen. Het spel loopt ook veel soepeler. In bepaalde spelscènes haalt Joshua wel 30 FPS.

Joshua gebruikt de programmeertaal Rust voor het project. Hij heeft de hele code vanaf nul geschreven - dus strikt genomen is het geen "port", maar een remake die vanaf nul is ontwikkeld voor de GBA. Hoewel de term "demake" meer op zijn plaats is vanwege de technische beperkingen van de hardware.

Het is ongelooflijk moeilijk om zo'n complex 3D-spel vanaf nul te ontwikkelen voor Nintendo's kleine handheld. De hardware heeft veel beperkingen waar Joshua omheen moet programmeren. De berekeningslogica van de GBA ondersteunt geen drijvende komma getallen, alleen hele getallen. De handheld heeft ook geen speciale 3D-hardware, daarom moet alles pixel voor pixel worden gerenderd - zoals bijvoorbeeld het geval was bij "Doom" en "Quake":

De lage hoeveelheid RAM (32 KB snel geheugen, 256 KB langzaam geheugen) en de zwakke rekenkracht van het systeem zorgen ook voor problemen: "De GBA is gemakkelijk enkele duizenden keren langzamer dan een moderne laptop uit het middensegment".

Joshua dankt zijn uitgebreide expertise op het gebied van GBA-hardware aan verschillende pioniers in de GBA-ontwikkelingsscene: "Ik wil graag projecten als OpenLara en mensen als 3DSage voor het laten zien aan de wereld wat er mogelijk is met moderne kennis op de GBA".

Onvoorstelbare krachten sluimeren in de GBA ondanks de grote beperkingen.
Onvoorstelbare krachten sluimeren in de GBA ondanks de grote beperkingen.
Bron: Shutterstock

Dankzij deze beperkingen slaagde Joshua erin om in zeer korte tijd aanzienlijke vooruitgang te boeken. Ongeveer een maand na de start van het project rent Mario al rond met echte animaties. De loodgieter heeft ook een aantal van zijn movesets uit het originele spel opnieuw geleerd. Snoeksprongen, voorwaartse en achterwaartse salto's, lange sprongen, driedubbele sprongen - het lijkt al veel op het "echte" spel! De framerate is ook een stuk stabieler en hoger dankzij verschillende optimalisaties op de achtergrond.

De huidige status en een blik in de toekomst

In de laatste update heeft Joshua gewerkt aan meer content. Het spel bevat nu verzamelbare sterren en werkende deuren die de loodgieter naar verschillende levels brengen. Mario heeft ook meer bewegingen geleerd (Ground Pound, Wall Sliding en Wall Jumping) en beweegt zich veel natuurlijker door de spelomgeving dankzij vloeiendere animaties en een betere camera.

Joshua is echter nog niet tevreden: "Het toevoegen van complexere elementen zoals vijanden zal de volgende stap zijn. Maar het is nog maar de vraag of die in het prestatiebudget passen."

Om nog meer elementen te kunnen inbouwen, blijft Joshua op de achtergrond ijverig werken aan het optimaliseren van het spel. Het huidige Mario-model bestaat bijvoorbeeld uit slechts 134 driehoeken - het origineel op de N64 had maar liefst 764 driehoeken. Joshua verzekert me dat de huidige versie van het spel ook echt draait op de originele GBA-hardware: "Het ziet er nog beter uit op de GBA omdat het LCD-scherm een "ghosting" effect heeft waardoor opeenvolgende frames in elkaar overlopen. Hierdoor speelt het geheel nog vloeiender".

Zo ziet Joshua's Mario-model eruit.
Zo ziet Joshua's Mario-model eruit.
Bron: Joshua Barretto

De softwareontwikkelaar wil echter niet het complete "Super Mario 64"-spel met alle levels en functies nabootsen: "Mijn doel is om te bewijzen dat het in principe haalbaar is", legt Joshua uit. Als dit lukt, kan hij zich voorstellen dat hij de basis die hij heeft ontwikkeld gebruikt om een compleet nieuw 3D-spel voor de GBA te schrijven: "Ik ben een grote fan van open-wereld spellen, en ik denk dat een grote open wereld op de GBA een indrukwekkende demonstratie zou zijn van wat de console echt kan als het tot het uiterste wordt gedreven."

Joshua vindt voxel engines bijzonder opwindend - hij zou zich dan ook kunnen voorstellen dat hij hierna aan een "Minecraft"-demake voor de GBA werkt. Joshua heeft al ervaring opgedaan met open spelwerelden in voxel optics. Hij werkt al enige tijd aan de open-wereld RPG "Veloren", die je gratis kunt downloaden voor Windows, Mac en Linux.

Het is onwaarschijnlijk dat Joshua het Super Mario 64-project ooit zal uitbrengen: "Nintendo is erg beschermend over zijn intellectuele eigendom, dus ik kan niets distribueren met Nintendo-activa. Desondanks zal ik de broncode opschonen en publiceren, zodat anderen ervan kunnen leren of het spel kunnen compileren om het zelf te spelen." <p

Omslagfoto: Joshua Barretto

46 mensen vinden dit artikel leuk


Deze artikelen kunnen je ook interesseren

  • Achtergrond

    Waarom de DS de succesvolste handheld aller tijden is

    van Cassie Mammone

  • Achtergrond

    3D-platformers: van een doorbraak naar de derde dimensie tot een val in het niets

    van Cassie Mammone

  • Achtergrond

    Gefeliciteerd met "Mario Kart 8" - de beste "Mario Kart" aller tijden wordt tien jaar oud

    van Domagoj Belancic

Opmerkingen

Avatar