Mod package manager for the Paper Mario (N64) decompilation
Project description
Merlon
Merlon is a mod package manager for the Paper Mario (N64) decompilation.
Features:
- Create packages (
merlon new
) - Export package to a file for distribution (
merlon export
) - Apply distributable files to a base ROM (
merlon apply
) - Compile current package to a modded ROM (
merlon build
) - Run modded ROM in an emulator (
merlon run
) - Package dependency management (
merlon add
) - Experimental GUI support (
merlon gui
when built with--features gui
) - Experimental Python API (
pip install merlon
)
Installation
Note: If you use Windows, you will need to use WSL 2. See the decomp installation instructions for more information.
See releases for pre-built binaries.
From source
Merlon is written in Rust. To build from source, you will need to install the Rust toolchain. See rustup.rs for instructions.
Once you have the Rust toolchain installed, you can install Merlon from crates.io with:
cargo install merlon
If you have a clone of this repository, you can install Merlon with:
cargo install --path .
Supported platforms
Merlon supports all platforms that the Paper Mario decompilation supports.
- Linux
- Debian/Ubuntu
- Arch Linux
- openSUSE
- Alpine Linux
- Nix (nix-shell)
- macOS
- Windows (Windows Subsystem for Linux 2)
See the decomp installation instructions for more information.
Additionally, Merlon has a number of runtime dependencies that should be available on your PATH:
git
ninja
python3
tar
bzip2
openssl
Usage
Merlon is a command-line tool. Use merlon help
for more information.
A quick tour:
$ merlon new "My mod"
$ cd my-mod
$ merlon init
$ touch papermario/src/my-mod.c && git -C papermario add src/my-mod.c && git -C papermario commit -m "add src/my-mod.c"
$ merlon build
$ merlon export
$ merlon apply "My mod 0.1.0.merlon"
Example mods can be found at nanaian/pm-mods.
Mod file format
Merlon mods are packaged as .merlon
files. These files are encrypted using the original game ROM, and cannot be used without the original game ROM. Unencrypted, it is a BZ2-compressed tarball of git patch files that can be applied to a copy of the decomp source code. Additionally, .merlon
files contain only source code changes, so they are much smaller than the original game ROM. This means that you can use git to view the history of a mod, and to merge mods together. It also means that all mods distributed as .merlon
files are source-available. This is in contrast to other patch formats, such as Star Rod's .mod
, which distribute mods as binary patches that cannot be viewed or merged.
Legal
This application is licensed under the Mozilla Public License 2.0. See the LICENSE file for details.
Mods created with this application are not covered by this license. Mods packaged into a file with this application are encrypted using the original game ROM, and cannot be used without the original game ROM. No guarantees are made about the legality of using this application to create mods.
The authors are not affiliated with Nintendo Co., Ltd. in any way.
The PAPER MARIO trademark owned by Nintendo Co., Ltd. is used in this modding tool under the fair use doctrine, solely for the purpose of enabling users to modify the game in a transformative manner.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for merlon-1.1.0-cp37-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53cf40ae9d2ac81312337340629361d0365e54344ee75d84208aa59dc35e5f90 |
|
MD5 | a45470acbf6d642a02fe416f06f63f56 |
|
BLAKE2b-256 | c031b9ab3e872990bdd12cc6d11c4e48f2fb22b2420a2b4fbff914f5c674ed0b |
Hashes for merlon-1.1.0-cp37-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aad52380176cd3f9c02b76964aa76bf41175dab7fb98f72912e874181d2e9279 |
|
MD5 | f8c1609ca4bd469aec012227202cbb36 |
|
BLAKE2b-256 | af025be53474289d30f6e4fe41f802bb28ee3b78bee2b92e1623864d3009eb10 |
Hashes for merlon-1.1.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a0ef97af4a2c3bdedc5b0cd7294531a78f883572e1c474b4d43730904543bf8 |
|
MD5 | 57d5360d1581beb7b9f1a2c83da7ef1a |
|
BLAKE2b-256 | c31246d7cf63eaf77e8736580c3f9242480accaa4be5a2647074f54b53d39ede |
Hashes for merlon-1.1.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12103e960bd79a72efd4fb00933ab9c8a833a4713f74dbb1bb5d3a3ebbf5c5c7 |
|
MD5 | 9eb2a531186ac53f645373c158d8a678 |
|
BLAKE2b-256 | bc18819f31b7953e4bf30d3cedb9ed8b6ed271b0794574036c50ee7207b400e5 |
Hashes for merlon-1.1.0-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ab27fbe275fa77557e3aa63e1e233be605f6bf9767c6ad1eed89309271892a9 |
|
MD5 | ed2fa85e144a02b2c7495aea0a961b8c |
|
BLAKE2b-256 | b0344bec915cccf62054a8be9d1934cf0f3d4c32738ca98f02778ca7cf4f1a9e |
Hashes for merlon-1.1.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ea878a89100ca3defda2fdbbfa04ca9bcbbe173953cabeb78f23d8930bfd293 |
|
MD5 | 0e58e0d0b6b0fadeb37b695fc28b86fb |
|
BLAKE2b-256 | 25a4e5eea6f0bcb606a776c8b556b83bb8cc083c2b8395c0ec164b7fc1136f80 |
Hashes for merlon-1.1.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 263e2ecec11fdd3062dda85d9fb84e264c1f752c0a277c763ad8dd3dc85cbd81 |
|
MD5 | baad071b900bd09013b875276dde088e |
|
BLAKE2b-256 | 639044af62084748858b6352ed910418d7b1a2ed476c7fd54c97d357ff8ba862 |
Hashes for merlon-1.1.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb563fb6be65eb6f18a209e2c2fa0c0577871cc80dd3e4308837edb6a18d875c |
|
MD5 | 2694a8d3b35257235544af95cb3903d2 |
|
BLAKE2b-256 | c7c7fee92d4830a61f3bf9e8501c470d1ed2ce8ab0a3191a6e3fc35d7b944094 |
Hashes for merlon-1.1.0-cp37-abi3-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84fa891a01c2a73bb92c699910b111646eef812d4e1aac9db8c825a402fc7e0c |
|
MD5 | 747fd00e17bcb105fc895c04c736f225 |
|
BLAKE2b-256 | b5d5e7b35868f39e8b4c8050d1baed3cf1ed70c1d817b47ea3c54cb80098fe78 |
Hashes for merlon-1.1.0-cp37-abi3-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 762f6ca0c8eedf9c80722ed92792b4866693224ec30a210174cdd00999662057 |
|
MD5 | 4be89ba5828dc87c593670870f42f321 |
|
BLAKE2b-256 | 0535cc62a55b0c7d9c0fdb918757a19aea6ba06ad11b4728d9eb41ed2f91fee4 |