Editing Compatibility layers

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 270: Line 270:
 
* Vita2hos is an early compatibility layer for Nintendo Switch that runs PlayStation Vita applications natively. Only able to load simple test homebrews such as vita-8 as of December 2022. Appears to only be developed every once in a while.
 
* Vita2hos is an early compatibility layer for Nintendo Switch that runs PlayStation Vita applications natively. Only able to load simple test homebrews such as vita-8 as of December 2022. Appears to only be developed every once in a while.
  
==Wrappers==
+
==Graphics APIs==
 
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.
 
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|Wrappers}}
+
To understand why this is needed for older games, it's important to understand that during the 90s the graphics card market for [[Intel CPUs|IBM PCs and compatibles]] was in its infancy, and Direct3D wasn't an automatic choice for developers. Some games were often designed for 3Dfx's Glide API so that it would run with their Voodoo card. With 3dfx going bankrupt however, support for Glide didn't stay around and the API was made open-source, but NVIDIA and AMD never incorporated it into their drivers. A wrapper is now needed to play these games with hardware acceleration, or if we're lucky the game gets [[Game engine recreations/Source Ports|a port]] to other APIs instead.
 +
 
 +
{| class="wikitable sortable" style="text-align:center;"
 +
|-
 +
! scope="col"|Name
 +
! scope="col"|Operating System(s)
 +
! scope="col"|Latest Version
 +
! scope="col"|Translates
 +
! scope="col"|Into
 +
! scope="col"|Active
 +
! scope="col"|[[Recommended Emulators|Recommended]]
 +
|-
 +
! colspan="7"|90's APIs
 +
|-
 +
|[http://www.zeus-software.com/downloads/nglide nGlide]
 +
|Windows
 +
|[http://www.zeus-software.com/downloads/nglide 2.10]
 +
|Glide
 +
|Vulkan, Direct3D 9
 +
|{{✓}} ||{{✓}}
 +
|-
 +
|[[Wine|Wine DirectX]]
 +
|Windows, Linux, macOS
 +
|[https://wiki.winehq.org/Download {{WineVer}}] <small>(Linux, macOS)</small><br /> [https://fdossena.com/?p=wined3d/index.frag 4.8] <small>Windows</small>
 +
|DirectX 1-7
 +
|OpenGL
 +
|{{✓}} ||{{✓}}
 +
|-
 +
|[http://dege.freeweb.hu/ dgVoodoo 2]
 +
|Windows
 +
|[http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2.html 2.6]
 +
|Glide, DirectX 1-9
 +
|Direct3D 11
 +
|{{✓}} ||{{✓}}
 +
|-
 +
|[https://www.dxgl.org/ DXGL]
 +
|Windows
 +
|[https://www.dxgl.org/downloads/ 0.5.16]
 +
|DirectX 1-7
 +
|OpenGL
 +
|{{✓}} ||{{✗}} <small>WIP</small>
 +
|-
 +
|[http://www.glidos.net/ Glidos]
 +
|Windows
 +
|[http://www.glidos.net/download.html 1.53b]
 +
|Glide <small>(DOS)</small>
 +
|?
 +
|{{✗}} ||?
 +
|-
 +
|[http://openglide.sourceforge.net/ OpenGlide]
 +
|Windows
 +
|[https://sourceforge.net/projects/openglide/files/latest/download 0.09 Alpha]
 +
|Glide
 +
|OpenGL
 +
|{{✗}} ||?
 +
|-
 +
|[https://sourceforge.net/projects/psvoodoo/ psVoodoo]
 +
|Windows
 +
|[https://sourceforge.net/projects/psvoodoo/files/latest/download 0.13]
 +
|Glide
 +
|Direct3D 9
 +
|{{✗}} ||?
 +
|-
 +
! colspan="7"|2000's and later APIs
 +
|-
 +
|[https://github.com/doitsujin/dxvk DXVK]
 +
|Linux
 +
|[https://github.com/doitsujin/dxvk/releases 1.2]
 +
|Direct3D 10-11
 +
|Vulkan
 +
|{{✓}} ||{{✓}}
 +
|-
 +
|[[Wine|Wine Direct3D]]
 +
|Windows, Linux, macOS
 +
|[https://wiki.winehq.org/Download {{WineVer}}] <small>(Linux, macOS)</small><br /> [https://fdossena.com/?p=wined3d/index.frag 4.8]  <small>Windows</small>
 +
|Direct3D 1-11
 +
|OpenGL
 +
|{{✓}} ||{{✓}}
 +
|-
 +
|[https://github.com/Joshua-Ashton/d9vk D9VK]
 +
|Linux
 +
|[https://github.com/Joshua-Ashton/d9vk Git]
 +
|Direct3D 9
 +
|Vulkan
 +
|{{✓}} ||{{~}} <small>WIP</small>
 +
|-
 +
|[https://github.com/iXit/wine-nine-standalone Gallium Nine]
 +
|Linux
 +
|[https://github.com/iXit/wine-nine-standalone 0.4]
 +
|Direct3D 9
 +
|Native
 +
|{{✓}} ||{{~}} <small>WIP</small>
 +
|-
 +
|[https://source.winehq.org/git/vkd3d.git/ vkd3d]
 +
|Linux
 +
|[https://source.winehq.org/git/vkd3d.git/ 1.1]
 +
|Direct3D 12
 +
|Vulkan
 +
|{{✓}} ||{{✗}} <small>WIP</small>
 +
|-
 +
|[https://github.com/KhronosGroup/MoltenVK MoltenVK]
 +
|macOS, iOS
 +
|[https://github.com/KhronosGroup/MoltenVK/releases 1.0.33]
 +
|Vulkan
 +
|Metal
 +
|{{✓}} ||?
 +
|-
 +
|[https://www.collabora.com/news-and-blog/blog/2018/10/31/introducing-zink-opengl-implementation-vulkan/ Zink]
 +
|Linux
 +
|[https://gitlab.freedesktop.org/kusma/mesa/tree/zink Git]
 +
|OpenGL
 +
|Vulkan
 +
|{{✓}} ||?
 +
|-
 +
|[https://github.com/Joshua-Ashton/dxup DXUP]
 +
|Windows, Linux
 +
|[https://github.com/Joshua-Ashton/dxup Git]
 +
|Direct3D 9-10
 +
|Direct3D 11
 +
|{{{✗}} ||{{✗}}
 +
|-
 +
|[https://github.com/disks86/VK9 VK9]
 +
|Windows, Linux
 +
|[https://github.com/disks86/VK9/releases 0.29.0]
 +
|Direct3D 9
 +
|Vulkan
 +
|{{✗}} ||{{✗}}
 +
|-
 +
|}
 +
 
 +
===Comparisons===
 +
* [http://www.zeus-software.com/downloads/nglide nGlide] is a 3Dfx Voodoo Glide wrapper. It allows you to play games designed for 3Dfx Glide API without the need for having 3Dfx Voodoo graphics card. All three API versions are supported, Glide 2.11, Glide 2.60 and Glide 3.10. nGlide emulates Glide environment with Direct3D 9 and version 2.0 implemented Vulkan support, which also makes it work under Linux using [[Wine]] Staging 2.10.0 or newer.<ref name="nglidevulkan">http://www.zeus-software.com/forum/viewtopic.php?f=2&t=2044</ref> Glide wrapper also supports high resolution modes. This is currently the best Glide wrapper. Has a [http://www.zeus-software.com/downloads/nglide/compatibility compatibility list].
 +
 
 +
* [http://dege.freeweb.hu/ dgVoodoo 2] is a closed-source wrapper for old graphics API's for Windows. The API's it currently can wrap are: Glide 2.11, Glide 2.45, Glide 3.1, Glide 3.1 Napalm, DirectX 1-7 (all versions of DirectDraw and Direct3D up to version 7), Direct3D 8.1 and Direct3D 9. This wrapper can use Direct3D 11 with different device types as wrapping output such as hardware or software rendering.
 +
 
 +
* [[Wine]] has an internal graphics API wrapper for Direct3D 1-11 using OpenGL. It works mostly well for older games, but is slower and has more bugs than newer wrappers using Vulkan, such as DXVK. It is possible to use Wine's wrapper in Windows using different forks.
 +
 
 +
* [https://source.winehq.org/git/vkd3d.git/ vkd3d] is an internal Wine wrapper for Direct3D 12 to Vulkan translation. Sponsored by Valve. Currently a work in progress.
 +
 
 +
* [https://github.com/doitsujin/dxvk DXVK] is a Vulkan-based translation layer for Direct3D 10 & 11, which allows running Windows 3D applications on Linux using [[Wine]].
 +
 
 +
* [https://github.com/Joshua-Ashton/d9vk D9VK] is a  Direct3D 9 to Vulkan translation layer based off DXVK's codebase. Will be merged into DXVK if it matures enough <ref name="d9vktodxvk">https://www.gamingonlinux.com/articles/dxvk-102-is-out-with-some-bug-fixes-d9vk-seems-to-be-progressing-nicely.13868/comment_id=151909</ref>.
 +
 
 +
* [https://github.com/disks86/VK9 VK9] runs Direct3D 9 applications on Windows or Linux (with [[Wine]]) over Vulkan.
 +
 
 +
* [https://www.dxgl.org/ DXGL] is a free replacement for the Windows ddraw.dll library, running on OpenGL. It is designed to overcome driver bugs, particularly in Windows Vista and newer operating systems. It also adds various enhancements to the graphics output such as display scaling and filtering options. DXGL supports the DirectX 7.0 graphics APIs, however it is currently under development and does not work with many programs.
 +
 
 +
==External links==
 +
[https://www.gamingonlinux.com/articles/dxvk-102-is-out-with-some-bug-fixes-d9vk-seems-to-be-progressing-nicely.13868/comment_id=151939 State of Direct3D 9-12 translation layers] by DXVK author YoRHa-2B (2019-04-02)
 +
 
 +
==References==
 +
{{Reflist}}
  
 
[[Category:Compatibility layers]]
 
[[Category:Compatibility layers]]

Please note that all contributions to Emulation General Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Emulation General Wiki:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)