Difference between pages "Arcade emulators" and "Compatibility layers"

From Emulation General Wiki
(Difference between pages)
Jump to navigation Jump to search
m (Protected "Arcade emulators" ([Move=Allow only administrators] (indefinite)))
 
(Compatibility layers)
(Tags: Mobile edit, Mobile web edit)
 
Line 1: Line 1:
[[File:1676971-ms_pac_man_arcade_machine.jpg|thumb|156px|Example of a Ms. Pac-Man arcade cabinet.]]Arcades were venues in which many games were played at, often containing thousands of games. Arcades often got their revenue from players who paid to play games.  Most arcade emulators focus on emulating many systems in one program, the scope of which varies between projects.
+
While not strictly emulation ''per se'' (hence why [[Wine]] stands for "Wine Is Not an Emulator"), '''compatibility layers''' allow software written for one operating system to run on a different OS, often by translating API and system calls made by an application to their equivalent calls in the host operating system. In theory, this should allow for near-native performance since no processor emulation takes place, but in practice some software such as games will tend to run a bit slower due to other bottlenecks that occur as a result of [[Emulation Accuracy|replicating the correct behavior]], such as accounting for graphics APIs like Direct3D that aren't supported on non-Microsoft platforms. Additionally, compatibility layers may also use emulation in order to run software built for a different architecture.
  
== Machines ==
+
==Compatibility layers==
Machines often varied by their design and, unlike consoles, were often tailored to just one game. Games were designed to eat as many quarters as possible, which is emulated with the "Coin" key. Some games have a service mode (mapped to F2 in MAME) with menus meant for the arcade owner to set dipswitches for difficulty, censorship, language, and most importantly a "Free Play" mode that allows players to continue as many as they want without requesting more coins. Sometimes, similar menus meant for developers (labeled debug or test usually, sometimes requiring a developer BIOS like with some Neo Geo games) are left in the game too.
 
 
 
Three main types of arcade machines can be distinguished:
 
 
 
===Arcade Original Hardware===
 
Hardware made specifically for the arcade to provide for graphics and performance unseen on home consoles. Extremely common in the golden age of arcades but became much less frequent as companies used modified existing hardware instead to save on R&D costs and easier cross-platform development, or tried to differentiate between the home and arcade experience with control scheme gimmicks instead.
 
 
 
MAME's purpose is to cover most of these. Older arcades as well as select popular arcade machines, the Neo Geo and Capcom's CPS series, in particular, received their own standalone emulators. Sometimes, they received their own console versions but those are mostly ports, not emulation, with very few exceptions.
 
 
 
===Converted Home Console Hardware===
 
Those arcade boards share most of the hardware specifications with existing home consoles, with the addition of a coin slot and occasionally DRM and some changes. While MAME supports most of those, standalone emulators for the base home console are more mature and often (but not always) support the arcade variants.
 
{{Main|http://www.system16.com/base.php System16's arcade museum}} ''(See more examples here)''
 
* '''[[Nintendo Entertainment System emulators|NES]]:''' Nintendo PlayChoice-10 ([[FCEUX]], [[Mesen]]), Nintendo VS System
 
* '''[[Super Nintendo emulators|SNES]]:''' Nintendo Super System
 
* '''[[Nintendo 64 emulators|N64]]:''' Aleck-64 ([[Project64]] + modded images)
 
* '''[[GameCube emulators|GameCube]]:''' Triforce ([[Dolphin]] fork)
 
* '''[[Sega Saturn emulators|Saturn]]:''' STV ([[SSF]])
 
* '''[[Sega Dreamcast emulators|Dreamcast]]:''' Atomiswave ([[DEmul]]), Naomi 1/2 ([[DEmul]])
 
* '''[[Xbox emulators|Xbox]]:''' Chihiro ([[Cxbx-Reloaded]], [[XQEMU]] <small>(WIP)</small>)
 
* '''[[PlayStation emulators|PlayStation]]:''' Konami System 573, Namco System 10/11/12, Sony ZN-1/ZN-2
 
* '''[[PlayStation 2 emulators|PlayStation 2]]:''' Namco System 246/256/Super System 256
 
* '''[[PlayStation 3 emulators|PlayStation 3]]:''' Namco System 357/369
 
 
 
===Converted PC Hardware===
 
Based on normal PC architecture with a variation of Windows 7 Embedded or Linux installed and tons of DRM and custom drivers. These can still be run on computers using the right launchers (Game loader All RH, SpiceTools, idmacx tools, TekParrot...) but most likely won't be emulated by MAME anytime soon, and not just because of their policies on what hardware is too recently commercialized to cover.
 
{{Main|http://www.system16.com/base.php#11 System16's arcade museum}} (See more examples here)
 
 
 
* '''Windows XP Embedded:''' [[wikipedia:Taito_Type_X#Taito_Type_X.2FX.2B|Taito Type X/X+]], [[wikipedia:Taito_Type_X#Taito_Type_X7|Taito Type X7]], [[wikipedia:Taito_Type_X#Taito_Type_X.C2.B2|Taito Type X²]]
 
* '''Windows 7 Embedded:''' [[wikipedia:Taito_Type_X#Taito_Type_X_Zero|Taito Type X Zero]], Namco System ES2 PLUS, Namco System ES3
 
* '''Windows 7 Embedded (64-bit):''' [[wikipedia:Taito_Type_X#Taito_Type_X.C2.B3|Taito Type X³]]
 
* '''Linux Debian 4.0''': Namco System N2 ("Linux 32-bit"), Namco System ES1 ("arcadelinux 32-bit")
 
 
 
====Emulation====
 
The games first need to run on an operating system equivalent to that of the machine, which may imply [[Wine]] use on Linux or having to upgrade to 64-bit editions. Some GPUs or wrappers may be required. Additionally, the following need to be installed:
 
* '''Microsoft Visual C++ Runtimes:''' A one-in-all link for all editions from 2005 to 2015 may be found [https://www.sereby.org/site/All%20in%20One%20Runtimes here].
 
* '''Microsoft .NET Frameworks:''' Any version from 1.0 to 4.5 may be required, the newer, the better.
 
* '''Microsoft DirectX 9.0:''' Offline installer [https://www.microsoft.com/en-us/download/details.aspx?id=8109 here].
 
* '''PC Video Codecs:''' Grabbing the standard K Lite Codec pack from [https://www.codecguide.com/download_kl.htm here] is recommended.
 
 
 
Remember to backup data from the downloaded scene release before trying to fix it to run.
 
 
 
* '''Launcher:''' The game needs this to work at all. There are many: Jconfig, TeknoParrot... and each game requires a specific launcher. If you got the dump from elsewhere, not in a clean state that doesn't work, it may be because of conflicting launchers and you will have to delete all of them (typically <code>Detoured.dll, Game loader Rh.exe, Typex_config.exe, Typex_loader.exe, TTXconfig 2.0, TTX-moniter.dll</code>...)
 
* '''iDmacDrv32.dll:''' Needed in Nesica games. If present, do not delete it, copy Jconfig.exe and the replacement iDmacDrv32.dll from the Jconfig package, then double-click NesicaXlive.reg to import keys to your registry, and use the game executable to run the game. If not present, copy Jconfig.exe, JVSemu.dll, and jvs_loader.exe from the Jconfig package, and use jvs_loader.exe to run the game.
 
* '''Save Fixes:''' Some games can't save scores and data at all. For a bunch of machines, there are fixes (called "loaders pack") that enable that, but some machines (nesica) handle saving purely using official servers in which case there's not much (yet) to do about it.
 
* '''Extra Fixes:''' Varies per game. Check the readme with the game scene release.
 
 
 
You can set your controls in Jconfig.exe, and it's recommended to disable Dsound and D3D Wrapper.
 
 
 
Some games can have DirectX related problems. For some, deleting the existing d3d9.dll or opengl.dll files can help. For others, they expect the older D3D8 codec and have bugs (crashes, uneven speed) that can be fixed with Reshade's d3d8to9 plugin.
 
 
 
== Emulators ==
 
 
{| class="wikitable" style="text-align:center;"
 
{| class="wikitable" style="text-align:center;"
 +
|-
 
! scope="col"|Name
 
! scope="col"|Name
 
! scope="col"|Operating System(s)
 
! scope="col"|Operating System(s)
 
! scope="col"|Latest Version
 
! scope="col"|Latest Version
! scope="col"|# of Emulated systems
+
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
! scope="col"|Open-Source
 
! scope="col"|[[libretro|Libretro Core]]
 
 
! scope="col"|Active
 
! scope="col"|Active
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
! scope="col"|[[Recommended Emulators|Recommended]]
 +
! scope="col"|Runs the following software
 
|-
 
|-
 +
!colspan="7"|PC / x86
 
|-
 
|-
!colspan="8"|PC
+
|[[Wine]]
 +
|align=left|{{Icon|Linux|macOS|FreeBSD}}
 +
|[https://wiki.winehq.org/Download {{WineVer}} <br />(Dev: {{WineDevVer}})]
 +
|{{✓}} ||{{✓}} ||{{✓}}
 +
|Windows applications and games
 
|-
 
|-
|[[MAME]]
+
|[[Proton]]
|Multi-platform
+
|align=left|{{Icon|Linux}}
|[http://www.mamedev.org/release.html {{MAMEVer}}]
+
|[https://store.steampowered.com/about/ {{ProtonVer}}]
|Thousands of electronics<ref>http://mamedb.com/history</ref>
+
|{{✓}} ||{{✓}} ||{{✓}}
|{{✓}}
+
|Windows games
|{{✓}}<ref group=N name=MAMEVer>RetroArch cores: [https://github.com/libretro/mame mame] (latest), [https://github.com/libretro/mame2016-libretro mame2016] (0.174), [https://github.com/libretro/mame2014-libretro mame2014] (0.159), [https://github.com/libretro/mame2010-libretro mame2010] (0.139), [https://github.com/libretro/mame2003-libretro mame2003] (0.78), [https://github.com/libretro/mame2000-libretro mame2000 aka mame4all] (0.37b5)</ref>
 
|{{✓}}
 
|{{✓}}
 
|-
 
|[[FinalBurn Alpha]]
 
|Windows
 
|[http://www.fbalpha.com/downloads/ 0.2.97.43]
 
|Hundreds
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|-
 
|[http://adamulation.blogspot.com/ DICE]
 
|Windows, Linux, macOS
 
|[http://sourceforge.net/projects/dice/files/DICE/ 0.9]
 
|20
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|{{✓}}
 
|-
 
|[[DAPHNE]]
 
|Windows, Linux, macOS
 
|[http://www.daphne-emu.com/ 1.0.12]
 
|1 <br /><small>([[Arcade LaserDisc emulators|LaserDisc]])</small>
 
|{{✓}}<ref group=N name=OpenDaphne>[https://github.com/DavidGriffith/daphne Open-Source DAPHNE] - new fork with an open-source frontend for 64-bit Linux.</ref>
 
|{{~}} <small>(WIP)</small>
 
|{{✗}}
 
|{{✓}}
 
 
|-
 
|-
 
|[[TeknoParrot]]
 
|[[TeknoParrot]]
|Windows
+
|align=left|{{Icon|Windows}}
|[https://teknoparrot.com/ {{TeknoVer}}]
+
|[https://teknoparrot.com/download {{TeknoVer}}]
|7 <br /><small>(PC based)</small>
+
|{{}} ||{{}} ||{{✓}}
|{{}}<ref group=N name=OpenParrot>[https://github.com/teknogods/OpenParrot OpenParrot] - new open-source core distinct from TeknoParrot.</ref>
+
|PC-based arcade games
|{{}}
 
|{{✓}}
 
|{{✓}}
 
 
|-
 
|-
|[[ZiNc]]
+
|CrossOver
|Windows, Linux
+
|align=left|{{Icon|Linux|macOS|ChromeOS}}
|[http://www.1emulation.com/forums/files/file/37-zinc/ 1.1]
+
|[https://www.codeweavers.com/products 20.0.0]
|3 <br /><small>(ZN-1, ZN-2, Namco System 11)</small>
+
|{{✗}} ||{{}} ||{{}}
|{{✗}}
+
|Windows applications and games
|{{}}
 
|{{}}
 
|{{✓}}
 
 
|-
 
|-
|[http://calice.emuunlim.com/ Calice]
+
|[[Anbox]]
|Windows
+
|align=left|{{Icon|Linux}}
|[http://www.emulator-zone.com/doc.php/arcade/calice.html 0.6.4]
+
|[https://docs.anbox.io/userguide/install.html git]
|6 <br /><small>(Capcom, Sega, SNK, Gaelco)</small>
+
|{{}} ||{{}} ||{{✗}}
|{{}}
+
|Android software
|{{}}
 
|{{✗}}
 
|{{✓}}
 
 
|-
 
|-
|[[RAINE]]
+
|[[Darling]]
|Windows, Linux, macOS
+
|align=left|{{Icon|Linux}}
|[http://raine.1emulation.com/download/latest.html 0.64.15]
+
|[https://github.com/darlinghq/darling git]
|1063
+
|{{✓}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
|{{✓}}
+
|macOS software
|{{✗}}
 
|{{✓}}
 
|{{✗}}
 
 
 
 
|-
 
|-
|[[Kawaks]]
+
|[[WineVDM]]
|Windows
+
|align=left|{{Icon|Windows}}
|[http://cps2shock.emu-france.info/download.html 1.65]
+
|[https://github.com/otya128/winevdm/releases git]<br />[https://ci.appveyor.com/project/otya128/winevdm/ Dev]
|3 <br /><small>([[Neo Geo emulators|Neo Geo]], CPS1, CPS2)</small>
+
|{{}} ||{{}} ||{{✗}}
|{{}}
+
|16-bit Windows apps and games
|{{}}
 
|{{✗}}
 
|{{✗}}
 
 
|-
 
|-
|CPS3 Emulator
+
|[[Wineskin]]
|Windows
+
|align=left|{{Icon|macOS}}
|[http://nebula.emulatronia.com/descargas.php 1.0a]
+
|[http://wineskin.urgesoftware.com/tiki-index.php?page=Downloads 1.7]
|1 <br /><small>(CPS3)</small>
+
|{{}} ||{{✗}} ||{{✗}}
|{{}}
+
|Windows applications and games
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
 
|-
 
|-
|[https://mamemaniaforever.forumfree.it/?t=64082339 VivaNonno]
+
|WineBottler
|Windows
+
|align=left|{{Icon|macOS}}
|[https://vivanonno.vg-network.com/ 22.0.3]
+
|[https://winebottler.kronenberg.org/ 4.0.1.1 Dev]
|1 <br /><small>(Namco System 22)</small>
+
|{{}} ||{{✗}} ||{{✗}}
|{{}}
+
|Windows applications and games
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
 
|-
 
|-
!colspan="8"|Sega-only
+
|[[WoW]]
 +
|align=left|{{Icon|Windows}}
 +
|?
 +
|{{✗}} ||{{✗}} ||{{✗}}
 +
|Windows 9x apps and games
 
|-
 
|-
|Model 2 Emulator
+
|[[Win3mu]]
|Windows
+
|align=left|{{Icon|Windows}}
|[http://nebula.emulatronia.com/descargas.php 1.1a]
+
|?
|1 <br /><small>([[Sega Model 2]])</small>
+
|{{✓}} ||{{}} ||{{}}
|{{✗}}
+
|Windows 3.x apps and games
|{{✗}}
 
|{{✗}}
 
|{{✓}}
 
|-
 
|[[Supermodel]]
 
|Windows, Linux, macOS
 
|[http://supermodel3.com/Download.html 0.2a]<br />[http://www.emucr.com/search/label/Supermodel SVN]
 
|1 <br /><small>([[Sega Model 3]])</small>
 
|{{}}
 
|{{~}} <small>(WIP)</small>
 
|{{}}
 
|{{✓}}
 
 
|-
 
|-
|[[DEmul]]
+
|[[NTVDMx64]]
|Windows
+
|align=left|{{Icon|Windows}}
|[http://forum.emu-russia.net/viewtopic.php?p=26178&sid=9d186ca9c444883bceeed6f185ed3fa9#p26178 0.7 Build 180428]
+
|[https://github.com/leecher1337/ntvdmx64]
|6 <br /><small>([[Sega NAOMI and variants]])</small>
+
|{{}} ||{{}} ||{{}}
|{{}}
+
|DOS applications and games
|{{}}
 
|{{}}
 
|{{✓}}
 
 
|-
 
|-
|[[Yabause|Kronos]]
+
|[[Ardi Executor]]
|Windows, Linux
+
|align=left|{{Icon|Windows|Linux|DOS}}
|[http://www.emutalk.net/forums/56-Sega-Saturn-Emulation {{KronosVer}}]
+
|[https://web.archive.org/web/20080404193445/http://www.ardi.com/ardi.php 2.1.17]
|1 <br /><small>(STV)</small>
+
|{{✓}} ||{{}} ||{{}}
|{{✓}}
+
|Classic Mac OS software up to System 6
|{{}}
 
|{{}}
 
|{{~}}
 
 
|-
 
|-
|[[Nova]]
+
|[http://dosemu.sourceforge.net/ DOSEmu]
|Windows
+
|align=left|{{Icon|Linux}}
|[https://www.patreon.com/nova_emu/posts 0.4]
+
|[https://sourceforge.net/projects/dosemu/files/ 1.4.0]
|1 <br /><small>(STV)</small>
+
|{{}} ||{{✗}} ||{{✗}}
|{{}}
+
|DOS software
|{{✗}}
 
|{{✓}}
 
|{{✗}}
 
|}
 
 
 
{| class="wikitable sortable" style="text-align:center;"
 
! scope="col"|Name
 
! scope="col"|Operating System(s)
 
! scope="col"|Latest Version
 
! scope="col"|# of Emulated systems
 
! scope="col"|ROM Set
 
! scope="col"|[[libretro|Libretro Core]]
 
! scope="col"|Active
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
 
|-
 
|-
!colspan="8"|Consoles
+
|[http://dosemu2.github.io/dosemu2/ DOSEmu2]
 +
|align=left|{{Icon|Linux}}
 +
|[https://github.com/dosemu2/dosemu2 git]
 +
|{{✓}} ||{{✓}} ||{{✗}}
 +
|DOS software
 
|-
 
|-
|[[Virtual Console]]
+
!colspan="7"|Mobile / ARM
|[[Wii emulators|Wii]]
 
|?
 
|Various<ref group=N>Includes games from publishers such as Namco, Sega, Tecmo and Capcom, also Neo Geo</ref>
 
|?
 
|{{✗}}
 
|{{✓}}
 
|{{✓}}
 
 
|-
 
|-
|NJEMU
+
|[[Wine]]
|[[PlayStation Portable emulators|PlayStation Portable]]
+
|align=left|{{Icon|Android}}
|[https://github.com/phoe-nix/NJEMU 2.3.5]
+
|[https://wiki.winehq.org/Download {{WineDevVer}}]
|4 <br /><small>(CPS1, CPS2, Neo Geo, Neo Geo CD)</small>
+
|{{✓}} ||{{}} ||{{✗}} <small>(WIP)</small>
|MAME 0.152
+
|Windows applications and games
|{{}}
 
|{{✗}}
 
|{{✓}}
 
 
|-
 
|-
|Unofficial Mod
+
|[https://github.com/AndreRH/hangover Hangover]
|[[PlayStation Portable emulators|PlayStation Portable]]
+
|align=left|{{Icon|Android|LinuxARM}}
|[http://wololo.net/talk/viewtopic.php?t=27733 2.3.1]<ref group=N name=cache>Generate cache with included <code>romcnv</code> utility.</ref>
+
|[https://github.com/AndreRH/hangover/releases git]
|4 <br /><small>(CPS1, CPS2, Neo Geo, Neo Geo CD)</small>
+
|{{}} ||{{}} ||{{}}
|MAME 0.120
+
|Windows applications and games
|{{}}
 
|{{}}
 
|{{}}
 
 
|-
 
|-
|FBA4PSP
+
|[[Anbox]]
|[[PlayStation Portable emulators|PlayStation Portable]]
+
|align=left|{{Icon|LinuxARM}}
|[[sourceforge:projects/fba4psp/files/FBA4PSP_Formal/|v12.4.0]]
+
|[https://docs.anbox.io/userguide/install.html git]
|1 <br /><small>(CPS1)</small>
+
|{{}} ||{{}} ||{{}}
|MAME 0.141
+
|Android software
|{{}}
 
|{{}}
 
|{{}}
 
 
|-
 
|-
!colspan="8"|Mobile
+
!colspan="9"|Console
 
|-
 
|-
|[[MAME]]
+
|[[Nintendont]]
|[[Android emulators|Android]]
+
|align=left|{{Icon|Wii|WiiU}}
|[http://www.mamedev.org/release.html {{MAMEVer}}]<ref group=N name=libretro>Only available on mobile as a libretro core (e.g. [[RetroArch]]).</ref>
+
|[https://github.com/FIX94/Nintendont 2021-07-12]
|Countless
+
|{{✓}} ||{{✓}} ||{{✓}}
|Depends on core
+
|GameCube games
|{{✓}}<ref group=N name=MAMEVer />
 
|{{✓}}
 
|{{✓}}
 
|-
 
|MAME4droid (0.139u1)
 
|[[Android emulators|Android]]
 
|[https://play.google.com/store/apps/details?id=com.seleuco.mame4droid 1.12]
 
|Countless
 
|MAME 0.139u1
 
|{{✓}} <br /><small>(mame2010)</small>
 
|{{✓}}
 
|{{✓}}
 
|-
 
|MAME4droid (0.37b5)
 
|[[Android emulators|Android]]
 
|[https://play.google.com/store/apps/details?id=com.seleuco.mame4all 1.5.3]
 
|Countless
 
|MAME 0.37b5
 
|{{✓}} <br /><small>(mame2000)</small>
 
|{{✗}}
 
|{{✓}}
 
|-
 
|[[FinalBurn Alpha]]
 
|[[Android emulators|Android]]
 
|[http://buildbot.libretro.com/nightly/android/latest/ SVN]
 
|Hundreds
 
|FBA 0.2.97.42 <br /><small>(based on MAME 0.187)</small>
 
|{{✓}}
 
|{{✓}} <small>([[libretro]])</small>
 
|{{✓}}
 
 
|}
 
|}
  
<references group=N />
+
===Comparisons===
 
+
*[[Wine]] is a free and open-source compatibility layer that aims to allow computer programs (application software and computer games) developed for Microsoft Windows to run on Unix-like operating systems, primarily Linux and macOS. Since late 2017 there is also an experimental build for Android. Wine is almost as old as the Linux project, starting in the summer of 1993. Today it's widely used, very popular and sponsored by companies such as CodeWeavers and Valve. The core Wine development aims at a correct implementation of the Windows API as a whole. In this regard it's similar to the [[MAME]] project in its focus on correctness over usability. There are a lot of versions/forks of Wine which focus of different goals, such as usability, compatibility, gaming, office applications, etc. A few are listed below, Wikipedia has [[wikipedia:Wine_(software)#Other_versions_of_Wine|a more complete list]].
=== Comparisons ===
+
**[[Proton]] is Valve's one-click solution to play Windows games on Linux. It's included in the Steam Linux client by default. Simply click on a whitelisted game and it will launch without any configuration, or enable it for all games in the settings. Proton is based on a fork of Wine in combination with other components such as DXVK (explained below) and FAudio.
 
+
**[https://www.codeweavers.com/products/ CrossOver] is a commercialized, supported version of Wine from CodeWeavers. It uses additional patches on top of Wine to make it easy to use. They contribute all of their work on CrossOvers back to Wine and make up about two thirds of the commits made to Wine. CrossOver is available on macOS, Linux and Chrome OS.  
;[[MAME]]:Very extensive in scope, with the majority of arcade system boards from the 1970's, 1980's and early 1990's supported. Do not expect support for more recent boards, such as Atomiswave. MAME focuses on [[Emulation Accuracy|accuracy]] and preservation, meaning usability comes second for the end user. Only the most up to date ROM dumps will work in the latest MAME.
+
**[[Wineskin]] is an open-source compatibility layer which allows users to easily convert Windows software to macOS. The ports are in the form of Mac .app bundles with a self-contained Wine instance which are wrapped around the application to be converted.
 
+
* [[TeknoParrot]] is a compatibility layer for Windows PCs to run games originally made for Windows-based arcade systems. Has since version 1.51 also support for some games from the Linux-based Sega Lindbergh arcade board.
;[[FinalBurn Alpha]]:Supports many boards, such as [[Neo Geo emulators|Neo Geo]], Capcom CPS1-3, and others. It is very good for the boards it supports. The Neo Geo X system, in fact, uses FBA. It offers much better speeds on lower-end hardware than MAME and has been ported to many different devices, such as [[PlayStation 3 emulators|PlayStation 3]], [[Xbox emulators|Xbox]], [[Xbox 360 emulators|Xbox 360]], [[Sega Saturn emulators|Sega Saturn]], [[Android emulators|Android]], [[Wii emulators|Wii]], Dingoo, and many others.
+
* [[Darling]] is a translation layer that allows you to run unmodified macOS binaries on Linux. In its nature, it is similar to the well-known [[Wine]] project. At this point, does not yet run macOS application with a GUI.
 
 
;DICE:Emulates old arcade machines from the early 1970's <!--(including Coleco Telstar Arcade)--> at a very high level of accuracy. Since these machines had no CPU, the emulator instead emulates discrete logic components in the circuit board. This method is very system-intensive, and getting full speed requires at least a mid-range gaming PC along with the 64-bit version of the emulator.
 
 
 
;[[Supermodel]]:Emulates [[Sega Model 3|Sega's Model 3]] arcade platform focusing on accuracy. Presently, Supermodel is in a very early "alpha" stage of development, meaning it lacks many planned features. It does not yet have a user-friendly graphical interface, and all CPUs are emulated using straightforward (and slow) interpretation rather than fast just-in-time translation. Game compatibility is quite good. It has an experimental multi-player network build.
 
 
 
;Model 2 Emulator:Emulates, as per its name, [[Sega Model 2|Sega's Model 2]] arcade platform with a focus on speed over accuracy. Despite this, however, it still manages to play games for that hardware with far higher accuracy than MAME currently can.
 
  
;[[Virtual Console]]:Emulates Sega, Namco, Capcom and Tecmo arcade games, in addition to Neo Geo. It is a viable method for official emulation, but forces you to play like you would on a real arcade machine.
+
==Wrappers==
 +
Compatibility layers may also make use of '''wrappers''', which translate a specific graphics API to another. How the user sets up the wrapper varies between each project but most involve a drop-in replacement of the original libraries.
  
== References ==
+
{{Main|Wrappers}}
<references/>
 
  
[[Category:Consoles]]
+
[[Category:Compatibility layers]]
[[Category:Arcade emulators|*]]
+
[[Category:Not really emulators]]

Revision as of 06:38, 21 September 2021

While not strictly emulation per se (hence why Wine stands for "Wine Is Not an Emulator"), compatibility layers allow software written for one operating system to run on a different OS, often by translating API and system calls made by an application to their equivalent calls in the host operating system. In theory, this should allow for near-native performance since no processor emulation takes place, but in practice some software such as games will tend to run a bit slower due to other bottlenecks that occur as a result of replicating the correct behavior, such as accounting for graphics APIs like Direct3D that aren't supported on non-Microsoft platforms. Additionally, compatibility layers may also use emulation in order to run software built for a different architecture.

Compatibility layers

Name Operating System(s) Latest Version FLOSS Active Recommended Runs the following software
PC / x86
Wine Linux macOS FreeBSD 9.0
(Dev: 9.5 )
Windows applications and games
Proton Linux 8.0-5 Windows games
TeknoParrot Windows 1.0.0.140 PC-based arcade games
CrossOver Linux macOS Chrome OS 20.0.0 Windows applications and games
Anbox Linux git Android software
Darling Linux git (WIP) macOS software
WineVDM Windows git
Dev
16-bit Windows apps and games
Wineskin macOS 1.7 Windows applications and games
WineBottler macOS 4.0.1.1 Dev Windows applications and games
WoW Windows ? Windows 9x apps and games
Win3mu Windows ? Windows 3.x apps and games
NTVDMx64 Windows [1] DOS applications and games
Ardi Executor Windows Linux MS-DOS 2.1.17 Classic Mac OS software up to System 6
DOSEmu Linux 1.4.0 DOS software
DOSEmu2 Linux git DOS software
Mobile / ARM
Wine Android 9.5 (WIP) Windows applications and games
Hangover Android Linux ARM git Windows applications and games
Anbox Linux ARM git Android software
Console
Nintendont Wii Wii U 2021-07-12 GameCube games

Comparisons

  • Wine is a free and open-source compatibility layer that aims to allow computer programs (application software and computer games) developed for Microsoft Windows to run on Unix-like operating systems, primarily Linux and macOS. Since late 2017 there is also an experimental build for Android. Wine is almost as old as the Linux project, starting in the summer of 1993. Today it's widely used, very popular and sponsored by companies such as CodeWeavers and Valve. The core Wine development aims at a correct implementation of the Windows API as a whole. In this regard it's similar to the MAME project in its focus on correctness over usability. There are a lot of versions/forks of Wine which focus of different goals, such as usability, compatibility, gaming, office applications, etc. A few are listed below, Wikipedia has a more complete list.
    • Proton is Valve's one-click solution to play Windows games on Linux. It's included in the Steam Linux client by default. Simply click on a whitelisted game and it will launch without any configuration, or enable it for all games in the settings. Proton is based on a fork of Wine in combination with other components such as DXVK (explained below) and FAudio.
    • CrossOver is a commercialized, supported version of Wine from CodeWeavers. It uses additional patches on top of Wine to make it easy to use. They contribute all of their work on CrossOvers back to Wine and make up about two thirds of the commits made to Wine. CrossOver is available on macOS, Linux and Chrome OS.
    • Wineskin is an open-source compatibility layer which allows users to easily convert Windows software to macOS. The ports are in the form of Mac .app bundles with a self-contained Wine instance which are wrapped around the application to be converted.
  • TeknoParrot is a compatibility layer for Windows PCs to run games originally made for Windows-based arcade systems. Has since version 1.51 also support for some games from the Linux-based Sega Lindbergh arcade board.
  • Darling is a translation layer that allows you to run unmodified macOS binaries on Linux. In its nature, it is similar to the well-known Wine project. At this point, does not yet run macOS application with a GUI.

Wrappers

Compatibility layers may also make use of wrappers, which translate a specific graphics API to another. How the user sets up the wrapper varies between each project but most involve a drop-in replacement of the original libraries.

Main article: Wrappers