How to run Doom under Windows 3.1

                             Last Change: 03/July/96

        Information collated by Ian Mapleson. Copyright 1994, 1995, 1996


Note: this file was originally written for those wishing to run Doom I under
Windows. I don't know whether the settings given here will work with Doom II,
so give them a try and let me know if they work so that I can update this file.
Thanks! Post any results you get to either of:

  rec.games.computer.doom.misc
  rec.games.computer.doom.help

Windows version tested with: Windows v3.1.
Machine tested with: Zenith 425Ln laptop with 12MB of RAM.
(The above applies to 'SECTION I' help only)

Introduction.
-------------

Q: Why would I want to run Doom under Windows?

A: For some people, this appears to be one way of curing the PS/2
   'psycho mouse' problem (redundant since this problem has been fixed in
   v1.666 and later). For others, it may just be convenience or preference.
   Ideally, Doom should be run under DOS - Windows will slow it down. However,
   they may be other reasons why one might wish to run it under Windows - the
   operating environment may not be changeable by the user, for example.


Note that the example PIF file may, or may not, work on your system (the
above 'Machine tested with' specification refers to 'SECTION I' help only).

Contents:

SECTION I:   How to run Doom under windows.
SECTION II:  An example PIF file.
SECTION III: How to get sound under windows as well.
SECTION IV:  An answer to those who may encounter memory problems.
SECTION V:   Using external PWAD (new level) files.
SECTION VI:  An example Doom icon to use. Note that the DHS web site has a much
             more complete set of icons for Doom. See:

               http://doomgate.gamers.org/dhs/helpdocs/dmicons.html


Acknowledgements. Thanks to:-

Adam Brown (brouna@world.std.com)

     - for writing the how-to-create-the-doom-pif-file information
       given in SECTION I.

Ethan G. Henry (eghenry@sunee.uwaterloo.ca)

     - for the example PIF file given in SECTION II.

Steve Loughran (slo@hplb.hpl.hp.com)

     - for the 'how to get sound under windows' information.

Adam Brown (brouna@world.std.com)

     - for the memory help. Basically, someone emailed me asking for help
       concerning memory allocation. I forwarded the query to Adam and this
       is his response.

Steven Foust (falcon@mcs.com)

     - for the info on the Diamond Viper 2MB card.

Pete Nilson (pnilson@hpb.hwc.ca)

     - for the info on using external PWADs.

DrFegg (DrFeggBSR@aol.com)

     - for the info on Windows for Workgroups v3.11.

Murphy Taylor (murphy@ssdgwy.mdc.com)

     - for supplying the Doom icon (he says he didn't actually make it. So
       who did?)

Aaron Hauck, aka 'Boney' (phauck@ipswichcity.qld.gov.au)

     - for supplying the Doom II Info.

Windows experts please feel free to email me with descriptions of
greater detail and clarity if you think that a TOTAL novice would find
such added detail more useful (just imagine you'd never used windows
before. Would this help file be clear enough?).

NOTES:

I have been emailed with the following info. Relevant players please note:

  'Apparently, the drivers provided by Diamond for their VLB Viper 2MB card
  do *not* like the graphics mode used by DOOM under Windows. It works just
  *fine* under DOS, but try it under Windows (I've tried both 3.1 and 3.11)
  and you get a message stating "not enough memory for desired graphic mode"
  or some such guff. If you then bring it up *anyways*, it will go to the
  intro screen (the one of the marine), and hang the system... And I do mean
  *HANG* -- reset-switch time hang to boot.'

Another note for those attempting to run Doom under Windows for Workgroups:
Dr Fegg told me:

  "The fix is very simple but the answer as to why this works is beyond me.
   TURN OFF 32BIT FILE AND DISK ACCESS!".

I don't know how universal a solution this is, but there you have it.

Info for Doom II: phauck@iccu6.ipswichcity.qld.gov.au (phauck) tells me that
you will need about 12 MEG RAM to run Doom II under Windows. He also said:

  "Either run from file manager or do what I did and drag 
  the DOOM.EXE file from the file manager to the games window in program 
  manager and let windows create the PIF for you.  The sound effects must be 
  turned off and no other applications should be running.  (this should work)

  Eg. Don't try to play doom while you've got a word processor running when you 
  are at work, in the hope that you'll be able to pause doom and switch to the 
  word processor when the boss comes."


Anyway, on to the main info sections...


SECTION I:

Getting DOOM to run under Windows 3.1
=====================================

In order to make DOOM run under Windows, you need to create a .PIF 
file,  which tells Windows where to find the DOOM files, how much
memory to allocate, and how to deal with other tasks that might be
going on at the same time.

-----
Step 1 - Open your .PIF Editor
-----

If the PIF editor icon is on your Program Manager desktop, double-click
on it to open the editor.

If there is no PIF editor icon, then from the Program Manager:

  Type ALT-F R, and enter "PIFEDIT" in the box that appears.


-----
Step 2 - Enter the values required in the editor, as below:
-----

    Program Filename:  DOOM.EXE
        Window Title: (leave blank)
 Optional Parameters: (leave blank, or place any DOS command line
                      parameters you normally use here)
  Start-up Directory: C:\DOOM (or the directory containing your DOOM 
                      program)
        Video Memory: High Graphics

Memory Requirements:

         KB Required: 512   Desired: -1

EMS Memory:

         KB Required: 1024   KB Limit: -1

XMS Memory:

         KB Required: 1024   KB Limit: -1
 Display Usage      : Full Screen
 Execution          : Check "Exclusive" but not "Background"
Close Window on Exit: Checked

Now click on the "Advanced" button, and fill in the options as follows:

    Background Priority: 50
    Foreground Priority: 100
       Detect Idle Time: Checked
      EMS Memory Locked: Not Checked
      XMS Memory Locked: Not Checked
  Uses High Memory Area: Checked
Lock Application Memory: Not Checked

Monitor Ports:
                   Text: Checked
           Low Graphics: Checked
          High Graphics: Checked
      Emulate Text Mode: Checked
    Retain Video Memory: Checked

Other Options:

              Alt+Space: Checked
             All others: Not Checked

Now click on the "OK" button.


-----
Step 3 - Save your PIF file
-----

Type ALT-F S (File Save)

Select your DOOM directory, and save the file as "DOOM.PIF"

Type ALT-F X (File eXit) to leave the PIF editor.


-----
Step 4 - Put a DOOM icon on your desktop
-----

Go back to the program manager, and click on a group that you want the DOOM 
program to appear in.

Type ALT-F N (File New)

Ensure Program Item is checked, and then click on "OK"

Fill in the dialog box as follows:

      Description:  DOOM
     Command Line: C:\DOOM\DOOM.PIF  (or wherever you saved the PIF
                   file).
Working Directory: C:\DOOM  (or whatever)
     Shortcut Key: None
    Run Minimized: Not Checked

Now click on "OK".  The box will disappear, and you should see an icon
for DOOM appear on your desktop.

If anyone more artistically inclined than I feels like producing a
slick  DOOM icon - let's see it!

<Send it to me. - Ian.>

-----
Step 5 - Try it out!
----

Double click on your DOOM icon to see if it works!


****************************************************************************


SECTIION II:

An example PIF file. Cut this out, save it and uudecode it.

                     ---- cut here ----

begin 600 doom.pif
M ")$;V]M(" @(" @(" @(" @(" @(" @(" @(" @(""  (  1$]/32Y%6$4 
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @$ !<1T%-15-<1$]/30 @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @                    
M                                                            
M       ! /\94   !P                                          
M                                                            
M                                                            
M         . @34E#4D]33T94(%!)1D58 (<!  !Q 5=)3D1/5U,@,S@V(#,N
M,  % IT!: #__R8"9  ! /__^@#___H #( % ,8                     
M    /P @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(%=)3D1/5U,@,C@V(#,N, #__QL"!@  
%       @
 
end

                     ---- cut here ----


****************************************************************************


SECTION III

Sound.

This is extracted help taken from a posting by slo@hplb.hpl.hp.com (Steve
Loughran). It was a response to somebody elses posting that said they
couldn't get sound for Doom under Windows. Here it is:


"In a dos box windows creates a Virtual Machine which looks like MS
Dos except all the memory and IO is virtualised: the under 1MB of RAM
available can be anywhere on the machine, and all I/O accesses are
trapped by virtual device drivers. Each VxD emulates a bit of
hardware, so a virtual display driver can translate display accesses
into windows text output commands, the virtual mouse driver and
generate mouse movement information and so on. They also have to
remember the state of the virtual device when VM is suspended


When a program in VM accesses a port, then the following can happen:

1. If the VM has been set up so it has access to the hardware, then
   the operations take place.

2. If there is no VxD which handles that area of I/O or memory space,
   then the action is either ignored or pops up little dialog box saying
   "This application has violated system integrity and has been
   terminated"

3. If there is a VxD to handle the fault then this VxD is invoked and
   it can then:

        a) pass the instruction to the hardware,
        b) emulate the instruction on other hardware,
           [MS Sound system cards can use a VxD to emulate SoundBlaster]
        c) simulate it in software,
        d) deny the request (often because another VM is using the h/w).

So, to get sound in a DOS box in Win31, you need to make sure no other
application is using the sound card - including windows itself. Then make
sure that in the file SYSTEM.INI in the section [386 Enh] there are lines
to load the appropriate VxD's:-

; Virtual DMA support
device=*vdmad 

;choose the one for your card & make sure the file is in
; the \windows\system directory
; Sound blaster

device=vsbd.386

; Sb Pro
device=vsbpd.386

;PAS 16
device=vpas16d.386

; or another for your card...

However, even with this setup I find sound isn't always guaranteed.

[Don't forget that the game may play somewhat slower. The reason is... ]

Because most I/O and memory accesses are virtualised, DOS boxes
run slower than basic DOS. ...

Hope this helps. At least you'll know why you can't hear anything any more."


****************************************************************************


SECTION IV

Memory Problems? This is a copy of a reply from Adam to a Doomer who had
problems with memory when trying to run Doom under Windows:-


> I created the pif file as per your example, however when I attempt to
> run it, the I receive an error requested that I reduce the
> maximum kilobyte value.  I played around with the values, reduced
> to a very low figure, but then it proceeded to lock up on me.
> 
> I am running Windows 3.11, and I am not sure if the config.sys
> files are equal.  Can you email me a copy of your config file?
> 
> Also, I am running a 486DX2 with 16megs of Ram, so I don't think that
> ram is the problem :^)
> 
> Thanks much!

He didn't say _which_ kilobyte value to reduce.  It was probably the 
conventional memory one, which means that there wasn't enough available 
conventional memory in Windows to run Doom.

To increase the amount of conventional memory under Windows, he has to 
increase the amount available in DOS - before running Windows.  The first 
thing to do is look for TSR's in his Autoexec and Config files, and strip
out anything unnecessary. If that fails, try tuning DOS to give more memory.
The way to do this depends on the version of DOS he's using.  I use DOS 5.0,
and my config.sys file looks like:

1  DOS=UMB,HIGH
2  DEVICE=C:\HIMEM.SYS
3  DEVICE=C:\EMM386.EXE NOEMS
4  FILES=30
5  BUFFERS=3
6  STACKS=9,256
7  LASTDRIVE=D
8  SWITCHES=/W
9  DEVICEHIGH=C:\UTIL\NU\NCACHE.EXE  /INSTALL
10 DEVICEHIGH=C:\NDW\NAV&.SYS
11 DEVICEHIGH=C:\UTIL\STACKER\STACKER.COM C:\STACVOL.DSK /P=1
12 DEVICEHIGH=C:\UTIL\STACKER\SSWAP.COM C:\STACVOL.DSK /SYNC
13 DEVICEHIGH=C:\UTIL\DOS\POWER.EXE
14 SHELL=C:\NDOS.COM /P /S:X /U

Line 1-3 relocte DOS into high memory, freeing up considerable amounts of 
RAM below 640k.  Making the number of buffers in line 5 small helps, too.  
Lines 9-13 load up various utilities (Norton Cache, Anti-Virus, Stacker, and
a power manager [this runs on a laptop])

If you're using DOS 6.x, I don't know what the commands are to get maximum 
conventional memory, but I do know it's possible to do more than under DOS 
5.0.

Hope that helps.

Adam.


****************************************************************************


SECTION V.

Using PWAD files.

Pete said to me:

"Just for your info, I use add-on .wads a lot. You can make them work ... by
adding -file x.wad y.wad etc. in the optional parameters line. Works fine."

So there ya go! :)


****************************************************************************


SECTION VI.

An example Doom icon to use. Run this through uudecode. You should get a
file called 'doom.ico' that's 766 bytes in size.


begin 644 doom.ico
M```!``$`("`0``````#H`@``%@```"@````@````0`````$`!```````````
M``````````````````````````````"```"`````@(``@````(``@`"`@```
MP,#``("`@````/\``/\```#__P#_````_P#_`/__``#___\`?_B'CX>(_WCX
M>/AX^'_X__@'CXAX@(>/AX"'CX>/B'@'AXAPCX=_B`B'AX"(>`B'B(!XCX!X
M@(]X"(AX"/AX"(!XB`B(AXB`B'@(B'B`AX@(B("(B("(B(@(B`B`B(@(@("(
MB`B("(@(B`B(B`B`B`@(B`B`B(@(B`B`@(B(B("(@("(B`B(@("(B`B(@("(
M"`B("`B("`B("`B("`B("(B`@(B`@(B`@(B`@(B`@+@+"(@("(@("(@("(@(
M"(N;N["`B("`B("`B("`B("Y&XL;"`@("`@("`@("`@(L9L+D;"`@+"`@+"`
M@+"`@+D;BQD;"`L;"`L;"`NX"`BQFPN1D;"QD;"QD;"YL(N`N1L+&QD;&1D;
M&1D;D;BQN+&;"XNQFY&[BXNQFQFPN;"XBPN+"QL;"XN+"QN1NY&;N(L+RPN;
MFPO+RPN;&;F(B+S#`\,#@X,#P\,#@XB(C,S,PP/#`X.#`\/#`X.(S,S,S,,#
MPP/#PP/#PP/#S,S,S,S#"<F9R<F9R<F9R<S,S)S,R0E$1$E$1$E$1$E$1$D)
M1$D-1$1-1$1-1$1-1$30`-1-#=W=T-W=T-W=T-W=```-T```````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
!````
`
end


****************************************************************************

                    End of 'Doom Under Windows' Help Text

Ian.

The Doom Help Service (DHS):  http://doomgate.gamers.org/dhs/

SGI Network Admin, University of Central Lancashire, Preston, England, PR1 2HE.
Doom: mapleson@gamers.org | Tel: (+44) 01772 893297, Fax: (+44) 01772 892913 
Misc: mapleson@cee.hw.ac.uk | Office machine: SGI Indy R4400-200Mhz, 1MB cache
64MB RAM, 2GB SCSI disk, 24bit 17" 1280x1024, CDROM+DAT, IndyCam Digital Camera.