Archived as of Feb 16, 2023
Smaghetti is no longer worked on by me (Matt Greer). I would love to, but I just don't have the time anymore. The remaining things that Smaghetti needs are really big and hard, and the tiny pockets of free time here and there I have just don't work for that, as much as I have tried.
If you want to pick up Smaghetti, feel free to fork this repo. I will be available with any questions about its codebase.
The Smaghetti website will remain up for one more year, and taken down on February 17, 2024.
Smaghetti - SMA4 Level Editor
This is a web based level editor for the game Super Mario Advance 4: Super Mario Bros 3 for the Game Boy Advance.
It's available here: https://smaghetti.com
Smaghetti at this point is pretty far along. The roadmap marks it as being alpha quality, mostly because several big features are missing from the editor.
At the time of writing, 425 entities and 42 backgrounds exist in Smaghetti. That represents almost every item/enemy/terrain/etc in the game. There aren't many left that need to be added. Mostly what is missing -- entity wise -- are "meta" controls such as sprites that influence auto scrolling and things related to platforms that ride on tracks. You can create a rather nice level these days, and many people have.
Editor quick start
The editor is at https://smaghetti.com/editor
It is very user friendly and takes loose inspiration from Nintendo's Mario Maker.
Proper documentation and tutorial videos will come later, but for now just start playing with it, most people have been able to figure it out. If you get stuck, start a discussion here in the repo. I always welcome feedback to make things better.
Smaghetti is Affero GPL licensed. See the LICENSE file. Since Smaghetti is based on someone else's IP, keeping it fully open sourced as much as possible seems like the right thing to do.
Also see the licenses directory for third party licenses.
A lot more work needs to be done, help is awesome! Here are ways to help
The discussions are now where most reverse engineering talk is taking place. There is also the wiki and issues.
This tool is growing to be pretty powerful. It really lets you explore and manipulate a level. I need to document a bit how it works, but just playing with it should enable one to figure out most of its features.
It is here: https://smaghetti.com/tools/hex-tree
There are some other minor tools listed here too: https://smaghetti.com/tools
PRs are welcome, but please open an issue and discuss with me first before starting any work. That way no one does any wasted effort. The code is pretty messy and in many parts of the codebase I'm more focused on figuring stuff out than creating clean code. So I am refactoring pretty often. I'd hate to merge a refactor that really harms someone else's PR.
If you want to contribute code changes, the development guide is a good read to get to know how things work.
Discord server is here: https://discord.gg/95W9knXe3x
Code of Conduct
Smaghetti's code of conduct can be read here. In short: be inclusive, be nice, don't ask for or share any copyrighted items including ROMs and e-reader levels.