Changes

Jump to navigation Jump to search

Wrappers

1,046 bytes added, 1 April
'90s APIs
A '''wrapper''' is a reimplementation of a [[wikipedia:Library (computing)|library]], where the goal is to substitute the original API with a better-supported interface. It works as a drop-in replacement for the original library, since a lot of software usually bundled it as-is without any fine-tuning. Wrappers are most common for proprietary interfaces that are either abandoned or otherwise platform-specific.
 
See [[Emulation Accuracy]] page for more information about terms like "[[Hypervisors|hypervisors]]", "[[Simulators|simulators]]", "[[Compatibility_layer|compatibility layers]]", "[[Wrappers|wrappers]]", "[[FPGA|FPGA-based hardware cloning]]" and "[[:Category:Emulators|software emulators]]".
=='90s APIs==
(Glide, DirectDraw 1-7, Direct3D 2-7<ref group=N name=>Direct3D 1 doesn't exist, since DirectX 1 did not have a Direct3D component. The first release was Direct3D 2.</ref>, OpenGL 1.1-1.2x)
During the 90s, many [[POS_(Pong_Consoles)_CPUs_and_Other_Chips#Intel_CPU.27s|PC]] game developers chose to use 3Dfx's Glide API for their Voodoo graphics cards. These developers didn't anticipate that 3Dfx would run out of money trying to compete with NVIDIA's offering, and in 2000 NVIDIA bought them for their IP assets (presumably to improve their own cards). Despite the API getting an open source release in 2003, neither NVIDIA or ATI adopted support for Glide in their own drivers, meaning a wrapper is now needed to play these games with hardware acceleration. Or, if we're lucky, the game gets [[Game Engine Recreations and Source Ports|ported or reimplemented]] to use other APIs instead.
! scope="col"|Translates
! scope="col"|Into
! scope="col"|Compatibility
! scope="col"|<abbr title="Free and Open-Source Software">FOSS</abbr>
! scope="col"|Active
! scope="col"|[[Recommended Emulators|Recommended]]
|-
| rowspan=13 14 |Graphics
|[http://dege.freeweb.hu/dgVoodoo2/ dgVoodoo2]
|align=left|{{Icon|Windows}}
|[http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2/ 2.81.3{{DgVooDoo2Ver}}]
|Glide 2.11-3.10<br>DirectDraw 1-7<br>Direct3D 2-7
|Direct3D 11, 12
|[https://www.vogons.org/viewforum.php?f=59 ?] ||{{✗}} ||{{✓}} ||{{✓}}
|-
|[[Wine|WineD3D]]
|align=left|{{Icon|Windows|Linux|macOS}}
|[https://wiki.winehq.org/Download {{WineVer}}] <small>(Linux, macOS)</small><br/>[https://fdossena.com/?p=wined3d/index.frag {{WineDevVer}}] <small>(Windows)</small><ref group=N name=XPcompatibility>DxWnd 2.05.70, WineD3D 1.7.52 or 1.9.7-staging(partially) versions are the latest compatible versions with Windows XP (if [https://github.com/Skulltrail192/One-Core-API-Binaries OneCoreAPI] is '''not''' installed to OS), for getting these old "WineD3D for Windows" builds use [https://www.vogonsdrivers.com/wrappers/files/DirectX/OpenGL/WineD3D/2000+/ this link]. Also you can use [https://github.com/JHRobotics/wine9x?tab=readme-ov-file#wined3d-port-for-windows-9x JHRobotics port for using WineD3D on Windows 9x or Windows XP].</ref>
|DirectDraw 1-7<br>Direct3D 2-7
|Vulkan<br>OpenGL
|[https://appdb.winehq.org/objectManager.php?sClass=application&sTitle=Browse%20Applications&sOrderBy=appName&bAscending=true ?] ||{{✓}} ||{{✓}} ||{{✓}}
|-
|[https://sourceforge.net/projects/dxwnd DxWnd]
|align=left|{{Icon|Windows}}
|[https://sourceforge.net/projects/dxwnd/files/Latest%20build/ v2.05.99{{DxWndVer}}]<ref group=N name=XPcompatibility></ref>
|DirectDraw 1-7<br>Direct3D 2-7
|<small>no API conversion</small>
| ||{{✓}} ||{{✓}} ||{{✓}}
|-
|[http://www.zeus-software.com/downloads/nglide nGlide]
|Glide
|Vulkan<br>Direct3D 9
| ||{{✗}} ||{{✗}} ||{{✓}}
|-
|[https://github.com/elishacloud/dxwrapper DxWrapper]
|DirectDraw 1-7<br>Direct3D 2-7
|Direct3D 9<ref group=N name=dxwrapper>Through '''dd7to9'''.</ref><br>Direct3D 7 (for Direct3D 2-6)<br>DirectDraw 7 (for DirectDraw 1-6)
|[https://github.com/elishacloud/dxwrapper/wiki/DirectDraw-to-Direct3D9-Conversion#table-key ?] ||{{✓}} ||{{✓}} ||{{~}}
|-
|[https://github.com/narzoul/DDrawCompat DDrawCompat]
|align=left|{{Icon|Windows}}
|[https://github.com/narzoul/DDrawCompat/tags v0.45.01]
|DirectDraw 1-7<br>Direct3D 2-7<br>GDI (Partially)
|<small>no API conversion</small>
| ||{{✓}} ||{{✓}} ||{{~}}|-|[https://github.com/FunkyFr3sh/cnc-ddraw cnc-ddraw]|align=left|{{Icon|Windows}}<br>{{Icon|Linux|macOS}}<ref group=N name=cnc-ddraw>Linux and macOS are supported through wine.</ref>|[https://github.com/FunkyFr3sh/cnc-ddraw/releases 6.3]|DirectDraw 1-7|GDI<br>OpenGL<br>Direct3D 9| ||{{✓}} ||{{✓}} ||{{~}}
|-
|[https://www.dxgl.org/ DXGL]
|DirectDraw 1-7
|OpenGL
| ||{{✓}} ||{{✓}} ||{{~}}
|-
|[http://www.glidos.net/ Glidos]
|Glide <small>(DOS)</small>
|?
| ||{{✓}} ||{{✓}} ||{{✗}}
|-
|[http://dege.freeweb.hu/dgVoodoo/dgVoodoo/ dgVoodoo]
|Glide 2.11-2.45
|Direct3D 7, 9
| ||{{✗}} ||{{✗}} ||{{✗}}
|-
|[http://openglide.sourceforge.net/ OpenGlide]
|Glide
|OpenGL
| ||{{✓}} ||{{✗}} ||{{✗}}
|-
|[https://sourceforge.net/projects/psvoodoo/ psVoodoo]
|Glide
|Direct3D 9
| ||{{✓}} ||{{✗}} ||{{✗}}
|-
|[https://github.com/ata4/glrage glrage]
|ATI3DCIF<br>DirectDraw 2
|OpenGL 3.3
| ||{{✓}} ||{{✗}} ||{{✓}}
|-
|[https://wwwapps.vogonsmicrosoft.orgcom/viewtopic.phpdetail/9NRCQJ8VLGTK?fhl=9en-us&tgl=95721 US RReady (Rendition Verite wrapper)]
|align=left|{{Icon|Windows}}
|[https://wwwapps.vogonsmicrosoft.orgcom/viewtopic.phpdetail/9NRCQJ8VLGTK?fhl=9en-us&tgl=95721 Test Build (Alpha 1)US RReady Rendition Verité]
|RRedline
|OpenGL
| ||{{✗}} ||{{✓}} ||{{✓}}
|-
| rowspan=2 |Input
|DirectInput
|XInput
| ||{{✓}} ||{{✓}} ||{{✓}}
|-
|[https://github.com/elishacloud/dxwrapper DxWrapper]
|DirectInput 1-7
|DirectInput 8
| ||{{✓}} ||{{✓}} ||{{~}}
|-
| rowspan=1 |Sound
|DirectSound
|OpenAL
| ||{{✓}} ||{{✓}} ||{{TBD}}
|-
|}
==2000s and later APIs==
(Direct3D 8 and higher, OpenGL 12.3 x and higher, Vulkan)
Modern Windows games will likely need one of these wrappers to work on other platforms. Usually these are not separate downloads, and will come packaged into [[compatibility layers]] like [[Proton]], [[Wine]], or [https://www.codeweavers.com/crossover CrossOver].
|[https://github.com/doitsujin/dxvk DXVK]
|align=left|{{Icon|Windows|Linux}}
|[https://github.com/doitsujin/dxvk/releases 2.3{{DXVKVer}}]
|Direct3D 9-11
|Vulkan
|[https://github.com/HansKristian-Work/vkd3d-proton VKD3D-Proton]
|align=left|{{Icon|Windows|Linux}}
|[https://github.com/HansKristian-Work/vkd3d-proton/releases 2.10{{VKD3D-ProtonVer}}]
|Direct3D 12
|Vulkan
|vkd3d
|align=left|{{Icon|Linux}}
|[https://source.winehq.org/git/vkd3d.git/ 1.9{{Vkd3dVer}}]
|Direct3D 12
|Vulkan
==External links==
;* [https://www.vogons.org/viewtopic.php?f=9&t=36412 VOGONS: The Wrapper Collection Project]
;* [https://www.pcgamingwiki.com/wiki/Glossary:Display_wrapper PCGamingWiki: Display wrapper]
* [https://www.gamingonlinux.com/articles/dxvk-102-is-out-with-some-bug-fixes-d9vk-seems-to-be-progressing-nicely.13868/page=2#r151939 State of Direct3D 9-12 translation layers] by DXVK author YoRHa-2B (2019-04-02)
* [https://www.youtube.com/watch?v=N1XdbL-iWqk Levan: dgVoodoo 2 (DX12) vs DXVK (Vulkan) vs WineD3D (OpenGL) Benchmark]* [https://www.youtube.com/watch?v=kF1FZ21TwcA wolfgang: dxvk_2.0+VULKAN vs. D3D9 - GTA 4 Benchmark]* [https://www.youtube.com@Levan4KGaming/watchsearch?vquery=iTtPOXFNYAA performance%20benchmark Levan's D3D8 benchmark - d3d8to9 (D3D9) vs DXVK (Vulkan) vs WineD3D (OpenGL)]]* [https://www.vogons.org/viewtopic.php?f=9&t=36412 VOGONS: The Wrapper Collection ProjectBenchmarks]
[[Category:Not really emulators]]
11,040
edits

Navigation menu