From The Pile
Jump to: navigation, search
TODO: explain what's up with byuu's purifier.
Designed by M Janet Mars



Local server

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.

Cartridge folders?

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:

Game Title.sfc
program.rom The main game file
program.ram The SRAM file
manifest.xml The PCB layout description
state-#.bst Savestates
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.
Personal tools