/Crinkler

Crinkler is an executable file compressor (or rather, a compressing linker) for Windows for compressing small demoscene executables. As of 2020, it is the most widely used tool for compressing 1k/4k/8k intros.

Primary LanguageC++OtherNOASSERTION

Crinkler

Crinkler is a compressing linker for Windows, specifically targeted towards executables with a size of just a few kilobytes. Its main purpose is as a tool for producing small demoscene productions.

Download the latest version from the Releases page.

Usage information and version history can be found in the manual.

For general discussion, questions and comments, use the Pouët.net forum.

Distribution

Crinkler is mainly being developed by Rune L. H. Stubbe (Mentor/TBC) and Aske Simon Christensen (Blueberry/Loonies). It is distributed under the Zlib license.

You are welcome to integrate Crinkler into your own tools or toolchains. If you do so, preferably base your work on a commit tagged by a release version. This way, the Crinkler version identifier written into output executables (two digits at offset 2 in the file) will match the actual contents produced by Crinkler.

Building

Build Crinkler using Visual Studio 2017 or later. The custom build rules for the assembly files require that nasmw.exe is in the executable path.

The data compressor itself is separated out into its own library, located in the Compressor project. This library enables tools to estimate how big a particular piece of data would be after being compressed by Crinkler. Take a look at the CompressorExample project for a description of its usage.