Continuing in this series on porting Quake II to MS-DOS, we get to touch some of the fun stuff. Â The first big ‘fun’ thing is networking.
Now in my prior work with the MS-DOS version of Quake, I had used the WATTCP library to bring networking to the otherwise Windows/UNIX specific fun of network deathmatch back to MS-DOS.  Quake by default had support for the Beame & Whiteside’s TCP/IP stack which for all intents and purposes has vanished from the face of the Earth (does anyone have a copy?!).  So at the time, I thought it’d be cool to try to interface WATTCP with Quake, and it worked on the first attempt as WATTCP is a very competent TCP/IP stack.
So I took the Linux networking file net_udp, and compiled it, and I got an executable!
When it comes to testing WATTCP though, I prefer to use Qemu instead of DOSBox as it can not only emulate various network cards to which I can find packet drivers (yes even the evil PCI NE2000!) but it has a built in SLiRP network stack that let’s me NAT on my desktop without any crazy network configs.
And for the sake of testing, I setup a ‘null’ text mode server, figured out some flags, and I was able to connect!
Very exciting stuff indeed!
Now for some interesting stuff. Â First I noticed that MS-DOS 5.00 with himem.sys is almost unplayable because it is so slow. Â MS-DOS 4.01 without himem.sys is actually faster. Â No, I’m not kidding.
Next is that some levels LOVE to gobble up RAM. Â Maps like city1 will need at least 192MB of ram. Â I haven’t even tried playing with the virtual memory of DJGPP, and I really don’t want to. Â And let’s face if, if you even try to load Quake II on a MS-DOS machine, it better be a ‘big’ one. Â This means you should be using the ‘dos’ from Windows 98, or perhaps FreeDOS, although I haven’t tested that at all.
So far from our limited testing the networking seems to be pretty good. Â And at least that is one function we didn’t have to really pour a lot of effort into. Â Although the payoff of being able to connect to servers on the LAN and even the internet is a good thing.