|TODO: explain what's up with byuu's purifier.|
What it can do
- Extract single ROM files from ZIP archives
- Strip headers
- Correct extensions
- Copy required DSP files
- Create cartridge folders
- Add manifests to cartridge folders made earlier
Usage: SNESPurify [stuff] <source path> [stuff] is any of the following: --help, -h display this help message --nofolders, -n do not use Cartridge Folders, but regular .SFC files --deep, -d also look in the source's subdirectories --keepbackup, -b don't remove the old files after processing --count, -c only count how many files there are --outdir, -o <path> specifies an output path --dsp [<source>] copy required DSP images --addmanifests adds manifests to all cart folders in source --forcemanifests always generate new manifests (assumes addmanifests) --register (admin only) adds a ""convert to foltainer"" item to Explorer's context menu for .SFC files --unregister (admin only) removes the above The source path defaults to the current directory. If no output path is given, the default is an "out" directory in the source directory. For DSP images, the default source is ./dsp. If no such directory exists, or it doesn't seem to contain the DSP files, that function is disabled. The addmanifests option disables all the others except for forcemanifests, works on cartfolders only, and always goes deep.
So basically, if you have all your ROMs in the same place, drop a copy of SNESPurify in there, and just double click the program's icon, it'll move all those ROMs to an "out" directory in the same, correcting anything it finds wrong, and in a cartridge folder scheme.
Usually, you'd have all your ROMs for a given system in one directory. Perhaps you have them subdivided into a country/genre scheme, but even then you'd still have "Pugsley's Scavenger Hunt" in the same place as "The Smurfs", sharing a country and genre (Europe/Sidescrolling Platform, perhaps?)
Usually, their SRAM backups and savestates are placed in the same location, or in a separate other directory. Either way you get a big honking mess.
Cartridge folders bind all of this together. No matter the country/genre subdivisions, each game would have its own dedicated folder with a standardized naming scheme:
|program.rom||The main game file|
|program.ram||The SRAM file|
|manifest.xml||The PCB layout description|
|msu1.rom||The MSU1 data track, if any|
|track-#.pcm||MSU1 music tracks, if any|
|Other game-specific stuff|
BST is bsnes' propriety savestate format, nothing special about it. ZST files with the same naming scheme are just as valid. Any recent version of bsnes (say, 083 or higher) can handle this scheme. Selecting a directory in bsnes's Load Cartridge window with a name ending with ".sfc" and containing at least a program.rom file will be just like selecting an .SFC file.
snespurify --count --deep games Count the total amount of games that WOULD be processed in the /games directory, and all other directories it contains. snespurify --dsp --nofolders --deep --keepbackup games Copy (not move) everything in the games directory to /games/out, including everything in subdirectories, as plain ROMs (not cartfolders), and include any required DSP files, copying those from /dsp to /games/out where called for. snespurify --deep --dsp bios --outdir cartfolders Move every game in the current directory to /cartfolders, including everything in sub- directories, including any required DSP files from /bios. snespurify --addmanifests cartfolders Add manifests to every game in /cartfolders, including everything in subdirectories, in case you converted them with an earlier version and they stop working in bsnes v089.