Your data. Your choice.

If you select «Essential cookies only», we’ll use cookies and similar technologies to collect information about your device and how you use our website. We need this information to allow you to log in securely and use basic functions such as the shopping cart.

By accepting all cookies, you’re allowing us to use this data to show you personalised offers, improve our website, and display targeted adverts on our website and on other websites or apps. Some data may also be shared with third parties and advertising partners as part of this process.

Joshua Barretto
Background information

The impossible port: Super Mario 64 on the Game Boy Advance

Domagoj Belancic
14/7/2024
Translation: Katherine Martin

A software developer’s working on a port of Super Mario 64 for the Game Boy Advance in his spare time. The motivation behind this seemingly impossible endeavour? To prove it really can be done.

Super Mario 64 is a milestone in gaming history. In 1996, the revolutionary platformer succeeded in translating the classic jump 'n' run gameplay of 2D Mario games into the third dimension. Its intuitive controls in 3D space and beautiful 3D graphics left Nintendo lovers’ jaws on the floor.

Software developer Joshua Barretto has made it his mission to port the legendary 3D game to the Game Boy Advance (GBA). All on a system with no dedicated 3D hardware, lacking the necessary computing power to display the game’s complex landscapes and character models.

When Joshua announced the project, the GBA developer scene initially reacted with comments like «you’re crazy, it’s impossible». Now, he’s keen to prove that this impossible endeavour can somehow be done.

I spoke to Joshua about his motivation, the port’s technical background and his future plans for the project.

The early prototype made quite the splash

Now almost 30 years old, Joshua’s been a Nintendo fan for a long time. In the early noughties, he was the proud owner of one of Nintendo’s iconic purple handhelds. Back then, he wished he could play Super Mario 64 on his GBA. Joshua recalls: «I even naively considered starting a petition for Nintendo to make a port.» Some twenty years later, Joshua’s made his dream of bringing Super Mario 64 to the GBA a reality.

The video spread quickly through the retro and GBA developer scene. Notably, the very scene that advised him against taking on the «impossible» project. Joshua was undeterred. In fact, the developers’ scepticism spurred him on: «I love suggesting and disproving hypotheses.»

Constant progress

Joshua uses the programming language Rust for the project. He wrote the entire code from scratch, so, strictly speaking, the game isn’t a port – it’s a remake developed from scratch for the GBA. That said, given the technical limitations of the hardware, the term «demake» is more fitting.

According to Joshua, it’s incredibly difficult to develop such a complex 3D game from scratch for the GBA without a foundation. The hardware has numerous limitations that Joshua has to programme around. Plus, the GBA doesn’t support floating point numbers in its calculation logic, only whole numbers. The handheld doesn’t have any dedicated 3D hardware either, so everything has to be rendered pixel by pixel. This was also the case with games like Doom and Quake:

The low amount of RAM (32 KB fast memory, 256 KB slow memory) and the system’s weak computing power also cause problems: «The GBA is easily several thousand times slower than a current mid-range laptop.»

Joshua owes his wealth of expertise in GBA hardware to various pioneers in the GBA development scene: «I want to thank projects like OpenLara and people like 3DSage for showing the world what’s possible on the GBA with what we know today.»

Current status and future plans

In the latest update, Joshua’s worked on some additional content. The game now features collectable stars and functioning doors that transport Mario to different levels. Mario’s also learnt extra moves (ground pound, wall sliding and wall jumping) and moves much more naturally through the game environment thanks to smoother animations and a better camera.

Joshua, however, isn’t quite satisfied yet: «The next step will be adding more complex elements such as opponents. But I’ll need to wait and see whether there’s room in the performance budget for them.»

It’s unlikely that Joshua will ever release his Super Mario 64 project: «Nintendo’s very protective of its intellectual property, so I can’t distribute anything that includes Nintendo assets. What I will do is clean up the source code and publish it so that other people can learn from it or compile the game to play it themselves.»

Header image: Joshua Barretto

46 people like this article


User Avatar
User Avatar

My love of video games was unleashed at the tender age of five by the original Gameboy. Over the years, it's grown in leaps and bounds.


Background information

Interesting facts about products, behind-the-scenes looks at manufacturers and deep-dives on interesting people.

Show all

These articles might also interest you

  • Background information

    40 years of Super Mario Bros.: reminiscing about our first time with the iconic plumber

    by Rainer Etzweiler

  • Background information

    The history of "Donkey Kong": Highs and lows of Nintendo's favourite gorilla over the last 44 years

    by Cassie Mammone

  • Background information

    What we know about the new Mario Kart World for the Switch 2

    by Debora Pape