Tech News
← Back to articles

How Quake.exe got its TCP/IP stack

read original related products more articles

Nov 17, 2025

How quake.exe got its TCP/IP stack

Released in June 1996, Quake had to ride three technological shock-waves during its lifetime. Besides the emergence of 3D hardware accelerator cards and the growth of the Internet, an operating system shift put game developers in a tough position.

With its push for Windows 95 and Windows NT, Microsoft was replacing its legacy PC operating system, MS-DOS. From 1996 to 1997, the market share of DOS dropped by 50%. Some developers, like Blizzard North, took the leap of faith and wrote Windows 95–exclusive titles such as Diablo. id Software on the other hand went through the effort of producing a single binary, quake.exe , able to run on both DOS and Windows.

What is even more impressive is that id managed to make Quake better when Windows 95 TCP/IP stack was available. Here is how they did it.

quake.exe 101

quake.exe is a DOS executable. id Software had used Watcom compiler for DOOM but they switched to a GCC port named djgpp [1] to cross-compile Quake on Alpha servers.

$ file quake.exe quake.exe: MS-DOS executable, COFF for MS-DOS, DJGPP go32 DOS extender

Alike watcom 's DOS/4GW , djgpp offered to developers an extender allowing to write programs with flat 32-bit addressing instead of the dreaded 16-bit near/far hellish real-mode otherwise mandated by DOS. An extender works with a client and a server. In the case of Quake the extender client is embedded in quake.exe while the server is in cwsdpmi.exe .

From the beginning of the development, id had requested from djgpp engineers that their DPMI client would be able to run on djgpp 's DPMI server but also Windows 95 DPMI server.

... continue reading