About Smaghetti

Super Mario Advance 4 Banner Image

Super Mario Advance 4 is the Game Boy Advance version of Super Mario Bros 3. It's a somewhat strange version of the game. It uses the graphics from the Super Mario All Stars version of SMB3 from the SNES but with various fixes and enhancements. The playfield is cramped due to the GBA's lower resolution. They added voices for Mario and Luigi that most people find annoying (myself included). It has low quality, scratchy audio that is a common plague of GBA games. So in a few key ways, it's not a great way to play SMB3. But there's more to consider.

SNES and GBA screenshots overlayed to show size difference better
SNES SMB3 and SMA4 overlayed to show the screen size difference

The GBA E-Reader

The E-Reader is a device that plugs into the GBA and allows you to swipe cards through it loading a small chunk of data. In the case of SMA4, the E-Reader was used to add 37 bonus levels to the game. These levels go above and beyond normal SMB3 by adding things from other Mario games. All in all, these E-Reader levels are really fun and a neat treasure trove of Mario goodness.The E-Reader plugged into a Game Boy Advance

E-Reader bonus level cards photo
E-Reader bonus level cards

Unused stuff found on the game cart

The E-Reader cards can hold very little data. So these levels only tell the game what should be in the level. All of the definitions for the items, enemies, etc that the levels use must be present on the cart. Presumably in preparation for even more E-Reader levels, the SMA4 cart contains various items, gizmos and enemies that went completely unused by Nintendo. This includes some pretty neat stuff, such as this fireball enemy.

One of the unused enemies found on the cart

A bit of a mixed bag

This all adds up to an interesting game. On the one hand, the tiny screen and questionable audio make it kinda lame. But the E-Reader functionality, things from other Mario games, and the unused stuff really lets it stand out. To really let this game shine, we need a level editor that lets all of this get used to its full potential ...

Making my own Mario Maker

I loved Mario Maker on the Wii U! But I also found it frustrating how difficult it was to share and find levels. Mario Maker on the Switch isn't really any better, and not having things like a keyboard and mouse makes designing levels more tedious than it needs to be.

I thought how cool would it be if you could just send someone a URL of a level you made? People could easily share levels on social media. You could make a tweet linking straight to a level you just made, everyone else would just have to click, like this!

So I started building my own, web based, Mario Maker clone called Jump Club.

Screenshot of Jump Club
Jump Club

But after a while I realized Jump Club was just too big of a project. Making a level editor, a sharing platform and a game engine not to mention all of the graphics, animation and music is a ton of work! I decided to pivot and re-use Jump Club's editor for something else. That something else became Smaghetti.

A screenshot of Smaghetti when it first started
An early screenshot of Smaghetti showing its Jump Club roots

Standing on the shoulders of giants

To build a level editor for an existing commercial game, you need to reverse engineer it and learn how it works. In the early 2010s a whole bunch of people were digging into the game and doing just that. This group of people created documents and tools that made it much easier to start learning the workings of the game. Using this existing body of knowledge, I was able to get a huge jump start on creating Smaghetti.

Tools such as Solar Magic Advance by LuigiBlood, sma4savtool by purplebridge001, various GBA and ereader tools by CaitSith2 and others were all essential in getting Smaghetti off the ground.

GBA emulators are also important tools for Smaghetti. Smaghetti uses GBA.js to let you test out your level, a web based GBA emulator created by Endrift. Endrift also created mGBA, a native GBA emulator. I use mGBA extensively when I am working on Smaghetti.

Also want to thank those who have been directly helping with Smaghetti such as nintyalex, bumptytobumpty, mariomadproductions and others. If you've reported a bug, or contributed any knowledge to reverse engineering SMA4, thank you!

Going forward

Smaghetti is far from done (checkout the roadmap for an overview). I have a lot of big ideas for it, such as supporting Super Mario All-Stars on the SNES, building entire games rather than just E-Reader levels and more. Can't promise any of these things will actually happen, but who knows, let's see where this all goes...