Translate Duke4.net
French German Italian Spanish Portuguese Nederlands Poccnйckaя Nederlands Chinese Arabic Korean English

Search

Welcome

Username:

Password:


Remember me

[ ]
[ ]
[ ]

Poll


How you feel about the "Bombshell" game announcement?



Optimitsic

Neutral

Pessimistic



Posted by Yatta
Votes: 1525 Comments: 2
Previous polls

Online

Guests: 92, Members: 0 ...

most ever online: 610
(Members: 7, Guests: 603) on 10 May : 09:56

Members: 1181
Newest member: afroparrot


Build on XP

Build Games on XP

Many thanks to Willis from buildxp.deathmask.net who gave us permission to post this content on Duke4.net. Other credits go to Matt Bovett for writing the original material on this page. For more information, please visit the BuildXP discussion forum.

About this page

It's common knowledge the best games based on the Build engine are 3D Realms' Duke Nukem 3D, Shadow Warrior, and Monolith's Blood. Since you're here reading this, one or more of them probably hold a special place in your heart. I love all three of them even more than I did when I was playing them years ago. Unfortunately, nobody makes games like these anymore. It's no wonder, then, that fans find themselves wanting to re-live them years after their releases. Unfortunately, if those gamers are using Windows XP, getting these games to work well with it or even load up can seem impossible... until now.

This page will attempt to show you how to run the DOS versions of all three of these games in Windows XP (or Windows 2000) with the best possible frame rate and audio support. I don't claim to know everything about this—I'm just a fan who has tried a lot of different frustrating things to get these games to run well under Windows XP. I can't promise that what works on my computer will work on yours. There's a good chance it will, but ultimately I'm just throwing out suggestions for you to try. You must follow my instructions to the letter. Everything is required and you must do everything exactly right.


Step 1 - Install the games (use these directories!)

Install the game(s) you want to play if you haven't already. You MUST use the following directories or everything else you do will not matter! The games will NOT work if you do not use these directories. If you've already installed the game(s), just cut and paste the contents of the main directory of each game to its new directory. Yes, it's safe to do this; just ignore any warning Windows gives you. Once again, it's VERY important that you use these directories:

  • Duke Nukem 3D - C:\Games\Duke3D\
  • Shadow Warrior - C:\Games\SW\
  • Blood - C:\Games\Blood\


Step 2 - Install VDMSound and the VDMSound update

Download and install the latest VDMSound release ( VDMSound-2.0.4-WinNT-i386.msi ). Next, download the update ( VDMSound 2.0.4 update 2 ). Unzip this file directly over the VDMSound 2.0.4 files, typically residing in C:\Program Files\VDMSound. Answer yes when prompted to overwrite.


Step 3 - Install the VDMSound launcher

Download the latest VDMSound launchpad beta ( VDMSLaunchPad.v1.0.1.1.zip ). Unzip the files into your VDMSound folder. Now browse to the folder and run install.bat by double-clicking it. If successful, a dialog should pop up that says DllRegisterServer in LaunchPad.dll succeeded. Click OK and reboot your computer then proceed to Step 4.


Step 4 - Get CLI2NOP

Download CLI2NOP ( cli2nop.zip ). Extract the files into the main directory of every game you want to play. For the curious, CLI2NOP is a script that searches for and replaces interrupt disable instructions in an executable file image with no-ops. It does this to avoid the freezes that can occur with some applications as a result of the VDM interrupt problem. Apparently, some people think CLI2NOP is only required under Windows NT 4.0 and Windows 2000, but not Windows XP. VDMSound also has something like CLI2NOP built into it. If I were you, I'd use CLI2NOP just in case. It won't harm anything.
Step 4b - (Blood players only) Get Sound Blaster Live! crash fix

If you have the Sound Blaster Live! sound card, Blood might crash when you pick up certain power-up items. Download this patch and apply it to Blood.exe to correct the problem. To do this, unzip the file into your C:\Games\Blood directory and double-click it to patch your Blood executable (the .exe can't be write-protected). And in case you're wondering, this is where I got the file. Thanks, Reactor, for the heads up.

Step 5 - Get NOLFB

Download Ken Silverman's NOLFB ( nolfb.zip ). Extract the files into the main directory of every game you want to play. Running this file in a DOS window before you run a game will let you use the 640x480 resolution in VESA mode. In Step 6 you will download a pre-configured shortcut that will automatically call this file before the game is launched (as long as it is in the correct directory). I've found that 800x600 doesn't work in any of the games (I get a "Out of scan range" error on my monitor when I try to use that resolution). You can try it, but I think all of the games look and play just fine in 640x480.


Step 6 - Get my pre-configured VDMSound shortcuts

This step is very important. Download my pre-configured VDMSound shortcuts and put them on your desktop or wherever you keep your game shortcuts (right-click and use Save Target As...). It doesn't matter where you put them as long as your games are in the directories I specified in Step 1 (C:\Games\Duke3D\ etc). You will be using these to launch the games instead of the Windows shortcuts the game's installer probably made on your desktop. Go ahead and delete those shortcuts (I don't think Duke Nukem 3D's installer makes a shortcut). Here's a Duke 3D icon you can use for the new shortcut (right-click the link and use Save Target As); put it in the C:\Games\Duke3D folder and the VDMSound shortcut should show the icon automatically. Same goes for the other games (the icons should already be in their respective folders).



Step 7 - Patch the executable(s) with CLI2NOP

Now we need to patch all of the games' main executables (duke3d.exe, sw.exe, and blood.exe) with CLI2NOP. This must be done in a DOS window. Click the Windows Start button, then Run, then type cmd and press enter. This will open up a command prompt DOS window. Change to the drive you installed the games on (this won't be necessary if you only have one hard drive), and then change to the game directory. For example, to get to your Duke Nukem 3D directory in DOS you would type ). All you need to do is type cli2nop -p game.exe once you're in the game's directory. Obviously you will be replacing 'game.exe' with either duke3d.exe, sw.exe or blood.exe (for example, cli2nop -p duke3d.exe ). If patching is successful, you should see a number and then the word "occurrences" (i.e. 54 occurrences). Shadow Warrior's executable had 60 occurrences when I patched it. Do this for every game you want to play, and then move on to Step 8.


Step 8 - Set up the games correctly

Configure every game using their respective Setup programs (setup.exe). For Shadow Warrior, you can ignore the 9th bullet where I tell you how to configure music/MIDI, since Shadow Warrior does not use MIDI music (see my game-specific notes on Shadow Warrior at the bottom of this page for an explanation of how to get music working in the game).

- Browse to the main game directory with Windows Explorer. Double-click setup.exe to launch the Setup program.
- You will be at the Main Menu of the Setup program. Sound Setup will be highlighted since it is the first option on the menu. Press enter to go to Sound Setup. The first and most important options you will want to change are found here.
- Select Choose Sound FX Card. Select Sound Blaster. This will take you to Sound Blaster Configuration.
- The correct address is 0x220. This should be the default address so you should not have to change it.
- Move to Change Sound Card Type using the down arrow key and press enter. Select Sound Blaster 16 or AWE32.
- Select Change Interrupt. Select IRQ 7.
- You should not have to modify the 8-bit or 16-bit DMA unless you've changed them since their default values of 1 and 5, respectively, are correct.
- Select Use These Settings and Continue. There will now be several consecutive dialogs that you must go through. In the first one you will select the highest number of voices possible. In the second, select the highest number of mixing bits. In the third, select Stereo sound. In the fourth, select the highest mixing rate.
It has been noted that if you encounter stuttering sound in the game using the max sound settings to tone them back down to the defaults.
Blood for example defaults to 8 voices, 8-bit mixing, Stereo Sound, and 11Khz Mixing Rate.
- You will automatically be taken back to Sound Setup after selecting the mixing rate. Now, select Choose Music Card. Select General Midi then select MIDI port 0x330.
- Do not test either the Sound FX or Music within Setup. Neither will work correctly yet.
- Press ESC to return to the Main Menu.
- Select Screen Setup.
- Select VESA modes (SVGA/VESA 2.0). Select 640x480.
- Once you've configured your controls, press ESC until you're asked "Save Settings before Exiting?", then select Yes. You might want to start up Setup again to double-check everything is right. If even one option is wrong, the game will not work properly.


Step 9 - Play!


To play a game, double-click the shortcut you downloaded in Step 6, which should be on your desktop now. Please e-mail me with your results, questions, comments, and problems. I will probably write up a FAQ and results page once I start getting feedback from this.


Step 10 (Optional) - Play Network game

To play a network game, you will need to copy the game.vlp file and rename it to setup.vlp, and point it setup.exe, as well as enable low-level networking support in VDMSound.
Most games will need an updated version of commit to work with TCP which you can download here.
You will also likely need to update your commit.dat (before each launch, with notepad or the editor of your choice) to change the LAUNCHNAME from game.exe to game.vlp to allow use of sound.
You also need to install NETBIOS protocol in your WindowsXP Network settings, 3DR guide available here.


Final Notes

  • The 800x600 VESA resolution didn't work for me in any of the games. I suggest you use 640x480 if it works. If you do not use 640x480 (VESA 2.0), you don't need to use NOLFB, the program you downloaded in Step 5. But it won't matter if you do.
  • A company called Software Systems makes a sound card emulator for Windows NT, 2000, and XP called SoundFX 2000. I haven't even tried it because 1) it's not free (the evaulation stops after 3 minutes) and 2) the games work as I have them configured now to my satisfaction. There are some people that may want to try it (might give even better audio support), so I'm including a link here ( softsystem.co.uk/ ).
  • Game-specific notes:
Duke Nukem 3D

This game performs perfectly for me. The only thing you might be disappointed in is the MIDI music if you are used to using fancy new Audigy Soundfonts or something. I'm sure there is a way to get better MIDI music working. Just experiment!

Shadow Warrior

At first, I couldn't get the CD audio/music to work for me. The main menu's music played fine, but when the first level loaded about 2 seconds of the level's song would play and then it would begin stuttering and repeating the same note over and over again. If you want to see if CD audio works for you, all you have to do is right-click the Shadow Warrior shortcut you downloaded in Step 6, select Properties, and check Enable low-level CD-ROM support (MSCDEX). If you enable this, make sure whenever you play the game you only have the Shadow Warrior CD in your drive and not any other CD. If the music in the game starts to stutter, then what you need to do is disable digital audio in the CD-ROM device manager. To do this, click Start -> Settings -> System -> Hardware -> Device Manager -> Control Panel, open the DVD/CD-ROM drives tree, right-click your main CD-ROM drive, click Properties, then change to the Properties tab and uncheck Enable CD digital audio for this device. This will enable analog CD audio which means you will only be able to hear CD audio through headphones plugged directly into the CD-ROM. The sounds of the game will be played on speakers. Turn the music down a little bit and crank up your speaker volume and you should be pretty happy with this setup.

If this doesn't work or if you just don't want to go through all that hassle but you still want to be able to hear the music, you can always ALT-TAB out of the game, start playing the CD with a player such as Winamp, and then ALT-TAB back into the game. A lot of work, I know, but look on the bright side: at least you can pick what track you want to hear! Shadow Warrior's music is definitely worth hearing while you play the game. Lee Jackson did a very good job.

Blood

Audio performance isn't quite as good as in Duke3D and Shadow Warrior, but it still sounds nearly perfect. You will notice consistent but very faint crackling sounds. Personally, this doesn't bother me at all. Several weeks ago I could barely get the audio working at all, so I'm elated to have it working this good. The crackling almost adds to the grittiness of Blood.

In the Blood VDMSound shortcut, I have enabled the nocd and quick parameter. Some people have had problems with the GT Interactive / Monolith logo movies that play automatically at startup, so this will disable those. You can delete the .smk movie files in your Blood directory to save space. Although they should work since you will be using NOLFB which enables 640x480 VESA mode (which the videos use). If you want to try to enable the movies, you need to enable MSCDEX in the VDMSound shortcut and remove the nocd and quick parameters as well.

Cryptic Passage

As long as you follow all of the above steps for Blood correctly you will not have to do anything special for Cryptic Passage in order to be able to play it except download the shortcut. For some reason, Cryptic Passage doesn't seem to perform quite as well as Blood does. I'm not quite sure why this is. It should still be very playable, though. The framerate is smooth, just somewhat jerky for some reason.