After a few months of work, I am ready to release alpha versions of a new tool, VGMToolbox.
What is VGMToolbox? It is a vgm file auditor inspired by Roman's clrMAME Pro and Cowering's GoodTools. Without these two, it would likely never exist. It currently parses all files matching the PSF/NSF spec in a manner that prevents duplicates. It will ignore tag data and internal compression. It rebuilds based on the "real" data contained in the files. I will either include my algorithms with the executable or post them separately.
I have not yet added docs, but it should be pretty self explanatory. For collectors, choose your source and destination folders and rebuild. After your rebuild, have and miss text files, a fixdat (if needed) and a cache.db file will be created. The have/miss and fixdat files should be understandable. The cache.db is simply a zlib compressed, serialized c# array of crc32 values of your matching sets. This helps generate the have/miss files and allows you to archive your existing sets if you are low on hard drive space. You can remove rebuilt source and overwrite existing sets (for tag updates or whatever reason).
For datafile makers, things are pretty much the same as clrMAME Pro. The main differences include always being in subfolder mode, and lack of MD5/SHA1 support. Files in the top most directory are ignored and only subfolders and ALL of their contents (including their subfolders) are checked. While MD5/SHA1 support is implemented, it requires using file streaming for generating these checksums. For now I have commented out this portion of code and will add it as a checkbox with proper warning labels later.
Update (2009-08-07): So many tools have been added to VGMToolbox that it has become less focused on calculating checksums and more on ripping and assembling VGM music data. The current list of tools includes: Datafile Creator, Rebuilder, Datafile (Duplicate) Checker , Tag/Info Viewer, Checksum Calculator (w/Dupe Finding), Search for Files tool, Hoot XML Builder, Hoot Collection Auditor, NSFE to NSF + M3U, GBS M3U Creator, VGM Tag Editor, xSF2EXE, xSF Recompress, xSF Tag Editor, 2SF Maker, NDSto2SF, SDAT Optimizer, 2SF V1 to V2 Tag Copier, PSF Maker, PSF Stub Creator, PSF Timer, VAB Splitter, mkpsf2 Front End, PSF2 Unpacker, PSF2 to PSF2LIB, PSF2 SQ Extractor, PSF2 Timer, ssfmake Front End, SSF seqext/tonext Front End, Simple Binary Cutter, Advanced Cutter/Offset Finder, CD-XA Extractor, MIDI Extractor, SDAT Extractor, SDAT Finder, GENH Creator/Extractor, gzip Compress/Decompress, zlib Compress/Decompress.Thanks much to manakoAT, Knurek, and DarkPulse for helping me test the application.
Many formats have been added as well. The currently supported formats for checksum calculation and examination include: GBR, GBS, GENH, HES, KSS, MDX, MIDI, NSF, NSFE, S98, PSID, SPC, VGM, xSF (2SF, DSF, GSF, PSF, QSF, SNSE, SSF, USF)
-- Datafiles containing PSF/NSF spec data will not be usable in any existing rom auditors. Since no existing auditors parse the data how I do, nothing will ever match (except by chance). The checksums for non-PSF/NSF spec files will be the same as other rom auditors (cmpro and romcenter), though size data is not generated due to being invalid for PSF files.
-- The datafiles produced are using v1.4 of Logiqx generic datafile.