www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/12/31/03:17:13

From: "Charles Sandmann" <sandmann AT clio DOT rice DOT edu>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Why did ID choose DJGPP for Quake?
Date: Fri, 31 Dec 1999 0:28:25
Organization: Aspen Technology, Inc.
Lines: 35
Message-ID: <386bf8a9.sandmann@clio.rice.edu>
NNTP-Posting-Host: dcloan.aco.aspentech.com
X-NewsEditor: ED-1.5.8
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

From someone who talked with them before they made the decision, and during
the development:

1) Cross development.  They wanted fast stable boxes (Unix) to do development
   on with minimal effort to migrate.
2) Possibility to ship the compiler.
3) Source availabiltiy and the libc sources - including DJ's commercial
   policy and willingness to provide lightning fast response to questions.
4) Verbal assurances the development team would make DJGPP work for them.

The commercial quake was built with V2.0 beta 3 - not the final release -
using unixy sbrk, prototype near pointers, and some ugly memory management
code to make sure the arena never moved.

Once their code was stable with beta 3 - they released with it and didn't
want to upgrade - it would have required changes to the memory management
code.  I remember discussing this with one of their partner developers 
adding drivers or porting about 6 months after the release.  A minor fix.

Quake did drive some DJGPP development.  Near pointers is the most obvious.
Near pointers don't work under NT - which was a huge disappointment to iD
and generated some conference calls to Microsoft.  The result of those 
calls was that this was a protection feature of NT and was not going to
be fixed.  If NT had been a bigger market at the time - I was going to
provide the dynamic fixup runtime linker (the basis of the DXE code) in
the stub to make the base of memory at 0000000 be an option which would
have allowed near pointers to work under NT.  This would have delayed 
release about a month or so - and so it didn't happen.

Win95 has a huge buggy hack at the time - in beta - and the biggest 
grief was getting Quake to run reliably under the W95 DPMI provider.

CWSDPR0 is a Quake development special - they wanted ring 0 access for the
pentium instruction timing opcodes when hand crafting the final assembler
performance.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019