PCem

PCem

Screenshot of PCem running FreeDOS 1.0
Developer(s) Sarah Walker (including contributors)
Initial release August 15, 2007 (2007-08-15)
Stable release
11.0 / June 5, 2016 (2016-06-05)
Written in C
Operating system Microsoft Windows, Linux
Type Virtual machine, emulator
License GNU GPL version 2
Website pcem-emulator.co.uk

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.

The current version of PCem is PCem v11, released on June 5, 2016.[1] Unofficial builds of PCem are also available, such as 86Box, which includes a number of enhanced features. 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.[2]

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.[3] 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).[3]

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.[3]

Voodoo emulation is also emulated since PCem v10.[4] 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).[5] 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

Unlike most 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.

Comparison

PCem DOSBox QEMU Bochs VirtualBox Virtual PC 2007 Parallels Desktop VMWare Player/Workstation
License GPL GPL GPL LGPL GPL/Proprietary Proprietary Proprietary Freemium/Trialware/Commercial
Host CPU x86 Any x86, x86-64, IA-64, PowerPC, SPARC 32/64, ARM, S/390, MIPS Any x86, x86-64, Intel VT-x, AMD-V x86, x86-64 (with Intel VT-x or AMD-V) x86, Intel VT-x x86-64
Guest CPU x86 (from the 4.77MHz Intel 8088 to the Intel Pentium Tillamook MMX) x86 (from the 4.77MHz Intel 8088 to the Intel Pentium) x86, x86-64, Alpha, ARM, CRIS, LM32, M68k, MicroBlaze, MIPS, OpenRisc32, PowerPC, S/390, SH4, SPARC 32/64, Unicore32, Xtensa x86, x86-64 x86, (x86-64 only on VirtualBox 2 and later with hardware virtualization) (via CPU passthrough) x86 (emulated Intel Pentium III processor) x86, x86-64 (via CPU passthrough) x86, x86-64 (via CPU passthrough)
Host OS Windows, Linux Linux, Windows, Mac OS classic,OS X, BeOS, FreeBSD, OpenBSD, Solaris, QNX, IRIX, MorphOS, AmigaOS, Maemo, Symbian Windows, Linux,OS X, Solaris, FreeBSD, OpenBSD, BeOS Windows, Linux, FreeBSD, Unix/X11, Mac OS 9, OS X, BeOS, MorphOS, OS/2 Windows, Linux, OS X, Solaris, FreeBSD, eComStation Windows Vista(Business, Enterprise, Ultimate), XP Pro, XP Tablet PC Edition Mac OS X (x86) Windows, Linux
Guest OS DOS, Windows (until Windows XP), OS/2 (with caveats), Linux, BSD derivatives Internally emulated DOS shell; classic PC booter games, unofficially Windows 1.0 to 98 Various Windows, Linux, DOS, BSD, OS/2, Haiku DOS, Linux, OS X Server, FreeBSD, Haiku, OS/2, Solaris, Syllable, Windows.

Also OpenBSD but only with hardware virtualisation indicating inaccuracies in the software memory emulation layer but tolerated by other OS's.

DOS, Windows, OS/2, Linux (SUSE, Xubuntu), OpenSolaris (Belenix) DOS, Windows, Linux, OS X Server, FreeBSD, OS/2, eComStation, Solaris, Haiku Same as VMware ESX Server
Image support flat/raw hard disk image, .iso image (v11 only), floppy image flat/raw hard disk image, .iso image, floppy image Various flat/raw hard disk image/partition, .iso image, floppy image, VHD image, VMDK image .iso image, floppy image, flat/raw hard disk image/partition, Parallels HDD image, QCOW image, QCOW2 image (read-only), QED image, VDI image, VHD image, VHDX image (with caveats), VMDK images .iso image, floppy image, VHD image Unknown Unknown

Version history

PCem version Release date Notes
PCem v0.1 15 August 2007 Initial release.
PCem v0.2 10 October 2007 Added IBM PC1640 and IBM PC AT emulstion, 286 processor emulation, EGA/VGA video mode emulation, Sound Blaster emulation, hard disc emulation, plus some bugfixes.
PCem v0.2a 14 October 2007 Minor bugfixes.
PCem v0.3 30 July 2008 Added support for other 8088/286-based computers, plus emulation of Sound Blaster Pro and SVGA emulation, as well as minor additions.
PCem v0.4 27 July 2010 Added preliminary Intel 80386/80486 emulation, Gravis UltraSound emulation, accurate 8088/8086 timings, and lots of other changes.
PCem v0.41 1 February 2011 Bugfixes over v0.4.
PCem v0.41a 13 February 2011 Fixed disc corruption bug, plus emulation of composite color display has been re-added.
PCem v0.5 21 September 2011 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.
PCem v0.6 19 December 2011
PCem v0.7 3 August 2012
PCem v8 20 December 2013
PCem v8.1 3 January 2014 Fixed a number of issues in PCem v8. First version of PCem to replace the non-free MAME OPL2/OPL3 emulation code with a GPL-licensed OPL2/OPL3 emulation code.
PCem v9 4 October 2014 Added IBM PCjr emulation and first version of PCem to have a Linux port, plus major changes and fixes.
PCem v10 24 October 2015 Added AMI XT clone, VTech Laser Turbo XT, VTech Laser XT3, Phoenix XT clone, Juko XT clone, IBM PS/1 model 2011, Compaq Deskpro 386, DTK 386SX clone, Phoenix 386 clone, Intel Premiere/PCI, and Intel Advanced/EV emulation. Also adds support for Intel Pentium CPUs, 3Dfx Voodoo card emulation, plus various fixes and changes.
PCem v10.1 7 November 2015
  • Fixed buffer overruns in PIIX and ET4000/W32p emulation
  • Added command line options to start in fullscreen and to specify config file
  • Fixed emulator crash when the CPU jumps to an unexecutable address
  • Removed Voodoo memory dump on exit
PCem v11 5 June 2016
  • New machines added - Tandy 1000HX, Tandy 1000SL/2, Award 286 clone, IBM PS/1 model 2121
  • New graphics card - Hercules InColor
  • 3DFX recompiler - 2-4x speedup over previous emulation
  • Added Cyrix 6x86 emulation
  • Some optimisations to dynamic recompiler - typically around 10-15% improvement over v10, more when MMX used
  • Fixed broken 8088/8086 timing
  • Fixes to Mach64 and ViRGE 2D blitters
  • XT machines can now have less than 640kb RAM
  • Added IBM PS/1 audio card emulation
  • Added Adlib Gold surround module emulation
  • Fixes to PCjr/Tandy PSG emulation
  • GUS now in stereo
  • Numerous FDC changes - more drive types, FIFO emulation, better support of XDF images, better FDI support
  • CD-ROM changes - CD-ROM IDE channel now configurable, improved disc change handling, better volume control support
  • Now directly supports .ISO format for CD-ROM emulation
  • Fixed crash when using Direct3D output on Intel HD graphics
  • Various other fixes

See also

References

  1. "PCem". pcem-emulator.co.uk. Retrieved 2016-08-07.
  2. "PCem • View topic - A mere idea for a future chipset (440FX)". pcem-emulator.co.uk. Retrieved 2016-08-08.
  3. 1 2 3 "PCem". pcem-emulator.co.uk. Retrieved 2016-08-07.
  4. Cauterize. "Vintage Computer Emulator 'PCem' Now Running 3Dfx Based Windows Games". Retrieved 2016-08-07.
  5. "PCem • View topic - 3DFX emulation". pcem-emulator.co.uk. Retrieved 2016-08-07.
This article is issued from Wikipedia - version of the 10/11/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.