What is this?
papermario is an ongoing project to reverse-engineer the source code for Paper Mario on the Nintendo 64. The game's assembly code is manually decompiled into C source code. The project also extracts game assets (such as backgrounds, sprites, maps, and text) from an original game copy into more modern formats. The C code and assets can then be recompiled to create a 1-to-1 ("matching") copy of the game.
Why?
Different contributors have their own reasons for decompiling Paper Mario. These include:
- Preserving the game
- Learning more about how the game was engineered
- Helping speedrunners and glitch-hunters understand why bugs occur
- Making engine mods easier to create
- Enjoying decompilation in and of itself
How completed is it?
We've reached 100% with the US, PAL, and iQue Player versions of the game. We are currently working on full support for the remaining versions of the game, asset support, and more.
You've reached 100%! Congratulations!
It's been an incredible journey so far. Although our progress graph shows 100%, this is only one way of measuring the progress of the project. We still have more work planned to make the project the best that it can be.
What other areas of the project still need work?
Although we have reached 100% on the US, PAL, and iQue Player versions, there are still many areas of the project that need work. These include:
- Assets: Although many assets are properly handled and are moddable, there are still a few assets that are not properly being extracted and rebuilt in a way that would allow for modding efforts.
- Codebase modernization: We plan to add QOL features to the codebase so the code is as nice as it can be while still compiling to match the original assembly.
- Documentation: Many variables, functions, enum values, and more are not yet named or documented.
- Other versions: The remaining versions of the game have not yet been fully matched, and we plan to support all releases of the game.
PC Port?
There's a lot of people interested in playing a PC port of Paper Mario. Unfortunately, making a port isn't our focus. Porting the game isn't why we made the decomp project, and it's not a motivating factor in delving into this game. We have so many exciting goals for the project including decompiling other versions, making modding easier, and further understanding and documenting the codebase; making a port isn't really on our radar.
Can I make mods with this?
Yes. However, we're still working out issues with modding support, so please bear with us. Although the main repo is suitable for modding, Alex has started a fork of the main decomp repo, papermario-dx, which aims to provide a more convenient base for creating mods.
How can I help contribute?
There plenty of ways to get involved, not limited to helping with asset support, documentation, and code cleanup. Please feel free to get involved!
Setup instructions›
Github issues ›
To get involved, please
Join our Discord server ›