# fsdecrypt Decryptor and extractor for SEGA arcade filesystem containers (fscrypt format). Works on Windows and Linux, no admin privileges required. ## Installation Requires [Rust](https://www.rust-lang.org/tools/install). ```bash cargo build --release ``` The binary will be at `target/release/fsdecrypt` (or `fsdecrypt.exe` on Windows). ## Usage ```bash fsdecrypt ... ``` ### Examples ```bash # Extract a game APP container fsdecrypt ABCD_1.00.00_20240101120000_0.app # Extract an OPTION/DLC container fsdecrypt ABCD_A001_20240101120000_0.opt # Extract multiple files at once fsdecrypt game_v1.app game_v2.app extras.opt # Decrypt only (outputs raw .ntfs/.exfat image, no extraction) fsdecrypt --no-extract ABCD_1.00.00_20240101120000_0.app ``` ### Delta Updates Games often ship incremental updates as a separate `.app` file. Just pass the update file — fsdecrypt will automatically find the base in the same folder and merge them: ```bash fsdecrypt ABCD_1.01.00_20240215143000_1_1.00.00.app ``` You can also pass both explicitly: ```bash fsdecrypt ABCD_1.00.00_20240101120000_0.app ABCD_1.01.00_20240215143000_1_1.00.00.app ``` The output folder is named after the input file (e.g. `ABCD_1.01.00_20240215143000_1_1.00.00/`). ## External Key Files For games not in the built-in key database, place a file named `{GAME_ID}.bin` in the working directory: - **16 bytes** for key only (IV derived automatically) - **32 bytes** for key + IV ## License [BSD Zero Clause License](LICENSE) (0BSD)