SabreTools
Introduction
This project started as a desktop port of some core features of Wizard of DATz Redux, but it has since grown into a fully-featured DAT management tool. Below is a brief description of the features available in the suite. For more information about each feature, see the help text in each of the programs. For more information about the parent project, see here.
Features
Currently, the SabreTools suite consists of the following programs:
SabreTools (formerly DATabase)
The main tool of the SabreTools suite. Performs the majority of the core features of the parent project, including the following:
- Importing and Generating DAT files in ClrMamePro and XML formats (current version formerly DATabaseTwo)
- Create a DAT from a file, a folder, or a set of either (formerly DATFromDir)
- Converting DATs from any format to ClrMamePro, Logiqx XML, SabreDAT XML, and to missfile (last part formerly DatToMiss; requested by Obiwantje)
- Trim DAT entries and optionally merge into a single game (formerly SingleGame; requested by Kludge)
- Split a DAT using two different file extensions within the DAT (formerly DatSplit)
- Split a DAT or folder of DATs by best available hash or nodump (formerly HashSplit, requested by Obiwantje)
- Merge, diff, and dedupe an arbitrary number of DAT files, as long as it's two or more (formerly MergeDAT; requested by Obiwantje and Kludge)
- Read in from commandline, drag-and-drop, a directory, or any combination
- Roms are compared with all information available, so duplicates can exist in the output
- Output type automatically determined by the first input file
- Optionally create a DiffDat of the inputted files instead of a straight merge
- Optionally merge the output DAT so no partial duplicates are included
- Get various statistics on a DAT or folder of DATs including number of roms, disks, and even total size in a human readable format (formerly UncompressedSize; additions requested by Obiwantje)
- Filter a DAT by any criteria that the user chooses including wildcard searches (formerly Filter, requested by Obiwantje and others)
- Take a current merged DAT, a current missing DAT, and a new merged DAT and get all new files, files to remove, and a new missing DAT. Optionally set all hash values to 0-byte equivalents for rom managers (formerly OfflineMerge, requested by Obiwantje)
- Add and remove sources and systems from the database
- Retrieve a list of all sources and systems that are available
Headerer
A simple auxilary tool that detects and removes headers and also restores headers for the following systems:
- Atari 7800
- Atari Lynx
- Commodore 64 PSID music
- NEC PC-Engine / TurboGrafx 16
- Nintendo Famicom Disk System
- Nintendo Entertainment System / Famicom
- Super Nintendo Entertainment System / Super Famicom
- Super Nintendo Entertainment System / Super Famicom SPC music
SimpleSort
A simple rebuild-from-DAT tool that allows users to sort from the commandline.
- Rebuild from multiple sources
- Single DAT and output directory support
- Header skipper support
- Verify a folder against a DAT (create a fixDat)
- Rebuild to TGZ archives
- Rebuild to Romba depot
Power User Tools
This section is for tools that have been requested for a highly specific purpose and are not generally going to be used by regular users. All of them have a possibility of being included in the main DATabase program eventually.
TGZTest
A simple tool to convert a folder to TGZ, optionally to a specific folder.
- Optionally delete source files (if possible)
- Create a Romba depot from an input folder
Licensing
The preceeding programs use, in part or in whole, code, libraries, and/or applications from the 7-zip project. 7-zip is licenced under the GNU LGPL.
All other external code is marked as such within the source and correctly attributed to the site and/or person(s) that originally wrote the code.
All code written by project members is licensed under GPL v3. See LICENSE for more details.
Contributions
Any feature suggestions or code contributions are accepted. Please take the time to look over the existing code to see proper coding and documentation patterns.