===========================================================================
Title                   : Doom utilities source
Filename                : dmutils.zip
Release date            : March 1998? (estimate)
Author                  : Id Software
                         uploaded by Simon Howard <[email protected]>
Email Address           : Don't contact Id about these.

Description             : This is the source code to various utilities
                         written by Id Software and used during the
                         development of Doom. I found this file available
                         for download on AtomicGamer.com, and from the
                         timestamps in the zip it seems it was probably
                         released in March 1998, several months after the
                         Doom source code release.

===========================================================================

* What is included *

There is a mixture of different utilities in here:

dcolors:
       Generates PLAYPAL and COLORMAP lumps, taking the base palette from
       an LBM file.

lumpy:
       Looks like a program for generating IWAD files from a script. None
       of the scripts seem to be included, but it looks like this was
       used in development of the SNES and Jaguar ports.

mapcomp:
       Combines several WAD files containing levels into a single WAD
       file containing all of these and a texture lump. Purpose unknown?

multigen:
       Generates the state tables used in the Doom source code (info.c).
       The script file used to build Doom's state tables is included
       (multigen.txt).

spitwad:
       Dumps the directory of a WAD file, listing the contents and
       metadata about lumps.

wadlink:
       Builds the game IWAD files, based on a script file. No example
       script file is included, but you can examples in the Heretic
       and Hexen source codes (wadlink.wl).

* Leftover sources *

infogen.c:
       Builds mobjinfo_t tables. Obsoleted by multigen?

statescr.c:
       Builds state_t tables. Obsoleted by multigen?

jwadlink.c:
       Earlier version of wadlink, looks like it includes hacks for
       building the Jaguar IWAD.

* Misc. utilities *

cmpfile:
       Compares two files byte-for-byte and prints the differences.
       Purpose unknown.

cmpfiles:
       csh script that compares the contents of two directories using
       cmpfile.

removectrlm:
       Removes ^M (\r) characters from .c and .h source files. Presumably
       used to convert DOS source files to Unix ones.

unfuck:
       "Unfucks file permissions".

lz77:
       Compress a file using LZ77 compression.

ulz77:
       Uncompress a file compressed using lz77.

* Commentary *

Some of the WAD building tools include the ability to compress lumps;
these were used for Jaguar Doom, which stores lumps compressed
to save space (see Kaiser's Doomworld thread, "The Console Doom hacking
project / Console specs"). It looks like John Carmack probably experimented
with several different compression algorithms (LZSS, LZ77, and there are
references to "lzssodd" and "lzssmars").

There are old versions of some of the programs in a subdirectory
named "backup"; a few of these have minor differences to the main
versions.

* Copyright / Permissions *

No license statement is attached to these files, but I'm assuming Id
considers them GPL, or at the very least freely redistributable.

* Where to get the file that this text file describes *

The Usual: ftp://archives.gamers.org/pub/idgames/ and mirrors