Shrinks DOOM resource files: PK3s (ZIP files), WADs, PNGs & JPGs.
C HTML Batchfile Makefile
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
.gitattributes
.gitignore
CHANGELOG.TXT
README.md
doom-crusher.bat
icon.png

README.md

DOOM Crusher

Shrinks DOOM resource files: PK3s (ZIP files), WADs, PNGs & JPGs.

DOOM Crusher Icon

Simply drag-n-drop any file, folder, or multiple-selection thereof on top of the "doom-crusher.bat" file and DOOM Crusher will recursively optimize anything it can recognise.

For bugs, suggestions and feedback please either file an issue on the GitHub page or mail kroc+doom@camendesign.com

Samples:

WAD Original (B) (MB) Crushed (B) (MB) Delta
boa_c1.pk3 373,344,372 B 356.0 MB 300,256,005 B 286.3 MB -69.06 MB
DUMP-3.PK3 74,526,263 B 71.0 MB 68,149,144 B 64.9 MB -6.08 MB
brutalv20b.pk3 37,046,275 B 35.3 MB 36,379,722 B 34.7 MB -0.64 MB

Methodolody

JPEG files are optimized using "jpegtran":

jpegtran works by rearranging the compressed data (DCT coefficients), without ever fully decoding the image. Therefore, its transformations are lossless: there is no image degradation at all ...

PNG files are run through a battery of optimizers:

  • OptiPNG
  • PNGOUT (not included in the download due to licence restrictions)
  • Pngcrush
  • DeflOpt (binary included due to original website going offline)

WAD files are first optimized by WADPTR:

WADPTR uses three seperate methods to compress WAD files: lump merging, graphic squashing and sidedef packing. These actually all work in quite similar ways. As well as compressing WADs, it also removes unused data in WADs (information that exists but is not part of any lump) and removes unused sidedefs (sidedefs that exist but are not bound to any linedef).

Sidedef packing is not used by DOOM-Crusher due to graphical glitches that may occure in certain WADs. WADs are then scanned for PNG and JPEG lumps and optimized as above.

PK3 files are the WAD format used by modern DOOM engines. A PK3 file is just a renamed ZIP file. The file is unpacked and the contents are optimized as above (PK3 files can contain WAD files, which themselves can contain PNG & JPEG files).

After the contents have been optimized, the PK3 file is repacked using 7Zip's superior ZIP compression (not to be confused with the ".7z" format). Finally, the PK3 file is run through DeflOpt to shave the last few KB off.

Caveats & Things to Consider

  • You should not run DOOM Crusher on your development-copy of your PK3/WAD. Whilst DOOM Crusher is designed to optimize "losslessly", it may remove 'unused' resources from WADs which you may be storing for later use. It's best to run DOOM Crusher on a final copy of your project before you test it and upload it for distribution

  • DOOM Crusher is slow. A 300+ MB project may take 3 to 7 hours to crush depending on your CPU