Live data from Hacker News

How Quake.exe got its TCP/IP stack

fabiensanglard.net

11–20 of 158 posts

Re: How Quake.exe got its TCP/IP stack

#11
post #8

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…

I wasn't allowed one either so I soldered with a screwdriver heated up on the gas stove when my parents weren't home...

Re: How Quake.exe got its TCP/IP stack

#12
post #7

” 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

Re: How Quake.exe got its TCP/IP stack

#13
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!

Re: How Quake.exe got its TCP/IP stack

#14

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…

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...

Re: How Quake.exe got its TCP/IP stack

#15
post #7

” 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

Re: How Quake.exe got its TCP/IP stack

#16

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…

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.

Re: How Quake.exe got its TCP/IP stack

#17
post #7

” 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

[deleted]

Re: How Quake.exe got its TCP/IP stack

#18
post #16

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…

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.

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.

Re: How Quake.exe got its TCP/IP stack

#19

Earlier quoted context omitted.

Didn't Win95 get tcp from FreeBSD?

That was Windows 2000.

No I'm fairly certain that berkley sockets were used as a foundation to integrate a full network stack under winsockets so people wouldn't have to go buy things like Trumpet (Windows 3.1) and you could coax out messages saying as much from the commandline but Google is failing me (I'm sure most of this stuff is on usenet which no one seems to care about these days)

Re: How Quake.exe got its TCP/IP stack

#20
post #15

Earlier quoted context omitted.

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

QuakeC was compiled into QuakeVM bytecode, which made all modes and logic portable between platforms without having to recompile things everytime, unlike what had to be done for Quake 2 (which was 100% native code).

This hurt performance a bit but in the longer term benefited the modding scene massively.

Post reply on HN