> 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.
I'm pretty sure that "DJGPP engineers" is just one guy, DJ Delorie. DJGPP was always open source so I bet he got some contributors, but if the rest of this sentence is true that "id has requested from djgpp engineers", it just means they asked the maker of an open source tool they used to please add a feature. I wonder whether they paid him for it or whether DJ just hacked it all in at id's request for kicks. His "about me" page suggests he does contracting so might be the latter.
DJGPP was spectacularly good back in the day. I didn't appreciate at the time what a monumental effort it must have been to port the entire GCC toolchain and runtime to DOS/Windows. Hats off to DJ Delorie!
I think I remember there was some communication between ID and Charles Sandmann about CWSDPMI, so even though it's worded a bit strange for an open source project there's probably some thruth in it?
Also a bit strange how the author is surprised about Quake running in a 'VM', apparently they don't really know about VM86 mode in x86 processors...
I think if you're relatively young is hard to know computing history. Its oddly older than one thinks, even concepts that are seen as new. Its sometimes interesting to see people learn about BBS's which flourished 40 years ago.
So I just took a look at DJ’s website and he has a college transcript there. Something looked interesting.
Apparently he passed a marksmanship PE course at the first year. Is that a thing in US? I don’t know, maybe its common and I have no idea. I’d love to have a marksmanship course while studying computer science though.
It's definitely not common. My US university required 2 physical education classes, but only if you were under 30 and hadn't served in the military. They may have offered marksmanship, but I just took running and soccer (aka football). The classes were graded pass-fail and didn't even count for academic credit.
We have myriad available "electives" that contribute towards our degrees. I have college credit for "bowling and billiards" and "canoeing and kayaking".
US colleges have a very open curriculum, where you have wide leeway in what classes you actually take, especially in the early years of study. If you're coming from more European-style universities, this is vastly different to the relatively rigid course set you'd take (with a few electives here and there).
I learned to solder as a pre-teen so I could make a nullmodem :) Then I learned that resistors were a thing when I made a parallel port sound card (this thing https://en.wikipedia.org/wiki/Covox_Speech_Thing). Fun times!
I wasn't allowed a soldering iron as a kid, so I ended up just chopping and splicing a regular serial cable and turned it into a null modem, all so that I could play OMF2097 with my friends without having to share the same keyboard (we would always fight over right side, which defaulted to using the arrow keys for movement - and so the person who got the right side generally had the advantage, as back then arrow keys were the default movement keys, unlike these days where WASD is default.)
Shared-keyboard OMF 2097 also had an overwhelming advantage for the first mover, since most keyboards had 2-3 key rollover--if you hit wd to jump forward, your opponent had to be fast to do anything before you hit your attack key.
Really fun times. I “learned” to solder around that time and age also. Playing Mod files through a DIY version of that “thing” piped into a portable stereo speaker was awesome.
Years later I learned what flux was, and soldering became quite a bit better and easier.
It's amusing to me that in the 90s you could easily play Quake or Doom with your friends by calling their phone number over the modem whereas now setting up any sort of multiplayer essentially requires a server unless you use some very user-unfriendly NAT busting.
Or from the Seinfeld episode "The Pool Guy" (Aired November 1995) which had a fictional movie called "Chunnel" -- probably based on the very same channel tunnel.
From Google (AI slop at top of search results): "Chunnel" is not a real movie but a fictional film from the TV show Seinfeld. It is depicted as a disaster movie about an explosion in the Channel Tunnel...
Weird hearing that name now though. Around that time, everybody referred to it as the "Chunnel", but I don't think I've heard it as anything but the "Channel Tunnel" since maybe 2000. I suspect even that usage is now limited to only taking cars on the train from Folkestone. Every time I've travelled on it as a regular passenger from London, it's just been referred to as the Eurostar without any mention of the tunnel at all.
I was half expecting something about how to get tcp into windows, but this is win95 where they shipped it inside the os and put some company out of business that used to sell that.
The turbulent times and the breakneck speed of computer development need to be taken into account. Not long before that computer networks were strictly corporate things installed by contractors choosing hardware, driver and software suppliers suitable for tasks performed by employees or students, and someone who installed it at home was the same kind of nerd who would drag an engine from the work into his room to tinker. Non-business-oriented software rarely cared about third party network functions. Then network card became a consumer device, and a bit later it became integrated and expected.
Also, Windows did not install TCP/IP components on computers without a network card (most of them until the Millennium era), it was an optional component. You could not “ping” anything, as there was no ping utility, nor libraries it could call. In that aspect, those network-less Windows systems were not much different from network-less DOS systems. The installer probably still works that way (or can be made to, by excluding some dependencies), but it's hard to find hardware without any network connectivity today. I wonder what Windows 11 installer does when there is no network card to phone home...
This article makes it seems like 1996 was ancient times. There was the internet then, browsers, Mac’s had a tcp stack for a while by then, quake was an extremely advanced game.
Yeah, the dos to windows transitions was a big deal, but it was a pretty ripe time for innovation then.
Yeah, but dial-up was slow, laggy, and what 95% of people used to access the internet in those days. Real-time gaming was not fun with anything that used it. I grew up in a rural area in the 1990s and was no match for people that started to get cable modems as time went on.
Ah I remember running a serial cable from my bedroom to the hallway so we could play 1v1 quake via direct connect. Good times! I think we used to play age of empires that way too.
” It is impressive to see Quake run at full speed knowing that Windows 95 runs DOS executable in a virtual machine. My guess is that, in full screen, memory writes and reads to the VGA are given direct access to the hardware to preserve performances”
Virtual x86 mode had little to do with what we nowadays think of when someone says ”virtual machine”
In an interview with Lex Fridman, John Carmack said that in retrospect, Quake was too ambitious in terms of development time, as it both introduced network play and a fully polygonal 3D engine written in assembly. So it would have been better to split the work in two and publish a "Network Doom" first and then build on that with a polygonal Quake.
Which seems to imply that the network stack was about as difficult to implement as the new 3D engine.
Random drive-by nitpick:
> 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.
I'm pretty sure that "DJGPP engineers" is just one guy, DJ Delorie. DJGPP was always open source so I bet he got some contributors, but if the rest of this sentence is true that "id has requested from djgpp engineers", it just means they asked the maker of an open source tool they used to please add a feature. I wonder whether they paid him for it or whether DJ just hacked it all in at id's request for kicks. His "about me" page suggests he does contracting so might be the latter.
DJGPP was spectacularly good back in the day. I didn't appreciate at the time what a monumental effort it must have been to port the entire GCC toolchain and runtime to DOS/Windows. Hats off to DJ Delorie!
Would love to see some interviews etc with DJ if he's up for it
Amen to that!
I think I remember there was some communication between ID and Charles Sandmann about CWSDPMI, so even though it's worded a bit strange for an open source project there's probably some thruth in it?
Also a bit strange how the author is surprised about Quake running in a 'VM', apparently they don't really know about VM86 mode in x86 processors...
DPMI clients don’t run in a VM, though. They’re just a normal task like any other task / process in Windows.
I think if you're relatively young is hard to know computing history. Its oddly older than one thinks, even concepts that are seen as new. Its sometimes interesting to see people learn about BBS's which flourished 40 years ago.
Completely off topic;
So I just took a look at DJ’s website and he has a college transcript there. Something looked interesting.
Apparently he passed a marksmanship PE course at the first year. Is that a thing in US? I don’t know, maybe its common and I have no idea. I’d love to have a marksmanship course while studying computer science though.
It's definitely not common. My US university required 2 physical education classes, but only if you were under 30 and hadn't served in the military. They may have offered marksmanship, but I just took running and soccer (aka football). The classes were graded pass-fail and didn't even count for academic credit.
We have myriad available "electives" that contribute towards our degrees. I have college credit for "bowling and billiards" and "canoeing and kayaking".
US colleges have a very open curriculum, where you have wide leeway in what classes you actually take, especially in the early years of study. If you're coming from more European-style universities, this is vastly different to the relatively rigid course set you'd take (with a few electives here and there).
US colleges last one year longer, and the first year is more academically similar to the last year of high school in Europe.
I wouldn't be surprised if it's a pretty normal thing in a few countries or regions in the world. Marksmanship and archery are also olympic sports.
1 reply →
It was great indeed. DJGPP is how I learned to to program.
I learned to solder as a pre-teen so I could make a nullmodem :) Then I learned that resistors were a thing when I made a parallel port sound card (this thing https://en.wikipedia.org/wiki/Covox_Speech_Thing). Fun times!
I wasn't allowed a soldering iron as a kid, so I ended up just chopping and splicing a regular serial cable and turned it into a null modem, all so that I could play OMF2097 with my friends without having to share the same keyboard (we would always fight over right side, which defaulted to using the arrow keys for movement - and so the person who got the right side generally had the advantage, as back then arrow keys were the default movement keys, unlike these days where WASD is default.)
I wasn't allowed one either so I soldered with a screwdriver heated up on the gas stove when my parents weren't home...
2 replies →
Shared-keyboard OMF 2097 also had an overwhelming advantage for the first mover, since most keyboards had 2-3 key rollover--if you hit wd to jump forward, your opponent had to be fast to do anything before you hit your attack key.
Really fun times. I “learned” to solder around that time and age also. Playing Mod files through a DIY version of that “thing” piped into a portable stereo speaker was awesome.
Years later I learned what flux was, and soldering became quite a bit better and easier.
It's amusing to me that in the 90s you could easily play Quake or Doom with your friends by calling their phone number over the modem whereas now setting up any sort of multiplayer essentially requires a server unless you use some very user-unfriendly NAT busting.
> I didn't work on the Chunnel. That was mainly a British guy named Henry
The British guy named Henry might have named it after another feat of engineering completed around the same time.
https://en.wikipedia.org/wiki/Channel_Tunnel
Or from the Seinfeld episode "The Pool Guy" (Aired November 1995) which had a fictional movie called "Chunnel" -- probably based on the very same channel tunnel.
From Google (AI slop at top of search results): "Chunnel" is not a real movie but a fictional film from the TV show Seinfeld. It is depicted as a disaster movie about an explosion in the Channel Tunnel...
Weird hearing that name now though. Around that time, everybody referred to it as the "Chunnel", but I don't think I've heard it as anything but the "Channel Tunnel" since maybe 2000. I suspect even that usage is now limited to only taking cars on the train from Folkestone. Every time I've travelled on it as a regular passenger from London, it's just been referred to as the Eurostar without any mention of the tunnel at all.
1 reply →
Is this the sign that Fabian is beginning his look and research at Quake (ie, in slow preparation for another Game Engine Black Book)?
I was half expecting something about how to get tcp into windows, but this is win95 where they shipped it inside the os and put some company out of business that used to sell that.
The turbulent times and the breakneck speed of computer development need to be taken into account. Not long before that computer networks were strictly corporate things installed by contractors choosing hardware, driver and software suppliers suitable for tasks performed by employees or students, and someone who installed it at home was the same kind of nerd who would drag an engine from the work into his room to tinker. Non-business-oriented software rarely cared about third party network functions. Then network card became a consumer device, and a bit later it became integrated and expected.
Also, Windows did not install TCP/IP components on computers without a network card (most of them until the Millennium era), it was an optional component. You could not “ping” anything, as there was no ping utility, nor libraries it could call. In that aspect, those network-less Windows systems were not much different from network-less DOS systems. The installer probably still works that way (or can be made to, by excluding some dependencies), but it's hard to find hardware without any network connectivity today. I wonder what Windows 11 installer does when there is no network card to phone home...
I used to use Trumpet Winsock with Windows 3.1
https://en.wikipedia.org/wiki/Trumpet_Winsock
Didn't Win95 get tcp from FreeBSD?
That was Windows 2000.
5 replies →
This article makes it seems like 1996 was ancient times. There was the internet then, browsers, Mac’s had a tcp stack for a while by then, quake was an extremely advanced game.
Yeah, the dos to windows transitions was a big deal, but it was a pretty ripe time for innovation then.
Yeah, but dial-up was slow, laggy, and what 95% of people used to access the internet in those days. Real-time gaming was not fun with anything that used it. I grew up in a rural area in the 1990s and was no match for people that started to get cable modems as time went on.
Ah I remember running a serial cable from my bedroom to the hallway so we could play 1v1 quake via direct connect. Good times! I think we used to play age of empires that way too.
” It is impressive to see Quake run at full speed knowing that Windows 95 runs DOS executable in a virtual machine. My guess is that, in full screen, memory writes and reads to the VGA are given direct access to the hardware to preserve performances”
Virtual x86 mode had little to do with what we nowadays think of when someone says ”virtual machine”
Not entirely related but Quake had a VM though, executing scripts written in QuakeC[0] which would drive the AI, game events, etc.
[0]: https://en.wikipedia.org/wiki/QuakeC
But your link says that QuakeC was a compiled language
3 replies →
In an interview with Lex Fridman, John Carmack said that in retrospect, Quake was too ambitious in terms of development time, as it both introduced network play and a fully polygonal 3D engine written in assembly. So it would have been better to split the work in two and publish a "Network Doom" first and then build on that with a polygonal Quake.
Which seems to imply that the network stack was about as difficult to implement as the new 3D engine.
[dead]