TTComp archive data decompressor
The TTDecomp utility will decompress files that are identified by the Unix file command as TTComp archive data.Usage: ttdecomp infile outfile
Note that the TTComp archive data format is used by some libraries/utilities as a wrapper for multiple files. The TTDecomp utility does not parse the internal content of the input file; it simply decompresses the archive into the output file.
Some other utilities that handle such archives include:
- i3comp (InstallShield 3.x Compression and Maintenance utility); part of WinPack
- lawine (Starcraft/Brood War Library)
- PKZIP (for its own "inflate" method)
- STIX (for InstallShield 3 - Archives and self-extracting executables)
Download
Source | ttdecomp.tgz |
Mac OS X executable | ttdecomp |
Windows executable | ttdecomp.exe |
Technical details
The actual decompression is performed in implode.c, which is found in the Starcraft/Brood War Library. The following files are from that library:- implode.c
- common.c
- common.h
For all of these files I had to remove Unicode characters in order for them to compile using older versions of gcc.
I also changed some system include file references to local references. For
example, from:
#include <common.h>
to:
#include "common.h" /* changed from <common.h> by Tony Lewis */
All such changes are indicated with a comment including my name.
Note that gcc version 3.2.2 emits a warning for implode.c:
implode.c: In function `implode':
implode.c:124: warning: `copy_off' might be used uninitialized in this function
Since ttdecomp does not call the implode function, this warning can be safely ignored.
Shannon-Fano coding
The compression algorithm is an example of Shannon-Fano coding.Send me reports of any errors or suggestions you have about my tools.
The utility described on this page is Copyright 2012 Tony Lewis <tlewis@exelana.com>.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.