# saturn-patcher-egui Cross-platform applier for [Sega Saturn Patcher](https://segaxtreme.net/resources/sega-saturn-patcher.73/) `.ssp` patch files. Works natively on Linux and Windows, no Wine required. The official Sega Saturn Patcher is a Windows-only WPF/.NET 5 app that does not run under Wine. This is a clean-room re-implementation of the `.ssp` apply path: ZIP extraction, ISO9660 walk over raw 2352-byte sectors, `bsdiff` patching, and Mode-1 EDC + ECC P/Q regeneration. ## Features - Native Linux + Windows binaries (no .NET, no Wine) - GUI (egui) with drag-and-drop and light / dark / system theme - CLI for scripting - Works on standard `.bin` / `.cue` rips (raw 2352-byte sector BIN) ## Limitations - Only handles `.ssp` patches that keep every patched file the same size (in-place rewrite). Patches that grow files would need a full ISO rebuild, which is not implemented. - Operates on Track 1 of a BIN/CUE rip only. ## Usage ### GUI ``` saturn-patcher-gui ``` Drag a `.ssp` and the Track 1 `.bin` onto the window (or use the buttons), then click **Apply Patch**. ### CLI ``` saturn-patcher ``` Patches the BIN in place. Make a copy of your dump first — the tool does not back up. ## Building from source ``` cargo build --release ``` Produces `target/release/saturn-patcher` and `target/release/saturn-patcher-gui`. ## License GPL-2.0-only. The EDC/ECC primitives are ported from [`ecmlib`](https://github.com/Danixu/rust-error-code-modeler) (MIT), originally from Neill Corlett's [ECM](https://web.archive.org/web/20200625132518/http://www.neillcorlett.com/cmps/).