Win32 Doom 1.10 Compiled by Andy Bay. Third Release w/ Source Code. 1/1/98 New with 3rd release: Save/Load games work now. Don't get garbage if you warp to a level in the wipe. Includes MSVC 5.0 project file. Works with MSVC 5 Developer Studio.. (I don't do MAKEFILES, sorry.) What works: Video Mouse Single Player Game Teyboard. Joystick. Sound. Music. (need disk space for atb.mus and atb.mid as temp files.) Gamma. What does not work: Network. (I just got what was in the unix stuff to compile.) The weapon have box. (donno why, just crashes!) low detail mode. (just makes it half as wide for now. I though I had a major bug cripple when I first ran it. I have a hack now that makes it at least visible. It was Trashed on my view before.) What I want: 3dfx Doom!! (I can do this.) High res modes. (yep. I'll get to it.) a -ticrate ## parameter so you can make it faster. windowed graphics. Direct3D? (maybe, I haven't done that yet.) DirectSound3D? (could be fun) I'll need testers for this. Notes: If I find anybody using my source code and gets networking to work, I'm going to take that code and use that if I haven't figured it out first. Well, DirectDraw is used as little as possible. I have one function that copies the current doom framebuffer to the backbuffer of the DirectDraw Surface, then I flip them. FoxBear is a cool little game. :) I've had Joystick and Mouse DirectInput code for a while now because of other things I have written. I also use DirectInput for the keyboard now because I needed the scan codes. But everything works except pause, alt-tab, idclev##, and idmus##. This uses DirectX 5 and you need the following libraries to compile: winmm.lib wsock32.lib ddraw.lib dinput.lib dsound.lib dxguid.lib I used absolute paths to make sure I got the right version of DirectX's include files so you may want to change those. There are some custom files that I made for my interface with the game. The DirectDraw behavior is simple. Doom has its own frame buffer. It draws on this buffer. Then at the right time, I copy it to the back buffer of the DirectDrawSurfaces. Then I flip them. DirectSound is used in a simple way: 1) it tries to make a DirectSoundBuffer for each sound, and 1 for each sound channel. it will play the original but if the original is playing, then it will copy it and play it on one of the channel buffers. 2) If the caching fails, then it keeps the sounds in main memory and creates buffers only when it needs them. The midi is played by first extracting the mus to atb.mus. Then I run the conversion function to make it atb.mid. Then I use mci commands to play it. The mouse is polled and makes events. The joystick is polled and makes events. the keyboard is too. To turn the music on, run setup and pick a midi player. (doesn't matter if it exists.) Watch out, the sound code is screwy because of 3 hacks. (original, linux, mine) and the oddities were cumulative. Volume control is unavailable for midi, and probably sound too. Share and Enjoy. I'm not done yet though. Did I mention I HATE long file names because dos pkzip/unzip can't do them? (I still do that in dos, much easier to me.) Andy Bay aka IMarvinTPA ICQ # 1432002 IMarvinTPA@bigfoot.com http://members.aol.com/imarvintpa Thanks to: Quick MUS to Midi converter. (C) 1995,96 Sebastien Bacquet ( bacquet@iie.cnam.fr ) I found the source to it and used it. ID software for releasing a great game then the source! Everybody who cares!