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
m ({{Category:System abstraction}})
 
(17 intermediate revisions by 5 users not shown)
Line 3: Line 3:
 
{{Tocbox}}
 
{{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'''
 
'''General information'''
Line 14: Line 15:
 
! Name !! API versions !! Wrapping to
 
! Name !! API versions !! Wrapping to
 
|-
 
|-
| [https://www.zeus-software.com/downloads/nglide nGlide] || 1/2/3|| D3D9, Vulkan
+
| [http://dege.freeweb.hu/dgVoodoo/dgVoodoo/ dgVoodoo] || 1, 2, 3 || D3D7, 9
 
|-
 
|-
| [https://web.archive.org/web/20200806163013/http://www.dege.freeweb.hu:80/dgVoodoo/dgVoodoo.html dgVoodoo] || 1/2/3 || D3D7, D3D9
+
| [[dgVoodoo 2]] || 1, 2, 3 || D3D11, 12
 
|-
 
|-
| [[dgVoodoo 2]] || 1/2/3 || D3D11, D3D12
+
| [https://www.zeus-software.com/downloads/nglide nGlide] || 1, 2, 3|| D3D9, Vulkan
 
|}
 
|}
  
Line 26: 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
 
|-
 
|-
| [https://github.com/CnCNet/cnc-ddraw cnc-ddraw] || ? || GDI, OpenGL, D3D9
+
| [https://github.com/elishacloud/dxwrapper DxWrapper] || 1-7 || DDraw7 (for 1-6), D3D9
 +
|-
 +
| [https://github.com/narzoul/DDrawCompat DDrawCompat] || 1-7 || System's DDraw, but optimized
 
|-
 
|-
| [[dgVoodoo 2]] || 1-7 || D3D11, D3D12
+
| [https://www.winehq.org/ WineD3D] || 1-7 || OpenGL, Vulkan
 
|-
 
|-
 
| [https://dxgl.org/ DXGL] || 1-7 || OpenGL
 
| [https://dxgl.org/ DXGL] || 1-7 || OpenGL
 
|-
 
|-
| [https://github.com/elishacloud/dxwrapper DxWrapper] || 1-7 || DDraw7 (for 1-6), D3D9
+
| [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 41: 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
 +
|-
 +
| [[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/AlpyneDreams/d8vk D8VK] || 8 || Vulkan
 
| [https://github.com/AlpyneDreams/d8vk D8VK] || 8 || Vulkan
 
|-
 
|-
| [https://github.com/megai2/d912pxy d912pxy] || 9 || D3D12
+
| [https://www.winehq.org/ WineD3D] || 2-11 || OpenGL, Vulkan
 
|-
 
|-
| [[dgVoodoo 2]] || 2-9 || D3D11, D3D12
+
| [https://github.com/elishacloud/dxwrapper DxWrapper] || 2-8 || D3D7 (for 2-6), 9
 
|-
 
|-
| [https://dxgl.org/ DXGL] || 7 || OpenGL
+
| [https://github.com/narzoul/DDrawCompat DDrawCompat] || 2-7 || System's D3D2-7, but optimized
 
|-
 
|-
| [https://github.com/Joshua-Ashton/dxup DXUP] || 9-10 || D3D11
+
| [https://github.com/HansKristian-Work/vkd3d-proton VKD3D-Proton] || 12 || Vulkan
 
|-
 
|-
| [https://github.com/doitsujin/dxvk DXVK] || 9-11 || Vulkan 1.3{{note|note=Since version 1.11 the <code>VK_KHR_dynamic_rendering</code> extension is required.<ref>[https://github.com/doitsujin/dxvk/issues/2531#issuecomment-1174242817 Vulkan requirements? · doitsujin/dxvk - GitHub]</ref> Technically speaking this was released two months before its mandated inclusion into the new Vulkan 1.3 specification (so compatible drivers aren't one and the same with it). But for just about every intent and purpose, every card that received this big major update is also new enough not to have been legacy at the end of 2021 (unlike for instance Nvidia's Kepler and AMD gpus older than GCN4).}}
+
| [[Special K]] || 9 || D3D9Ex
 
|-
 
|-
| [https://github.com/elishacloud/dxwrapper DxWrapper] || 2-6/8 || D3D7 (for 2-6), D3D9 (for 8)
+
| [https://dxgl.org/ DXGL] || 7 || OpenGL
 
|-
 
|-
| [https://github.com/HansKristian-Work/vkd3d-proton VKD3D-Proton] || 12 || Vulkan
+
| [https://github.com/Joshua-Ashton/dxup DXUP] || 9-10 || D3D11
 
|-
 
|-
| [https://www.winehq.org/ WineD3D] || 2-11 || OpenGL, Vulkan
+
| [https://github.com/megai2/d912pxy d912pxy] || 9 || D3D12
 
|}
 
|}
  
{{ii}} There are no Direct3D 1 and 4 versions. Direct3D started with 2, and 4 was canceled.
+
{{ii}} There are no Direct3D 1 and 4 versions. Direct3D started with 2, and 4 was cancelled.
  
 
==Mantle wrappers==
 
==Mantle wrappers==

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