Picori (ピッコル) is a library for decompilation, modding, and rom-hacking with focus on GameCube and Wii games. It support parsing and building common file formats, e.g., Dolphin executables (DOLs).
Features • Usage • Examples • Installation
!!! The project is currently very early stages of development. !!!
!!! All features are not implemented and backwards compatibility is not guaranteed. !!!- DOL (Dolphin executable)
- REL (Relocatable module)
- GCM (GameCube master disc)
- CISO (Compact ISO)
- Yaz0 compression
- JIS X 0201 encoding
- Shift JIS encoding
Here is a simple example of how to use Picori to parse a DOL file and print the entry point.
use std::fs::File;
use picori::Result;
fn main() -> Result<()> {
let mut file = File::open("main.dol")?;
let dol = picori::Dol::from_binary(&mut file)?;
println!("entry point: {:#08x}", dol.entry_point());
Ok(())
}The examples directory contains a few examples of how to use
Picori.
dol_dump- Dump information about a.dolfile.rel_dump- Dump information about a.relfile.gcm_dump- Dump information about a.gcm/.isofile.
Picori is available on crates.io. Add the following to your Cargo.toml:
[dependencies]
picori = "0.1.0"Contributions are welcome! If you would like to contribute, please open a pull
request on GitHub. Please make sure that your code is formatted with rustfmt,
and that it compiles without warnings or errors.
Picori is licensed under an MIT license. See LICENSE for more information.