Expand description
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
- Apploader parser
- The second stage loader for the game
- Primarily only useful for hardware accuracy purposes
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§
- Apploader
Header - 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
- File
System - The parsed GCM filesystem
- GameId
- A 6-character ID for a game
- GcmFile
- A parsed GCM/ISO file
- Root
Node - The root node of the filesystem, under which all the other nodes fall