Using PCem to run your old DOS games

Topic actions

First post, by Neville

User metadata
Rank Oldbie


First of all, PCem is a PC and compatible emulator. It's a Sarah Walker creation and can be downloaded from its homepage. It emulates exact models of personal computers, from the earliest 1981 IBM PC (with a 8088 CPU and CGA graphics) to Pentium class computers with SVGA graphics with or without 3Dfx acceleration.

PCem uses low level emulation and faithfully reproduces the behaviour of these machines. Therefore, it shouldn't be your first option to run older PC games. On the other hand, it is a perfect solution for those interested in old hardware or who owned a PC during the 1980-90s and want to revive old times.

1) Requirements:

- A modern PC. If we plan to emulate 486 / Pentium class machines a Core Duo or better is recommended.

- Windows 7 or better. Linux and Macintosh are also supported, although you may need to compile the program yourselves in those cases.

- The BIOSes of some emulated machines. If you don't know where to start, try getting some IBM PC models from the complete MAME / MESS romset, together with the "IBM VGA Graphics Card" (pcvga.zip) file.

These roms need to be uncompressed and then copied to the folder PCem\Roms\<Computer model> , and the peripherals (these include videocards) in PCem\Roms\.

- The program WinImage to manage our harddrive images. We'll use it to copy files to our harddrive image.

- OS Disk images. PCem supports FreeDOS, MS-DOS, Windows 95, Windows 98, Windows ME and Windows XP.

For OSes that install from CD-ROM, a startup disk might be useful. AllBootDisks keeps startup images for many OSes.

- Although they are not essential, you may need drivers for some of your peripherals, such as mouse, video or soundcards. The VOGONS community keeps a libray of those, the VOGONS Vintage Driver Library.

- Optionally, you may want to get the file BXIMAGE.EXE from BOCHS emulator. We'll use it to create harddrive images.

Last edited by Neville on 2018-06-22, 16:45. Edited 1 time in total.

Reply 1 of 27, by Neville

User metadata
Rank Oldbie

2) Creating and setting-up a new machine.

Now we're going to create our first machine, a PC clone with a 486/66 CPU, 16 Mb. RAM and a VGA videocard. This is an average / good system that will run most games released before 1995.

1) First we create a harddrive image. This can be done from PCem itself, but personally I prefer to use BXIMAGE.EXE. The reason is that until very recently PCem required you to manually enter certain parameters, and I found that a bit messy:


We use these values, except for the final size. That's up to you. For a 486 class computer a 425 megabytes harddrive was of a decent size, but now this only depends on how much disk space you want to sacrifice and the number of programs you want to install.

2) We start PCem and hit on the button with the + sign to create a new machine. Available options may change according to the number of BIOses in the PCem\Roms folder:


Computer model, grouped by CPU (8088, 8086, etc.) class.


CPU & RAM settings... deselect the "Dynamic recompiler" if you can. This will result in slower but more compatible emulation.




Sound devices (I)...


Sound devices (II)... you can leave this section blank.


...And finally, harddrive and floppy drive settings. Set up the path to your harddrive image here.

If we're going to use floppy drive images, make sure the floppy drives have the correct values. 5 ¼ drives won't be able to read 3 1/2 images, nor the other way around.

3) Setting up the PC BIOS.

Let's start our new machine for the first time:


Older PCs won't autodetect new hardware, so encountering error messages at this point is perfectly normal. In these cases you need to enter the PC BIOS (normally rebooting the computer while pressing F1 or Del.) and perform a few tasks:

a) Setting up our disk units.



We start by auto-detecting the harddrive(s). After this, we also make sure the floppy drives are setup properly. Otherwise, we may run into errors later while using floppy disk images.

b) We make sure the PC boots from units A:, D: and C:, in this order. A is our first floppy unit, D our CD-ROM drive (ONLY if we're installing Windows 95 or newer from CD) and C our harddrive.


c) We save the changes and leave:


Now we can install our OS.

Last edited by Neville on 2020-04-16, 15:52. Edited 5 times in total.

Reply 2 of 27, by Neville

User metadata
Rank Oldbie

4) Installing an OS on our harddrive.

As we've seen, PCem allows a wide variety of OSes to be installed in our machine. However, our OS must match our intentions and the emulated hardware. In our case, we have a 486/66 CPU and gaming in our mind, so we're installing the Spanish version of MS-DOS 6.22.

So we start our machine with two disk images, the first MS-DOS floppy disk in A: and our harddrive in C:


Every OS has its own quirks, but essentially all we need to do is to follow the on-screen instructions. If we are prompted for extra disks, we can insert them using PCem menus:


Until the process eventually finishes:


From now on we can boot our machine from the harddrive. Other units are not really necessary, unless we need to copy / install programs from them.

Reply 3 of 27, by Neville

User metadata
Rank Oldbie

5) Copying files to our hardddrive.

Once our harddrive image has an OS installed, there are several ways of copying programs to it. For instance, you may use the OS tools to copy files from other harddrives, floppy disk images, or CD-ROM units.

An easier way of doing that is using an external program to access our harddrive. This is where WinImage proves its usefulness.

This program allows us, among other things, to drag and drop files directly into our harddrive. The first thing we'll see when opening our c.img file is this:


This means our harddrive has its space allocated by an OS. We just click on OK and proceed.

Now we just drag and drop our files into the WinImage window. We'll be asked for confirmation:


We just need to agree, and the files will be copied, or, as WinImage puts it, "injected". Errors may occur if the disk image is still being used by PCem or if there is not enough available space in our disk image.

In the case of DOS, we also need to remember that filenames (and folder names) are limited to 8 characters, without spaces or regional signs.

6) Running programs in our machine.

Actually, we still need to do a few tasks well known for DOS users in order to have our machine fully working, such as installing different drivers (mouse, soundcard, optionally a CD-ROM drive) and running MEMMAKER to optimize our base memory.

But the truth is that most programs should be working right away, such as "Lotus III", the game we just copied to our harddrive image:


So there's not much else to mention.

Well, actually there is: PCem automatically captures your mouse. To recover mouse control, use the mouse's third button or CTRL+End at any moment.

And don't forget to close the machine using the OS options! After all these work, we wouldn't want our harddrive image to become corrupt, right?

Questions and answers.

1) Why not aim for a Windows 9X machine with a Pentium CPU?

Because PCem is a low level emulation program, and therefore very CPU intensive. Also, DOS games are a pain in the ass to run under Windows 9X, and they're my main interest.

On the other hand, a Windows 9X machine should be easier to configure. Chances are you won't need to access the BIOS and that most hardware will be automatically (if not optimally) detected during installation of the OS.

2) Should I use DOSBox or PCem?

My advice would be to use DOSBox for casual gaming or if your PC is not that recent.

Use PCem for games and programs if your PC is new-ish and you want the full experience.

3) Can I backup or copy machines to other PCs?

Absolutely. The CFG file for every machine you set up will be in the configs folder, and the harddrive image wherever you created it. You may need to edit the CFG file with the proper path to your harddrive image, though.

4) Can I re-use harddrives for different machines?

That's a tough one. I've re-used harddrives with DOS for different configurations. You only need to erase / install drivers for the different hardware. I don't know if this will work for Windows 9X computers.

5) Program / game X won't work for me!

After discarding obvious mistakes, such as incompatible hardware or not enough memory (run MEMMAKER!), you can try the PCem message board.

6) Just how compatible is PCem with old software?

I'd say very much.

Last edited by Neville on 2018-06-22, 16:50. Edited 3 times in total.

Reply 4 of 27, by Neville

User metadata
Rank Oldbie

Addendum: Installing sound drivers under DOS.

Frankly, I expected not having to write this section, but still I think it's the right thing to do. I posted this guide in Reddit and some redditors have mentioned this step as essential.

The reasons I omitted it are several. First of all, if you're emulating a Sound Blaster card, it's very likely that most programs will produce sound without installing any drivers.

The second one is that it's literally a jungle out there. Sound cards come in many different models, hardware revisions and versions. And so do their drivers. Websites like the VOGONS Vintage Driver Library are an enormous help, but you shouldn't expect all their files to work for you. Some will be for different hardware revisions, and others will just refuse to install because they've been extrated from floppy disks, causing new problems such as failure to detect floppy disk changes or the correct floppy label.

This said, here's a short list of drivers I've personally tested and found they worked:

CMS Game Blaster 720KB Driver Disk
AdLib Disk v1.63
AdLib Gold 1000 Drivers with Sound Blaster TSR
Sound Blaster 1.0 Drivers (1-8-1990) (5.25)
Sound Blaster 1.5 Drivers 8-02-1991 (3.5 & 5.25)
Sound Blaster 1.5 Drivers 8-15-1990 (3.5 & 5.25)
Sound Blaster 2.0 Drivers (5.25)
Sound Blaster Pro 1.0 Drivers (8-6-1992) (3.5)
Sound Blaster Pro 1.0 Drivers (9-8-1993) (3.5)
Sound Blaster Pro 2.0 - Installation Disks (3.5)
Sound Blaster 16 - AWE32 - Basic Disk for Installation DOS & Windows 3.X (Available from Creative Labs website)
Sound Blaster 16 - Advanced Signal Processing Upgrade (CSP.SYS v1.13) (Available from Creative Labs website)
Gravis UltraSound - Installation Disks v3.59

3.5 and 5.25 refer to the format of the floppy disk images. You'll need to setup your floppy drives accordingly in order to use them.

Our first step is to start our machine and install the software. If it comes in floppy images, we insert them once the command prompt appears. If they're just files, it's better to copy them to a temporary folder in our harddrive using WinImage.

In this guide, we are installing the drivers for a SB16. Therefore we need the following files:

Sound Blaster 16 - AWE32 - Basic Disk for Installation DOS & Windows 3.X
Sound Blaster 16 - Advanced Signal Processing Upgrade (CSP.SYS v1.13)

These also will work for an AWE32 and (I think) an AWE64. The SB16 is a pretty good card (16 bit sound, 44.1 Khz, stereo), but you may prefer to setup an AWE32 for its General MIDI support.

Anyway, the installation process is pretty straightforward. First we run INSTALL.EXE from a temporary folder and follow the onscreen instructions:


After a few checkups, the program will tell you your default soundcard values, which you will need to remember to setup your sound card in most games...


...and update your startup files:


Finally, the install program will ask you to reboot your machine. A few new messages will appear now regarding your sound hardware.

In this particular case, one of them will be an error message.


That's because the CSP driver doesn't match our hardware. This is when our second archive Sound Blaster 16 - Advanced Signal Processing Upgrade (CSP.SYS v1.13) comes into play.

After we install it as well, the error message will be gone:


And we'll also have a perfectly working sound card in our system.

NOTE: Don't forget, after installing ANY new drivers, to run MEMMAKER. MEMMAKER is a program included in later releases of DOS that will help you optimize your memory use.

Reply 5 of 27, by vico

User metadata
Rank Newbie

I do not know if this is the most appropriate place to ask this but I did not find another.

Well you see, I have installed MS-DOS in PCem and I have not been able to play Prehistorik 2, after choosing the expert mode the screen remains black and only the music is heard and when I push Escape the PCem hangs up.

This is the first game that does not run well in PCem, could you tell me if there is a workaround?

Thanks in advance.

P.S. This is my PCem configuration: [486] Award SiS 496/497, Intel CPU: iDX4 / 75, RAM: 32MB, S3 ViRGE / DX, Sound Blaster 16.

Reply 6 of 27, by Neville

User metadata
Rank Oldbie

Are you using DOS or Windows 9X? If you're running DOS, try running MEMMAKER. It will optimize your memory. Try both with and without EMS memory. If you're running Windows 9X, try rebooting in DOS mode, because "Prehistorik 2" is a DOS game.

Reply 7 of 27, by vico

User metadata
Rank Newbie

I'm runnig the game from DOS, the memmaker I have already executed before to play aladdin, I do not think it is a memory problem. Maybe a PCem bug?
I leave the attached video so you can understand me better.


Reply 8 of 27, by Neville

User metadata
Rank Oldbie

It works fine on one of my other machines:


In another, a Pentium machine with a S3 ViRGE / DX and EMS memory it freezes right at the start of stage 1. My guess is that the game is not compatible with either EMS memory (which "Aladdin" uses, if I'm nost mistaken) or the S3 ViRGE / DX videocard.

I'm afraid this kind of problems were not unheard of in the older days.

EDIT: I got it working on my other machine, by pressing F5 on startup. This bypasses all drivers and memory managers.


So I guess the problem was either EMS memory or that the game doesn't like some of the loaded drivers.

Reply 10 of 27, by dondiego

User metadata
Rank Member

I think i've found a bug, there's some kind of memory corruption when changing hardware configuration of any virtual machine, i suspect even just entering the menus. Stopping emulation it's not enough to prevent this, i need to close the emulator completely.
Doom always hangs on a virtual DOS machine with EMS, sound blaster 16 and cdrom after entering the config menus.
AMI 486DX-33 DYNAREC, 16 MB, SB16, HDD and CDROM. Core2 Duo, 2 GB, Win 8.1 32 bit.

Last edited by dondiego on 2018-07-02, 18:53. Edited 1 time in total.

LZDoom, ZDoom32, ZDoom LE
RUDE (Doom)
Romero's Heresy II (Heretic)

Reply 16 of 27, by Musti

User metadata
Rank Newbie

Thank you for this great tutorial. I installed Windows 98 SE, but i seem to have a memory problem with some games (example here Airlift Rescue). The game says that it needs at least 542K free low memory. So maybe this MEMMAKER program could help? Where can find it and is it compatible with Windows 98? Because it was not included on my disc. I am really thankful for every help.

Reply 17 of 27, by Neville

User metadata
Rank Oldbie

No, MEMMAKER won't work under Windows 9X. You'll need to this manually. Usually you do that by editing your AUTOEXEC.BAT and CONFIG.SYS files, which are located in C:\

In AUTOEXEC.BAT, type LH before every line that contains a program (EXE or COM). For instance, change




In CONFIG.SYS, change every instance of DEVICE to DEVICEHIGH.

This should be enough.

All this has to do with the way DOS manages memory. DOS divides the first megabyte of memory in conventional memory and upper memory. Conventional memory is the free memory for programs, and upper memory is where you can move your drivers and resident programs. Some DOS games will require as much as 600 Kb. of conventional memory to work.

The steps above should move most of your drivers to upper memory and free enough conventional memory for your DOS games. Windows games luckily don't care about this stuff anymore, but DOS games running under Windows 9X are subject to these limitations.

If you want to know more about these issues, check this out: http://www.pcguide.com/opt/opt/ramDOS-c.html

Reply 18 of 27, by realnc

User metadata
Rank Oldbie

Don't forget to have this line somewhere in config.sys (usually directly after the HIMEM.SYS line is fine):


If you don't have that, then neither DEVICEHIGH in config.sys nor LH in autoexec.bat will work.