gc-gcm

Crates.iogc-gcm
lib.rsgc-gcm
version0.10.0
sourcesrc
created_at2021-02-03 06:02:55.668654
updated_at2021-02-10 05:21:16.6699
descriptionA Rust library and CLI for working with GCM/ISO files (raw bit-for-bit disk images) for the Nintendo GameCube.
homepage
repositoryhttps://github.com/jam1garner/gc-gcm
max_upload_size
id349978
size30,615
(jam1garner)

documentation

README

gc-gcm

A Rust library and CLI for working with GCM/ISO files (raw bit-for-bit disk images) for the Nintendo GameCube.

Install CLI

cargo install gc-gcm --features=bin
~ ❯❯❯ gcm --help
gc-gcm 0.8.0

USAGE:
    gcm <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    explain    Give a brief explanation about the GCM format
    extract    Extract a GCM ISO to a given folder
    help       Prints this message or the help of the given subcommand(s)
    tree       List the file tree of the given GCM ISO

Benchmarks

Benchmarking extracting all files from ISOs across various systems against wit:

System 1

(Linux 5.9, 16 GB, AMD Ryzen 9 4900HS)

Command Mean [ms] Min [ms] Max [ms] Relative
wit x melee.iso ./extracted 727.1 ± 11.1 716.1 769.0 2.20 ± 0.05
gcm extract melee.iso ./extracted 331.1 ± 6.2 321.9 345.9 1.00

System 2

(Windows 10, Ryzen 7 3700X, on SSD)

Command Mean [s] Min [s] Max [s] Relative
wit x GALE01.iso ./extracted 8.551 ± 2.532 6.942 15.378 2.09 ± 0.83
gcm extract GALE01.iso ./extracted 4.092 ± 1.082 3.056 5.732 1.00

(Windows 10, Ryzen 7 3700X, on HDD, in single thread mode)

Command Mean [s] Min [s] Max [s] Relative
wit x GALE01.iso ./extracted 10.452 ± 1.812 8.898 13.982 1.00
gcm extract --single-thread GALE01.iso ./extracted 11.810 ± 1.838 9.372 14.135 1.13 ± 0.26

System 3

(Windows 10, on HDD, multithreaded mode)

Command Mean [s] Min [s] Max [s] Relative
wit x melee.iso ./extracted 109.495 ± 6.301 105.039 113.950 1.20 ± 0.25
gcm extract melee.iso ./extracted 91.584 ± 18.295 78.647 104.520 1.00

Note: Multithreaded mode will harm performance if the ISO is on some form of physical media, such a hard drive.

Commit count: 11

cargo fmt