Expand description
§Picori
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).
§Usage
Here is a simple example of how to use Picori to parse a DOL file (other formats have examples in their respective modules):
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(())
}§Examples
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.
§Features
The following is a list of features supported. More features will be added over time, with the goal of supporting all common file formats used in GameCube and Wii games.
- DOL - Dolphin executable
- REL - Relocatable module
- GCM - GameCube master disc
- CISO - Compact ISO
- Yaz0 - Yaz0 compression
- JIS X 0201 - JIS X 0201 encoding
- Shift JIS 1997 - Shift JIS 1997 encoding
- Shift JIS 2004 - Shift JIS 2004 encoding
Modules§
- ascii
- ASCII encoding.
- ciso
- GameCube CISO (Compact ISO).
- dol
- Parse Dolphin executables (
.dol). - error
- The Error enum can indicate a variety of errors that can occur. This module contains the error types that can be returned by this library.
- gcm
- Parse GameCube master disc (GCM) files.
- jis_
x_ 0201 JisX0201encoding.- rel
- Parse Relocatable module (
.rel). - shift_
jis_ 1997 ShiftJis1997encoding.- shift_
jis_ 2004 ShiftJis2004encoding.- yaz0
- Yaz0 compression and decompression.
Structs§
- Ascii
- ASCII encoding.
- Ciso
Reader - Reader for CISO files.
- Dol
.dolfile object.- Gcm
.gcmfile object.- JisX0201
JisX0201encoding.- Rel
.relfile object.- Shift
Jis1997 ShiftJis1997encoding.- Shift
Jis2004 ShiftJis2004encoding.- Yaz0
Reader - Decompresses a Yaz0 compressed file.
Enums§
- Error
- A error varient that can be used to represent any error that can occur in this crate.
Traits§
- Ascii
Iterator Ext - Extension trait for iterators of bytes and adds the helper function
IteratorExt::asciifor decoding as ASCII strings. - JisX0201
Iterator Ext - Extension trait for iterators of bytes and adds the helper function
IteratorExt::jisx0201for decoding as JIS X 0201 strings. - Shift
Jis1997 Iterator Ext - Extension trait for iterators of bytes and adds the helper function
IteratorExt::sjis1997for decoding as Shift JIS 1997 strings. - Shift
Jis2004 Iterator Ext - Extension trait for iterators of bytes and adds the helper function
IteratorExt::sjis2004for decoding as Shift JIS 2004 strings.