Developer(s) | Michael Manley (including contributors) |
---|---|
Initial release | 15 August 2007 |
Stable release | 17 / 1 December 2020 |
Repository | github |
Written in | C, C++ |
Operating system | Microsoft Windows, Linux |
Type | Virtual machine, emulator |
License | GNU GPL version 2 |
Website | pcem-emulator |
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 added support for other IBM PC compatible computers as well.
A fork known as 86Box is also available, which includes a number of added features, such as support for SCSI and additional boards. [1]
On 14 June 2021, lead developer Sarah Walker announced her departure from the project. [2] A new maintainer, Michael Manley, was appointed on 18 December 2021. [3] During the interim period with no maintainer, the project's forums were closed. [4]
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 GHz). 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. [5]
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. [6] 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 160 × 100 × 16 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 and the S3 Trio32/64/Virge series.
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. [6]
Voodoo cards are also emulated since PCem v10 and PCem v12, which added support for Voodoo 2 and various optimizations. [7] However, there are some shortcomings regarding Voodoo emulation such as the lack of mipmapping, slightly wobbling triangles, lack of speed limiting, and inaccurate refresh rates on almost every resolution (except 640 × 480@60 Hz). [8] 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 usage of 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.
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.
Versions of PCem from v0.5 until v8 have been removed from the official webpage, due to the use of the MAME OPL2/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 |
|
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 |
|
v13.1 | 17 December 2017 |
|
v14 | 20 April 2018 |
|
v15 | 19 May 2019 |
|
v16 | 19 April 2020 |
|
v17 | 1 December 2020 |
|
The Cyrix 6x86 is a line of sixth-generation, 32-bit x86 microprocessors designed and released by Cyrix in 1995. Cyrix, being a fabless company, had the chips manufactured by IBM and SGS-Thomson. The 6x86 was made as a direct competitor to Intel's Pentium microprocessor line, and was pin compatible. During the 6x86's development, the majority of applications performed almost entirely integer operations. The designers foresaw that future applications would most likely maintain this instruction focus. So, to optimize the chip's performance for what they believed to be the most likely application of the CPU, the integer execution resources received most of the transistor budget. This would later prove to be a strategic mistake, as the popularity of the P5 Pentium caused many software developers to hand-optimize code in assembly language, to take advantage of the P5 Pentium's tightly pipelined and lower latency FPU. For example, the highly anticipated first-person shooter Quake used highly optimized assembly code designed almost entirely around the P5 Pentium's FPU. As a result, the P5 Pentium significantly outperformed other CPUs in the game.
Industry Standard Architecture (ISA) is the 16-bit internal bus of IBM PC/AT and similar computers based on the Intel 80286 and its immediate successors during the 1980s. The bus was (largely) backward compatible with the 8-bit bus of the 8088-based IBM PC, including the IBM PC/XT as well as IBM PC compatibles.
The Intel 486, officially named i486 and also known as 80486, is a microprocessor. It is a higher-performance follow-up to the Intel 386. The i486 was introduced in 1989. It represents the fourth generation of binary compatible CPUs following the 8086 of 1978, the Intel 80286 of 1982, and 1985's i386.
A motherboard is the main printed circuit board (PCB) in general-purpose computers and other expandable systems. It holds and allows communication between many of the crucial electronic components of a system, such as the central processing unit (CPU) and memory, and provides connectors for other peripherals. Unlike a backplane, a motherboard usually contains significant sub-systems, such as the central processor, the chipset's input/output and memory controllers, interface connectors, and other components integrated for general use.
The VESA Local Bus is a short-lived expansion bus introduced during the i486 generation of x86 IBM-compatible personal computers. Created by VESA, the VESA Local Bus worked alongside the then-dominant ISA bus to provide a standardized high-speed conduit intended primarily to accelerate video (graphics) operations. VLB provides a standardized fast path that add-in (video) card makers could tap for greatly accelerated memory-mapped I/O and DMA, while still using the familiar ISA bus to handle basic device duties such as interrupts and port-mapped I/O. Some high-end 386DX motherboards also had a VL-Bus slot.
Cyrix Corporation was a microprocessor developer that was founded in 1988 in Richardson, Texas, as a specialist supplier of floating point units for 286 and 386 microprocessors. The company was founded by Tom Brightman and Jerry Rogers.
Hauppauge Computer Works is a US manufacturer and marketer of electronic video hardware for personal computers. Although it is most widely known for its WinTV line of TV tuner cards for PCs, Hauppauge also produces personal video recorders, digital video editors, digital media players, hybrid video recorders and digital television products for both Windows and Mac. The company is named after the hamlet of Hauppauge, New York, in which it is based.
QEMU is a free and open-source emulator. It emulates the machine's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems. It can interoperate with Kernel-based Virtual Machine (KVM) to run virtual machines at near-native speed. QEMU can also do emulation for user-level processes, allowing applications compiled for one architecture to run on another.
Diamond Multimedia is an American company that specializes in many forms of multimedia technology. They have produced graphics cards, motherboards, modems, sound cards and MP3 players, however the company began with the production of the TrackStar, a PC add-on card which emulated Apple II computers. They were one of the major players in the 2D and early 3D graphics card competition throughout the 1990s and early 2000s.
Rendition, Inc., was a maker of 3D computer graphics chipsets in the mid to late 1990s. They were known for products such as the Vérité 1000 and Vérité 2x00 and for being one of the first 3D chipset makers to directly work with Quake developer John Carmack to make a hardware-accelerated version of the game (vQuake). Rendition's major competitor at the time was 3Dfx. Their proprietary rendering APIs were Speedy3D and RRedline.
In computing, Intel's Advanced Programmable Interrupt Controller (APIC) is a family of interrupt controllers. As its name suggests, the APIC is more advanced than Intel's 8259 Programmable Interrupt Controller (PIC), particularly enabling the construction of multiprocessor systems. It is one of several architectural designs intended to solve interrupt routing efficiency issues in multiprocessor computer systems.
The MediaGX CPU is an x86-compatible processor that was designed by Cyrix and manufactured by National Semiconductor following the two companies' merger. It was introduced in 1997. The core is based on the integration of the Cyrix Cx5x86 CPU core with hardware to process video and audio output. Following the buyout of Cyrix by National Semiconductor and the sale of the Cyrix name and trademarks to VIA Technologies, the core was developed by National Semiconductor into the Geode line of processors, which was subsequently sold to Advanced Micro Devices.
The Ensoniq AudioPCI is a PCI-based sound card released in 1997. It was Ensoniq's last sound card product before they were acquired by Creative Technology. The card represented a shift in Ensoniq's market positioning. Whereas the Soundscape line had been made up primarily of low-volume high-end products full of features, the AudioPCI was designed to be a very simple, low-cost product to appeal to system OEMs and thus hopefully sell in mass quantities.
Since the rise of the personal computer in the 1980s, IBM and other vendors have created PC-based IBM-compatible mainframes which are compatible with the larger IBM mainframe computers. For a period of time PC-based mainframe-compatible systems had a lower price and did not require as much electricity or floor space. However, they sacrificed performance and were not as dependable as mainframe-class hardware. These products have been popular with mainframe developers, in education and training settings, for very small companies with non-critical processing, and in certain disaster relief roles.
Orange Micro Inc. was an American computer hardware company that made products for use with Apple computers. The company made a variety of products for many machines, ranging from the Apple II series to the Macintosh line. The company went out of business in 2004.
The Sound Blaster 16 is a series of sound cards by Creative Technology. They are add-on boards for PCs with an ISA or PCI slot.
SunPCi is a series of single-board computers with a connector that effectively allows a PC motherboard to be fitted in Sun Microsystems SPARC-based workstations based on the PCI architecture adding the capability for the workstation to act as a 'IBM PC compatible' computer. The Sun PCi cards included an x86 processor, RAM, expansion ports, and an onboard graphics controller, allowing a complete Wintel operating environment on a Solaris system. The SunPCi software running on Solaris emulates the disk drives that contain the PC filesystem. The PC software running on the embedded hardware is displayed in an X window on the host desktop; there is also a connector on the edge of the board that can optionally be used to connect a PC monitor.
A compatibility card is an expansion card for computers that allows it to have hardware emulation with another device. While compatibility cards date back at least to the Apple II family, the majority of them were made for 16-bit computers, often to maintain compatibility with the IBM PC. The most popular of these were for Macintosh systems that allowed them to emulate Windows PCs via NuBus or PCI; Apple had released several such cards themselves.
86Box is an IBM PC emulator for Windows, Linux and Mac based on PCem that specializes in running old operating systems and software that are designed for IBM PC compatibles. Originally forked from PCem, it later added support for other IBM PC compatible computers as well.