I figured this would be the best place to post this; I've made a new release of my decompressor of NDS compression formats, DSDecmp. (visit the project page, including download link, here)
With this new release the name has become somewhat misleading, since it can now also compress files back into any of the supported formats.
It's a command-line only tool, so I'll just copy/paste its usage here (which can be recalled at any time by not providing any arguments);
With this new release the name has become somewhat misleading, since it can now also compress files back into any of the supported formats.
It's a command-line only tool, so I'll just copy/paste its usage here (which can be recalled at any time by not providing any arguments);
Code:
DSDecmp - Decompressor for compression formats used on the NDS - by Barubary
Usage:ÂÂDSDecmp (-c FORMAT FORMATOPT*) (-ge) input (output)
Without the -c modifier, DSDecmp will decompress the input file to the output
file. If the output file is a directory, the output file will be placed in
that directory with the same filename as the original file. The extension will
be appended with a format-specific extension.
The input can also be a directory. In that case, it would be the same as
calling DSDecmp for every non-directory in the given directory with the same
options, with one exception; the output is by default the input folder, but
with '_dec' appended.
If the output does not exist, it is assumed to be the same type as the input
(file or directory).
If there is no output file given, it is assumed to be the directory of the
input file.
With the -ge option, instead of a format-specific extension, the extension
will be guessed from the first four bytes of the output file. Only
non-accented letters or numbers are considered in those four bytes.
With the -c option, the input is compressed instead of decompressed. FORMAT
indicates the desired compression format, and can be one of:
--- formats built-in in the NDS ---
ÂÂÂÂlz10ÂÂ- 'default' LZ-compression format.
ÂÂÂÂlz11ÂÂ- LZ-compression format better suited for files with long repetitions
ÂÂÂÂlzovl - LZ-compression used in 'overlay files'.
ÂÂÂÂrleÂÂ - Run-Length Encoding 'compression'.
ÂÂÂÂhuff4 - Huffman compression with 4-bit sized data blocks.
ÂÂÂÂhuff8 - Huffman compression with 8-bit sized data blocks.
--- utility 'formats' ---
ÂÂÂÂhuffÂÂ- The Huffman compression that gives the bext compression ratio.
ÂÂÂÂnds*ÂÂ- The built-in compression format that gives the best compression
ÂÂÂÂÂÂÂÂÂÂÂÂratio. Will never compress using lzovl.
ÂÂÂÂgba*ÂÂ- The built-in compression format that gives the best compression
ÂÂÂÂÂÂÂÂÂÂÂÂratio, and is also supported by the GBA.
The following format options (FORMATOPT) are available:
lz10, lz11, lzovl, gba* and nds*:
ÂÂÂÂ-optÂÂ: employs a better compression algorithm to boost the compression
ÂÂÂÂÂÂÂÂÂÂÂÂratio. Not using this option will result in using the algorithm
ÂÂÂÂÂÂÂÂÂÂÂÂoriginally used to compress the game files.
ÂÂÂÂÂÂÂÂÂÂÂÂUsing this option for the gba* and nds* will only have effect on
ÂÂÂÂÂÂÂÂÂÂÂÂthe lz10, lz11 and lzovl algorithms.
If the input is a directory when the -c option, the default output directory
is the input directory appended with '_cmp'.
Supplying the -ge modifier together with the -c modifier, the extension of the
compressed files will be extended with the 'FORMAT' value that always results
in that particualr format (so 'lz11', 'rle', etc).
If the -ge modifier is not present, the extension of compressed files will be
extended with .cdat