A speed-optimized fork of id Software's original qcc, the QuakeC compiler
released with the Quake 1.01 source. Written by Jonathan Roy in September
1996, with limit bumps and fixes through July 1997 (version 1.02).
It was inspired by a John Carmack .plan note that replacing a linear search
had given him a 4x speedup. This version replaced the symbol and constant
lookups with hash tables, hashed the opcode search, precomputed punctuation
lengths, and added a few micro-optimizations. On the Sun workstations of the
day it went from 56 seconds down to 5, roughly 7–10x faster than stock qcc,
and produces byte-identical progs.dat output. It compiled the big mods of
the era (Quake Rally, KQP, PainKeep, SuperHeros) without trouble.
The full history and the list of optimizations is in README.fast.
Carmack's original qcc release notes are in README.
| Path | What it is |
|---|---|
qcc.c, pr_lex.c, pr_comp.c, cmdlib.c |
The compiler, based on id's qcc |
hash.c, hash.h |
The hash table added for fqcc |
builtin.c, progdefs.h |
id's builtin reference and generated defs |
README.fast |
Changelog and description of the optimizations |
README |
John Carmack's original qcc notes |
FASTQCC.EXE, FASTQCC, cwsdpmi.exe |
Original DOS binary (DJGPP) and its DPMI host |
v101qc/ |
Quake 1.01 QuakeC source |
v106qc/ |
Quake 1.06 QuakeC source |
v164qw/ |
QuakeWorld 1.64 QuakeC source |
make
Builds fastqcc with gcc. Still compiles cleanly on modern Linux as of 2026.
The -D defines are documented in the Makefile; the defaults are the fast,
identical-output configuration.
Same as qcc: run it from a directory containing progs.src and the .qc
files. It writes progs.dat to the parent directory.
cd v106qc
../fastqcc
The compiler source (*.c, *.h, Makefile) is derived from id Software's
qcc, released with the Quake tools in 1996 and later re-released by id under
the GNU General Public License version 2 (see
id-Software/Quake-Tools). As a
derivative work, fqcc is distributed under the same GPLv2 terms; see LICENSE.
The fqcc modifications are copyright 1997 Jonathan Roy.
The QuakeC game sources in v101qc, v106qc, and v164qw are copyright
id Software and were never placed under the GPL. They are included here as
test inputs under id's original Quake distribution terms.