Changes

Jump to navigation Jump to search

PC Emulator Comparisons

1,061 bytes added, Wednesday at 11:13
Emulators: I'm not sure how we should handle this column, any ideas?
{{main|POS (Pong Consoles) CPUs and Other Chips#x86 CPUs}}
{{for|emulators that run on DOS|Emulators on Legacy systems#DOS}}
{{for|emulators that run on Windows 3.x|Emulators on Legacy systems#Windows 3.x}}
{{for|emulators that run on Windows 9x|Emulators on Legacy systems#Windows 9x}}
{{for|emulators that run on Windows 2000, Windows XP and Windows Vista|Emulators on Legacy systems#Windows NT}}
 
The PC architecture originates from the 1981 IBM PC 5150. Due to being designed with off-the-shelf hardware, clone manufacturers could produce compatible hardware and was only limited by the copyright on the PC's BIOS. To circumvent this, competitors such as Compaq created their own compatible BIOSes using clean-room reverse engineering.[https://emulation.gametechwiki.com/index.php/Legal_Status_of_Emulation#Avoiding]
Keep in mind that due to DOS and Windows software having to be designed to support a range of different hardware accuracy is far less crucial than for most systems covered by this wiki.
=[[FPGA]]=
placeholder text. [https://github.com/MiSTer-devel/ao486_MiSTer MiSTer port of the ao486 core]. See [[MiSTer]] page for more information.
 
=Obsolete hardware=
You can still buy reasonably priced compatible hardware from second hand market. See [https://www.vogons.org/viewtopic.php?t=63052 Vogons Thread: Hardware by Year Build Guide] and [https://www.vogonswiki.com/index.php/Recommended_Builds VogonsWiki: Recommended Builds] pages.
=Emulators=
{{main|POS_(Pong_Consoles)_CPUs_and_Other_Chips#x86_CPUs}}''{{for|software that can run hardware features designed for PC-9800 system|NEC PC-9800 series#Hardware features and peripherals}}:''*Also tons Tons of non-active obsolete DOSBox forks for Android exists, see [https://emulation.gametechwiki.com/index.php?title=POS_(Pong_Consoles)_CPUs_and_Other_Chips&diff=70741&oldid=70740#x86_CPUs this page] for that.''*:''See also [[:Category:x86-based]] page for other x86 based systems software emulation or [[Windows_2000/XP/Vista_emulators|Windows XP/Vista]] and [[Windows_95/98/ME_emulators|Windows 9x]] for virtualization of these operating systems.''
<div style="max-width:100%; overflow:auto;">
! scope="col"|<small>[[#Enhancements|Enhancements]]</small>
! scope="col"|<small>[[#Hardware_.26_Peripheral_Support|Hardware support, features<br/>and peripherals]]</small>
! scope="col"|<small>[[#Operating systems|Operating systems<br/>support]]</small>
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
! scope="col"|Active
! scope="col"|[[Recommended emulators|Recommended]]
|-
!colspan="89"|PC / x86
|-
|[[86Box]]
|align=left|{{Icon|Windows|Linux|Mac}}
|[http://ci.86box.net/job/86Box Dev]<br/>[https://github.com/86Box/86Box/releases {{86BoxVer}}]<br/>[https://github.com/PCBox/PCBox/actions PCBox fork]
|{{~}} ||{{✓}} || ||{{✓}} ||{{✓}} ||{{✓}}
|-
|[[PCem]]
|align=left|{{Icon|Windows|Linux|Mac}}
|[http://pcem-emulator.co.uk {{PCemVer}}]<br/>[https://github.com/sarah-walker-pcem/pcem/actions git]<br/>[https://github.com/PCemOnMac/PCemV17macOS/releases git] <small>(macos)</small>
|{{~}} ||{{✓}} || ||{{✓}} ||{{✓}} ||{{✓}}
|-
|[[DOSBox]]<br/>[[DOSBox#Forks|and forks]]
|[https://github.com/joncampbell123/dosbox-x/releases {{DOSBox-XVer}}] (DOSBox-X)<br/>[https://dosbox-staging.github.io {{DOSBoxStagingVer}}] (DOSBox Staging)<br/>[https://github.com/schellingb/dosbox-pure/releases {{DOSBox PureVer}}] (DOSBox Pure)<br/>[https://github.com/realnc/dosbox-core git] (DOSBox-core)<br/><small>''<abbr title="We recommend DOSBox forks instead of DOSBox for advanced users or those seeking specific functionalities, more feature support and modern
enhancements.">[http://www.dosbox.com/download.php?main=1 0.74-3] (DOSBox)</abbr>''</small>
|{{~}} ||{{~}} || ||{{✓}} ||{{~}}<ref group=N>[[DOSBox#Forks|DOSBox-X]], [[DOSBox#Forks|DOSBox Staging]], [[DOSBox#Forks|DOSBox Pure]] and [[DOSBox#Forks|DOSBox-core]] forks are still active.</ref> ||{{✓}}
|-
|[[DREAMM]]
|align=left|{{Icon|Windows|Linux|macOS}}
|[https://aarongiles.com/dreamm {{DREAMMVer}}]
|{{~}}<abbr title="EPx filtering, Copy protection answer look-ups">*</abbr> ||{{~}}<abbr title="Direct3D emulation, DOS/Win32 implementation">*</abbr> || ||{{✗}} ||{{✓}} ||{{~}}<abbr title="Compatibility is limited to select games">*</abbr>
|-
|[https://github.com/dbalsom/martypc MartyPC]
|align=left|{{Icon|Windows}}<br/>{{Icon|Linux|macOS}}<abbr title="It should build on Linux and MacOS (Including M1) but no release builds for these platforms at the moment.">*</abbr>
|[https://github.com/dbalsom/martypc/releases {{MartyPCVer}}]
|{{~}} ||{{~}} || ||{{✓}} ||{{✓}} ||{{~}}
|-
|UniPCemu
|align=left|{{Icon|Windows}}
|[https://superfury.itch.io/unipcemu/devlog 2023/04/11]
|{{?}} ||{{~}} || ||{{✓}} ||{{✓}} ||{{~}}
|-
|[https://www.varcem.com VARCem]
|align=left|{{Icon|Windows|Linux|Mac}}
|[https://www.varcem.com/?page=dl Builds]
|{{?}} ||{{~}}<abbr title="8086, 80286, 386, 486, Pentium">*</abbr> || ||{{✓}} ||{{~}} ||{{~}}
|-
|[[MAME]]
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
|<abbr title="Latest development version">git artifacts</abbr><ref group=N>[https://nightly.link/mamedev/mame/workflows/ci-windows/master CI-Windows] [https://nightly.link/mamedev/mame/workflows/ci-linux/master CI-Linux] [https://nightly.link/mamedev/mame/workflows/ci-macos/master CI-Macos]</ref></br>[http://www.mamedev.org/release.html {{MAMEVer}}]<br/>[https://buildbot.libretro.com/nightly/ libretro core]
|{{~}} ||{{~}} || ||{{✓}} ||{{✓}} ||{{~}}
|-
|[https://www.pcjs.org/ PCjs]
|align=left|{{Icon|Web}}
|[https://github.com/jeffpar/pcjs git]
|{{✗}} ||{{~}}<abbr title="8086, 80286, 386">*</abbr> || ||{{✓}} ||{{✓}} ||{{✗}}
|-
|[[QEMU]]
|align=left|{{Icon|Windows|Linux|macOS}}
|[https://www.qemu.org/download/ {{QEMUVer}}]
|{{✗}} ||{{✗}} || ||{{✓}} ||{{✓}} ||{{✗}}
|-
|[[Bochs]]
|align=left|{{Icon|Windows|Linux|FreeBSD|BeOS|OS2|AmigaOS|MorphOS}}
|[https://sourceforge.net/projects/bochs/files/bochs {{BochsVer}}]
|{{✗}} ||{{✗}} || ||{{✓}} ||{{✗}} ||{{✗}}
|-
!colspan="89"|Mobile / ARM
|-
|[[DOSBox#Forks|DOSBox Pure]]
|align=left|{{Icon|Android|iOS}}
|[https://buildbot.libretro.com/nightly/ libretro core]
|{{~}} ||{{~}} || ||{{✓}} ||{{✓}} ||{{✓}}
|-
|UniPCemu
|align=left|{{Icon|Android}}
|[https://superfury.itch.io/unipcemu/devlog 2023/04/11]
|{{?}} ||{{~}} || ||{{✓}} ||{{✓}} ||{{~}}
|-
|Magic DOSBox
|align=left|{{Icon|Android}}
|[https://play.google.com/store/apps/details?id=bruenor.magicbox 1.0.84]
|{{?}} ||{{~}}<abbr title="80286, 386">*</abbr> || ||{{✗}} ||{{✓}} ||{{✗}}
|-
|[[QEMU|Limbo]]
|align=left|{{Icon|Android|WinMobile}}
|[https://virtualmachinery.weebly.com/limbo-downloads.html 6.0.1] <br>[https://forum.xda-developers.com/attachments/qemu-7z.475570 WinMobile build]
|{{✗}} ||{{✗}} || ||{{✓}} ||{{~}} ||{{✗}}
|-
|DOSBoxPPC
|align=left|{{Icon|WinMobile}}
|[http://www.freewarepocketpc.net/ppc-download-dosboxppc-v0-63.html 0.63]
|{{?}} ||{{~}}<abbr title="80286, 386">*</abbr> || ||{{✗}} ||{{✗}} ||{{✗}}
|-
|[[Bochs]]
|align=left|{{Icon|Android}}
|[https://play.google.com/store/apps/details?id=net.sourceforge.bochs&hl=en_US&gl=US 2.6.11] <br>[https://github.com/lubomyr/bochs git]
|{{✗}} ||{{✗}} || ||{{✓}} ||{{✗}} ||{{✗}}
|-
!colspan="89"|Consoles
|-
|[[DOSBox#Forks|DOSBox Pure]]
|align=left|{{Icon|XboxOne|SXS}}
|[https://buildbot.libretro.com/stable/ UWP libretro core]
|{{~}} ||{{~}} || ||{{✓}} ||{{✓}} ||{{✓}}
|-
|UniPCemu
|align=left|{{Icon|PSP|Switch|Vita}}
|[https://superfury.itch.io/unipcemu/devlog 2023/04/11]
|{{?}} ||{{~}} || ||{{✓}} ||{{✓}} ||{{~}}
|-
|[[Bochs]]
|align=left|{{Icon|PS2}}
|[http://www.ps2dev.karashome.pl 2.3.5]
|{{✗}} ||{{✗}} || ||{{✓}} ||{{✗}} ||{{✗}}
|}
</div>
|-
|[[PCem]]/[[86Box]]/[https://pcbox-emu.xyz/ PCBox]/[https://www.varcem.com/ VARCem]:
These emulators provides an excellent compatibility and [[#Hardware_features_and_peripherals|hardware and peripheral support]] for DOS-based operating systems such as [[POS_(Pong_Consoles)_CPUs_and_Other_Chips#x86_CPUs|Windows 3.x]], [[Windows_95/98/ME_emulators|Windows ME/98/95]] (and even NT-based [[Windows_2000/XP/Vista_emulators|XP/Vista]],Win7 Windows 7 supported but not recommended) that is beyond what "DOSBox forks" can offer but unlike "DOSBox forks" these emulators usually requires modest to top-notch [https://www.cpubenchmark.net/singleThread.html single thread performance of CPUs]. As of June 14, 2021, PCem's original developer, Sarah Walker, has stopped working on the project. It has now been taken over on December 18, 2021, by a new maintainer, Michael Manley. 86Box ([https://github.com/OBattler/PCem-X?tab=readme-ov-file#pcem-x- formerly known as PCem-X]) is a fork of PCem which is [https://github.com/86Box/86Box/issues/3577 developed more actively], while PCBox and VARCem are forks of 86Box.
:: One aspect commonly used to compare PCem and 86Box is the emulation performance. PCem v15 introduced a rewritten dynamic recompiler, which was primarily aimed at improving emulation performance in games; however, it also caused minor to severe performance regressions in other applications. 86Box uses the previous recompiler from PCem versions before v15, with optimizations performed by devs, as they have determined that the new one causes too many regressions to be adopted as a sensible default. There is a way for you to try out the new recompiler on 86Box, though. PCem’s emulation of some core system components, such as the Programmable Interval Timer (PIT), takes a few shortcuts to improve performance. These shortcuts are perfectly fine for games, which is what PCem targets; although, they have caused issues with the software preservation side of things. In addition to taking fewer shortcuts, 86Box also tries to follow the specifications of these components, rather than implement the minimum viable feature set, which is - once again - good enough for games, but not good enough for some other applications. Generally speaking, the more accurate a component’s emulation is made, the more host CPU horsepower it will require. In addition to taking fewer shortcuts, 86Box also tries to follow the specifications of these components, rather than implement the minimum viable feature set, which is - once again - good enough for games, but not good enough for some other applications. [https://86box.net/2022/01/07/pcem-migration-guide.html See this guide for more information].
|-
| {{✗}}
|-
| rowspan=5 6 | Quality of life
| Built-in [http://forum.arcadecontrols.com/index.php/topic,106405 Custom resolution/CRTSwitchRes]<br/><small>For using this on Windows OS you need [http://geedorah.com/eiusdemmodi/forum/viewtopic.php?pid=1009#p1009 CRT Emudriver].<br/>Another option is using EDID editor tool such as "Custom Resolution Utility".</small>
| colspan=9 | Exclusive to [https://docs.libretro.com/guides/crtswitchres/ libretro cores] and [[GroovyMAME]] at the moment.
| {{✗}}
| {{✓}}
|-
| File Sharing<br/><small>Similar to "Shared Folder" enhancement for [[Hypervisors#Type_2_hypervisors|Type-2 hypervisors]].</small>
| {{✓}}[https://86box.net/2022/11/26/86box-v3-11.html#folders-as-cds *]
| {{?}}
| {{?}}
| {{?}}
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|-
| rowspan=4 | Misc
==Operating systems==
{{for|emulator software that can run on legacy operating systems|Emulators on Legacy systems}}
:''See [[Windows_2000/XP/Vista_emulators|Windows XP/Vista]] and [[Windows_95/98/ME_emulators|Windows 9x]] pages for virtualization of these legacy operating systems.''
{|class="wikitable" style="text-align:left; vertical-align:middle;"
==Hardware & Peripheral Support==
{{for|software that can run hardware features designed for PC-9800 system|NEC PC-9800 series#Hardware features and peripherals}}
''Side note: Please don't bump/spam GitHub threads/issues and feature request pages. '''This list only includes parts and accessories that can be possible to emulated through software or will be possible in the near future.''' Including everything would result in an endless list.''
| {{✓}}
| {{✓}}
| {{~}}<ref group=N name=DOSBoxForksCPU><br/>Unlike emulators like 86Box or PCem which aim for accurate execution, DOSBox forks prioritize performance by [https://github.com/joncampbell123/dosbox-x/wiki/Guide:CPU-settings-in-DOSBox%E2%80%90X/d4205d856c3da5787fc39f845452d184fbcb8ec4#is-dosbox-x-cycle-accurate emulating one instruction per emulated-cycle]. This approach simplifies internal CPU mechanics and ignores real clock frequency or FLOPs of the emulated system. While this sacrifices perfect accuracy, it leads to significantly faster emulation and still has broader software compatibility compared to other emulators like QEMU or Bochs. However, some niche software may still encounter compatibility limitations. Therefore, DOSBox forks remain a powerful option for casual users and performance-intensive tasks, offering a balance between compatibility and speed. See DOSBox Pure: [https://github.com/schellingb/dosbox-pure/issues/301 MMX Instruction Set Support] issue page and [[POS_(Pong_Consoles)_CPUs_and_Other_Chips#Descriptions]] section for more information.</ref>
| {{~}}<ref group=N name=DOSBoxForksCPU></ref>
| {{~}}<ref group=N name=DOSBoxForksCPU></ref>
* See [https://86box.readthedocs.io/en/latest/settings/floppycdrom.html this documentation] for 86Box. There is no optical drive passthrough support for 86Box at the moment[https://github.com/86Box/86Box/issues/730], so your only choice is using disc images.
* See [[Copy protection#Emulation]] section for middleware or disc-check emulation software tools.
 
==External links==
*[https://youtu.be/qND3Eb0dI0E Tech Tangents: 86Box - An Introduction to PC Emulation]
==References==
11,976
edits

Navigation menu