PCem
Latest version: v17 Changelog
PCem is licensed under GPL v2.0, see COPYING for more details.
You can submit patches on our forum. Before you do, please note the guidelines for submitting patches.
:exclamation: Note: NO COPYRIGHTED ROM FILES ARE INCLUDED NOR WILL THEY BE. PLEASE DO NOT ASK FOR THEM.
You will need the following libraries and buildtools (and their dependencies):
Open a terminal window, navigate to the PCem directory, create a build directory, then enter in that build directory:
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release ..
ninjathen ./src/pcem to run.
BIOS ROM images, configuration files, and other data are stored in ~/.pcem. You can also create a .pcem folder with
the Binary, and run it in a portable mode.
The configure options are specified below. They are in the format of -DOption=Value. Value under here is the
default value.
…If you are using -DCMAKE_BUILD_TYPE=Debug, there are some more debug options you can enable if needed
-DPCEM_SLIRP_DEBUG=OFF : Build PCem with SLIRP_DEBUG debug output
-DPCEM_RECOMPILER_DEBUG=OFF : Build PCem with RECOMPILER_DEBUG debug output
-DPCEM_NE2000_DEBUG=OFF : Build PCem with NE2000_DEBUG debug output
-DPCEM_EMU8K_DEBUG_REGISTERS=OFF : Build PCem with EMU8K_DEBUG_REGISTERS debug output
-DPCEM_SB_DSP_RECORD_DEBUG=OFF : Build PCem with SB_DSP_RECORD_DEBUG debug output
-DPCEM_MACH64_DEBUG=OFF : Build PCem with MACH64_DEBUG debug output
-DPCEM_DEBUG_EXTRA=OFF : Build PCem with DEBUG_EXTRA debug outputIf you are using -DCMAKE_BUILD_TYPE=RelWithDebInfo, there are additional options you can do
-DPCEM_RELDEB_AS_RELEASE=ON : Builds RelWithDebInfo with debugging logging enabled when this is offThey are some extra modules you can add if you build with -DUSE_EXPERIMENTAL=ON. These modules are untested.
incomplete, and may or may not be in a future build of PCem. We do not provide builds with these enabled as
well. It is also possible they may not even build.
-DUSE_EXPERIMENTAL_PGC=ON : Build PCem with Professional Graphics Controller support.
-DUSE_EXPERIMENTAL_PRINTER=ON : Build PCem with Printer support. Requires freetype.The menu is a pop-up menu in the Linux/BSD port. Right-click on the main window when mouse is not captured.
CD-ROM support currently only accesses /dev/cdrom. It has not been heavily tested.
On Windows, if you want to use PCAP networking, you will need to install npcap and replace the libpcap.dll in PCem dir using the wpcap.dll installed in C:\Windows\System32
| Hardware | Links |
|---|---|
| Systems | 8088 8086 286 386 486 Pentium Super Socket 7 |
| Graphics | Basic Unaccelerated (S)VGA cards 2D accelerated SVGA cards 3D accelerated SVGA cards 3D only cards |
| Sound | Cards |
| HDD Controller | Cards |
| Misc | Cards |
| Release | Machine | ROM file needed (within ./roms/ folder) |
|---|---|---|
| 1981 | IBM PC 8088 at 4.77 MHz 16KB - 640KB RAM (min. 64KB) |
ibmpc/pc102782.bin ibmpc/basicc11.f6 ibmpc/basicc11.f8 ibmpc/basicc11.fa ibmpc/basicc11.fc |
| 1983 | Compaq Portable Plus 8088 at 4.77 MHz 128KB - 640KB RAM |
compaq_pip/Compaq Portable Plus 100666-001 Rev C.bin |
| 1983 | IBM XT 8088 at 4.77 MHz 64KB - 640KB RAM |
ibmxt/5000027.u19 ibmxt/1501512.u18 |
| 1983 | Leading Edge Model M 8088 at 7.16 MHz 128KB - 704KB RAM |
leadingedge_modelm/Leading Edge - Model M - BIOS ROM - Version 4.71.bin |
| 1984 | IBM PCjr [5] 8088 at 4.77 MHz 64KB - 640KB RAM (min. 128KB) Built-in 16 colour graphics 3 voice sound Not generally PC compatible. |
ibmpcjr/bios.rom |
| 1984 | Tandy 1000 [5] 8088 at 4.77 MHz 128KB - 640KB RAM Built-in 16 colour graphics 3 voice sound |
tandy/tandy1t1.020 |
| 1985 | Commodore PC10 8088 at 4.77 MHz 640KB RAM CGA/Monochrome |
cbm_pc10/cbm-pc10c-bios-v4.41-318085-08.bin |
| 1985 | NCR PC4i 8088 at 4.77 MHz 256KB - 640KB RAM |
ncr_pc4i/NCR_PC4i_BIOSROM_1985.BIN |
| 1986 | DTK Clone XT 8088 at 8/10 MHz 64KB - 640KB RAM |
dtk/dtk_erso_2.42_2764.bin |
| 1986 | Phoenix XT clone 8088 at 8/10 MHz 64KB - 640KB RAM |
pxxt/000p001.bin |
| 1987 | Hyundai Super 16T 8088/8087 at 4.77/8.0 MHz 640KB RAM EGA 16 colour graphics |
super16t/hyundai-super-16t-system-bios-hea-v1.12ta.bin |
| 1987 | Tandy 1000HX 8088 at 7.16 MHz 256KB - 640KB RAM Built-in 16 colour graphics 3 voice sound Has DOS 2.11 in ROM |
tandy1000hx/v020000.u12 |
| 1987 | Thomson TO16 PC 8088 at 9.54 MHz 512KB - 640KB RAM |
to16_pc/TO16_103.bin |
| 1987 | Toshiba T1000 [1] [5] 8088 at 4.77 MHz 512KB - 1024KB RAM CGA on built-in LCD |
t1000/t1000.rom t1000/t1000font.rom |
| 1987 | VTech Laser Turbo XT 8088 at 10 MHz 640KB RAM |
ltxt/27c64.bin |
| 1987 | Zenith Data SupersPort 8088 at 8 MHz 128KB - 640KB RAM Built-in LCD video is not currently emulated |
zdsupers/z184m v3.1d.10d |
| 1988? | ©Anonymous Generic Turbo XT BIOS 8088 at 8+ MHz 64KB - 640KB RAM |
genxt/pcxt.rom |
| 1988 | Atari PC3 8088 at 8 MHz 640KB RAM |
ataripc3/AWARD_ATARI_PC_BIOS_3.08.BIN |
| 1988 | Juko XT clone | jukopc/000o001.bin |
| 1988 | Schneider Euro PC 8088 at 9.54 MHz 512KB - 640KB RAM |
europc/50145 europc/50146 |
| 1989 | AMI XT clone 8088 at 8+ MHz 64KB - 640KB RAM |
amixt/ami_8088_bios_31jan89.bin |
| 1989 | Hyundai Super 16TE 8088/8087 at 10 MHz 640KB RAM EGA 16 colour graphics |
super16te/hyundai-super-16te-system-bios-v2.00id.bin |
| 2015 | Xi8088 8088 at 4.77-13.33 MHz 640KB RAM |
xi8088/bios-xi8088.bin |
| Release | Machine | ROM file needed (within ./roms/ folder) |
|---|---|---|
| 1984 | Compaq Deskpro 8086 at 8 MHz 128KB - 640KB RAM |
deskpro/Compaq - BIOS - Revision J - 106265-002.bin |
| 1984 | Olivetti M24 [5] 8086 at 8 MHz 128KB - 640KB RAM Built-in enhanced CGA (supports 640x400x2) |
olivetti_m24/olivetti_m24_version_1.43_low.bin olivetti_m24/olivetti_m24_version_1.43_high.bin |
| 1986 | Amstrad PC1512 [5] 8086 at 8 MHz 512KB - 640KB RAM Enhanced CGA (supports 640x200x16) Custom mouse port |
pc1512/40043.v1 pc1512/40044.v2 pc1512/40078.ic127 |
| 1987 | Amstrad PC1640 [5] 8086 at 8 MHz 640KB RAM Built-in Paradise EGA Custom mouse port |
pc1640/40043.v3 pc1640/40044.v3 pc1640/40100 |
| 1987 | Toshiba T1200 [1] [5] 8086 at 9.54 MHz 1MB - 2MB RAM CGA on built-in LCD |
t1200/t1200_019e.ic15.bin t1200/t1000font.rom |
| 1988 | Amstrad PPC512/640 [5] 8086 at 8 MHz 512KB - 640KB RAM Built-in CGA w/ plasma display |
ppc512/40107.v2 ppc512/40108.v2 ppc512/40109.bin |
| 1988 | Sinclair PC200/Amstrad PC20 [5] 8086 at 8 MHz 512KB - 640KB RAM Built-in CGA (supports TV-out 50hz PAL) |
pc200/pc20v2.0 pc200/pc20v2.1 pc200/40109.bin |
| 1988 | VTech Laser XT3 8086 at 10 MHz 512KB - 1152KB RAM |
lxt3/27c64d.bin |
| 1989 | Amstrad PC2086 [5] 8086 at 8 MHz 640KB RAM Built-in VGA |
pc2086/40179.ic129 pc2086/40180.ic132 pc2086/40186.ic171 |
| 1989 | Tandy 1000SL/2 [5] 8086 at 9.54 MHz 512KB - 768KB RAM Built-in 16 colour graphics 4 voice sound |
tandy1000sl2/8079047.hu1 tandy1000sl2/8079048.hu2 |
| 1990 | Amstrad PC3086 [5] 8086 at 8 MHz 640KB RAM Built-in VGA |
pc3086/fc00.bin pc3086/c000.bin |
| 1991 | Amstrad PC5086 8086 at 8 MHz 640KB RAM |
pc5086/sys_rom.bin |
| Release | Machine | ROM file needed (within ./roms/ folder) |
|---|---|---|
| 1984 | IBM AT 286 at 6 or 8 MHz 256KB - 16MB RAM |
ibmat/at111585.0 ibmat/at111585.1 |
| 1986 | Compaq Portable II 286 at 8 MHz 256KB - 15MB RAM |
compaq_pii/109739-001.rom compaq_pii/109740-001.rom |
| 1986 | IBM XT Model 286 286 at 6 MHz 256KB - 16MB RAM |
ibmxt286/BIOS_5162_21APR86_U34_78X7460_27256.BIN ibmxt286/BIOS_5162_21APR86_U35_78X7461_27256.BIN |
| 1986 | Toshiba T3100e [1] [5] 286 at 12 MHz 1MB - 5MB RAM CGA on gas-plasma display |
t3100e/t3100e_font.bin t3100e/t3100e.rom |
| 1987 | IBM PS/2 Model 50 [5] 286 at 10 MHz 1MB - 16MB RAM Built-in VGA MCA bus |
i8550021/90x7420.zm13 i8550021/90x7423.zm14 i8550021/90x7426.zm16 i8550021/90x7429.zm18 |
| 1988 | Bull Micral 45 286 at 12 MHz 1MB - 6MB RAM |
bull_micral_45/even.fil bull_micral_45/odd.fil |
| 1988 | Commodore PC30-III 286 at 12 MHz 512KB - 16MB RAM |
cmdpc30/commodore pc 30 iii even.bin cmdpc30/commodore pc 30 iii odd.bin |
| 1988 | IBM PS/2 Model 30-286 286 at 10 MHz 1MB - 16MB RAM Built-in VGA MCA bus |
ibmps2_m30_286/33f5381a.bin |
| 1989 | Epson PC AX 286 256KB - 16MB RAM |
epson_pcax/EVAX epson_pcax/ODAX |
| 1989 | Epson PC AX2e 286 at 12 MHz 256KB - 16MB RAM |
epson_pcax2e/EVAX epson_pcax2e/ODAX |
| 1990 | AMI 286 clone 286 at 8+ MHz 512KB - 16MB RAM |
ami286/amic206.bin |
| 1990 | Award 286 clone 286 at 8+ MHz 512KB - 16MB RAM |
award286/award.bin |
| 1990 | Dell System 200 286 at 12 MHz 640KB - 16MB RAM |
dells200/dell0.bin dells200/dell1.bin |
| 1990 | IBM PS/1 Model 2011 [5] 286 at 10 MHz 512KB - 16MB RAM Built-in VGA DOS 4.01 + GUI menu system in ROM |
ibmps1/f80000.bin |
| ? | Goldstar GDC-212M 286 at 12 MHz 512KB - 4MB RAM |
gdc212m/gdc212m_72h.bin |
| ? | GW-286CT GEAR 286 at 8+ MHz 512KB - 16MB RAM |
gw286ct/2ctc001.bin |
| ? | Hyundai Super-286TR 286 at 12 MHz 1MB - 4MB RAM |
super286tr/award.bin |
| ? | Samsung SPC-4200P 286 at 12 MHz 512KB - 2MB RAM |
spc4200p/u8.01 |
| ? | Samsung SPC-4216P 286 at 12 MHz 1MB - 5MB RAM |
spc4216p/phoenix.bin or spc4216p/7101.u8 spc4216p/ac64.u10 |
| ? | Samsung SPC-4620P 286 at 12 |
No open issues yet, or sync has not completed.