
From: gordonf@vcn.bc.ca (Gordon Fecyk)
Newsgroups: comp.os.ms-windows.win95.misc,comp.os.ms-windows.setup.win95,comp.os.ms-windows.networking.win95,comp.os.ms-windows.apps.compatibility.win95,comp.answers,news.answers
Subject: Windows 95 Frequently Asked Questions and Answers Part 12 of 14
Followup-To: comp.os.ms-windows.win95.misc,comp.os.ms-windows.setup.win95,comp.os.ms-windows.networking.win95,comp.os.ms-windows.apps.compatibility.win95
Date: 14 May 1996 01:49:05 GMT
Organization: Vancouver Regional FreeNet
Lines: 407
Approved: news-answers-request@MIT.EDU
Message-ID: <4n8oqh$4r@milo.vcn.bc.ca>
NNTP-Posting-Host: opus.vcn.bc.ca
Summary: These postings list many questions asked in said newsgroups,
         and answers them as best as I can.  I make references to other
         Web sites and FAQs when appropriate.  Visit the WWW home of
         this FAQ (http://www.intouch.bc.ca/win95) for the appropriate
         links.  This section is the 12th one: Running MS-DOS Games
X-Newsreader: TIN [version 1.2 PL2]
Xref: news.eunet.fi comp.os.ms-windows.win95.misc:144562 comp.os.ms-windows.setup.win95:12811 comp.os.ms-windows.networking.win95:8832 comp.os.ms-windows.apps.compatibility.win95:4355 comp.answers:17469 news.answers:61865

Archive-name: windows/win95/faq/part12
Last-Modified: 1996/04/29
URL: http://www.intouch.bc.ca/win95/faq12.htm


12) Running MS-DOS games 

Why you should run your DOS games in DOS sessions under 
Windows 95 
Quick lesson on PIF files 
How do I use upper memory in Windows 95? 
Why you should run your DOS games in DOS sessions under 
Windows 95 
How do I use EMS memory? 
How do I use XMS memory? 
How do I use DPMI memory and DPMI programs? 
How do I speed up this DOS game? 
Why do DOS programs "stutter" in a DOS session? 
Why shouldn't I use EMM386 (or other memory manager)? 
Why you should run your DOS games in DOS sessions under 
Windows 95 
How do I set up network games? 
How to set up your network card 
Why you should run your DOS games in DOS sessions under 
Windows 95 
Why do you keep telling me to run my games under Win95? 
Why you should run your DOS games in DOS sessions under 
Windows 95 
But this game won't run under Win95! How can I get it to work? 
How you can do away with "boot disks" forever! 
How to make network games work without running Win95 
----------------------------------------------------------------------

Why you should run your DOS games in DOS sessions under 
Windows 95 

The big speech... here it comes. Skip it if you don't want to read 
about it. 

Win95 does all of its hardware control, its network control, its 
drivers, its protocols, whatever, in '386 protected mode, so none of 
its software really needs to run in conventional memory, or in upper 
memory. You get minimum 604 KB free conventional memory, no 
matter what hardware or drivers for Win95 you have loaded. 

In addition to this, all of the MS-DOS software interrupts, hardware 
interrupts, function hooks, etc operate in protected mode also. This 
means that DOS programs can still work, even though there aren't any 
DOS drivers handling the hooks. Win95 only provides a basic real 
mode driver set for basic compatibility (HIMEM, SETVER, IFSHLP, 
COMMAND); everything else runs outside of the DOS session. The 
protected mode hooks are re-entrant, so multiple DOS sessions can 
use them. They are also faster in many cases; CD-ROM performance 
greatly improves, for example. 

Win95 will also virtualize I/O spaces, if you enable that feature in a 
DOS program's properties. This is similar to what Windows NT 
does, but not as robust. This will prevent the programs from accessing 
the hardware directly. If a "protected" DOS program crashes, it won't 
take the rest of the system with it. "Protection" will, however, add to 
the CPU overhead and may cause a program not to run at all, which 
is why it's an option. 

NOTE: Don't confuse this direct hardware access with the 
DirectX API; DirectX programs run in protected Win32 sessions 
by design, and access the hardware through an absolute minimal 
API. DirectX has nothing to do with DOS programs accessing 
hardware directly. 

So, with all this benefit, and not eating any conventional memory and 
still providing a nice compatible DOS box, you should run your DOS 
games in DOS sessions in Win95. 

So, hide or delete your CONFIG.SYS, remove all TSRs in 
AUTOEXEC.BAT, get Win95 drivers for all your hardware, and 
read on. 
----------------------------------------------------------------------

Quick lesson on PIF files 

You can maximize a game's performance in a DOS session by fine 
tuning its session settings. Right-click on the executable that runs the 
game (batch file, COM file, EXE file, whatever), and select 
Properties. Hit the "Program" tab and, if necessary, change the 
command line used to run the game. Insert any parameters it needs, 
change the working directory, whatever. Hit the "Advanced" button 
and quickly see the "Prevent MS-DOS programs from detecting 
Windows" switch. If a game claims it can't run under Windows, turn 
on this switch. Now the game will think it's running in DOS. Hah, 
sucker! Ignore the rest of this window for now; hopefully we won't 
have to resort to the rest of the stuff here. 

Have a look at the other tabs; I'll cover them each in turn with each 
question. 

Win95 will save the changes you make here in a PIF file, or a 
"Shortcut to MS-DOS Program". Whenever you bring up properties 
for the program, it will bring up its PIF file. 
----------------------------------------------------------------------

How do I use upper memory in Windows 95? 

There's no such thing as "upper memory" under Win95, and no need 
to worry about it either, if you have Win95 drivers for all your stuff 
and run your games under Win95. 

I cover how to use upper memory in Single Mode MS-DOS later. 
----------------------------------------------------------------------

How do I use EMS or XMS memory? 

In the program's properties, hit the Memory tab. You'll notice the 
defaults for these settings is "Auto"; this means Win95 will allocate 
memory as needed for this program to run. This can cause a lot of 
extra disk swapping, so you should find out what the game needs 
(Check its manual) and set the EMS and XMS values to match. 

Example 1: TIE Fighter (tm) by LucasArts: TIE requires 2048 KB of 
EMS memory (Expanded memory), so set the EMS value to 2048 
KB, and set XMS to None. 

Example 2: The Seventh Guest (tm) by Virgin/Trilobyte: T7G needs 
4096 KB of XMS memory (Extended memory), so set its XMS 
setting to 4096 and its EMS setting to None. 

Example 3: DOOM (tm) by id Software: DOOM doesn't use EMS 
or XMS memory, so set both of these values to None. Leave the 
DPMI (DOS protected mode interface) memory on Auto, or if you 
wish, fix it to 8 MB or 16 MB, if you feel it will improve its 
performance. 

Notice that all games use one kind of extra memory or another, but 
not two at once. You can always set one and turn the other off. This 
will ease Win95's job of guessing what the game needs. Of course, if 
a game runs completely in conventional memory, turn off everything 
BUT conventional memory. 

Oh yeah, that "Protected" switch is in here; turn it on if you think this 
program causes Win95 to crash. 
----------------------------------------------------------------------

How do I use DPMI memory and DPMI programs? 

If a program doesn't claim to use XMS or EMS memory, chances are 
it's a protected mode program. DOOM by id and Descent (tm) by 
InterPlay are two such programs. 

In this program's Memory tab, turn off EMS and XMS memory, and 
set DPMI to whatever the game requres, or leave it on Auto. Auto 
mode will make Win95 allocate more RAM to the game as needed, 
but it will cause extra disk swapping. Set this to the game's 
recommended value, no higher than your total memory actually 
installed in the computer. 

If the game does its own disk swapping (like Descent does), fix the 
DPMI memory value to the game's recommended value and don't use 
Auto. There's no point in having Win95 and the game do swapping at 
the same time. 

Some DPMI games do bizzare stuff and may crash Win95 the first 
time running. If so, turn on the "Protected" switch just below the 
conventional memory setting. This will virtualize most of the I/O space 
in that game's DOS session. Turning on "Prevent DOS programs from 
detecting Windows" might help too. If the game does hardware 
detection, try by-passing it and specifying your video and sound card 
properties manually. Descent has troubles detecting sound cards in a 
DOS session, for example. 
----------------------------------------------------------------------

How do I speed up this DOS game? 

The first time you try running a "standard" DOS game, it will try to run 
in a window on your desktop. Type ALT-ENTER to switch it to a full 
screen. 

To fix that setting in place, bring up the program's properties, hit the 
Screen tab, and set the screen usage to Full Screen. There are other 
screen controls here: 

"Fast ROM Emulation" works if the video driver emulates its BIOS in 
protected mode. All of Microsoft's video drivers do this. Keep this 
turned on if the game works properly. Try turning it off if you can't get 
VESA games working, though a properly written Win95 video driver 
should emulate VESA video modes in protected mode. 

"Dynamic memory allocation" specifies that Win95 will grab system 
memory as needed to update the game's display. Try turning this off if 
the display jitters, or the hard drive goes crazy as the display updates 
itself. 
----------------------------------------------------------------------

Why do DOS programs "stutter" in a DOS session? 

DOOM will freeze on occasion, precisely four times, then continue on 
normally. 

This is probably Win95 trying to maintain system memory for the 
display. Turn off "Dynamic memory allocation" in the Screen tab to fix 
this. Maybe also turn off "Fast ROM Emulation". 

If the video card requires a VESA driver and you turned off Fast 
ROM Emulation, you can load its real mode VESA driver in its 
particular DOS session, by including it in the "Batch File" section of 
the Program tab; hit the Program tab, and in the Batch File text box, 
put in the full path to your VESA TSR.. This way, it only loads into 
one session and not all DOS sessions. You're probably better off 
trading that video card for one that has VESA support built into its 
BIOS and its Win95 driver. 

This problem only seems to happen with DPMI games; particularly 
those that use the DOS4GW extender. 
----------------------------------------------------------------------

Why shouldn't I use EMM386 (or other memory manager)? 

A real mode memory manager will interfere with Win95's protected 
mode memory management. If you include NOEMS in 
CONFIG.SYS, for example, no program in a DOS session can 
access EMS memory. Delete or hide your CONFIG.SYS and let 
Win95 provide EMS memory in DOS sessions. 

For those of you who paid money for Quarterdeck's QEMM 8.0: 
SUCKERS! Take it back and get your money back! 
----------------------------------------------------------------------

How do I set up network games? 

Most of the net games use IPX protocol to communicate between 
several game computers on the network. Microsoft's "IPX/SPX 
Compatible" protocol works with these games. 

First, install your network card and load a Win95 driver for it. Then 
add IPX/SPX Protocol. If all you're doing is playing network games 
you can remove all other network components, such as Clients. If 
necessary, read up on How to set up a network card. 

Then run the game in its DOS session and set it up to use the 
network. It should find the hooks needed to use IPX and play 
normally, as though you loaded an IPX.COM driver. If not, complain 
to the game maker. They screwed it up. 

A handful of old network games use NetBIOS to work with more 
networks. In this case you can use any network protocol, such as 
NetBEUI, to link the machines together. All the real mode NetBIOS 
hooks are there as well. To use both IPX and NetBIOS games, use 
the IPX/SPX protocol and turn on "I want to run NetBIOS over IPX" 
in IPX/SPX Properties. 

Modem games work by using the COM devices from DOS, so you 
don't need to use Dial-up Networking just to play a game over the 
modem. If, however, the game doesn't support modeming but DOES 
support IPX networking, you could try using IPX over the dial-up 
adapter, and rig one computer as a dial-up server. This is a bit 
extreme, as IPX over PPP is quite slow. 
----------------------------------------------------------------------

Why do you keep telling me to run my games under Win95? 

I thought I answered this question at the top of this section! So you 
can save yourself the hassles of multi-config, loading crap high, 
running out of conventional memory, boot disks, whatever! 

Win95 can do DOS's jobs a lot quicker and with a lot less overhead. 
Yes, everything works. Yes, CD-ROM drives work. Yes, network 
cards work. Yes, you can do EMS/XMS/DPMI. Yes, sound cards 
work. Get a sound card that has Win95 drivers for it. Yes, visit 
Advanced Gravis for a Win95 driver. Or just trade your hardware in 
for hardware with Win95 support. 
----------------------------------------------------------------------

But this game won't run under Win95! How can I get it to 
work? 

OK ok ok ok... so you can't live without playing this game (Star Trek: 
A Final Unity (tm) by Spectrum Holobyte falls into this category) and 
you can't run it in a DOS session. Or maybe you can; bring up the 
program's properties, hit the Program tab, hit "Advanced", and hit 
"Prevent DOS programs from detecting Windows". This'll make the 
"smarty" programs run in a DOS session. 

If that didn't work, read on. 

Here's how you make a special DOS setup for this program that 
won't run in Win95: 

Bring up properties for its start-up program again, and hit the 
Program tab. 
Hit Advanced, and turn on MS-DOS mode. This will make 
Win95 exit before running the game. And since all the Win95 
CD-ROM, netcard, etc drivers will unload at this point: 
Hit "Specify a new MS-DOS Configuration". This will activate the 
two text boxes below, so you can feed a special CONFIG.SYS 
and AUTOEXEC.BAT for this program 
Fill in the empty spaces for CONFIG.SYS and 
AUTOEXEC.BAT. All your normal DOS drivers, memory 
managers, and TSRs should go in here. You can also copy from 
your CONFIG.DOS, and press CTRL-V (Paste) to copy it here; 
that does work. Be sure you use Win95 versions of HIMEM and 
EMM386, and other DOS version-specific drivers. 
Run the program. You should get a warning that you're about to 
enter MS-DOS mode. If you OK it, Win95 will re-boot your 
computer and run your special CONFIG.SYS and 
AUTOEXEC.BAT. When you exit the game, the system will 
re-boot into Win95 using the original DOS configuration (which 
should be empty!) 

With this setup, you can specify a DOS configuration just for this 
program without polluting your Win95 configuration. You will have to 
load all the real mode components necessary to make your hardware 
work, including real mode sound card and CD-ROM drivers. Net 
cards I'll cover later. 

Some useful stuff to include in these files are: 

HIMEM.SYS and EMM386.EXE: Yes, definitely include that in 
the special CONFIG.SYS you make. Use the Win95 versions. 
SMARTDRV.EXE: You should have real mode disk caching 
here. Again, Win95 comes with its own version of SmartDrive. 
PAUSE: Put this at the end of the special AUTOEXEC.BAT so 
you can prevent your game from starting right away. You can 
always press CTRL-C here and fine-tune the CONFIG.SYS and 
AUTOEXEC.BAT, and re-boot to try again. When Win95 finally 
re-starts, it will copy your changes to the program's properties. 
Now that's cool. 
LOCK C: If you want to run Windows 3.1 this way (Yes it is 
possible) and you want 32-bit disk/file access, include this 
command. LOCK will allow direct disk writes by DOS programs, 
including Win 3.1's memory manager and FASTDISK drivers. 
Some DOS games that do disk swapping may also require this 
command. Use this with caution; it also allows viruses to do their 
dirty work. 
MSCDEX.EXE: If you use a real mode CD-ROM driver, you 
obviously need MSCDEX to mount it and run it. Load MSCDEX 
before SmartDrive, so SmartDrive can cache CD-ROM reads. 
Save on conventional memory this way by specifying /M:4 
(minimal buffer size). Win95 keeps this file in 
%WINDIR%\COMMAND. 
MOUSE.EXE or MOUSE.COM: A must for mouse driven 
games. 

Keep in mind, that "MS-DOS Mode", or "Single Mode MS-DOS" is 
MS-DOS through and through, except for the LOCK and the direct 
disk access inhibitor. You can use all the MS-DOS memory 
management techniques you learned back in DOS 5.0. You might 
also want to disable the DriveSpace Driver if you use disk 
compression, and you can't get enough conventional memory. You 
could also try running MEMMAKER, if you're really desparate, in 
this configuration; add the old DOS utilities from 
DRIVERS\OLDMSDOS, then while you're in a special DOS 
configuration, run MEMMAKER. As long as you keep Win95 
booting in this mode (where it says "Win95 is now starting your 
MS-DOS based program..."); the changes that MEMMAKER 
makes will only affect this particular configuration; it won't affect your 
normal Win95 configuration. 

This above technique replaces boot disks and Multi-Boot entirely! If 
you use PIF files that specify MS-DOS mode, you can throw away 
all your boot disks and your multi-boot CONFIG.SYS file. You can 
even set up multiple PIFs for the same program; re-name the PIF file 
that the Properties sheet made up, and bring up Properties for the 
program again; it will build a new PIF file. 

Another cool trick is to look for an "Exit to DOS" file in your Win95 
directory, bring up its properties, and set it up to use a new MS-DOS 
configuration. This way, whenever you "Restart computer in 
MS-DOS mode", you will run this configuration. Real handy for 
running a bunch of games without having to make a special 
configuration for each. In this mode, type EXIT or WIN to return to 
Win95. You can also edit the custom startup files within DOS mode; 
when Win95 finally re-starts, it will update the .PIF file with the 
changes you made. 
----------------------------------------------------------------------

How to make network games work without running Win95 

Network Setup not only installs protected mode drivers for your card; 
it also installs NDIS 2.0 real mode components specifically for 
MS-DOS mode. You will need to install a Win95 net card driver and 
IPX/SPX Protocol for this to work. 

In the special AUTOEXEC.BAT you make for MS-DOS mode 
games, include: 

NET START NWLINK

This will load a real mode protocol manager, net card driver, and 
Microsoft's IPX compatible protocol. You can go a step further and 
type NET START NWREDIR to load a NETX compatible client for 
NetWare, if you need to get to your games stored on the NetWare 
server, and you installed Microsoft's Client for NetWare. These 
components will try to load high if you have upper memory available. 
Put this at the start of the special AUTOEXEC.BAT, to improve 
upper memory usage. 

WARNING: NET START does not always work, because some 
NDIS 2 drivers look in SYSTEM.INI and PROTOCOL.INI, and all 
of those settings moved to the Registry. Inspect Win95's 
PROTOCOL.INI and compare it to the examples that come with the 
net card's NDIS driver, or try to get updated Win95 drivers for the 
card, which should include the Protected mode (NDIS 3.1) and Real 
mode (NDIS 2.0) drivers. If NET START does not work, you can 
always load Novell's drivers and clients from MS-DOS mode, or 
from that program's special AUTOEXEC.BAT, instead of using NET 
START. 
----------------------------------------------------------------------

[Back to Table of Contents]

