PCem
PCem (short for PC Emulator) is an 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.
![]() Screenshot of PCem running FreeDOS 1.0 | |
Developer(s) | Sarah Walker (including contributors) |
---|---|
Initial release | August 15, 2007 |
Stable release | 16
/ April 19, 2020 |
Repository | https://bitbucket.org/pcem_emulator/pcem/ |
Written in | C |
Operating system | Microsoft Windows, Linux |
Type | Virtual machine, emulator |
License | GNU GPL version 2 |
Website | pcem-emulator |
A fork known as 86Box is also available, which includes a number of added features, such as support for SCSI and additional boards.
Features
Hardware
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 Core i5 at 4 gigahertz). 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.[1]
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 286 clone, Award SiS 496/497 and Award 430VX PCI), and Intel Premiere/PCI and Intel Advanced/EV motherboards.[2] 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, as well as various video APIs such as DirectX and 3Dfx's Glide. PCem can also emulate various video cards such as the ATI Mach64 GX, the S3 Trio32/64/Virge series and the 3Dfx Voodoo.
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, Aztech Sound Galaxy Pro 16, Windows Sound System, Ensoniq AudioPCI 64V/ES1371, and Sound Blaster PCI 128.[2]
Voodoo emulation is also emulated since PCem v10 and PCem v12, which added support for Voodoo 2 and various optimizations.[3] However, there some shortcomings regarding Voodoo emulation such as the lack of mip-mapping, slightly wobbling triangles, lack of speed limiting, and wrong refresh rates on almost every resolution (except 640x480@60 Hz).[4] As of PCem v11, a separate recompiler has been added for Voodoo emulation, making it faster to emulate the Voodoo graphics card.
An unofficial build of PCem allows to use SLiRP/WinPcap as a networking interface, plus emulated NE2000 and Realtek RTL8029AS Ethernet cards. However, starting with PCem v13, the emulation of NE2000 was officially added.
Operating system support
Similar to Virtual PC, Bochs and QEMU, it emulates almost all versions of Microsoft Windows until Windows Vista (including Service Pack 2), 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.
Version history
Versions of PCem from v0.5 until v8 have been removed from the official webpage, 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 version | Release date | Notes |
---|---|---|
v0.1 | 15 August 2007 | Initial release |
v0.2 | 10 October 2007 |
|
v0.2a | 14 October 2007 |
|
v0.3 | 30 July 2008 |
|
v0.4 | 27 July 2010 |
|
v0.41 | 1 February 2011 |
|
v0.41a | 13 February 2011 |
|
v0.5 | 21 September 2011 |
|
v0.6 | 19 December 2011 |
|
v0.7 | 3 August 2012 |
|
v8 | 20 December 2013 |
|
v8.1 | 3 January 2014 |
|
v9 | 4 October 2014 |
|
v10 | 24 October 2015 |
|
v10.1 | 7 November 2015 |
|
v11 | 5 June 2016 |
|
v12 | 18 February 2017 |
|
v13 | 11 December 2017 |
|
v14 | 20 April 2018 |
|
v15 | 19 May 2019 |
|
v16 | 19 April 2020 |
|
See also
References
- "PCem • View topic - A mere idea for a future chipset (440FX)". pcem-emulator.co.uk. Retrieved 2016-08-08.
- "PCem". pcem-emulator.co.uk. Retrieved 2016-08-07.
- Cauterize. "Vintage Computer Emulator 'PCem' Now Running 3Dfx Based Windows Games". Retrieved 2016-08-07.
- "PCem • View topic - 3DFX emulation". pcem-emulator.co.uk. Retrieved 2016-08-07.