skrebbel 5 hours ago

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!

  • maybewhenthesun 5 hours ago

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

    • bombcar 18 minutes ago

      It's a bit surprising because this is the author of the DooM Black Book and they know the underpinnings pretty well.

      However, the difference between a DOS VM under Windows 9x and a Windows command prompt and a w32 program started from DOS is all very esoteric and complicated (even Raymond Chen has been confused about implementation details at times).

    • trollbridge 3 hours ago

      DPMI clients don’t run in a VM, though. They’re just a normal task like any other task / process in Windows.

      • toast0 an hour ago

        So... Win32 runs in virtual mode. In 2025, we don't think of that as a Virtual Machine, but it totally is. Hardware access is trapped by the CPU and processed by the OS/DPMI server.

    • zoeysmithe 2 hours ago

      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.

  • bluedino 2 hours ago

    Would love to see some interviews etc with DJ if he's up for it

  • eknkc 5 hours 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.

    • simiones 4 hours ago

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

    • kbolino 2 hours ago

      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.

    • marpstar an hour ago

      I took an 8-week, 1-credit badminton course to fulfill my PE requirements. I wouldn't be surprised to find a marksmanship course.

    • stronglikedan 2 hours ago

      We have myriad available "electives" that contribute towards our degrees. I have college credit for "bowling and billiards" and "canoeing and kayaking".

    • mortehu 4 hours ago

      US colleges last one year longer, and the first year is more academically similar to the last year of high school in Europe.

    • Cthulhu_ 5 hours ago

      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.

      • le-mark 4 hours ago

        It would be an easy “A” for a lot of people in the US!

  • gpderetta 3 hours ago

    It was great indeed. DJGPP is how I learned to to program.

ggambetta 7 hours ago

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!

  • d3Xt3r 6 hours ago

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

    • jacquesm 5 hours ago

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

      • ggambetta 3 hours ago

        That's pretty hardcore, respect :)

      • giantrobot 2 hours ago

        Your parents: A soldering iron is dangerous!

        You: I'll show you!

    • khafra 4 hours ago

      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.

  • lll-o-lll 4 hours ago

    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.

afandian 7 hours ago

> 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

  • torh 6 hours ago

    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.

    • ralferoo 5 hours ago

      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.

      • afandian 4 hours ago

        Yes, it's definitely a word from a 1990s geography textbook.

sempron64 2 hours ago

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.

  • ryandrake an hour ago

    Glad you mentioned DOOM! Sometimes people forget that DOOM supported multiplayer as early as December 1993, via a serial line and February 1994 for IPX networking. 4 player games on a LAN in 1994! On release, TCP/IP wasn't supported at all, but as the Internet took off, that was solved as well. I remember testing an early-ish version of the 3rd party iDOOM TCP setup driver from my dorm room (10 base T connection) when I was supposed to be in class, and it was a true game changer.

    • jandrese 42 minutes ago

      What was even more amazing is you could daisy chain serial ports on computers to get multiplayer Doom running. One or more of those links could even be a phone modem.

      Downside is that your framerate was capped to the person with the slowest computer, and there was always that guy with the 486sx25 who got invited to play.

  • kamranjon an hour ago

    I wonder if there is a way to use tailscale to make it easy again?

    • blackcatsec an hour ago

      Quite literally folks have done this for decades using Hamachi.

PeterHolzwarth 2 hours ago

Is this the sign that Fabian is beginning his look and research at Quake (ie, in slow preparation for another Game Engine Black Book)?

  • bombcar 16 minutes ago

    I feel he's stepping his way to that, but Quake is an entire other world of complexity from DooM (which is simple enough that a 400+ page book can "explain" it and the OS and the computers it ran on).

sroussey 7 hours ago

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.

  • ogurechny 2 hours ago

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

  • hypercube33 6 hours ago

    Didn't Win95 get tcp from FreeBSD?

    • LeoPanthera 6 hours ago

      That was Windows 2000.

      • hypercube33 5 hours ago

        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)

        • zweifuss 4 hours ago

          The history of the Windows TCP/IP stack went most likely like this:

          IBM (NetBEUI, no TCP/IP) -> Spider TCP/IP Stack + SysV STREAMS environment -> MS rewrite 1 (early NT, Winsock instead of STREAMS) -> MS rewrite 2 (make win2000 faster):

          https://web.archive.org/web/20151229084950/http://www.kuro5h...

          • kalleboo 4 hours ago

            It's interesting how STREAMS pervaded everything for a short while (Apple's Open Transport networking stack for System 7.5 and up was also based on STREAMS) but everyone almost immediately wanted to get rid of it and just use Berkley sockets interfaces.

            • xbar 2 hours ago

              Berkeley, for disambiguation.

              • kalleboo an hour ago

                Oops, too late to edit my comment!

ec109685 3 hours ago

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.

  • hylaride 3 hours ago

    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.

    • 1718627440 an hour ago

      Dial-up, has better latency, since their is no packet-switching. So it is slow, but not laggy.

      • ipython an hour ago

        Dialup has a ton of latency (100+ms), but little jitter.

      • giantrobot 40 minutes ago

        You're using confusing terminology so you look very wrong. What you mean to say is direct modem-to-modem connections were not laggy because there was no packet switching. This is a true statement.

        What the GP comment was talking about was dial-up Internet being most people's exposure to TCP/IP gaming in the 90s. That was most assuredly laggy. Even the best dial-up Internet connections had at least 100ms of latency just from buffering in the modems.

        The QuakeWorld network stack was built to handle the high latency and jitter of dial-up Internet connections. The original Quake's network was fine on a LAN or fast Internet connection (e.g. a dorm ResNet) but was sub-par on dial-up.

mmastrac an hour ago

I still get Google hits on my 25 year old DJGPP/NASM tutorial...

anthk 24 minutes ago

On DOS runnning fast under W95, how no one created a SVGALIB wrapper trapping i386 code and redirecting the calls to an SDL window?

fallingfrog 2 hours ago

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.

cubefox 2 hours ago

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.

nikanj 6 hours ago

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

  • skywal_l 5 hours ago

    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

    • acchow 5 hours ago

      But your link says that QuakeC was a compiled language

      • vkazanov 5 hours ago

        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.

      • FartyMcFarter 5 hours ago

        It's compiled into bytecode, so it still requires a VM / bytecode interpreter (whatever you want to call it).

      • Luc 5 hours ago

        Compiled to bytecode.