Difference between pages "Template:Icon/File" and "Compatibility layers"

From Emulation General Wiki
< Template:Icon(Difference between pages)
Jump to navigation Jump to search
(Tags: Mobile edit, Mobile web edit)
 
(Compatibility layers)
(Tags: Mobile edit, Mobile web edit)
 
Line 1: Line 1:
<onlyinclude>{{#switch:{{{1|}}} <!--
+
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.
|Full Name | Short =[[File:example.png{{!}}x##px|link=|Example]]                       |Big variant  | Short  =[[File:example.png{{!}}x##px|link=|Example]] -->
 
|Windows  | Win  =[[File:Icon Windows 10.png{{!}}x24px|link=|Windows]]              |Windows-big  | Win-big =[[File:Icon Windows 10.png{{!}}x32px|link=|Windows]]
 
|Windows9x | W9x  =[[File:Icon Windows 9x.png{{!}}x24px|link=|Windows 9x]]            |Windows9x-big | W9x-big =[[File:Icon Windows 9x.png{{!}}x32px|link=|Windows 9x]]
 
|Windows7  | W7    =[[File:Icon Windows 7.png{{!}}x24px|link=|Windows 7]]              |Windows7-big  | W7-big  =[[File:Icon Windows 7.png{{!}}x32px|link=|Windows 7]]
 
|WinMobile        =[[File:Icon Windows Mobile.png{{!}}x24px|link=|Windows Mobile]]    |WinMobile-big          =[[File:Icon Windows Mobile.png{{!}}x32px|link=|Windows Mobile]]
 
|Win8Phone  |W8P  =[[File:Icon Windows8 Phone.png{{!}}x24px|link=|Windows 8 Phone]]  |W8P-big                =[[File:Icon Windows8  Phone.png{{!}}x32px|link=|Windows 8 Phone]]
 
|Win10Phone  |W10P =[[File:Icon Windows10 Phone.png{{!}}x24px|link=|Windows 10 Phone]] |W10P-big                =[[File:Icon Windows10 Phone.png{{!}}x32px|link=|Windows 10 Phone]]
 
|Linux    | Lin  =[[File:Icon Linux Head.png{{!}}x24px|link=|Linux]]                |Linux-big    | Lin-big =[[File:Icon Linux Head.png{{!}}x32px|link=|Linux]]
 
|LinuxARM  | LiA  =[[File:Icon RPi.png{{!}}x24px|link=|Linux ARM]]                    |LinuxARM-big  | LiA-big =[[File:Icon RPi.png{{!}}x32px|link=|Linux ARM]]
 
|macOS    | Mac  =[[File:1998 apple logo.png{{!}}x24px|link=|macOS]]                |macOS-big    | Mac-big =[[File:1998 apple logo.png{{!}}x32px|link=|macOS]]
 
|FreeBSD  | BSD  =[[File:Icon FreeBSD.png{{!}}x24px|link=|FreeBSD]]                  |FreeBSD-big  | BSD-big =[[File:Icon FreeBSD.png{{!}}x32px|link=|FreeBSD]]
 
|ChromeOS  | CO    =[[FIle:ChromeOS.png{{!}}x24px|link=|Chrome OS]]                    |ChromeOS-big  | CO-big  =[[File:ChromeOS.png{{!}}x32px|link=|Chrome OS]]
 
|Solaris  | Sol  =[[File:Icon Solaris.png{{!}}x24px|link=|Solaris]]                  |Solaris-big  | Sol-big =[[File:Icon Solaris.png{{!}}x32px|link=|Solaris]]
 
|BeOS              =[[File:Icon BeOS.png{{!}}x24px|link=|BeOS]]                        |BeOS-big                =[[File:Icon BeOS.png{{!}}x32px|link=|BeOS]]
 
|AmigaOS          =[[File:Icon AmigaOS.png{{!}}x24px|link=|AmigaOS]]                  |AmigaOS-big            =[[File:Icon AmigaOS.png{{!}}x32px|link=|AmigaOS]]
 
|OS2              =[[File:Icon OS2.png{{!}}x24px|link=|OS/2]]                        |OS2-big                =[[File:Icon OS2.png{{!}}x32px|link=|OS/2]]
 
|MorphOS          =[[File:Icon MorphOS.png{{!}}x24px|link=|MorphOS]]                  |MorphOS-big            =[[File:Icon MorphOS.png{{!}}x32px|link=|MorphOS]]
 
|RiscOS            =[[File:Icon RiscOS.png{{!}}x24px|link=|RiscOS]]                    |RiscOS-big              =[[File:Icon RiscOS.png{{!}}x32px|link=|RiscOS]]
 
|webOS            =[[File:Icon webOS.png{{!}}x18px|link=|webOS]]                      |webOS-big              =[[File:Icon webOS.png{{!}}x32px|link=|webOS]]
 
|Haiku    | 575  =[[File:Icon Haiku-edit.png{{!}}x16px|link=|Haiku]]                |Haiku-big    | 575-big =[[File:Icon Haiku.png{{!}}x32px|link=|Haiku]]
 
|Android  | APK  =[[File:Icon Android.png{{!}}x29px|link=|Android]]                  |Android-big  | APK-big =[[File:Icon Android.png{{!}}x33px|link=|Android]]
 
|iOS              =[[File:Icon iOS.png{{!}}x16px|link=|iOS]]                          |iOS-big                =[[File:Icon iOS.png{{!}}x32px|link=|iOS]]
 
|AppleTV  | ATV  =[[File:Icon AppleTV.png{{!}}x24px|link=|AppleTV]]                  |AppleTV-big  | ATV-big =[[File:Icon AppleTV.png{{!}}x32px|link=|AppleTV]]
 
|SteamLink | SL    =[[File:Icon SteamLink.png{{!}}x24px|link=|SteamLink]]              |SteamLink-big | SL-big  =[[File:Icon SteamLink.png{{!}}x32px|link=|SteamLink]]
 
|Pandora  | Pan  =[[File:Icon Pandora.png{{!}}x24px|link=|Pandora]]                  |Pandora-big  | Pan-big =[[File:Icon Pandora.png{{!}}x32px|link=|Pandora]]
 
|Pyra  | Pyra  =[[File:Icon Pyra.png{{!}}x30px|link=|Dragonbox Pyra]]                  |Pyra-big  | Pan-big =[[File:Icon Pyra.png{{!}}x34px|link=|Dragonbox Pyra]]
 
|PalmOS    | Palm  =[[File:Icon PalmOS.png{{!}}x24px|link=|PalmOS]]                    |PalmOS-big    |Palm-big =[[File:Icon PalmOS.png{{!}}x32px|link=|PalmOS]]
 
|RetroFW    | RetroFW  =[[File:RetroFW.png{{!}}x31px|link=|RetroFW]]                    |RetroFW-big    |RetroFW-big =[[File:RetroFW.png{{!}}x35px|link=|RetroFW]]
 
|Zaurus            =[[File:Icon Zaurus.png{{!}}x24px|link=|Sharp Zaurus]]              |Zaurus-big              =[[File:Icon Zaurus.png{{!}}x32px|link=|Sharp Zaurus]]
 
|Wiz              =[[File:Icon Wiz.png{{!}}x24px|link=|GP2X Wiz]]                    |Wiz-big                =[[File:Icon Wiz.png{{!}}x32px|link=|GP2X Wiz]]
 
|Dingoo            =[[File:Icon Dingoo.png{{!}}x24px|link=|Dingoo]]                    |Dingoo-big              =[[File:Icon Dingoo.png{{!}}x32px|link=|Dingoo]]
 
|Caanoo            =[[File:Icon Caanoo.png{{!}}x14px|link=|Caanoo]]                    |Caanoo-big              =[[File:Icon Caanoo.png{{!}}x32px|link=|Caanoo]]
 
|RTOS              =[[File:Icon RTOS.png{{!}}x24px|link=|RTOS]]                        |RTOS-big                =[[File:Icon RTOS.png{{!}}x32px|link=|RTOS]]
 
|Switch    | NX    =[[File:Icon Switch.png{{!}}x24px|link=|Switch]]                    |Switch-big    | NX-big  =[[File:Icon Switch.png{{!}}x32px|link=|Switch]]
 
|SNES              =[[File:Icon Super Nintendo.png{{!}}x24px|link=|Super Nintendo]]    |SNES-big                =[[File:Icon Super Nintendo.png{{!}}x32px|link=|Super Nintendo]]
 
|N64              =[[File:N64 logo.png{{!}}x24px|link=|Nintendo 64]]                  |N64-big                =[[File:N64 logo.png{{!}}x32px|link=|Nintendo 64]]
 
|GameCube|NGC|GCN  =[[File:Icon GameCube.png{{!}}x24px|link=|GameCube]]                |GameCube-big|NGC-big|GCN-big=[[File:Icon GameCube.png{{!}}x32px|link=|GameCube]]
 
|Wii              =[[File:Icon Wii.png{{!}}x20px|link=|Wii]]                          |Wii-big                =[[File:Icon Wii.png{{!}}x32px|link=|Wii]]
 
|WiiU              =[[File:Icon Wii U.png{{!}}x24px|link=|Wii U]]                      |WiiU-big                =[[File:Icon Wii U.png{{!}}x32px|link=|Wii U]]
 
|GBA              =[[File:Icon GBA.png{{!}}x20px|link=|GameBoy Advance]]              |GBA-big                =[[File:Icon GBA.png{{!}}x32px|link=|GameBoy Advance]]
 
|NDS              =[[File:Icon DS.png{{!}}x21px|link=|Nintendo DS]]                  |NDS-big                =[[File:Icon DS.png{{!}}x32px|link=|Nintendo DS]]
 
|3DS              =[[File:Icon 3DS.png{{!}}x16px|link=|Nintendo 3DS]]                |3DS-big                =[[File:Icon 3DS.png{{!}}x32px|link=|Nintendo 3DS]]
 
|MS-DOS    | DOS  =[[File:Icon DOS.png{{!}}x24px|link=|MS-DOS]]                      |MS-DOS-big    | DOS-big =[[File:Icon DOS.png{{!}}x32px|link=|MS-DOS]]
 
|PSOne | PS1 | PSX =[[File:Icon PSX.png{{!}}x24px|link=|PlayStation]]                  |PSOne-big    | PSX-big =[[File:Icon PSX.png{{!}}x32px|link=|PlayStation]]
 
|PS2              =[[File:Icon PS2.png{{!}}x14px|link=|PlayStation 2]]                |PS2-big                =[[File:Icon PS2.png{{!}}x32px|link=|PlayStation 2]]
 
|PS3              =[[File:Icon PS3.png{{!}}x16px|link=|PlayStation 3]]                |PS3-big                =[[File:Icon PS3.png{{!}}x32px|link=|PlayStation 3]]
 
|PS4              =[[File:Icon PS4.png{{!}}x16px|link=|PlayStation 4]]                |PS4-big                =[[File:Icon PS4.png{{!}}x32px|link=|PlayStation 4]]
 
|PS5              =[[File:Icon PS5.png{{!}}x16px|link=|PlayStation 5]]                |PS5-big                =[[File:Icon PS5.png{{!}}x32px|link=|PlayStation 5]]
 
|PSP              =[[File:Icon PSP.png{{!}}x14px|link=|PSP]]                          |PSP-big                =[[File:Icon PSP.png{{!}}x32px|link=|PSP]]
 
|PSVita| Vita| PSV =[[File:Icon PSVita.png{{!}}x16px|link=|Vita]]                      |PSVita-big|Vita-big|PSV-big=[[File:Icon PSVita.png{{!}}x32px|link=|Vita]]
 
|Xbox              =[[File:Icon Xbox.png{{!}}x24px|link=|Xbox]]                        |Xbox-big                =[[File:Icon Xbox.png{{!}}x32px|link=|Xbox]]
 
|Xbox360  | 360  =[[File:Icon Xbox 360.png{{!}}x24px|link=|Xbox 360]]                |Xbox360-big  | 360-big =[[File:Icon Xbox 360.png{{!}}x32px|link=|Xbox 360]]
 
|XboxOne  | XB1  =[[File:Icon Xbox One.png{{!}}x24px|link=|Xbox One]]                |XboxOne-big  | XB1-big =[[File:Icon Xbox One.png{{!}}x32px|link=|Xbox One]]
 
|XboxSXS  | SXS  =[[File:Icon Series XS.png{{!}}x24px|link=|Xbox Series X/S]]        |XboxSXS-big  | SXS-big =[[File:Icon Series XS.png{{!}}x32px|link=|Xbox Series X/S]]
 
|Genesis|MegaDrive|MD=[[File:Icon Genesis.png{{!}}x24px|link=|Genesis]]                |Genesis-big|MegaDrive-big|MD-big=[[File:Icon Genesis.png{{!}}x32px|link=|Genesis]]
 
|Dreamcast | DC    =[[File:Dreamcast_logo.png{{!}}x24px|link=|Dreamcast]]              |Dreamcast-big |  DC-big =[[File:Dreamcast_logo.png{{!}}x32px|link=|Dreamcast]]
 
|GP32              =[[File:Icon GP32.png{{!}}x24px|link=|GP32]]                        |GP32-big                =[[File:Icon GP32.png{{!}}x32px|link=|GP32]]
 
|GP2X              =[[File:File GP2X.png{{!}}x24px|link=|GP2X]]                        |GP2X-big                =[[File:File GP2X.png{{!}}x32px|link=|GP2X]]
 
|KaiOS              =[[File:File KaiOS.png{{!}}x30px|link=|KaiOS]]                        |KaiOS-big                =[[File:File KaiOS.png{{!}}x35px|link=|KaiOS]]
 
|Bitt-Boy              =[[File:File Bitt-Boy.png{{!}}x28px|link=|Bitt-Boy]]                        |Bitt-Boy-big                =[[File:File Bitt-Boy.png{{!}}x32px|link=|Bitt-Boy]]
 
|Pocket-Go              =[[File:File Pocket-Go.png{{!}}x37px|link=|Pocket-Go]]                        |Pocket-Go-big                =[[File:File Pocket-Go.png{{!}}x38px|link=|Pocket-Go]]
 
|C64              =[[File:Icon C64.png{{!}}x24px|link=|Commodore 64]]                |C64-big                =[[File:Icon C64.png{{!}}x32px|link=|Commodore 64]]
 
|x68k              =[[File:Icon x68k.png{{!}}x20px|link=|Sharp x68000]]                |x68k-big                =[[File:Icon x68k.png{{!}}x32px|link=|Sharp x68000]]
 
|Web              =[[File:Icon IE.png{{!}}x24px|link=|Web]]                          |Web-big                =[[File:Icon IE.png{{!}}x32px|link=|Web]]
 
|Zodiac            =[[File:Icon Tapwave.png{{!}}x24px|link=|Tapwave Zodiac]]          |Zodiac-big              =[[File:Icon Tapwave.png{{!}}x32px|link=|Tapwave Zodiac]]
 
|Symbian          =[[File:Icon Symbian OS.png{{!}}x24px|link=|Symbian]]              |Symbian-big            =[[File:Icon Symbian OS.png{{!}}x32px|link=|Symbian]]
 
|Java              =[[File:Icon Java.png{{!}}x24px|link=|Java]]              |Java-big                =[[File:Icon Java.png{{!}}x32px|link=|Java]]
 
|Nspire            =[[File:Nspire.png{{!}}x24px|link=|TI-Nspire]]                      |Nspire-big              =[[File:Nspire.png{{!}}x32px|link=|TI-Nspire]]
 
|Maemo            =[[File:Maemo logo color.svg.png{{!}}x24px|link=|Maemo]]  |Maemo-big                        =[[File:Maemo logo color.svg.png{{!}}x32px|link=|Maemo]]
 
| }}</onlyinclude><noinclude><br/>
 
<center><big>'''File'''</big></center>
 
A subtemplate of [[Template:Icon|Icon]] that does the work of picking an image. Unlike Icon, File only takes one parameter. This is done to facilitate the work of adding platforms via images.
 
__NOTOC__
 
==Example==
 
<pre>
 
{{Icon/File|Win-big}}
 
</pre>
 
  
Result: {{Icon/File|Win-big}}
+
==Compatibility layers==
 +
{| class="wikitable" style="text-align:center;"
 +
|-
 +
! scope="col"|Name
 +
! scope="col"|Operating System(s)
 +
! scope="col"|Latest Version
 +
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 +
! scope="col"|Active
 +
! scope="col"|[[Recommended Emulators|Recommended]]
 +
! scope="col"|Runs the following software
 +
|-
 +
!colspan="7"|PC / x86
 +
|-
 +
|[[Wine]]
 +
|align=left|{{Icon|Linux|macOS|FreeBSD}}
 +
|[https://wiki.winehq.org/Download {{WineVer}} <br />(Dev: {{WineDevVer}})]
 +
|{{✓}} ||{{✓}} ||{{✓}}
 +
|Windows applications and games
 +
|-
 +
|[[Proton]]
 +
|align=left|{{Icon|Linux}}
 +
|[https://store.steampowered.com/about/ {{ProtonVer}}]
 +
|{{✓}} ||{{✓}} ||{{✓}}
 +
|Windows games
 +
|-
 +
|[[TeknoParrot]]
 +
|align=left|{{Icon|Windows}}
 +
|[https://teknoparrot.com/download {{TeknoVer}}]
 +
|{{✗}} ||{{✓}} ||{{✓}}
 +
|PC-based arcade games
 +
|-
 +
|CrossOver
 +
|align=left|{{Icon|Linux|macOS|ChromeOS}}
 +
|[https://www.codeweavers.com/products 20.0.0]
 +
|{{✗}} ||{{✓}} ||{{✓}}
 +
|Windows applications and games
 +
|-
 +
|[[Anbox]]
 +
|align=left|{{Icon|Linux}}
 +
|[https://docs.anbox.io/userguide/install.html git]
 +
|{{✓}} ||{{✓}} ||{{✗}}
 +
|Android software
 +
|-
 +
|[[Darling]]
 +
|align=left|{{Icon|Linux}}
 +
|[https://github.com/darlinghq/darling git]
 +
|{{✓}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 +
|macOS software
 +
|-
 +
|[[WineVDM]]
 +
|align=left|{{Icon|Windows}}
 +
|[https://github.com/otya128/winevdm/releases git]<br />[https://ci.appveyor.com/project/otya128/winevdm/ Dev]
 +
|{{✓}} ||{{✓}} ||{{✗}}
 +
|16-bit Windows apps and games
 +
|-
 +
|[[Wineskin]]
 +
|align=left|{{Icon|macOS}}
 +
|[http://wineskin.urgesoftware.com/tiki-index.php?page=Downloads 1.7]
 +
|{{✓}} ||{{✗}} ||{{✗}}
 +
|Windows applications and games
 +
|-
 +
|WineBottler
 +
|align=left|{{Icon|macOS}}
 +
|[https://winebottler.kronenberg.org/ 4.0.1.1 Dev]
 +
|{{✓}} ||{{✗}} ||{{✗}}
 +
|Windows applications and games
 +
|-
 +
|[[WoW]]
 +
|align=left|{{Icon|Windows}}
 +
|?
 +
|{{✗}} ||{{✗}} ||{{✗}}
 +
|Windows 9x apps and games
 +
|-
 +
|[[Win3mu]]
 +
|align=left|{{Icon|Windows}}
 +
|?
 +
|{{✓}} ||{{✗}} ||{{✗}}
 +
|Windows 3.x apps and games
 +
|-
 +
|[[NTVDMx64]]
 +
|align=left|{{Icon|Windows]]}}
 +
|?
 +
|{{✓}} ||{{✓}} ||{{✗}}
 +
|DOS applications and games
 +
|-
 +
|[[Ardi Executor]]
 +
|align=left|{{Icon|Windows|Linux|DOS}}
 +
|[https://web.archive.org/web/20080404193445/http://www.ardi.com/ardi.php 2.1.17]
 +
|{{✓}} ||{{✗}} ||{{✗}}
 +
|Classic Mac OS software up to System 6
 +
|-
 +
|[http://dosemu.sourceforge.net/ DOSEmu]
 +
|align=left|{{Icon|Linux}}
 +
|[https://sourceforge.net/projects/dosemu/files/ 1.4.0]
 +
|{{✓}} ||{{✗}} ||{{✗}}
 +
|DOS software
 +
|-
 +
|[http://dosemu2.github.io/dosemu2/ DOSEmu2]
 +
|align=left|{{Icon|Linux}}
 +
|[https://github.com/dosemu2/dosemu2 git]
 +
|{{✓}} ||{{✓}} ||{{✗}}
 +
|DOS software
 +
|-
 +
!colspan="7"|Mobile / ARM
 +
|-
 +
|[[Wine]]
 +
|align=left|{{Icon|Android}}
 +
|[https://wiki.winehq.org/Download {{WineDevVer}}]
 +
|{{✓}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 +
|Windows applications and games
 +
|-
 +
|[https://github.com/AndreRH/hangover Hangover]
 +
|align=left|{{Icon|Android|LinuxARM}}
 +
|[https://github.com/AndreRH/hangover/releases git]
 +
|{{✓}} ||{{✓}} ||{{✗}}
 +
|Windows applications and games
 +
|-
 +
|[[Anbox]]
 +
|align=left|{{Icon|LinuxARM}}
 +
|[https://docs.anbox.io/userguide/install.html git]
 +
|{{✓}} ||{{✓}} ||{{✗}}
 +
|Android software
 +
|-
 +
!colspan="9"|Console
 +
|-
 +
|[[Nintendont]]
 +
|align=left|{{Icon|Wii|WiiU}}
 +
|[https://github.com/FIX94/Nintendont 2021-07-12]
 +
|{{✓}} ||{{✓}} ||{{✓}}
 +
|GameCube games
 +
|}
  
==Parameters==
+
===Comparisons===
All images come with <code>-big</code> variants. For example, <code>Windows-big</code> will load a slightly larger version of <code>Windows</code>.
+
*[[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]].
 +
**[[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.
 +
**[[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.
  
;{{Icon/File|Win}} <code>Windows</code>, <code>Win</code>
+
==Wrappers==
:List modern Windows as a platform using [[:File:Icon Windows 10.png|the Windows 10 logo]].
+
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.
:;{{Icon/File|W7}} <code>Windows7</code>, <code>W7</code>
+
 
::List Windows 7 as a platform using [[:File:Icon Windows 7.png|its logo]].
+
{{Main|Wrappers}}
:;{{Icon/File|W9x}} <code>Windows9x</code>, <code>W9x</code>
+
 
::List classic Windows as a platform using [[:File:Icon Windows 9x.png|the Windows 9x logo]]. Use when modern, 64-bit versions of Windows cannot run the software natively.
+
[[Category:Compatibility layers]]
:;{{Icon/File|WinMobile}} <code>WinMobile</code>
+
[[Category:Not really emulators]]
::List Windows Mobile as a platform using [[:File:Icon Windows Mobile.png|the Windows Mobile logo]].
 
:;{{Icon/File|W8P}} <code>Win8Phone</code>, <code>W8P</code>
 
::List Windows 8 Phone as a platform using [[:File:Icon Windows8 Phone.png|the Windows 8 Phone logo]].
 
:;{{Icon/File|W10P}} <code>Win10Phone</code>, <code>W10P</code>
 
::List Windows 10 Phone as a platform using [[:File:Icon Windows10 Phone.png|the Windows 10 Phone logo]].
 
;{{Icon/File|Lin}} <code>Linux</code>, <code>Lin</code>
 
:List Linux as a platform using [[:File:Icon Linux Head.png|Tux's head]].
 
:;{{Icon/File|LiA}} <code>LinuxARM</code>, <code>LiA</code>
 
::List Linux as a platform using [[:File:Icon RPi.png|the Raspberry Pi logo]]. Use when the software is compiled for a single-board computer running an armhf, armv7l, or aarch64 kernel as opposed to amd64.
 
;{{Icon/File|Mac}} <code>macOS</code>, <code>Mac</code>
 
:List macOS as a platform using [[:File:1998 apple logo.png|the Apple logo]].
 
;{{Icon/File|APK}} <code>Android</code>, <code>APK</code>
 
:List Android as a platform using [[:File:Icon Android.png|the Android mascot]].
 
;{{Icon/File|iOS}} <code>iOS</code>
 
:List iOS as a platform using [[:File:Icon iOS.png|the iOS typeface]].
 
;{{Icon/File|AppleTV}} <code>AppleTV</code>
 
:List Apple TV as a platform using [[:File:Icon AppleTV.png|the Apple TV logo]].
 
;{{Icon/File|SteamLink}} <code>SteamLink</code>, <code>SL</code>
 
:List Steam Link as a platform using [[:File:Icon SteamLink.png|the Steam Link logo]].
 
;{{Icon/File|BSD}} <code>FreeBSD</code>, <code>BSD</code>
 
:List FreeBSD as a platform using [[:File:Icon FreeBSD.png|the FreeBSD logo]].
 
;{{Icon/File|Sol}} <code>Solaris</code>, <code>Sol</code>
 
:List Solaris as a platform using [[:File:Icon Solaris.png|an unofficial Solaris logo]].
 
;{{Icon/File|BeOS}} <code>BeOS</code>
 
:List BeOS as a platform using [[:File:Icon BeOS.png|the BeOS logo]].
 
;{{Icon/File|AmigaOS}} <code>AmigaOS</code>
 
:List AmigaOS as a platform using [[:File:Icon AmigaOS.png|the AmigaOS logo]].
 
;{{Icon/File|OS2}} <code>OS2</code>
 
:List OS/2 as a platform using [[:File:Icon OS2.png|the OS/2 logo]].
 
;{{Icon/File|MorphOS}} <code>MorphOS</code>
 
:List MorphOS as a platform using [[:File:Icon MorphOS.png|the MorphOS logo]].
 
;{{Icon/File|RiscOS}} <code>RiscOS</code>
 
:List RiscOS as a platform using [[:File:Icon RiscOS.png|the RiscOS logo]].
 
;{{Icon/File|webOS}} <code>webOS</code>
 
:List webOS as a platform using [[:File:Icon webOS.png|the webOS logo]].
 
;{{Icon/File|Haiku}} <code>Haiku</code>, <code>575</code>
 
:List Haiku as a platform using [[:File:Icon Haiku-edit.png|the Haiku logo]].
 
;{{Icon/File|Pan}} <code>Pandora</code>, <code>Pan</code>
 
:List the Pandora as a platform using [[:File:Icon Pandora.png|the Pandora logo]].
 
;{{Icon/File|Pyra}} <code>Dragonbox Pyra</code>, <code>Pyra</code>
 
:List the Dragonbox Pyra as a platform using [[:File:Icon Pyra.png|the Dragonbox Pyra logo]].
 
;{{Icon/File|PalmOS}} <code>PalmOS</code>, <code>Palm</code>
 
:List the PalmOS as a platform using [[:File:Icon PalmOS.png|the PalmOS logo]].
 
;{{Icon/File|RetroFW}} <code>RetroFW</code>
 
:List the RetroFW as a platform using [[:File:RetroFW.png|the RetroFW logo]].
 
;{{Icon/File|Zaurus}} <code>Zaurus</code>
 
:List the Sharp Zaurus as a platform using [[:File:Icon Zaurus.png|a modified OpenZaurus logo]].
 
;{{Icon/File|Wiz}} <code>Wiz</code>
 
:List the GP2X Wiz as a platform using [[:File:Icon Wiz.png|the GP2X Wiz logo]].
 
;{{Icon/File|Dingoo}} <code>Dingoo</code>
 
:List the Dingoo as a platform using [[:File:Icon Dingoo.png|the Dingoo logo]].
 
;{{Icon/File|Caanoo}} <code>Caanoo</code>
 
:List the Caanoo as a platform using [[:File:Icon Caanoo.png|the Caanoo logo]].
 
;{{Icon/File|Zodiac}} <code>Zodiac</code>
 
:List the Tapwave Zodiac as a platform using [[:File:Icon Tapwave.png|the Tapwave logo]].
 
;{{Icon/File|RTOS}} <code>RTOS</code>
 
:List the RTOS as a platform using [[:File:Icon RTOS.png|the RTOS logo]].
 
;{{Icon/File|NX}} <code>Switch</code>, <code>NX</code>
 
:List the Nintendo Switch as a platform using [[:File:Icon Switch.png|the Switch logo]].
 
;{{Icon/File|SNES}} <code>SNES</code>
 
:List the Super Nintendo as a platform using [[:File:Icon Super Nintendo.png|the Super Nintendo logo]].
 
;{{Icon/File|N64}} <code>N64</code>
 
:List the Nintendo 64 as a platform using [[:File:N64 logo.png|the Nintendo 64 logo]].
 
;{{Icon/File|NGC}} <code>GameCube</code>, <code>GCN</code>, <code>NGC</code>
 
:List the Nintendo GameCube as a platform using [[:File:Icon GameCube.png|the GameCube logo]].
 
;{{Icon/File|Wii}} <code>Wii</code>
 
:List the Nintendo Wii as a platform using [[:File:Icon Wii.png|the Wii typeface]].
 
;{{Icon/File|WiiU}} <code>WiiU</code>
 
:List the Wii U as a platform using [[:File:Icon Wii U.png|the Wii U logo]].
 
;{{Icon/File|GBA}} <code>GBA</code>
 
:List the GameBoy Advance as a platform using [[:File:Icon GBA.png|the GBA logo]].
 
;{{Icon/File|NDS}} <code>NDS</code>
 
:List the Nintendo DS as a platform using [[:File:Icon DS.png|the NDS logo]].
 
;{{Icon/File|3DS}} <code>3DS</code>
 
:List the 3DS as a platform using [[:File:Icon 3DS.png|the 3DS logo]].
 
;{{Icon/File|DOS}} <code>MS-DOS</code>, <code>DOS</code>
 
:List DOS as a platform using [[:File:Icon DOS.png|the MS-DOS logo]].
 
;{{Icon/File|PSX}} <code>PSOne</code>, <code>PS1</code>, <code>PSX</code>
 
:List the PlayStation as a platform using [[:File:Icon PSX.png|the PlayStation logo]].
 
;{{Icon/File|PS2}} <code>PS2</code>
 
:List the PlayStation 2 as a platform using [[:File:Icon PS2.png|the PS2 logo]].
 
;{{Icon/File|PS3}} <code>PS3</code>
 
:List the PlayStation 3 as a platform using [[:File:Icon PS3.png|the newer PS3 logo]].
 
;{{Icon/File|PS4}} <code>PS4</code>
 
:List the PlayStation 4 as a platform using [[:File:Icon PS4.png|the PS4 logo]].
 
;{{Icon/File|PS5}} <code>PS5</code>
 
:List the PlayStation 5 as a platform using [[:File:Icon PS5.png|the PS5 logo]].
 
;{{Icon/File|PSP}} <code>PSP</code>
 
:List the PlayStation Portable as a platform using [[:File:Icon PSP.png|the PSP logo]].
 
;{{Icon/File|PSV}} <code>PSVita</code>, <code>Vita</code>, <code>PSV</code>
 
:List the PlayStation Vita as a platform using [[:File:Icon PSVita.png|the Vita logo]].
 
;{{Icon/File|Xbox}} <code>Xbox</code>
 
:List the Xbox as a platform using [[:File:Icon Xbox.png|the Xbox logo]].
 
;{{Icon/File|360}} <code>Xbox360</code>, <code>360</code>
 
:List the Xbox 360 as a platform using [[:File:Icon Xbox 360.png|the Xbox 360 logo]].
 
;{{Icon/File|XB1}} <code>XboxOne</code>, <code>XB1</code>
 
:List the Xbox One as a platform using [[:File:Icon Xbox One.png|the modern Xbox logo]].
 
;{{Icon/File|SXS}} <code>XboxSXS</code>, <code>SXS</code>
 
:List the Xbox Series X|S as a platform using [[:File:Icon Series XS.png|the X|S logo]].
 
;{{Icon/File|DC}} <code>Dreamcast</code>, <code>DC</code>
 
:List the Dreamcast as a platform using [[:File:Dreamcast_logo.png|the Dreamcast logo]].
 
;{{Icon/File|GP32}} <code>GP32</code>
 
:List the GP32 as a platform using [[:File:Icon GP32.png|the GP32 logo]].
 
;{{Icon/File|GP2X}} <code>GP2X</code>
 
:List the GP2X as a platform using [[:File:File GP2X.png|the GP2X logo]].
 
;{{Icon/File|KaiOS}} <code>KaiOS</code>
 
:List the KaiOS as a platform using [[:File:File KaiOS.png|the KaiOS logo]].
 
;{{Icon/File|Bitt-Boy}} <code>Bitt-Boy</code>
 
:List the Bitt-Boy as a platform using [[:File:File Bitt-Boy.png|the Bitt-Boy logo]].
 
;{{Icon/File|Pocket-Go}} <code>Pocket-Go</code>
 
:List the Pocket-Go as a platform using [[:File:File Pocket-Go.png|the Pocket-Go logo]].
 
;{{Icon/File|C64}} <code>C64</code>
 
:List the Commodore 64 as a platform using [[:File:Icon C64.png|the Commodore logo]].
 
;{{Icon/File|x68k}} <code>x68k</code>
 
:List the Sharp x68000 as a platform using [[:File:Icon x68k.png|the Sharp x68000 logo]].
 
;{{Icon/File|Web}} <code>Web</code>
 
:List the web browser as a platform using [[:File:Icon IE.png|the Internet Explorer logo]].
 
;{{Icon/File|Symbian}} <code>Symbian</code>
 
:List Symbian as a platform using [[:File:Icon Symbian OS.png|the Symbian logo]].
 
;{{Icon/File|Java}} <code>Java</code>
 
:List Java as a platform using [[:File:Icon Java.png|the Java logo]].
 
;{{Icon/File|Genesis}} <code>Genesis</code>, <code>MegaDrive</code>, <code>MD</code>
 
:List the Genesis as a platform using [[:File:Icon Genesis.png|the Genesis logo]].
 
;{{Icon/File|Nspire}} <code>Nspire</code>
 
:List the TI-Nspire as a platform using [[:File:Nspire.png|the TI-Nspire logo]].
 
;{{Icon/File|Maemo}} <code>Maemo</code>
 
:List Maemo as a platform using [[:File:Maemo logo color.svg.png|the Maemo logo]].
 
</noinclude>
 

Revision as of 06:35, 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.7 )
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 ? 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.7 (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