diff --git a/README.1ST b/README.1ST index e69de29b..c9257c5b 100644 --- a/README.1ST +++ b/README.1ST @@ -0,0 +1,226 @@ +************************************************ +* SabreTools - DAT management software * +* https://github.com/mnadareski/wizzardDesktop * +************************************************ + +Table of Contents +----------------- +1.0 Introduction and History +2.0 Included Programs + 2.1 Headerer + 2.2 RombaSharp + 2.3 SabreTools + 2.4 SimpleSort + 2.5 TGZConvert +3.0 Contributors +4.0 Licensing + +** Section 1.0 - Introduction and History + +Hello and welcome to the latest release of SabreTools! We are happy that you +chose to use our software for your DAT management needs. But what exactly is +SabreTools? How did it get started? Why is it named so weirdly? Why should we +care? Well, the first two can be answered, though the last one is up to you. + +SabreTools has its roots in an internal tool developed by RomShepherd member +The Wizard of DATz (WoD). The aim of the PHP-based program was to collate data +frommultiple sources and create new DAT files for custom sources as well as +DAT files that have duplicate data removed. WoD maintained this software and +used it to create near-monthly releases for quite a while. + +Around the middle-end of 2015, WoD announced that they would be taking a break +from the process of creating and releasing new files. A couple of months went +by with no information. Finally, WoD finally told the community that they would +no longer be able to maintain either the project or the software involved, +releasing the source code of the internal project in the process. During that time, +RomShepherd member darksabre76 picked it up to see how the program even worked. + +After updating the code to the newest version of PHP and trying to figure out +what each page did, he announced that it was going to be easier to do a complete +rewrite while maintaining functionality. He was given a lot of support and got +started with the aim to keep the code completely open source so that anyone can +help. It took a lot of work and help from fellow user emuLOAD, but the code +finally started to shape up in the form of WoD Redux. This project is still +active and can be found at https://github.com/mnadareski/wizzardRedux. + +After about a month of work on this, and continued support from the community, +a relatively new user to the site, now known as @tractivo, sent him a message +and asked if a desktop port of some of the core features was possible. It was +difficult for most people to run the PHP code locally, so it made sense. With +the aim for people to use the web version primarlily, the desktop version, +originally called DATabase, was written. Pretty soon, this got even more support +and soon became the main focus. For a while, code parity between the C# and PHP +versions was attempted, but it became apparent that the desktop version was going +to be the better option. + +Development accelerated, soon leaving the PHP version in the dust. Once the basics +were implemented, more features were requested, including better merging and DAT +management. Spurred on by an increasing number of community members, DATabase +accrued a lot of features and helper programs. The accuracy of the program also +increased, soon matching or surpassing existing options in functionality. At some +point during this development, some of the smaller tools got wrapped into DATabase, +slowly getting further from just a desktop port of WoD Redux. + +With these changes, some external prodding, and a little bit of ego, darksabre76 +decided to recristen the set of programs to SabreTools. This freed the program +from being just about DAT management and allowed it to be more of a Swiss Army +Knife of DAT tools. Development has been on and off since then, and is still +constantly evolving to this day (assuming that at this very moment development is +still active). + +** Section 2.0 - Included Programs + +Below are a list of the programs that are included in the current SabreTools +release. Each of them have a brief description of the tool along with in-depth +desciptions of all flags. + +** Section 2.1 - Headerer + +Headerer is a small program that is meant as an intermediary between header skipper +files (which, a bit apart from their name, do not just show how to skip copier headers) +and rom managers that do not use them. + +The following systems have headers that this program can work with: + - Atari 7800 + - Atari Lynx + - Commodore PSID Music + - NEC PC-Engine / TurboGrafx 16 + - Nintendo Famicom / Nintendo Entertainment System + - Nintendo Famicom Disk System + - Nintendo Super Famicom / Super Nintendo Entertainment System + - Nintendo Super Famicom / Super Nintendo Entertainment System SPC Music + +Usage: + Headerer.exe [options] [filename|dirname] + +Options: + -e Enable detect and remove mode + This mode allows the user to detect, store, and remove copier headers from a file + or folder of files. The headers are backed up and collated by the hash of the un- + headered file. Files are then output without the detected copier header alongside + the originals with the suffix .new. No input files are altered in the process. + + -r Restore headers to file(s) + This mode uses stored copier headers and reapplies them to files if they match the + included hash. More than one header can be applied to a file, so they will be out- + put to new files, suffixed with .newX, where X is a number. No input files are + altered in the process. + +** Section 2.2 - RombaSharp + +THIS IS AN EXPERIMENTAL PROGRAM TO REPLACE ROMBA IN C#. THIS ISN'T WRITTEN YET. + +** Section 2.3 - SabreTools + +** Section 2.4 - SimpleSort + +SimpleSort is a WIP program that is meant as a command-line tool to quickly rebuild and +verify files based on a supplied DAT file. The eventual aim for this program is to have +a full rom management tool without a GUI, though this may not happen for a while. + +Usage: + SimpleSort.exe [options] [filename|dirname] ... + +Options: + -?, -h, --help Show the built-in help text + Built-in to most of the programs is a basic help text + + -dat= Name of the DAT to be used for the various options + This DAT file is required for everything that SimpleSort currently does, so not + supplying one will result in an error. Depending on the additional flags that are + supplied, the DAT will be used differently, as described below. By default, the + DAT is used to check which files need to be rebuilt. + + -out= Set the name of the output directory + This sets an output folder to be used by various parts of the program. As with the + DAT file, this input is used differently based on the flags that are supplied. By + default, the output folder is used as the target to rebuild files to. + + -t=, --temp= Set the name of the temporary directory + Optionally, a temp folder can be supplied in the case the default temp directory + (inside the running folder) is not preferred. This is used for any operations that + require an archive to be extracted. + + -qs, --quick Enable quick scanning of archives + For all archives, if this flag is enabled, it will only use the header information + to get the archive entries' file information. The upside to this is that it is much + quicker than extracting all files to the temp folder. On the downside, it can only + get the CRC and size from most archive formats, leading to possible issues. + + -v, --verify Enable verification of output directory + This overrides the default rebuilding and only requires the DAT and the output folder. + Here, the DAT is used to verify the output directory directly and then output a + simple FixDAT. This can be misleading, currently, because it only checks for exact + matches. + + -tgz Enable Torrent GZ output + Instead of outputting the files to ZIP archives, files will be rebuilt to TorrentGZ + (TGZ) files. This format is based on the GZip archive format, but with custom header + information and a file name replaced by the SHA-1 of the file inside. This is + primarily used by external tool Romba (https://github.com/uwedeportivo/romba), but + may be used more widely in the future. + + -r, --romba Enable Romba depot directory output + As an extension of the parent flag, this outputs the TGZ files into directories + based on the structure used by Romba. This uses nested folders using the first + 4 bytes of the SHA-1, 1 byte for each layer of the directory name. It also + includes two auxilary files, .romba_size and .romba_size.backup, that have the + compressed size of the folder inside for use with Romba. + + -do, --directory Enable outputting files uncompressed + Instead of outputting the files to ZIP archives, files will be rebuilt to named + subdirectories within the output folder. This is useful for when the DAT does not + already have the flag specified. + + -7z={0} Set scanning level for 7z archives + -gz={2} Set scanning level for GZip archives + -rar={2} Set scanning level for RAR archives + -zip={0} Set scanning level for ZIP archives + For each of the major archive types recognized by the libraries used by this + program, scan the archive in one of the following ways: + 0 Hash both archive and its contents + 1 Only hash contents of the archive + 2 Only hash archive itself (treat like a regular file) + + -ud, --update-dat Output updated DAT (rebuild only) + Once the files that were able to rebuilt are taken care of, a DAT of the files + that could not be matched will be output to the program directory. + +** Section 2.5 - TGZConvert + +TGZConvert placeholder text + +Usage: + TGZTest.exe [options] [filename|dirname] ... + +Options: + + -7z={0} Set scanning level for 7z archives + -gz={2} Set scanning level for GZip archives + -rar={2} Set scanning level for RAR archives + -zip={0} Set scanning level for ZIP archives + For each of the major archive types recognized by the libraries used by this + program, scan the archive in one of the following ways: + 0 Hash both archive and its contents + 1 Only hash contents of the archive + 2 Only hash archive itself (treat like a regular file) + +** Section 3.0 - Contributors + +Programmer / Lead: Matt Nadareski (darksabre76) +Additional code: emuLOAD, @tractivo +Testing: emuLOAD, @tractivo, Kludge, Obiwantje, edc +Suggestions: edc, AcidX, Amiga12, EliUmniCk +Based on work by: The Wizard of DATz + +We welcome any contributors for coding, suggestions, optimizations, critisism, +heckling, abject anger, praise, and/or apathy. + +** Section 4.0 - Licensing + +This program uses, in part or in whole, code, libraries, and/or applications +from the 7-zip project (www.7-zip.org). 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. \ No newline at end of file