This tool will simply split a DAT by the "best" available hash in order of SHA-1, MD5, and CRC/No-Hash. The files are output to the same directory as the original file. Requested by Obiwantje.
This commit creates output that is compatible with the new SabreDAT format, created by me and inspired by Logiqx XML DATs and the SuperDAT format. It uses a file-folder structure instead of rom-game structure, making it more versitile. It still cannot be read in currently, though it would be read in as a SuperDAT since it is the closest equivalent (so all non-file paths will be part of the game). Also, finding which type of XML DAT it is will be a bit difficult, so detection will have to improve.
This change includes a few changes meant to keep the information from each DAT and have it retained in a single object which can then be written out in any format or added to other DATs with very little issue. This new system is much more versitile since all it needs is a way to convert each DAT to XML and then use the built-in output to output from the XML to the target format. This also gives the ability to clean a DAT by "converting" a DAT to the same format, removing any improper tagging or the such.
This change brings about a few changes:
1) A new LogLevel called "User" that is used for non-verbose, non-error output
2) Only User and Error are output to console now, not all of them
3) All programs have log to file enabled by default and all flags for enabling logging have been removed
4) Some former Verbose statements have been converted over to User because of the shift in usage.
Ignore is useful for users who don't particularly care about the source going into the system. This is especially useful in combination with norename enabled.
DATabaseTwo is a standalone version of what will be replacing "Import" and "Generate" and thus eliminating the need for a complex import and export process. Custom DATs can be cared by Dir2DAT features and merging so there is no use to have advanced DB features. The new database, dats..sqlite, is a much lighter version, only holding the DAT information, systems, and sources.
Basically, this will output the information that's in each DAT but not in the merged and also the data that's only in every DAT. This needs testing, but it's a good start.