Skip to main content

mnlscript.py

Compiler and decompiler for the Mario & Luigi scripting language from and to Python.

Installation

pip3 install mnlscript

Usage

Bowser's Inside Story

First, you'll need mnltools.py in order to unpack and repack the ROM:

pip3 install mnltools

Then you can unpack and decompile the game:

mnl-nds-unpack bis.rom
mnlscript-bis-decompile

Afterwards, to compile and repack:

mnlscript-bis-compile [SCRIPTS TO COMPILE]
mnl-nds-pack -o bis.rom

[SCRIPTS TO COMPILE] should be a space-separated list of the scripts to compile (e.g. scripts/fevent/009c.py scripts/fevent/021d.py, or scripts/fevent/{009c,021d}.py if your shell supports it). Although you can leave this blank to recompile all scripts, this is not recommended as it is slow and unnecessary.

Dream Team (Bros.)

First, you'll need to extract the RomFS, for example through Azahar (or any Citra fork). Unfortunately, Azahar doesn't support extracting the ExeFS, so you'll have to extract it separately, e.g. with CTRTool:

ctrtool --exefsdir=exefs dt.cci

You'll want to put these exefs and romfs folders side by side inside the Mods directory for your game (to locate this directory in Azahar, right-click on the game and press “Open > Mods Location”). Take note of the name of the directory (the title ID), as you'll need to substitute it in the following commands.

Now, open the directory where you would like to work on your mod in a terminal. If your system supports it, you should create a symbolic link to the game's Mods directory named data:

  • Windows (PowerShell, may need to run as Administrator): New-Item -ItemType SymbolicLink -Path .\data -Target $env:APPDATA\Azahar\load\mods\<TitleID>
  • Linux: ln -s ~/.local/share/azahar-emu/load/mods/<TitleID> data
  • macOS: ln -s "$HOME/Library/Application Support/Azahar/load/mods/<TitleID>" data

And then you can decompile and compile the game:

mnlscript-dt-decompile
mnlscript-dt-compile [SCRIPTS TO COMPILE]

If you can't use symlinks, add the -d /path/to/mods/<TitleID> argument to both of the above commands. [SCRIPTS TO COMPILE] should be a space-separated list of the scripts to compile (e.g. scripts/fevent/0082.py scripts/fevent/00a0.py, or scripts/fevent/{0082,00a0}.py if your shell supports it). Although you can leave this blank to recompile all scripts, this is not recommended as it is very slow and unnecessary. There is no need to repack the ROM, as it is loaded as a mod.

Metadata

Release files for mnlscript 0.2.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mnlscript 0.2.5
File Size Uploaded
mnlscript-0.2.5.tar.gz 45.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mnlscript 0.2.5
File Interpreter ABI Platform
mnlscript-0.2.5-py3-none-any.whl Python 3 none any Details

Total release size: 105.0 kB

Release files / mnlscript-0.2.5.tar.gz

Download URL mnlscript-0.2.5.tar.gz
Size 45.3 kB
Tags Source
SHA-256 checksum
How to use checksums
461c369a65b7f30a9238acecc495add44ce2f257cc1cf3e8e977ade85ea95a76
BLAKE2b-256 checksum
How to use checksums
104d73c99c177a4b8ccd9be4d8595d5cff77bce9fb1cffb196ef9532379083df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.2 CPython/3.13.3 Linux/6.13.7-arch1-1

Release files / mnlscript-0.2.5-py3-none-any.whl

Download URL mnlscript-0.2.5-py3-none-any.whl
Size 59.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5a83e29c00e20f90de9289a0e30e677511d104233bd0dbd7a458913101d172f1
BLAKE2b-256 checksum
How to use checksums
09bc6953cc621033f31b62bd398388a4dd756f0a918265e1e0b702aa231ed2d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.2 CPython/3.13.3 Linux/6.13.7-arch1-1

Release history Release notifications | RSS feed

This release

0.2.5 This release

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page