A tool to extract assets from Super Mario 64 style ROMs, with a heavy focus on compatibility with romhacks, especially romhacks that are less deterministic like romhacks built with the SM64 decomp project. More recently, it's output is also targetted towards being compatible with sm64coopdx.
- Python 3: Main language the program was written in.
- Bun: JavaScript runtime. Used to run n64js for headless emulation. https://bun.com/get
- Clone the repository with submodules:
git clone --recurse-submodules https://github.com/Isaac0-dev/rom-decomp-64.git
- Install Python dependencies:
pip install -r requirements.txt
Launch the GUI with:
python3 gui_extract.pyExtract a single ROM:
python3 extract.py path/to/rom.z64If no path is provided, defaults to baserom.us.z64 in the current directory.
Extract all .z64 files in the current directory:
python3 main.pyExtracted assets are organized in out/<rom_filename>/:
levels/: Identified level scripts (e.g.bob/,ccm/)misc/: Unidentified or global scriptssound/: Sequences (.m64) and samplestextures/: Textures foldersegment2/: Textures from segment 2skybox_tiles/: Skybox textures
main.lua: sm64coopdx mod scriptraw.log: Complete extraction log with debug info
- Isaac0-dev
- Sunk
- n64js by hulkholden - ROM emulation for deterministic data tracing
- djoslin0 - for his research and prototypes on rom2c, a private tool.
- SM64 Decomp
- RNC ProPack decompressor - RNC decompression
- Quad64 - Reference for display list parsing