Hey everyone! I wanted to share something I've been working on that I hope other people might find interesting.
About a year ago, I started working on a decompilation of the original PS1 version of Legend of Mana, and I recently reached a pretty huge milestone:
The US version is now 100% matching. 🎉
If you've never heard of decompilation before, the simplest explanation is that I took the compiled programming code from the original game and reconstructed it into readable source code. And when I say 100% matching, I mean that the reconstructed source code can be compiled back into the same machine code as the original US PS1 game. That means, there's no bugs or differences at all. It looks like a perfect replica.
That doesn't mean I've completely analyzed or understood every single piece of the game yet. There's still plenty of cleanup, documentation, naming, and analysis to do. But a lot of the code is already very readable and understandable, so it's possible to look at the source and see how many of LoM's systems actually work.
I'm currently working on doing the same thing for the JP version of the game as well.
I've also been experimenting with a native PC port based off of this. That's still very early, but the game currently gets through the intro/title flow, starts a new game, and gets as far as placing the mailbox down.
⚠️ This project isn't a ROM and doesn't distribute Legend of Mana's artwork, music, maps, or other copyrighted game data.
In order to use anything in the project, you have to actually own the game.
If you are interested, you can check it out below. And if you want to share this with other fans, feel free to do so.
GitHub: https://github.com/celophi/lom-decomp
Also, I'm really not good at YouTube videos, but here is a quick demo of me running automated tests on a possible port: https://www.youtube.com/watch?v=tnCtgiWyxc0
A few questions people might have:
Q: Why do this?
Honestly, I really liked LoM especially as a kid, and I think it's a game with a lot of potential to be even better. Having the source code opens up possibilities that would otherwise be extremely difficult.
That said, this project ended up taking a lot more time and effort than I originally envisioned when I started it about a year ago.
Q: What can we actually do with this?
This makes changing the game much easier than traditional modding. Instead of trying to patch machine code, you can change the actual C source code and rebuild the game.
So if there's something about Legend of Mana you don't like or something you've always wished worked differently it can potentially be changed. Don't like how golems work? Change them. Want the player to move faster? Change the movement speed. Want different combat mechanics, balance changes, quality-of-life features, or entirely new behavior? Those kinds of changes become much more practical when you can modify the game's source code directly.
Q: Why the PS1 version instead of the remaster?
The PS1 version is much more practical to decompile. Games 26 years ago were built with much simpler tools. Modern games have many more layers involved, which makes reproducing their code this precisely much harder.
It's also the original implementation of LoM, which makes it especially interesting to preserve and understand.
And choosing the PS1 version doesn't necessarily mean giving up the improvements from the remaster. For a separate project, it would be possible to use the original PS1 game logic as the foundation while using assets and artwork from the remaster, assuming those assets are provided from a legally owned copy. That could potentially give you the original game's logic with the remaster's higher quality visuals.
Q: I'm a dev, can I make my mod right now?
Yeah go for it! There's no modding framework yet though, but you can modify the code, and then with other tools build a PS1 image that can be loaded into an emulator.
Thanks for reading this giant post, and have a great day!! ☀️