So after a year+ of inactivity I’ve spent some time with Quake (netquake) and QuakeWorld for MS-DOS. I had modified it to support the WatTCP stack for MS-DOS, allowing you to play over the internet with any MS-DOS PC with a packet driver.
After a good bit of prodding and playing with DJGPP I’ve updated everything to include some new tweaks for a malloc ‘bug’ (Quake assumes the memory is clean, which under DJGPP it isn’t) some limit increases (zone to 1MB, and increases in max edicts, models & sounds), and forcing the sound to 22050Hz. The source code is now here. As much as it pained me, I built it with this DJGPP under MS-DOS (On Qemu) and I’m keeping it here, as gcc 3 & 4 are incapable of building a working WatTCP or Quake.
Another big fix for QuakeWorld is that it now can run in 640×480, 800×600, and even 1024×768 if your video card is VESA 2.0 compatible!!!
Basically you can just replace the default exe’s in a Quake1 install and go from there. If you do not have quake at all, you can always look for the shareware version. QuakeWorld will require the commercial version for what it is worth. I’ve found it runs best with 32MB of ram. I don’t know if that is even an issue in this day & age. Quake1 will run in 16, but I have a feeling QuakeWorld runs in VM (thanks to CWSDPMI) and it does say it is using 32MB … Because I clear the ‘zone’ before Quake runs there may be a 30 second to 1 minute pause. This is to be expected, just hold tight.
Granted for Qemu I manually add in the Adlib card (why isn’t it there??) but for MS-DOS you almost always have to set the BLASTER environment variable… And I always forget what it is…
SET BLASTER=A220 I5 D1 H5 P330 T5
Which translates to an IO base of 0x220, IRQ 5, DMA 1 and High DMA 5. Because it has a high DMA channel, it is a Sound Blaster 16, and specified by T5. If you want to play MS-DOS games in Qemu, be sure to compile in the adlib..
Or at least this works for running Quake & Doom … 🙂
Inspired from this video, I have to admit I’m really impressed how GNS3 can now network between dynamips router instances, and Qemu … So I grabbed an old IOS version from a 7200, and fired up Qemu with NT 4.0 and built a super simple network. Because it won’t let you hotplug cables between hosts, I figured I’d just go ahead and add switches everywhere. So bottom line is that I setup a super simple network, and I can ping/telnet to the routers from NT. This could even be used to build more complicated networks, but as always people seem to get more excited about doing ‘pings’ through the network, and overlook actual USER traffic…
GNS3 uses a custom build of Qemu 0.11.0, which I may have to feel the need to modify it for some control-alt-delete fun, along with making sure the ISA NE2000 is on an agreeable port/IRQ.
Not sure why its suddenly working…. but I suspect it may be either updates to both OS/2 base OS & TCP/IP or…. it is because I’m using the QuakeWorld server code that matches the client…. Anyways I’ll upload a binary and the rest later as it is super late. But for those of you who want to see it…
Yes it really is an OS/2 exe built with EMX!
I’ve updated the sourceforge page to include an exe, and a copy of the updates that I’m using to OS/2.. Oddly enough my OS/2 install with Virtual PC no longer works… The NIC isn’t found anymore, must be some update? I’ve got 188.8.131.52, although I know for a fact that this image used to work…
Further update, turns out I’m retarded the AMD PCNet driver is for VMWare/Qemu … Virtual PC emulates a DEC 21140a, which I downloaded a NDIS2 driver from Intel which works great. I do have to turn off hardware assisted virtualization otherwise OS/2 won’t boot at all from the hard disk.. I’m not sure if it is because I’m now on an AMD computer, or if it is the matched QuakeWorld server/client but it works fine… in Qemu & Virtual PC.
But the one thing that did drive me nuts was using /64’s everywhere… even p2p (that’s point to point!) links where even a 3rd host is impossible. I mean it is incredible to have 18,446,744,073,709,551,616 (2^64) addresses per network, but to use 2 out of the 18,446,744,073,709,551,616 just seems insane!!!
Luckily I’m not the only one that shares this opinion, Jeff Doyle does as well.
Long story short: Give up your ipv4 mentality, and just get used to it. ARIN is pushing people to /64 things like T1/E1/J1 connections.
I haven’t even tried to build it yet, but after finding a git repository here I had to ‘share’ it somewhere… Looks like there is some SMP bug fixes, and other good stuff so I’ll hope it’ll run on the new Qemu!
And for those of us without git, you can download a zip from the site!