Quake1 with WATTCP built with DJGPP on DOSBox

General information and assistance with DOSBox.

Quake1 with WATTCP built with DJGPP on DOSBox

Postby DosFreak » 2011-1-05 @ 13:27

http://virtuallyfun.blogspot.com/2011/0 ... pp-on.html

Phew.

As far as I know this was never done, as the world at large moved away from MS-DOS, and of course when Quake 1 on MS-DOS was popular they weren't exactly giving out the source... Such a shame the DLM thing was lost in the shuffle as DLL's on DJGPP/MS-DOS could have made quake more modular..

So what I've done, is I've used an ancient version of cygwin that I was playing around with line, and built a cross compiler for DJGPP. Then using that I've built the latest version of Watt-32 tcp/ip with it, then I took my build of Quake 1 on DJGPP, and built quake to use the net_bsd, net_udp, net_dgrm services, and added in the needed hooks for Watt-32 TCP/IP. And to their credit, I just added a single function call to both protocols init functions, and a single function to the general network poll function. All and all I think it's 3 lines I changed.

Then to test, I used an older copy of DOSBox that included a virtual NE2000 that binds onto a physical interface via libpcap, loaded up the packet ne2000 driver, and ran the client!

For a server, I used the much older, quake dedicated server I had built to run on Windows NT 3.1. Although I never did automatically turn on the '-dedicated' flag for some reason...

On the Windows XP virtual machine, I installed a loopback adapter, then set it up with internet connection sharing so that XP would act as a DHCP server to the Watt-32 TCP/IP stack.

Anyways, as you can see in the picture I connected a simple sniffer, WinDump to watch the packets, and it worked.

I'm still blown away that it worked on the first shot.

It's really a testament to all the people that make all the moving parts here, when I can just string stuff along and get it to work.

For anyone daring enough, this zip contains all the source, and binaries of all the parts, except for the cygwin install. (I did have to poach a 'modern' cygwin1.dll from a modern install).



Alright who wants to get their butt kicked in Quake? :D
User avatar
DosFreak
l33t++
 
Posts: 9719
Joined: 2002-6-30 @ 16:35
Location: Your Head

Re: Quake1 with WATTCP built with DJGPP on DOSBox

Postby neozeed » 2011-1-05 @ 14:02

Heh I'm glad you saw it! I was wondering about spreading the word on this thing, it's very cool!

I've even loaded it up on Qemu, and Virtual PC and connected them up to a quake1 server on the internet overnight... And this morning they were still both connected!

The only caveat seems to be this built really really REALLY wants a sound blaster... and a packet driver.. otherwise it'll just crash. It seems my cross build of djgpp doesn't handle signals that well.

Image

I'm still amazed it works as well as it does.
User avatar
neozeed
Newbie
 
Posts: 37
Joined: 2010-6-08 @ 13:56
Location: Hong Kong

Re: Quake1 with WATTCP built with DJGPP on DOSBox

Postby leileilol » 2011-1-05 @ 21:46

This is something I need to put into Engoo - maybe port Quakeworld with this stack used. :)

DEATH TO MPATH - Q95.BAT CALLING FOR VIRTUAL WIN9X TCP STACK! AND BEAME & WHITESIDE PPP TOO!
Voodoo2s aren't 100mhz stock
Geforce256 isn't released as a beta on New Years '99 under the Quadro brand
386DX vs SX isn't about a missing FPU
DOS gaming isn't a bilinear 320x200 16:10
DOS PCs aren't better than the Macintosh
Old PCs aren't 'aesthetic'
User avatar
leileilol
l33t++
 
Posts: 9195
Joined: 2006-12-16 @ 18:03

Re: Quake1 with WATTCP built with DJGPP on DOSBox

Postby neozeed » 2011-1-06 @ 03:22

Engoo? looks interesting.... I always thought QuakeWord was basically the same...?

I'll be more then happy to look at it... :)

I know it's hard to believe but I really am a Quake n00b... I never had a machine fast enough when it came out, then I got a job..... And me & my Pentium 60 spent all of our time doing FORTRAN and COBOL.... :(
Last edited by neozeed on 2011-1-06 @ 17:45, edited 1 time in total.
User avatar
neozeed
Newbie
 
Posts: 37
Joined: 2010-6-08 @ 13:56
Location: Hong Kong

Re: Quake1 with WATTCP built with DJGPP on DOSBox

Postby leileilol » 2011-1-06 @ 06:43

quakeworld's not the same, it's just quake with its progs and game logic rewritten to a different approach involving minimal events, lerping and predicting. it was largely an experimental attempt to invent some way to make quake online play lag less (and it worked, and subsequently shaped modern online gaming today)
Voodoo2s aren't 100mhz stock
Geforce256 isn't released as a beta on New Years '99 under the Quadro brand
386DX vs SX isn't about a missing FPU
DOS gaming isn't a bilinear 320x200 16:10
DOS PCs aren't better than the Macintosh
Old PCs aren't 'aesthetic'
User avatar
leileilol
l33t++
 
Posts: 9195
Joined: 2006-12-16 @ 18:03

Re: Quake1 with WATTCP built with DJGPP on DOSBox

Postby neozeed » 2011-1-06 @ 12:44

well I went through the source, and yeah QW is VERY different, but luckily it supports the same SYS infrastructure.... I've built a MS-DOS QW client, and I'm connecting to

quake.xs4all.nl:27500


And right now it's downloading a map!

---

Ok, it connects, but there is no sound and it times out after 2 minutes.... it could be lag, or of course.... MS-DOS............ :|

----

More digging around it seems they moved the S_INIT code in QW into the video drivers.......?

Whatever, I just put it back where it was, and now I got sound.

The wierd thing is work just gave me a new laptop (yay!) and now neither quake, nor qw work in virtualpc, nor dosbox in virtualpc..... so wierd! But it works in Qemu......

In Qemu if I have -O1 or -O2 flags it timesout after 2 minutes, but with -O0 it works.......

so let me package and upload this thing...

It's cool, you'll love it.

Quakeworld for MS-DOS!
User avatar
neozeed
Newbie
 
Posts: 37
Joined: 2010-6-08 @ 13:56
Location: Hong Kong


Re: Quake1 with WATTCP built with DJGPP on DOSBox

Postby leileilol » 2011-1-06 @ 20:53

EXCELLENT EXCELLENT :)
Voodoo2s aren't 100mhz stock
Geforce256 isn't released as a beta on New Years '99 under the Quadro brand
386DX vs SX isn't about a missing FPU
DOS gaming isn't a bilinear 320x200 16:10
DOS PCs aren't better than the Macintosh
Old PCs aren't 'aesthetic'
User avatar
leileilol
l33t++
 
Posts: 9195
Joined: 2006-12-16 @ 18:03

Re: Quake1 with WATTCP built with DJGPP on DOSBox

Postby neozeed » 2011-1-10 @ 15:20

I just dug out an old P4 (lol) with a Sound Blaster AWE64, and loaded this up natively, and... it works great! I'm using an AMD PCNet NIC, and sure I got killed a lot, but no clock issues on xs4all.nl
User avatar
neozeed
Newbie
 
Posts: 37
Joined: 2010-6-08 @ 13:56
Location: Hong Kong


Return to DOSBox General

Who is online

Users browsing this forum: No registered users and 1 guest