Files
beerpsi_fsdecrypt/README.md
T
JujuforceandClaude Opus 4.6 b0e97f8b00 docs: simplify README, reflect pure Rust extraction
Remove technical implementation details, keep it user-friendly.
Document delta update auto-detection, output folder naming,
and cross-platform support.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 16:40:18 +01:00

1.5 KiB

fsdecrypt

Decryptor and extractor for SEGA arcade filesystem containers (fscrypt format). Works on Windows and Linux, no admin privileges required.

Installation

Requires Rust.

cargo build --release

The binary will be at target/release/fsdecrypt (or fsdecrypt.exe on Windows).

Usage

fsdecrypt <FILES>...

Examples

# 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:

fsdecrypt ABCD_1.01.00_20240215143000_1_1.00.00.app

You can also pass both explicitly:

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 (0BSD)