Crate gc_gcm[−][src]
A library for working with GCM/ISO files (raw bit-for-bit disk images) for the Nintendo GameCube.
Features:
- GCM parser
- Disk metadata (game_id, internal name, etc.)
- Offsets to various sections of the GCM
- GameCube filesystem parser
- Raw access to filesystem structures
- Iterate over directories in a high-level manner
- Information about the storage of files, allowing extraction
- DOL executable parser
- The main executable for the game
- Allows for extraction or loading into memory
- Supports parsing extracted DOL files as well
use gc_gcm::GcmFile; let iso = GcmFile::open("melee.iso").unwrap(); println!("Name of game: {:?}", iso.internal_name); println!("Size of executable: {:x?}", iso.dol.raw_data.len()); println!( "Number of files: {}", iso.filesystem.files .iter() .filter(|entry| matches!(entry, gc_gcm::FsNode::File { .. })) .count() );
Output:
Name of game: "Super Smash Bros Melee"
Size of executable: 4385e0
Number of files: 1209
Structs
DirEntry | An entry representing a directory within the image's filesystem |
DolFile | A dol ("Dolphin") executable file, used as the main executable of the gamecube |
DolHeader | The header of a dol executable, describing the 19 sections (including the bss) as well as the entrypoint of the executable. |
File | A file within the filesystem, representing the range of the data backing within the GCM image itself |
FileSystem | The parsed GCM filesystem |
GameId | A 6-character ID for a game |
GcmFile | A parsed GCM/ISO file |
RootNode | The root node of the filesystem, under which all the other nodes fall |
Enums
FsNode | A given parsed node in the filesystem |
GcmError | An error resulting from parsing or opening a GcmFile |