Anonymous edits have been disabled on the wiki. If you want to contribute please login or create an account.


Warning for game developers: PCGamingWiki staff members will only ever reach out to you using the official press@pcgamingwiki.com mail address.
Be aware of scammers claiming to be representatives or affiliates of PCGamingWiki who promise a PCGW page for a game key.

Difference between revisions of "Glossary:Display wrapper"

From PCGamingWiki, the wiki about fixing PC games
(Added MoltenVK)
 
(45 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
{{stub}}
 
{{stub}}
 +
{{Category:System abstraction}}
 +
{{Tocbox}}
  
As APIs get older, their support may be eventually dropped. With time this can lead to numerous performance and display issues. To circumvent these and allow older games to be played normally, API wrappers are created. They are special libraries, that read instructions of older APIs and convert them to be displayed in up to date ones (like newer Direct3D, OpenGL or Vulkan).
+
==Description==
 +
As APIs get older, their maintenance or support may eventually deteriorate or outright dropped, which can lead to numerous compatibility and performance issues in older games. To circumvent these and allow older games to be played with as few issues as possible, '''display API wrappers''' can be used as a [[Virtualization#Compatibility/translation layers|compatibility layer]] that intercepts instructions at runtime which the game sends using older or obsolete APIs and converts them to a different, but newer, API to make use of more modern alternatives (like newer Direct3D, OpenGL or Vulkan). This process is opaque to the game, leaving it unaware that the display API it was developed for is not the one actually being used. Hence, wrappers most often have the same filename as the game's original wrapper to be properly called on every launch.
 +
 
 +
'''General information'''
 +
{{mm}} [https://www.vogons.org/viewtopic.php?f=9&t=36412 The Wrapper Collection Project \ VOGONS]
 +
{{mm}} [https://emulation.gametechwiki.com/index.php/Wrappers Wrappers - Emulation General Wiki]
  
 
==3dfx / Glide wrappers==
 
==3dfx / Glide wrappers==
Line 8: Line 15:
 
! Name !! API versions !! Wrapping to
 
! Name !! API versions !! Wrapping to
 
|-
 
|-
| [http://www.zeus-software.com/downloads/nglide nGlide] || 1/2/3|| D3D9, Vulkan
+
| [http://dege.freeweb.hu/dgVoodoo/dgVoodoo/ dgVoodoo] || 1, 2, 3 || D3D7, 9
 
|-
 
|-
| [http://dege.freeweb.hu/dgVoodoo/dgVoodoo.html dgVoodoo] || 1/2/3 || D3D7, D3D9
+
| [[dgVoodoo 2]] || 1, 2, 3 || D3D11, 12
 
|-
 
|-
| [http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2.html DgVoodoo 2] || 1/2/3 || D3D11
+
| [https://www.zeus-software.com/downloads/nglide nGlide] || 1, 2, 3|| D3D9, Vulkan
 
|}
 
|}
  
Line 20: Line 27:
 
! Name !! API versions !! Wrapping to
 
! Name !! API versions !! Wrapping to
 
|-
 
|-
| [http://bitpatch.com/ddwrapper.html Aqrit's DDwrapper] || ? || ddraw
+
| [[dgVoodoo 2]] || 1-7 || D3D11, 12
 
|-
 
|-
| [http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2.html dgVoodoo 2] || 3/5/6/7 || D3D11
+
| [https://github.com/elishacloud/dxwrapper DxWrapper] || 1-7 || DDraw7 (for 1-6), D3D9
 
|-
 
|-
| [https://github.com/elishacloud/dxwrapper DxWrapper] || 1-7 || D3D9
+
| [https://github.com/narzoul/DDrawCompat DDrawCompat] || 1-7 || System's DDraw, but optimized
 
|-
 
|-
 +
| [https://www.winehq.org/ WineD3D] || 1-7 || OpenGL, Vulkan
 +
|-
 +
| [https://dxgl.org/ DXGL] || 1-7 || OpenGL
 +
|-
 +
| [https://github.com/CnCNet/cnc-ddraw cnc-ddraw] || 1-7 || GDI, OpenGL, D3D9
 +
|-
 +
| [http://bitpatch.com/ddwrapper.html Aqrit's DDwrapper] || ? || System's DDraw, but optimized
 
|}
 
|}
 +
{{ii}} Required for fixing [[Glossary:DirectX/DirectDraw troubleshooting|DirectDraw issues on modern systems]].
  
 
==Direct3D wrappers==
 
==Direct3D wrappers==
Line 32: Line 47:
 
|-
 
|-
 
! Name !! API versions !! Wrapping to
 
! Name !! API versions !! Wrapping to
 +
|-
 +
| [[dgVoodoo 2]] || 2-9 || D3D11, 12
 
|-
 
|-
 
| [https://github.com/crosire/d3d8to9/releases d3d8to9] || 8 || D3D9
 
| [https://github.com/crosire/d3d8to9/releases d3d8to9] || 8 || D3D9
 
|-
 
|-
| [http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2.html DgVoodoo 2] || 3/5/6/7/8/9(beta) || D3D11
+
| [[DXVK]] || 9-11 || Vulkan 1.3<ref>[https://github.com/doitsujin/dxvk/wiki/Driver-support Driver support · doitsujin/dxvk Wiki - GitHub]</ref>
 
|-
 
|-
| [https://github.com/doitsujin/dxvk DXVK] || 9/10/11 || Vulkan
+
| [https://github.com/AlpyneDreams/d8vk D8VK] || 8 || Vulkan
 +
|-
 +
| [https://www.winehq.org/ WineD3D] || 2-11 || OpenGL, Vulkan
 +
|-
 +
| [https://github.com/elishacloud/dxwrapper DxWrapper] || 2-8 || D3D7 (for 2-6), 9
 +
|-
 +
| [https://github.com/narzoul/DDrawCompat DDrawCompat] || 2-7 || System's D3D2-7, but optimized
 
|-
 
|-
 
| [https://github.com/HansKristian-Work/vkd3d-proton VKD3D-Proton] || 12 || Vulkan
 
| [https://github.com/HansKristian-Work/vkd3d-proton VKD3D-Proton] || 12 || Vulkan
 
|-
 
|-
| [https://www.winehq.org/ WineD3D] || 1-12 || OpenGL, Vulkan
+
| [[Special K]] || 9 || D3D9Ex
 
|-
 
|-
| [https://github.com/elishacloud/dxwrapper DxWrapper] || 1-8 || 1-6 to D3D7, D3D8 to D3D9
+
| [https://dxgl.org/ DXGL] || 7 || OpenGL
 
|-
 
|-
 +
| [https://github.com/Joshua-Ashton/dxup DXUP] || 9-10 || D3D11
 +
|-
 +
| [https://github.com/megai2/d912pxy d912pxy] || 9 || D3D12
 
|}
 
|}
 +
 +
{{ii}} There are no Direct3D 1 and 4 versions. Direct3D started with 2, and 4 was cancelled.
  
 
==Mantle wrappers==
 
==Mantle wrappers==
Line 60: Line 88:
 
! Name !! API versions !! Wrapping to
 
! Name !! API versions !! Wrapping to
 
|-
 
|-
| [https://gitlab.freedesktop.org/kusma/mesa/commits/zink zink] || 2.6 || Vulkan
+
| [http://angleproject.org/ ANGLE] || OpenGL ES (all, depending) || OpenGL, D3D9/11, Vulkan, Metal
 +
|-
 +
| [https://github.com/ptitSeb/gl4es GL4ES] || 2 || OpenGL ES 2.0
 +
|-
 +
| [https://sourceforge.net/projects/gldirect/ GLDirect] || 1.4 || D3D6/7/8/9
 +
|-
 +
| [https://www.microsoft.com/en-us/p/opencl-and-opengl-compatibility-pack/9nqpsl29bfff OpenGLOn12] || 3.3 || D3D12
 +
|-
 +
| [https://github.com/crystice-softworks/QindieGL QindieGL] || 1.1 || D3D9
 +
|-
 +
| [https://web.archive.org/web/20180810071919/http://titaniumgl.tk/ TitaniumGL] || 1.4 || D3D9
 +
|-
 +
| [https://github.com/kbiElude/VKGL VKGL] || 3.2 || Vulkan
 +
|-
 +
| [https://gitlab.freedesktop.org/mesa/mesa/-/tree/master/src/gallium/drivers/zink zink] || 4.6 || Vulkan
 
|}
 
|}
  
Line 71: Line 113:
 
|}
 
|}
  
 +
{{References}}
  
==References==
+
[[Category:System abstraction]]
* [https://www.vogons.org/viewtopic.php?f=9&t=36412 The Wrapper Collection Project \ VOGONS]
 

Latest revision as of 08:51, 26 October 2023

This page is a stub: it lacks content and/or basic article components. You can help to expand this page by adding an image or additional information.

Description

As APIs get older, their maintenance or support may eventually deteriorate or outright dropped, which can lead to numerous compatibility and performance issues in older games. To circumvent these and allow older games to be played with as few issues as possible, display API wrappers can be used as a compatibility layer that intercepts instructions at runtime which the game sends using older or obsolete APIs and converts them to a different, but newer, API to make use of more modern alternatives (like newer Direct3D, OpenGL or Vulkan). This process is opaque to the game, leaving it unaware that the display API it was developed for is not the one actually being used. Hence, wrappers most often have the same filename as the game's original wrapper to be properly called on every launch.

General information

The Wrapper Collection Project \ VOGONS
Wrappers - Emulation General Wiki

3dfx / Glide wrappers

Name API versions Wrapping to
dgVoodoo 1, 2, 3 D3D7, 9
dgVoodoo 2 1, 2, 3 D3D11, 12
nGlide 1, 2, 3 D3D9, Vulkan

DirectDraw wrappers

Name API versions Wrapping to
dgVoodoo 2 1-7 D3D11, 12
DxWrapper 1-7 DDraw7 (for 1-6), D3D9
DDrawCompat 1-7 System's DDraw, but optimized
WineD3D 1-7 OpenGL, Vulkan
DXGL 1-7 OpenGL
cnc-ddraw 1-7 GDI, OpenGL, D3D9
Aqrit's DDwrapper ? System's DDraw, but optimized
Required for fixing DirectDraw issues on modern systems.

Direct3D wrappers

Name API versions Wrapping to
dgVoodoo 2 2-9 D3D11, 12
d3d8to9 8 D3D9
DXVK 9-11 Vulkan 1.3[1]
D8VK 8 Vulkan
WineD3D 2-11 OpenGL, Vulkan
DxWrapper 2-8 D3D7 (for 2-6), 9
DDrawCompat 2-7 System's D3D2-7, but optimized
VKD3D-Proton 12 Vulkan
Special K 9 D3D9Ex
DXGL 7 OpenGL
DXUP 9-10 D3D11
d912pxy 9 D3D12
There are no Direct3D 1 and 4 versions. Direct3D started with 2, and 4 was cancelled.

Mantle wrappers

Name API versions Wrapping to
GRVK Vulkan

OpenGL wrappers

Name API versions Wrapping to
ANGLE OpenGL ES (all, depending) OpenGL, D3D9/11, Vulkan, Metal
GL4ES 2 OpenGL ES 2.0
GLDirect 1.4 D3D6/7/8/9
OpenGLOn12 3.3 D3D12
QindieGL 1.1 D3D9
TitaniumGL 1.4 D3D9
VKGL 3.2 Vulkan
zink 4.6 Vulkan

Vulkan wrappers

Name API versions Wrapping to
MoltenVK ? Metal


References