region patch and unpatch saturn games
Go to file
moparisthebest 69c832190a
All checks were successful
moparisthebest/saturn-patch/pipeline/head This commit looks good
Fill out README.md
2021-02-17 23:05:26 -05:00
.ci Add ci builds 2021-02-17 01:16:19 -05:00
src Fix cross compilation warnings in cdrom.rs 2021-02-17 21:20:47 -05:00
.gitignore Initial commit 2021-02-16 01:40:40 -05:00
.rustfmt.toml Initial commit 2021-02-16 01:40:40 -05:00
Cargo.lock Initial commit 2021-02-16 01:40:40 -05:00
Cargo.toml Initial commit 2021-02-16 01:40:40 -05:00
LICENSE.md Initial commit 2021-02-16 01:40:40 -05:00
README.md Fill out README.md 2021-02-17 23:05:26 -05:00

saturn-patch

Reversible region and manufacturer patcher for sega saturn games.

Unlike other utilities that do this, this is open source, safe, cross platform, but most importantly, allows you to "unpatch" your changed files by storing small backup files next to them. The sha256 hash of the original file and the backup file are stored in the backup so you can be confident your games can be put back to byte-for-byte original whenever you wish.

How to use

On Windows or some DEs, simply drag saturn bin files onto the saturn-patch executable. It will only modify saturn files with the region header in them and then only if it can successfully unpatch it and after it writes the backup file to disk, so you can safely just run it on all your files.

Customize Regions

Set the environmental variable SATURN_REGION with your desired regions in order from most preferred to least. If not set the default is JUBLKTEA, which is Japan, USA, Brazil, Latin America, Taiwan, Europe, Asia.

Customize Manufacturer

Set the environmental variable SATURN_MANUFACTURER to whatever you wish, as long as it's less than 16 characters. If not set the default is SEGA TP T-81. Why would you want to do this? So you can swap disks with a burned KD02 disk the easy way.

How do I get it

You can download saturn-patch from the releases section, compile it yourself, or run cargo install saturn-patch. Where is saturn-unpatch you ask? It's the same executable, make a symbolic link to it, or copy and rename.

Examples

# patch single file
saturn-patch panzer-dragoon.bin

# unpatch single file
saturn-unpatch panzer-dragoon.bin
# unpatch single file by sending in backup file
saturn-unpatch panzer-dragoon.bin.saturnpatchbak

# patch all bin files recursively in this directory
find -type f -iname '*.bin' -print0 | xargs -0 saturn-patch

# unpatch all bin files for which we have a .saturnpatchbak file for recursively in this directory
find -type f -name '*.saturnpatchbak' -print0 | xargs -0 saturn-unpatch