Samiksha Jaiswal (Editor)

PCem

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Written in
  
C

PCem

Developer(s)
  
Sarah Walker (including contributors)

Initial release
  
August 15, 2007; 9 years ago (2007-08-15)

Stable release
  
12.0 / February 18, 2017; 52 days ago (2017-02-18)

Operating system
  
Microsoft Windows, Linux

Type
  
Virtual machine, emulator

PCem (short for PC Emulator) is a hypervisor and IBM PC emulator for Windows and Linux that specializes in running old operating systems and software that are designed for IBM PC compatibles. Originally developed as an IBM PC XT emulator, it later emulates other IBM PC compatible computers as well.

Contents

The current version of PCem is PCem v12, released on February 18, 2017. Unofficial builds of PCem are also available, such as 86Box, which includes a number of enhanced features, including SCSI and some new boards. Versions of PCem from v0.5 until v8 are not available for download, due to the use of the MAME OPL2 and OPL3 emulation code from when it was not yet licensed under a GPL-compatible license.

Features

PCem is capable of emulating Intel processors (and its respective clones, including AMD, IDT and Cyrix) from Intel 8088 through the Pentium Tillamook MMX/Mobile MMX processors from 1997 until 1999. A recompiler has been added in v10.1, being mandatory for P5 Pentium and Cyrix processors and optional for i486 processors and IDT WinChip processors. Yet a rather fast processor is needed for full emulation speed (such as an Intel i5 Core at 4 gigahertz). As of June 8, 2016, emulation regarding Pentium Pro/Pentium II and the Intel 440FX chipset has been included in 86Box (formerly known as PCem-X and PCem-Unofficial), however, the current developer of PCem has a main concern that the recompiler is not fast enough to emulate the Intel Pentium Pro/Pentium II processors yet.

PCem emulates various IBM PC compatible systems/motherboards from 1981 until 1996, this includes almost all IBM PC models (including the IBM PS/1 model 2121 and the IBM PS/2 model 2011), some American Megatrends BIOS clones (from 1989 until 1994), Award BIOS systems (Award SiS 496/497 and Award 430VX PCI), and Intel Premiere/PCI and Intel Advanced/EV motherboards. However, unofficial builds of PCem (PCem-X and PCem-unofficial) also supports IBM PC compatible systems/motherboards (from 1996 until 2000) that supports Intel Pentium Pro/Pentium II processors. PCem simulates the BIOS cache, which relies on the processor rather than on system memory.

PCem can emulate different graphic modes, this includes text mode, Hercules, CGA (including some composite modes and the 160x100x16 tweaked modes), Tandy, EGA, VGA (including Mode X and other tweaks), VESA, S3 Trio32/64 (similar to how DOSBox and Virtual PC does), and other graphic accelerators (including the 3Dfx Voodoo 1 and S3 ViRGE/DX).

PCem also emulates some sound cards, such as the AdLib, Sound Blaster (including the Game Blaster), Sound Blaster Pro, Sound Blaster 16, Sound Blaster AWE32, Gravis UltraSound, Innovation SSI-2001, and Windows Sound System.

Voodoo emulation is also emulated since PCem v10. However, only the Voodoo 1 card is emulated, plus there are some issues and bugs that aren't present on the real card, such as lack of mip-mapping, slightly wobbling triangles, lack of speed limiting, and wrong refresh rates on almost every resolution (except 640x480@60 Hz). As of PCem v11, a separate recompiler has been added for Voodoo emulation, making it faster to emulate the Voodoo graphics card.

PCem also emulates a CD drive. Prior to v11, mounting of .iso images are not supported, instead a workaround is done by mounting the disc image on Windows 7 and above and mount the virtual disc drive on PCem. Support for El Torito CD-ROM extensions has been added on v11, making it able to boot to a bootable CD/ISO images without using a bootloader floppy, such as Plop Boot Manager.

An unofficial build of PCem allows to use SLiRP/WinPcap as a networking interface, plus emulated NE2000 and Realtek RTL8029AS Ethernet cards.

Operating system support

Similar to Virtual PC, Bochs and QEMU, it emulates almost all versions of Microsoft Windows until Windows XP (including Service Pack 3), MS-DOS, FreeDOS and CP/M-86 are also supported. Earlier versions of OS/2 requires the hard drive to be formatted prior to installation, while OS/2 Warp 3 until Warp 4.5 requires an unaccelerated video card to run. Other operating systems are also supported on PCem, such as versions of Linux that supports the Pentium processor, BSD derivatives (e.g. FreeBSD), and BeOS 5, which only works on the Award SiS 497 motherboard.

Differences between PCem and other x86-based hypervisors

PCem is a specialized x86 hypervisor and emulator for running software designed for older operating systems, unlike most x86-based hypervisors, which can have caveats in running older software and operating systems. Instead of using hardware-based passthrough (except the CD-ROM drive) for this hypervisor, a dynamic recompiler is used for the emulated CPU itself. PCem uses emulated hardware in similar to some x86-based hypervisors.

PCem uses the raw/flat hard disk image system from Bochs, which uses the cylinder-head-sector method for the size.

References

PCem Wikipedia