GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - roy7/fqcc: fqcc 1.02 - Fast QuakeC Compiler (1997), a faster drop-in replacement for id Software's qcc

BranchesTags
Open more actions menu

Latest commit

 

History

2 Commits
2 Commits

Folders and files

NameName
Last commit message
Last commit date
v101qc
v101qc
 
 
v106qc
v106qc
 
 
v164qw
v164qw
 
 
.gitignore
.gitignore
 
 
FASTQCC
FASTQCC
 
 
FASTQCC.EXE
FASTQCC.EXE
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
README
README
 
 
README.fast
README.fast
 
 
README.md
README.md
 
 
builtin.c
builtin.c
 
 
cmdlib.c
cmdlib.c
 
 
cmdlib.h
cmdlib.h
 
 
cwsdpmi.exe
cwsdpmi.exe
 
 
hash.c
hash.c
 
 
hash.h
hash.h
 
 
pr_comp.c
pr_comp.c
 
 
pr_comp.h
pr_comp.h
 
 
pr_lex.c
pr_lex.c
 
 
progdefs.h
progdefs.h
 
 
qcc.c
qcc.c
 
 
qcc.h
qcc.h
 
 

Repository files navigation

fqcc — Fast QuakeC Compiler (1996–1997)

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.

Contents

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

Building

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.

Usage

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

License

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.

About

fqcc 1.02 - Fast QuakeC Compiler (1997), a faster drop-in replacement for id Software's qcc

Topics

compilerdosgplv2quakequakecretro

Resources

Readme
GPL-2.0 license
Activity

Stars

1 star

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.