https://emulation.gametechwiki.com/api.php?action=feedcontributions&user=Intruso&feedformat=atomEmulation General Wiki - User contributions [en]2024-03-28T15:59:33ZUser contributionsMediaWiki 1.32.0https://emulation.gametechwiki.com/index.php?title=Wrappers&diff=54793Wrappers2023-03-30T08:56:00Z<p>Intruso: /* 2000's and later APIs */ GLon12, Specifing grvk's Vulkan version (1.2), D8VK supports linux now</p>
<hr />
<div>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.<br />
<br />
==90's APIs==<br />
(Glide, DirectDraw 1-7, Direct3D 2-7, OpenGL 1.1-1.2)<br />
<br />
During the 90s, many [[Intel CPUs|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.<br />
<br />
Even games using older versions of DirectDraw or Direct3D can benefit from wrappers, since those interfaces may not even work properly on newer systems. Wrappers can even enable various overrides and enhancements, such as [https://reshade.me/ ReShade].<br />
<br />
{| class="wikitable sortable" style="text-align:center;"<br />
|-<br />
! scope="col"|Name<br />
! scope="col"|OS<br />
! scope="col"|Latest Version<br />
! scope="col"|Translates<br />
! scope="col"|Into<br />
! scope="col"|<abbr title="Free and Open-Source Software">FOSS</abbr><br />
! scope="col"|Active<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
|-<br />
|[http://www.zeus-software.com/downloads/nglide nGlide]<br />
|align=left|{{Icon|Windows}}<br />
|[http://www.zeus-software.com/downloads/nglide 2.10]<br />
|Glide<br />
|Vulkan, Direct3D 9<br />
|{{✗}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[http://dege.freeweb.hu/dgVoodoo2/ dgVoodoo2]<br />
|align=left|{{Icon|Windows}}<br />
|[http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2/ {{DgVoodoo2Ver}}]<br />
|Glide, DirectDraw 1-7, Direct3D 2-7<br />
|Direct3D 11, Direct3D 12<br />
|{{✗}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[http://dege.freeweb.hu/dgVoodoo/dgVoodoo/ dgVoodoo]<br />
|align=left|{{Icon|Windows}}<br />
|[http://dege.freeweb.hu/dgVoodoo/dgVoodoo/ v1.50b2]<br />
|Glide 2.11-2.45<br />
|Direct3D 7-9<br />
|{{✗}} ||{{✗}} ||{{✓}}<br />
|-<br />
|[[Wine|WineD3D]]<br />
|align=left|{{Icon|Windows|Linux|macOS}}<br />
|[https://wiki.winehq.org/Download {{WineVer}}] <small>(Linux, macOS)</small><br/>[https://fdossena.com/?p=wined3d/index.frag {{WineDevVer}}]<ref group=N name=XPcompatibility>DxWnd 2.05.70, WineD3D 1.7.52 or 1.9.7-staging(partially): latest versions compatible with WinXP (without [https://github.com/Skulltrail192/One-Core-API-Binaries OneCoreAPI]), for these old builds use [https://www.vogonsdrivers.com/wrappers/files/DirectX/OpenGL/WineD3D/2000+/ this link]</ref> <small>(Windows)</small><br />
|DirectDraw 1-7, Direct3D 2-7<br />
|Vulkan, OpenGL<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://www.dxgl.org/ DXGL]<br />
|align=left|{{Icon|Windows}}<br />
|[https://www.dxgl.org/downloads/ {{DXGLVer}}]<br />
|DirectDraw 1-7<br />
|OpenGL<br />
|{{✓}} ||{{✓}} ||{{TBD}}<br />
|-<br />
|[https://sourceforge.net/projects/dxwnd DxWnd]<br />
|align=left|{{Icon|Windows}}<br />
|[https://sourceforge.net/projects/dxwnd/files/Latest%20build/ v2.05.90]<ref group=N name=XPcompatibility></ref><br />
|DirectDraw 1-7, Direct3D 2-7<br />
|OpenGL, Direct3D 8-11<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://github.com/narzoul/DDrawCompat DDrawCompat]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/narzoul/DDrawCompat/tags v0.4.0]<br />
|DirectDraw 1-7, Direct3D 2-7, GDI (Partially)<br />
|<small>no API conversion</small><br />
|{{✓}} ||{{✓}} ||{{TBD}}<br />
|-<br />
|[https://github.com/elishacloud/dxwrapper dxwrapper]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/elishacloud/dxwrapper/tags v1.0.6542.21]<br />
|DirectDraw 1-7<br>Direct3D 2-6<br> DirectInput 1-7<br />
|Direct3D 9 (for DirectDraw)<br>Direct3D 7 (for Direct3D 2-6)<br>DirectInput 8<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[http://www.glidos.net/ Glidos]<br />
|align=left|{{Icon|Windows}}<br />
|[http://www.glidos.net/download.html 1.53b]<br />
|Glide <small>(DOS)</small><br />
|?<br />
|{{✗}} ||{{✗}} ||{{TBD}}<br />
|-<br />
|[http://openglide.sourceforge.net/ OpenGlide]<br />
|align=left|{{Icon|Windows}}<br />
|[https://sourceforge.net/projects/openglide/files/latest/download 0.09 Alpha]<br />
|Glide<br />
|OpenGL<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|-<br />
|[https://sourceforge.net/projects/psvoodoo/ psVoodoo]<br />
|align=left|{{Icon|Windows}}<br />
|[https://sourceforge.net/projects/psvoodoo/files/latest/download 0.13]<br />
|Glide<br />
|Direct3D 9<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|-<br />
|[https://github.com/ata4/glrage glrage]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/ata4/glrage/releases/latest r10]<br />
|ATI3DCIF, DirectDraw 2<br />
|OpenGL 3.3<br />
|{{✓}} ||{{✗}} ||{{✓}}<br />
|-<br />
|[https://github.com/csutorasa/XOutput XOutput]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/csutorasa/XOutput/tags 3.32]<br />
|DirectInput<br />
|XInput<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://github.com/kcat/dsoal DSOAL]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/kcat/dsoal/actions git]<br />
|DirectSound<br />
|OpenAL<br />
|{{✓}} ||{{✓}} ||{{TBD}}<br />
|-<br />
|}<br />
<br />
'''Note:''' Direct3D 1 doesn't exist, since DirectX 1 did not have a Direct3D component. The first release was Direct3D 2.<br />
<references group=N /><br />
<br />
===Comparisons===<br />
;nGlide<br />
:Currently the best Glide wrapper, supporting all three public versions (2.11, 2.60 and 3.10) but it's closed-source. It originally only used Direct3D 9 until Vulkan output was added in 2.0, allowing it to work under Linux using [[Wine]] 2.10.0 and newer.<ref name="nglidevulkan">http://www.zeus-software.com/forum/viewtopic.php?f=2&t=2044</ref> nGlide also supports high resolution modes. See the [http://www.zeus-software.com/downloads/nglide/compatibility compatibility list].<br />
<br />
;dgVoodoo2<br />
:Supports Glide 2.11, 2.45, 3.10, 3.1 Napalm, all versions of DirectDraw, and Direct3D up to version 7. Outputs Direct3D 11 and Direct3D 12 with different device types as wrapping output, such as hardware or software rendering.<br />
<br />
;[[Wine|WineD3D]]<br />
:Wine's internal wrapper. Wraps DirectDraw and Direct3D up to 7 into Vulkan and OpenGL. It works pretty well for running older Direct3D games, though it does not come with a Glide implementation of its own. A custom build is available for Windows [https://fdossena.com/?p=wined3d/index.frag here].<br />
<br />
;DXGL<br />
:Reimplements DirectDraw using OpenGL. It is considered alpha software despite many applications working.<br />
<br />
;glrage<br />
:Reimplements ATI3DCIF, an API from ATI used in a handful of games, and DirectDraw 2 over OpenGL. Originally designed specifically for Tomb Raider 1/UB patched with ATIRage patch, currently also supports Assault Rigs and Wipeout. Additionally, it applies some improvements, fixes and QoL changes to the games.<br />
<br />
==2000's and later APIs==<br />
(Direct3D 8 and higher, OpenGL 1.3 and higher, Vulkan)<br />
<br />
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].<br />
<br />
{| class="wikitable sortable" style="text-align:center;"<br />
|-<br />
! scope="col"|Name<br />
! scope="col"|OS<br />
! scope="col"|Latest Version<br />
! scope="col"|Translates<br />
! scope="col"|Into<br />
! scope="col"|<abbr title="Free and Open-Source Software">FOSS</abbr><br />
! scope="col"|Active<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
|-<br />
|[http://dege.freeweb.hu/dgVoodoo2/ dgVoodoo2]<br />
|align=left|{{Icon|Windows}}<br />
|[http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2/ {{DgVoodoo2Ver}}]<br />
|Direct3D 8-9<br />
|Direct3D 11, Direct3D 12<br />
|{{✗}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://github.com/AlpyneDreams/d8vk D8VK]<br />
|align=left|{{Icon|Windows|Linux}}<br />
|[https://github.com/AlpyneDreams/d8vk/releases 0.1.0]<br />
|Direct3D 8<br />
|Vulkan<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://github.com/doitsujin/dxvk DXVK]<br />
|align=left|{{Icon|Windows|Linux}}<br />
|[https://github.com/doitsujin/dxvk/releases {{DXVKVer}}]<br />
|Direct3D 9-11<br />
|Vulkan<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://github.com/libcg/grvk grvk]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/libcg/grvk/tags 0.5.0]<br />
|Mantle<br />
|Vulkan 1.2<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[[Wine|WineD3D]]<br />
|align=left|{{Icon|Windows|Linux|macOS}}<br />
|[https://wiki.winehq.org/Download {{WineVer}}] <small>(Linux, macOS)</small><br/>[https://fdossena.com/?p=wined3d/index.frag {{WineDevVer}}] <small>(Windows)</small><br />
|Direct3D 8-11<br />
|Vulkan, OpenGL<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://downloads.fdossena.com/Projects/Mesa3D/Builds/index.php Mesa3D for Windows + MesaInjector]<br />
|align=left|{{Icon|Windows}}<br />
|[https://downloads.fdossena.com/Projects/Mesa3D/Builds/index.php 20.1.8] <br/>[https://github.com/lightningterror/Mesa3D-Windows lightningterror's builds] <br/>[http://www.vogonsdrivers.com/wrappers/files/OpenGL/GDI/Mesa/ vogonsdrivers builds]<br />
|OpenGL<br />
|Software<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://github.com/HansKristian-Work/vkd3d-proton VKD3D-Proton]<br />
|align=left|{{Icon|Windows|Linux}}<br />
|[https://github.com/HansKristian-Work/vkd3d-proton/releases 2.8]<br />
|Direct3D 12<br />
|Vulkan<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|vkd3d<br />
|align=left|{{Icon|Linux}}<br />
|[https://source.winehq.org/git/vkd3d.git/ {{Vkd3dVer}}]<br />
|Direct3D 12<br />
|Vulkan<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|-<br />
|[https://github.com/KhronosGroup/MoltenVK MoltenVK]<br />
|align=left|{{Icon|macOS|iOS}}<br />
|[https://github.com/KhronosGroup/MoltenVK/releases {{MoltenVKVer}}]<br />
|Vulkan<br />
|Metal<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://github.com/iXit/wine-nine-standalone Gallium Nine]<br />
|align=left|{{Icon|Linux}}<br />
|[https://github.com/iXit/wine-nine-standalone/releases v0.8] <small>(WIP)</small><br />
|Direct3D 9<br />
|Gallium<br />
|{{✓}} ||{{✓}} ||{{~}}<br />
|-<br />
|[https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/docs/drivers/zink.rst Zink]<br />
|align=left|{{Icon|Linux}}<br />
|[https://gitlab.freedesktop.org/mesa/mesa/tree/zink git]<br />
|OpenGL 2.1-4.6<br />
|Vulkan<br />
|{{✓}} ||{{✓}} ||{{TBD}}<br />
|-<br />
|[https://github.com/crosire/d3d8to9/ d3d8to9]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/crosire/d3d8to9/releases git]<br />
|Direct3D 8<br />
|Direct3D 9<br />
|{{✓}} ||{{✓}} ||{{~}}<br />
|-<br />
|[https://github.com/microsoft/D3D9On12 D3D9On12]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/microsoft/D3D9On12 releases git]<br />
|Direct3D 9<br />
|Direct3D 12<br />
|{{✓}} ||{{✓}} ||{{~}}<br />
|-<br />
|[https://github.com/microsoft/D3D11On12/ D3D11On12]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/microsoft/D3D11On12/ releases git]<br />
|Direct3D 11<br />
|Direct3D 12<br />
|{{✓}} ||{{✓}} ||{{~}}<br />
|-<br />
|[https://github.com/bo3b/3Dmigoto/ 3Dmigoto]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/bo3b/3Dmigoto/tags 1.3.16]<br />
|Direct3D 11 <small>(Stereo3D)</small><br />
|<small>no API conversion</small><br />
|{{✓}} ||{{✓}} ||{{~}}<br />
|-<br />
|[https://www.pcgamingwiki.com/wiki/Glossary:VorpX VorpX] ($)<br />
|align=left|{{Icon|Windows}}<br />
|[https://www.vorpx.com/support-faq/ v21.3.2]<br />
|Direct3D 11 <small>(Stereo3D)</small><br />
|<small>no API conversion</small><br />
|{{✗}} ||{{✓}} ||{{~}}<br />
|-<br />
|GLon12<br />
|align=left|{{Icon|Windows|Xbox}}<br />
|<br />
|OpenGL<br />
|Direct3D 12<br />
|{{✓}} ||{{✓}} ||{{TBD}}<br />
|-<br />
|}<br />
<br />
===Comparisons===<br />
;dgVoodoo2<br />
:Supports Direct3D 8-9. Outputs Direct3D 11 and Direct3D 12 with different device types as wrapping output, such as hardware or software rendering.<br />
<br />
;DXVK<br />
:Was originally designed to accelerate support for Direct3D 11 games running under [[Wine]] since a native implementation seemed unlikely. Today it is bundled with [[Proton]]. Later merged D9VK to add Direct3D 9 support.<br />
<br />
;WineD3D<br />
:Wine's internal wrapper. Wraps Direct3D 8-11 into Vulkan and OpenGL. For newer APIs it has more bugs than DXVK. A custom build is available for Windows [https://fdossena.com/?p=wined3d/index.frag here].<br />
<br />
;VKD3D-Proton<br />
:A fork of VKD3D funded by Valve, which is more ahead and experimentally supports DXR via VK_KHR_ray_tracing. Requires DXVK's dxgi.dll file to work on Windows.<br />
<br />
;vkd3d<br />
:Wine's work-in-progress Direct3D 12 to Vulkan wrapper.<br />
<br />
;MoltenVK<br />
:Developed by the Brenwill Workshop under the Khronos Group, it reimplements Vulkan for Metal. Emulators like [[Dolphin]] and [[DuckStation]] use MoltenVK instead of a native Metal renderer to support Apple devices.<br />
<br />
;Gallium Nine<br />
:An implementation of the Direct3D 9 library on top of the Gallium driver for Linux. By using calls native to Linux, applications running under Wine run "at near-native speeds" according to the maintainers. The caveat is that this only works on Mesa, not NVIDIA's proprietary driver.<br />
<br />
;Zink<br />
:A "just-in-case" implementation of OpenGL on top of Vulkan first introduced in 2018 by Collabora for the Mesa driver.<ref>Erik Faye-Lund (October 31, 2018). [https://www.collabora.com/news-and-blog/blog/2018/10/31/introducing-zink-opengl-implementation-vulkan/ Introducing Zink, an OpenGL implementation on top of Vulkan]. Collabora.</ref><br />
<br />
;d3d8to9<br />
:Not as versatile as dgVoodoo2, however it's the only wrapper that can wrap Direct3D 8 into 9. Its main advantage is Windows XP support, which dgVoodoo2 lacks. It's specifically useful for Windows XP running in VMWare, since VMWare's Direct3D 8 acceleration has graphical and/or performance issues.<br />
<br />
==See also==<br />
* [[Compatibility layers]] - Allows software written for one platform to run on another.<br />
<br />
==References==<br />
{{Reflist}}<br />
<br />
==External links==<br />
* [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)<br />
<br />
[[Category:Not really emulators]]</div>Intrusohttps://emulation.gametechwiki.com/index.php?title=30/60_FPS_cheat_codes&diff=5417730/60 FPS cheat codes2023-03-09T11:43:26Z<p>Intruso: /* Nintendo */ adding link to a list with GC/Wii 60fps codes</p>
<hr />
<div>These are cheat codes that alter the game's internal FPS.<br />
<br />
=60 FPS=<br />
These are often game-specific and very prone to bugs considering many of the games weren't made with 60 FPS in mind. Notably, the walking speed and animations might play at double speed, which can cause some gameplay problems like for example making a mission impossible to beat in Metal Gear Solid Peace Walker because the enemies are too fast.<br />
<br />
==Nintendo==<br />
===Nintendo 64===<br />
To be used with the [http://www.emulation64.com/files/info/944/1964-ultrafast.html/ 1964 Ultrafast], which includes CPU [[Overclocking]]. That alone can cause a speedup in a select few games like GoldenEye, Perfect Dark, Mario Kart 64 (partially: MP, some stages), Carmageddon, and San Francisco Rush games (partially: MP).<br />
<br />
{| class="wikitable"<br />
! scope="col" style="text-align: center;"|Game Name<br />
! scope="col" style="text-align: center;"|60 FPS Cheat<br />
! scope="col" style="text-align: center;"|Notes<br />
|-<br />
| style="text-align: center;"| <br />
:The Legend of Zelda<br />
:Ocarina of Time<br />
:(US, REV0)<br />
| style="text-align: left;"| <br />
:'''60FPS+JumpFix+CrawlFix'''<br />
:D11C8680 0000<br />
:801C6F2D 009C<br />
:D11C8680 0000<br />
:801C6FA1 0003<br />
:D31C8680 0000<br />
:801C6F2D 00D8<br />
:D31C8680 0000<br />
:801C6FA1 0001<br />
:'''Draw Distance Fix'''<br />
:8010A711 0099<br />
| style="text-align: left;"| <br />
:Originally 20 FPS (17 in PAL, 30 in 3DS version).<br />
:Some animations are still awkward or too quick.<br />
:[http://forum.pj64-emu.com/showpost.php?p=55223&postcount=2 Source]<br />
|}<br />
<br />
Some other games have 60 FPS patches or codes too. [http://forum.pj64-emu.com/showthread.php?t=5208 60fps cheats topic on pj64-emu.com]<br />
<br />
===GameCube/Wii===<br />
Needs [https://dolphin-emu.org/blog/2015/02/07/game-modification-60-fps-hacks/ some versions of Dolphin]. The overclocking can increase the framerate of games with [[Vsync]], variable FPS, or slowdowns in the real console.<br />
<br />
There was an option to overclock the GPU (Vbeam speed hack) to get 60fps in Pikmin 1 and 2, but it was eliminated by [[Dolphin]] team in recent builds.<br />
The VBeam hack was axed by the devs over accuracy concerns and wanting 60 FPS hacks to run on real hardware or something. You'll have to track down those versions then.<br />
<br />
* Super Mario Sunshine: <br />
This Gecko code is Region-Free which means it works with any version of the game, but it comes with some side effects. It makes cutscenes run very slowly on the North American version of the game, causes falling stars to appear in the top corners and top middle of the screen, and makes the blue/red coins in Gelato Beach near impossible to get. So it's better to use version specific codes listed underneath this one.<br />
:F6000002 80008180 <br />
:BF800000 3F000000<br />
:00000000 43300000<br />
:14000004 3F800000<br />
:E0000000 80008000<br />
:F6000002 80008180<br />
:801E0074 901E0038<br />
:801E007C 901E0078<br />
:14000014 60000000<br />
:E0000000 80008000<br />
:F6000001 80008180<br />
:40800034 C03F00D0<br />
:D2000004 00000002<br />
:3DC03F80 91DF00D0<br />
:C03F00D0 00000000<br />
:E0000000 80008000<br />
<br />
Use this for the NTSC-U version of the game:<br />
:044167B8 3F800000<br />
:042FCB24 60000000<br />
:04414904 3CA3D70A<br />
:C20066EC 00000002<br />
:C2C28028 EC2105B2<br />
:FEC00890 00000000<br />
(by gamemasterplc)<br />
<br />
Use this for the PAL version of the game:<br />
:0440DD10 3F800000<br />
:042F4CB4 60000000<br />
:0440BE54 3CA3D70A<br />
:C20066EC 00000002<br />
:C2C28028 EC2105B2<br />
:FEC00890 00000000<br />
(by gamemasterplc)<br />
<br />
* Pikmin: Enter in one of these codes as a Gecko code. Make sure you use the right code associated with your game region.<br />
Use this for 1.1 NTSC-U version of the game:<br />
:04059774 38000001<br />
:0405AE7C 38800001<br />
:043E8A58 3F000000<br />
:04107738 4800000C<br />
(by gamemasterplc)<br />
<br />
Use this for the PAL version of the game:<br />
:042A7CF0 00000014<br />
:022A7CF6 000001E0<br />
:022A7CF8 000001E0<br />
:022A7CFC 00000000<br />
:022A7D00 000001E0<br />
:043ED5B0 3F800000<br />
<br />
* Pikmin 2: You can use this Gecko code to get this game running at 60 FPS with an added side effect of breaking cut-scenes. Thankfully, the code allows you to switch back to 30 FPS at any time by using the D-Pad on your controller. A right-press on the D-pad toggles 60 FPS, while a left-press on the D-pad reverts back to 30 FPS.<br />
<br />
You can swap the left and right presses by switching 0002 and 0001 in the code.<br />
:88507009 00000002<br />
:045D1028 3C888889<br />
:405D1020 00001D01<br />
:00000000 40000000<br />
:88507009 00000001<br />
:045D1028 3D088889<br />
:405D1020 00001D02<br />
:00000000 40000000<br />
<br />
* Sonic Colors: Enter this in as an AR code and increase Dolphin's Emulated CPU Clock Override to somewhere around 200 - 250%.<br />
:008F2D97 00000001<br />
:0090DB0B 00000001<br />
<br />
==Sony==<br />
===PlayStation 2===<br />
todo: [http://forums.pcsx2.net/Thread-60-fps-codes These] ([https://www.unddit.com/r/emulation/comments/5tmge2/ps2_60fps_codes_list/ formatted], [https://pastebin.com/EeT7pVsy backup in case it goes down again])<br />
<br />
* '''Metal Gear Solid 3 Subsistence NTSC-U''' ([http://forums.pcsx2.net/Thread-Post-your-PCSX2-cheats-patches-here?pid=444831#pid444831 Source]): <br />
:gametitle=Metal Gear Solid 3 - Subsistence Disc 1 (Limited Edition, SLUS-21359)<br />
:comment=Force 60 FPS<br />
:patch=1,EE,001D5AD8,extended,00000000<br />
:patch=1,EE,001D6DB8,extended,00000001<br />
:patch=1,EE,001D6DBC,extended,00000000<br />
<br />
:gametitle=Metal Gear Solid 3 - Subsistence Disc 1 (Limited Edition, SLUS-21359)<br />
:comment=Force 30 FPS<br />
:patch=1,EE,001D5AD8,extended,00000040<br />
:patch=1,EE,001D6DB8,extended,00000002<br />
:patch=1,EE,001D6DBC,extended,00000001<br />
<br />
Needs at least 20% overclock on EE. Cutscenes need to have 30 FPS enabled back to be less demanding.<br />
<br />
* '''Kingdom Hearts series:'''<br />
:// 60 FPS Kingdom Hearts 2 Final Mix patch=1,EE,00349E1C,extended,00000000<br />
:// 60 FPS Kingdom Hearts 1 NTSC U/C patch=1,EE,002B624C,extended,00000000<br />
:// 60 FPS Kingdom Hearts 1 Final Mix patch=1,EE,002BBE0C,extended,00000000<br />
:// 60 FPS Kingdom Hearts 2 NTSC U/C patch=1,EE,00356F4C,extended,00000000<br />
:// 60 FPS Kingdom Hearts 1 PAL patch=1,EE,002B67CC,extended,00000000<br />
:// 60 FPS Kingdom Hearts Re: Chain of Memories NTSC U/C patch=1,EE,004386B0,extended,00000000<br />
:// 60 FPS Kingdom Hearts Re: Chain of Memories JP patch=1,EE,0043C930,extended,00000000<br />
<br />
===PlayStation Portable===<br />
Some games offered the option in-game to increase the framerate on later PSP models, like notably all versions of Kingdom Hearts Birth By Sleep, and Tales of Destiny 2 (all other Tales ports were downgraded to run at 30 FPS sadly).<br />
<br />
A lot of PSP games have codes to increase their framerate almost without any negative effect for the majority (the ones that have bugs with 60 FPS are marked with "b"), and a CWCheat list can be found [https://web.archive.org/web/20161125104116/http://forums.ppsspp.org/showthread.php?tid=15223 here]. One example:<br />
<br />
:Kingdom Hearts Birth By Sleep (Japan, US/PAL, Japan Final Mix)<br />
:_C1 Force 60 FPS Mode <br />
:_L 0x21725EC8 0x00000000<br />
<br />
===PlayStation 3===<br />
There are multiple FPS and other patches created by community listed on [https://wiki.rpcs3.net/index.php?title=Help:Game_Patches the RPCS3 Official Wiki].<br />
<br />
=30 FPS=<br />
{{WIP|section}}<br />
While this trick can somewhat detract from the experience in games that run natively at 60 FPS, it can be very useful for games emulated on underpowered devices, such as smartphones or old desktop computers.<br />
<br />
==Nintendo==<br />
===GameCube/Wii===<br />
<br />
You can find several codes [https://forums.dolphin-emu.org/Thread-60-fps-master-list in this thread] from Dolphin forums.<br />
<br />
* Mario Kart: Double Dash‼ (Action Replay)<br />
NTSC<br />
:0448C388 00000002<br />
PAL<br />
:044961C8 00000002<br />
<br />
* Mario Kart Wii (Gecko)<br />
NTSC-U<br />
:004250D4 00000002<br />
:0029FD69 00000002<br />
PAL<br />
:00429454 00000002<br />
:002A40E9 00000002<br />
NTSC-J<br />
:00428DD4 00000002<br />
:002A3A69 00000002<br />
NTSC-K<br />
:00417474 00000002<br />
:002920E9 00000002<br />
<br />
* Super Mario Galaxy 2 (Gecko)<br />
Region Free<br />
:044bdb00 3bc00002<br />
<br />
* Super Smash Bros Melee: Needs [https://smashboards.com/threads/melee-in-120-fps.354534/#post-16768889 some versions of Dolphin].<br />
:04432A2C 0005265C<br />
<br />
==Sony==<br />
===PlayStation Portable===<br />
* God of War: Chains of Olympus/God of War: Ghost of Sparta<br />
This cheat needs [https://github.com/hrydgard/ppsspp/pull/15640 PPSSPP version 1.13 or up] and can be activated by editing the compat.ini file which is in the /assets/compat.ini folder. The location of this folder will depend on the system used, on Windows it will be where PPSSPP is installed, on Android it should be in the /Android/data/org.ppsspp.ppsspp/ folder, etc. With the file open in a text editor, search for [GoWFramerateHack30] and uncomment (remove the #) from the GameID you use (don't uncomment the other lines, just the God of War GameIDs), it should look like this:<br />
<br />
:UCUS98737 = true<br />
:UCAS40323 = true<br />
:NPHG00092 = true<br />
:NPEG00044 = true<br />
:NPEG00045 = true<br />
:NPJG00120 = true<br />
:NPUG80508 = true<br />
:UCJS10114 = true<br />
:UCES01401 = true<br />
:UCES01473 = true<br />
<br />
:UCAS40198 = true<br />
:UCUS98653 = true<br />
:UCES00842 = true<br />
:ULJM05438 = true<br />
:ULJM05348 = true<br />
:UCKS45084 = true<br />
:NPUG80325 = true<br />
:NPEG00023 = true<br />
:NPHG00027 = true<br />
:NPHG00028 = true<br />
:NPJH50170 = true<br />
:UCET00844 = true<br />
<br />
[[Category:FAQs]]</div>Intrusohttps://emulation.gametechwiki.com/index.php?title=Widescreen_hacks&diff=53586Widescreen hacks2023-02-20T14:41:42Z<p>Intruso: /* Nintendo DS */</p>
<hr />
<div>A '''widescreen hack''' is an emulator feature that make older games playable on 16:9 aspect ratio.<br />
<br />
Most video games before mid-2000s were developed for TVs and monitors with 4:3 aspect ratio. If these games are played on 16:9 aspect ratio, the game is either displayed with black bars on each side or stretched to fill the whole screen. Some emulators however provide a widescreen hack option to make these games look nice on modern monitors.<br />
<br />
Some games before mid-2000s do have built-in 16:9 aspect ratio support, but usefulness of this option will vary. Some games just add black bars to top and bottom, while others have very zoomed out camera, so widescreen hacks may still be useful in these games.<br />
<br />
==Limitations==<br />
A widescreen hack basically hacks camera size and position, so depending on the game there might be graphical glitches.<br />
*2D sprites/HUDs such as health bars or minimaps might look stretched or displayed on wrong location.<br />
*Enemies or objects outside of 4:3 area might suddenly appear or disappear, because the game skips rendering for offscreen things. Similarly, the screen-wide visual effects such as fade-in and fade-out may only affect the 4:3 area of the screen.<br />
<br />
==Emulators (2D)==<br />
<br />
===NES===<br />
* [http://prilik.com/blog/2018/08/24/wideNES.html WideNES]: is a novel technique to automatically and interactively map-out NES games, in real time. This allows you to peek beyond the screen boundaries of NES games. Currently only implemented in the emulator [https://prilik.com/ANESE/ ANESE].<br />
<br />
===Game Boy===<br />
* [https://kzone.winosx.com/posts/widegb-playing-game-boy-games-on-wide-screens/ WideGB]: a addon/fork of [[SameBoy]] with widescreen support. Uses a similar technique as WideNES.<br />
<br />
===Super Nintendo===<br />
* [[Bsnes#List_of_forks|bsnes-hd]] - a fork of [[bsnes]] with support for widescreen and Mode 7 with HD rendering.<br />
<br />
Games with specific patches:<br />
* [https://github.com/VitorVilela7/wide-snes Super Mario World]<br />
* [https://github.com/DerKoun/bsnes-hd/tree/master/pack/gamefixes/Super%20Metroid%20widescreen%20patch Super Metroid]<br />
<br />
===Sega Genesis===<br />
* [https://www.libretro.com/index.php/genesis-plus-gx-wide-now-available-for-libretroretroarch/ Genesis Plus GX Wide] - a fork of [[Genesis Plus GX]] with widescreen support. Currently only available as a [[libretro]] core.<br />
<br />
==Emulators (3D)==<br />
<br />
===Nintendo 64===<br />
There are two plugins for [[Project64]] that has widescreen hack support.<br />
*Jabo's Direct3D: The versions included in Project64 2.x has a widescreen hack option, though the plugin itself is buggy compared to versions came with Project64 1.6 (the version before the widescreen hack option was added). Jabo backported this widescreen hack to the 1.6.1 version, which retains the stability of 1.6 with some of the fixes from the other, buggier plugin.<br />
*[http://gliden64.blogspot.com/ GLideN64]: Currently the only known plugin that can do both widescreen hack and custom [[Texture packs|texture packs]], though the system requirement is much higher than Jabo's. As of [https://www.patreon.com/posts/overscan-feature-18633339 May 2018], it now has a new [http://gliden64.blogspot.com/2018/05/overscan.html overscan] feature that lets the users manually edit offsets to remove black borders/lines around the edges of a game's video output and is compatible with any widescreen hack. The widescreen hack does not work if running the plugin in LLE mode, however.<br />
<br />
Some games have specific widescreen codes made by the community to render the game at wider aspect ratios. These codes are generally more reliable than widescreen hacks and work on real consoles too. You can find a few ones in [http://forum.pj64-emu.com/showthread.php?t=5523 pj64 forum.]<br />
<br />
===GameCube/Wii===<br />
[[Dolphin]] has a widescreen hack under graphics options.The aspect ratio option must be set to 'Force 16:9' to make it work.<br />
<br />
Some games have specific Gecko Codes to fix the aspect-ratio in widescreen. Check the game page in the [https://wiki.dolphin-emu.org/index.php?title=Nintendo_GameCube Dolphin Wiki] to find those codes. It's also possible to enable them in RetroArch ([https://www.reddit.com/r/RetroArch/comments/pg1bak/tip_dolphin_patchescheats_for_xbox_oneseries_sx/ guide on reddit]).<br />
<br />
[https://github.com/emukidid/swiss-gc swiss-gc] ([http://www.gc-forever.com/forums/viewtopic.php?t=1375 nightly builds]) have per-game hacks for a lot of GameCube games that work better than Dolphin's widescreen hack option. See [[:File:Dolphin_Swiss.gif|this gif]] on how to use it with Dolphin.<br />
<br />
===PlayStation===<br />
* [[PCSX-Reloaded]] has the widescreen hack in the CPU options.<br />
* [[ePSXe]] also has the widescreen hack located within the GTE Hacks options. This feature was added in version 2.0.5.<br />
* [[DuckStation]] and [[SwanStation]], a new PSX emulator, also has a widescreen hack located in the Enhancement Settings.<br />
<br />
Some games have specific widescreen codes made by the community to render the game at wider aspect ratios. These codes are generally more reliable than widescreen hacks and work on real consoles too. The PCSX2 forum has [http://forums.pcsx2.net/Thread-PSOne-Widescreen-Patches a threat dedicated to them.]<br />
<br />
===PlayStation 2===<br />
[[PCSX2]] can render the games in 16:9 aspect ratio, though unlike other consoles game-specific patches are required. See [http://forums.pcsx2.net/Thread-PCSX2-Widescreen-Game-Patches?pid=271674#pid271674 PCSX2 widescreen game patches] and [http://ps2wide.net/ PS2 widescreen hacks] for patches.<br />
<!-- Correct me if I'm wrong. I've only played 2D games on PS2. --><br />
<br />
===PlayStation Portable===<br />
PSP has a widescreen aspect ratio from the beginning, with [[PPSSPP]] you can render games in other ratios such as ultrawide 21:9 and 31:9. There's a forum post with [https://forums.ppsspp.org/showthread.php?tid=26189 collection of patches].<br />
<br />
===Nintendo DS===<br />
Some games have specific widescreen codes made by the community to render the game at wider aspect ratios. These codes are generally more reliable than widescreen hacks and work on real consoles too. In gbatemp there is [https://gbatemp.net/threads/how-to-play-nds-games-in-hd-widescreen-16-9-21-9-32-9.538988/ this compilation of codes]. In a different thread there are even more codes [https://gbatemp.net/threads/widescreen-cheats-for-ds-games-on-3ds.543212/ to adapt 4:3 nDS games to 16:10 n3DS screen].<br />
<br />
===Dreamcast===<br />
[[Flycast]] has widescreen support available via hack that creates widescreen automatically with HUD supports or cheats, use only one of those.<br />
[[Redream]] has widescreen support available in the <code>Manage cheats</code> menu.<br />
<br />
==External links==<br />
[https://www.retrowide.com/forums/ RetroWide] - forum for discussing widescreen development, both ROM-hacking and technology on the emulator side.<br />
<br />
[[Category:FAQs]]</div>Intrusohttps://emulation.gametechwiki.com/index.php?title=Widescreen_hacks&diff=53585Widescreen hacks2023-02-20T14:40:43Z<p>Intruso: typo</p>
<hr />
<div>A '''widescreen hack''' is an emulator feature that make older games playable on 16:9 aspect ratio.<br />
<br />
Most video games before mid-2000s were developed for TVs and monitors with 4:3 aspect ratio. If these games are played on 16:9 aspect ratio, the game is either displayed with black bars on each side or stretched to fill the whole screen. Some emulators however provide a widescreen hack option to make these games look nice on modern monitors.<br />
<br />
Some games before mid-2000s do have built-in 16:9 aspect ratio support, but usefulness of this option will vary. Some games just add black bars to top and bottom, while others have very zoomed out camera, so widescreen hacks may still be useful in these games.<br />
<br />
==Limitations==<br />
A widescreen hack basically hacks camera size and position, so depending on the game there might be graphical glitches.<br />
*2D sprites/HUDs such as health bars or minimaps might look stretched or displayed on wrong location.<br />
*Enemies or objects outside of 4:3 area might suddenly appear or disappear, because the game skips rendering for offscreen things. Similarly, the screen-wide visual effects such as fade-in and fade-out may only affect the 4:3 area of the screen.<br />
<br />
==Emulators (2D)==<br />
<br />
===NES===<br />
* [http://prilik.com/blog/2018/08/24/wideNES.html WideNES]: is a novel technique to automatically and interactively map-out NES games, in real time. This allows you to peek beyond the screen boundaries of NES games. Currently only implemented in the emulator [https://prilik.com/ANESE/ ANESE].<br />
<br />
===Game Boy===<br />
* [https://kzone.winosx.com/posts/widegb-playing-game-boy-games-on-wide-screens/ WideGB]: a addon/fork of [[SameBoy]] with widescreen support. Uses a similar technique as WideNES.<br />
<br />
===Super Nintendo===<br />
* [[Bsnes#List_of_forks|bsnes-hd]] - a fork of [[bsnes]] with support for widescreen and Mode 7 with HD rendering.<br />
<br />
Games with specific patches:<br />
* [https://github.com/VitorVilela7/wide-snes Super Mario World]<br />
* [https://github.com/DerKoun/bsnes-hd/tree/master/pack/gamefixes/Super%20Metroid%20widescreen%20patch Super Metroid]<br />
<br />
===Sega Genesis===<br />
* [https://www.libretro.com/index.php/genesis-plus-gx-wide-now-available-for-libretroretroarch/ Genesis Plus GX Wide] - a fork of [[Genesis Plus GX]] with widescreen support. Currently only available as a [[libretro]] core.<br />
<br />
==Emulators (3D)==<br />
<br />
===Nintendo 64===<br />
There are two plugins for [[Project64]] that has widescreen hack support.<br />
*Jabo's Direct3D: The versions included in Project64 2.x has a widescreen hack option, though the plugin itself is buggy compared to versions came with Project64 1.6 (the version before the widescreen hack option was added). Jabo backported this widescreen hack to the 1.6.1 version, which retains the stability of 1.6 with some of the fixes from the other, buggier plugin.<br />
*[http://gliden64.blogspot.com/ GLideN64]: Currently the only known plugin that can do both widescreen hack and custom [[Texture packs|texture packs]], though the system requirement is much higher than Jabo's. As of [https://www.patreon.com/posts/overscan-feature-18633339 May 2018], it now has a new [http://gliden64.blogspot.com/2018/05/overscan.html overscan] feature that lets the users manually edit offsets to remove black borders/lines around the edges of a game's video output and is compatible with any widescreen hack. The widescreen hack does not work if running the plugin in LLE mode, however.<br />
<br />
Some games have specific widescreen codes made by the community to render the game at wider aspect ratios. These codes are generally more reliable than widescreen hacks and work on real consoles too. You can find a few ones in [http://forum.pj64-emu.com/showthread.php?t=5523 pj64 forum.]<br />
<br />
===GameCube/Wii===<br />
[[Dolphin]] has a widescreen hack under graphics options.The aspect ratio option must be set to 'Force 16:9' to make it work.<br />
<br />
Some games have specific Gecko Codes to fix the aspect-ratio in widescreen. Check the game page in the [https://wiki.dolphin-emu.org/index.php?title=Nintendo_GameCube Dolphin Wiki] to find those codes. It's also possible to enable them in RetroArch ([https://www.reddit.com/r/RetroArch/comments/pg1bak/tip_dolphin_patchescheats_for_xbox_oneseries_sx/ guide on reddit]).<br />
<br />
[https://github.com/emukidid/swiss-gc swiss-gc] ([http://www.gc-forever.com/forums/viewtopic.php?t=1375 nightly builds]) have per-game hacks for a lot of GameCube games that work better than Dolphin's widescreen hack option. See [[:File:Dolphin_Swiss.gif|this gif]] on how to use it with Dolphin.<br />
<br />
===PlayStation===<br />
* [[PCSX-Reloaded]] has the widescreen hack in the CPU options.<br />
* [[ePSXe]] also has the widescreen hack located within the GTE Hacks options. This feature was added in version 2.0.5.<br />
* [[DuckStation]] and [[SwanStation]], a new PSX emulator, also has a widescreen hack located in the Enhancement Settings.<br />
<br />
Some games have specific widescreen codes made by the community to render the game at wider aspect ratios. These codes are generally more reliable than widescreen hacks and work on real consoles too. The PCSX2 forum has [http://forums.pcsx2.net/Thread-PSOne-Widescreen-Patches a threat dedicated to them.]<br />
<br />
===PlayStation 2===<br />
[[PCSX2]] can render the games in 16:9 aspect ratio, though unlike other consoles game-specific patches are required. See [http://forums.pcsx2.net/Thread-PCSX2-Widescreen-Game-Patches?pid=271674#pid271674 PCSX2 widescreen game patches] and [http://ps2wide.net/ PS2 widescreen hacks] for patches.<br />
<!-- Correct me if I'm wrong. I've only played 2D games on PS2. --><br />
<br />
===PlayStation Portable===<br />
PSP has a widescreen aspect ratio from the beginning, with [[PPSSPP]] you can render games in other ratios such as ultrawide 21:9 and 31:9. There's a forum post with [https://forums.ppsspp.org/showthread.php?tid=26189 collection of patches].<br />
<br />
===Nintendo DS===<br />
Some games have specific widescreen codes made by the community to render the game at wider aspect ratios. These codes are generally more reliable than widescreen hacks and work on real consoles too. In gbatemp there are [https://gbatemp.net/threads/how-to-play-nds-games-in-hd-widescreen-16-9-21-9-32-9.538988/ this compilation of codes]. In a different thread there are even more codes [https://gbatemp.net/threads/widescreen-cheats-for-ds-games-on-3ds.543212/ to adapt 4:3 nDS games to 16:10 n3DS screen].<br />
<br />
===Dreamcast===<br />
[[Flycast]] has widescreen support available via hack that creates widescreen automatically with HUD supports or cheats, use only one of those.<br />
[[Redream]] has widescreen support available in the <code>Manage cheats</code> menu.<br />
<br />
==External links==<br />
[https://www.retrowide.com/forums/ RetroWide] - forum for discussing widescreen development, both ROM-hacking and technology on the emulator side.<br />
<br />
[[Category:FAQs]]</div>Intrusohttps://emulation.gametechwiki.com/index.php?title=Widescreen_hacks&diff=53584Widescreen hacks2023-02-20T14:36:12Z<p>Intruso: n64, PSX, DS widescreen codes</p>
<hr />
<div>A '''widescreen hack''' is an emulator feature that make older games playable on 16:9 aspect ratio.<br />
<br />
Most video games before mid-2000s were developed for TVs and monitors with 4:3 aspect ratio. If these games are played on 16:9 aspect ratio, the game is either displayed with black bars on each side or stretched to fill the whole screen. Some emulators however provide a widescreen hack option to make these games look nice on modern monitors.<br />
<br />
Some games before mid-2000s do have built-in 16:9 aspect ratio support, but usefulness of this option will vary. Some games just add black bars to top and bottom, while others have very zoomed out camera, so widescreen hacks may still be useful in these games.<br />
<br />
==Limitations==<br />
A widescreen hack basically hacks camera size and position, so depending on the game there might be graphical glitches.<br />
*2D sprites/HUDs such as health bars or minimaps might look stretched or displayed on wrong location.<br />
*Enemies or objects outside of 4:3 area might suddenly appear or disappear, because the game skips rendering for offscreen things. Similarly, the screen-wide visual effects such as fade-in and fade-out may only affect the 4:3 area of the screen.<br />
<br />
==Emulators (2D)==<br />
<br />
===NES===<br />
* [http://prilik.com/blog/2018/08/24/wideNES.html WideNES]: is a novel technique to automatically and interactively map-out NES games, in real time. This allows you to peek beyond the screen boundaries of NES games. Currently only implemented in the emulator [https://prilik.com/ANESE/ ANESE].<br />
<br />
===Game Boy===<br />
* [https://kzone.winosx.com/posts/widegb-playing-game-boy-games-on-wide-screens/ WideGB]: a addon/fork of [[SameBoy]] with widescreen support. Uses a similar technique as WideNES.<br />
<br />
===Super Nintendo===<br />
* [[Bsnes#List_of_forks|bsnes-hd]] - a fork of [[bsnes]] with support for widescreen and Mode 7 with HD rendering.<br />
<br />
Games with specific patches:<br />
* [https://github.com/VitorVilela7/wide-snes Super Mario World]<br />
* [https://github.com/DerKoun/bsnes-hd/tree/master/pack/gamefixes/Super%20Metroid%20widescreen%20patch Super Metroid]<br />
<br />
===Sega Genesis===<br />
* [https://www.libretro.com/index.php/genesis-plus-gx-wide-now-available-for-libretroretroarch/ Genesis Plus GX Wide] - a fork of [[Genesis Plus GX]] with widescreen support. Currently only available as a [[libretro]] core.<br />
<br />
==Emulators (3D)==<br />
<br />
===Nintendo 64===<br />
There are two plugins for [[Project64]] that has widescreen hack support.<br />
*Jabo's Direct3D: The versions included in Project64 2.x has a widescreen hack option, though the plugin itself is buggy compared to versions came with Project64 1.6 (the version before the widescreen hack option was added). Jabo backported this widescreen hack to the 1.6.1 version, which retains the stability of 1.6 with some of the fixes from the other, buggier plugin.<br />
*[http://gliden64.blogspot.com/ GLideN64]: Currently the only known plugin that can do both widescreen hack and custom [[Texture packs|texture packs]], though the system requirement is much higher than Jabo's. As of [https://www.patreon.com/posts/overscan-feature-18633339 May 2018], it now has a new [http://gliden64.blogspot.com/2018/05/overscan.html overscan] feature that lets the users manually edit offsets to remove black borders/lines around the edges of a game's video output and is compatible with any widescreen hack. The widescreen hack does not work if running the plugin in LLE mode, however.<br />
<br />
Some games have specific widescreen codes made by the community to render the game at wider aspect ratios. This codes are generally more reliable than widescreen hacks and work on real consoles too. You can find a few ones in [http://forum.pj64-emu.com/showthread.php?t=5523 pj64 forum.]<br />
<br />
===GameCube/Wii===<br />
[[Dolphin]] has a widescreen hack under graphics options.The aspect ratio option must be set to 'Force 16:9' to make it work.<br />
<br />
Some games have specific Gecko Codes to fix the aspect-ratio in widescreen. Check the game page in the [https://wiki.dolphin-emu.org/index.php?title=Nintendo_GameCube Dolphin Wiki] to find those codes. It's also possible to enable them in RetroArch ([https://www.reddit.com/r/RetroArch/comments/pg1bak/tip_dolphin_patchescheats_for_xbox_oneseries_sx/ guide on reddit]).<br />
<br />
[https://github.com/emukidid/swiss-gc swiss-gc] ([http://www.gc-forever.com/forums/viewtopic.php?t=1375 nightly builds]) have per-game hacks for a lot of GameCube games that work better than Dolphin's widescreen hack option. See [[:File:Dolphin_Swiss.gif|this gif]] on how to use it with Dolphin.<br />
<br />
===PlayStation===<br />
* [[PCSX-Reloaded]] has the widescreen hack in the CPU options.<br />
* [[ePSXe]] also has the widescreen hack located within the GTE Hacks options. This feature was added in version 2.0.5.<br />
* [[DuckStation]] and [[SwanStation]], a new PSX emulator, also has a widescreen hack located in the Enhancement Settings.<br />
<br />
Some games have specific widescreen codes made by the community to render the game at wider aspect ratios. This codes are generally more reliable than widescreen hacks and work on real consoles too. The PCSX2 forum has [http://forums.pcsx2.net/Thread-PSOne-Widescreen-Patches a threat dedicated to them.]<br />
<br />
===PlayStation 2===<br />
[[PCSX2]] can render the games in 16:9 aspect ratio, though unlike other consoles game-specific patches are required. See [http://forums.pcsx2.net/Thread-PCSX2-Widescreen-Game-Patches?pid=271674#pid271674 PCSX2 widescreen game patches] and [http://ps2wide.net/ PS2 widescreen hacks] for patches.<br />
<!-- Correct me if I'm wrong. I've only played 2D games on PS2. --><br />
<br />
===PlayStation Portable===<br />
PSP has a widescreen aspect ratio from the beginning, with [[PPSSPP]] you can render games in other ratios such as ultrawide 21:9 and 31:9. There's a forum post with [https://forums.ppsspp.org/showthread.php?tid=26189 collection of patches].<br />
<br />
===Nintendo DS===<br />
Some games have specific widescreen codes made by the community to render the game at wider aspect ratios. This codes are generally more reliable than widescreen hacks and work on real consoles too. In gbatemp there are [https://gbatemp.net/threads/how-to-play-nds-games-in-hd-widescreen-16-9-21-9-32-9.538988/ this compilation of codes]. In a different thread there are even more codes [https://gbatemp.net/threads/widescreen-cheats-for-ds-games-on-3ds.543212/ to adapt 4:3 nDS games to 16:10 n3DS screen].<br />
<br />
===Dreamcast===<br />
[[Flycast]] has widescreen support available via hack that creates widescreen automatically with HUD supports or cheats, use only one of those.<br />
[[Redream]] has widescreen support available in the <code>Manage cheats</code> menu.<br />
<br />
==External links==<br />
[https://www.retrowide.com/forums/ RetroWide] - forum for discussing widescreen development, both ROM-hacking and technology on the emulator side.<br />
<br />
[[Category:FAQs]]</div>Intrusohttps://emulation.gametechwiki.com/index.php?title=Overclocking&diff=51333Overclocking2022-12-09T11:30:20Z<p>Intruso: adding mention to DS "overclock" in DSi/3DS systems with nds-bootstrap hypervisor.</p>
<hr />
<div>Overclocking is the process by which the CPU clock speed is increased. The reason for doing this would be to reduce slowdown in games or to increase the frame rate. However, as this is a hack and not intended by designers, it can result in many issues. Certain systems can have an overclocked CPU with few if any issues, while others can not overclock without major issues. <br />
<br />
==Chart==<br />
{| class="wikitable" style="text-align:center;"<br />
|-<br />
! scope="col"|System<br />
! scope="col"|Normal clock<br />
! scope="col"|Hardware Overclock<br />
! scope="col"|Emulation Overclock<br />
! scope="col"|Overclock levels<br />
|-<br />
|[[Nintendo Entertainment System emulators|NES]]<br />
|1.79 MHz<br />
|{{✓}}<br />
|{{✓}}<br />
|?<br />
|-<br />
|[[Super Nintendo emulators|SNES]] (Main CPU)<br />
|3.58 MHz<br />
|{{✓}}<br />
|{{✓}}<br />
|4.1-7.6 Mhz<br />
|-<br />
|[[Super Nintendo emulators|SNES]] (Super FX 1)<br />
|10.5 MHz<br />
|{{✓}}<br />
|{{✓}}<br />
|40-60 Mhz<br />
|-<br />
|[[Super Nintendo emulators|SNES]] (Super FX 2)<br />
|21 MHz<br />
|{{✓}}<br />
|{{✓}}<br />
|40-60 Mhz,<br />
|-<br />
|[[Sega Genesis emulators|Sega Genesis]]<br />
|7.7 MHz<br />
|{{✓}}<ref name="kyorune">http://kyorune.com/modding/article.php?id=73</ref><br />
|{{✓}}<br />
|13.1-25.4 MHz<ref name="kyorune"/><br />
|-<br />
|[[PlayStation emulators|PlayStation]]<br />
|33.8 MHz<br />
|{{✓}}<ref name="kraut">https://www.youtube.com/watch?v=HapnSOseDfw</ref><br />
|{{✓}}<br />
|66Mhz<ref name="kraut"/><br />
|-<br />
|[[Sega Saturn emulators|Sega Saturn]]<br />
|28.6 MHz*<br />
|{{✗}}<br />
|{{✗}}<br />
|-<br />
|-<br />
|[[Nintendo 64 emulators|Nintendo 64]]<br />
|93.75 MHz<br />
|{{✓}}<ref name="n64oc">http://www.gamesx.com/misctech/n64oc.htm</ref><br />
|{{✓}}<br />
|125-187.5 Mhz<ref name="n64oc"/><br />
|-<br />
|[[Neo Geo emulators|Neo Geo]]<br />
|12 MHz<br />
|{{✓}}<ref name="neooc">http://www.neo-geo.com/forums/showthread.php?158016-68K-s-guide-to-overclocking-your-Neo-Geo-AES</ref><br />
|{{✓}}<br />
|14-18 MHz<ref name="neooc"/><br />
|-<br />
|[[3DO emulators|3DO]]<br />
|12.5 MHz<br />
|{{na|text=Unknown}}<br />
|{{✓}}<br />
|{{na}}<br />
|-<br />
|}<br />
<nowiki>*</nowiki> Sega Saturn has two SH-2 CPUs<br />
<br />
==MAME==<br />
By default [[MAME]] allows you to change the clock speed of the systems it emulates (including consoles) to anything between 50% to 250% of the original clock speed, the only requirement is that you enable cheats for that game/system.<br />
<br />
==NES==<br />
Overclocking is possible on real hardware, but doing so also speeds up the audio unless you're using a special hardware mod like the HiDefNES which does allow for overclocking without changing the audio pitch<ref name="HiDefNESoverclock">https://youtu.be/QnQuBN3iYVA?t=4m8s</ref>. <br />
<br />
[[FCEUX]] as of 2.2.3 includes an overclocking option which works by adding additional scanlines to the PPU loop. This method doesn't cause audio distortion. It is found under Config > Timing.<br />
<br />
[[puNES]] as of 0.101 includes the same feature. It is found under Tools > PPU Hacks.<br />
<br />
[[Mesen]] as of 0.2.2 includes the same feature, as well as CPU overclocking. Both are found under Options > Emulation > Overclocking.<br />
<br />
For PPU Overclocking, the number of additional scanlines is user-defined. 240 Post-render Scanlines (Referred to as "Before NMI" in Mesen) should be more than enough for most games. If you happen to experience graphical glitching or crashes with a PPU overclock, try the VBlank Scanlines ("After NMI" in Mesen) option instead. Though uncommon, this is required for some games, a notable example being Contra Force.<br />
<br />
==SNES==<br />
===Main CPU===<br />
For an NTSC SNES, the master clock rate is approximate ~21.477 MHz, but the CPU's effective clock rates are ~3.58 MHz, ~2.68 MHz, or ~1.79 MHz. This is because any CPU operation takes 6 master cycles (i.e. 21.477/6 = 3.58) and memory access can take 6, 8, or 12, depending on the area of RAM is accessed. In the case of ROM access, it also depends on whether bit 0 of CPU register 420D is set to 0 (SlowROM, 8) or 1 (FastROM, 6).<ref name="Fullsnes - No$SNS Specs">http://problemkaputt.de/fullsnes.htm#cpuclockcycles</ref><br />
<br />
In testing overclocks on the original hardware, the following issues occur (speeds listed represent the maximum effective clock rate):<br />
<br />
* 4.1 MHz: Small amounts of sprite breakup occasionally; very little slowdown.<br />
* 5.1 MHz: Sprite breakup; no slowdown<br />
* 6.6 MHz: Color palette errors; sprites fail to render<br />
* 7.6 MHz: Color palette errors; sprites fail to render. Freezes after a few minutes.<ref name="SNES overclock">http://web.archive.org/web/20070629163744/http://www.undergroundcm.com/index.php?option=com_content&task=view&id=15&Itemid=38</ref><br />
<br />
Only MAME has an option to change the main CPU frequency, which requires you to enable cheats. MAME SNES emulation is very demanding by default and activating the overclock only makes it worse. It is more stable than the real hardware while overclocked and won't exhibit the same issues, but it is still very unstable especially if you adjust the frequency multiple times. It also does not allow you to go over 250% clock speed, which isn't enough to fully get rid of slowdowns in some games.<br />
<br />
The latest standalone version of [[Snes9x]] and all of the [[libretro]] cores builds can overclock by reducing the number of emulated CPU/memory access cycles from 6, 8, and 12 to either 4, 5, and 6 (Compatible) or 3, 3, and 3 (Max) respectively. Just for comparison, that means the Max option is effectively 7.16 MHz. Gameplay is not sped up (assuming the game is not in a constant state of some slowdown, to begin with, like Out of This World) and the issues experienced on real hardware are not present, though stability will vary depending on the game and which option you use. Also to note, some games may work better with the Max option rather than Compatible, as appears to be the case for Mega Man X1 which has a bit of graphical corruption under very specific conditions when using the Compatible option, so try both if you encounter issues.<br />
<br />
===Super FX chip===<br />
The first version of the chip, commonly referred to as simply "Super FX", is clocked with a 21 MHz signal, but an internal clock speed divider halves it to 10.5 MHz. Later on, the design was revised to become the Super FX GSU-2; this, unlike the first Super FX chip revision, is able to reach 21 MHz.<br />
<br />
The SFX chip can be overclocked on real hardware or emulation with fewer issues than overclocking the CPU. However, tests have shown that overclocking can increase the speed of the game, in addition to increasing the frame rate and removing slowdown.<ref name="Dragon50hztest">https://www.youtube.com/watch?v=tfNI3HpUt-4</ref><br />
<br />
{| class="wikitable" style="text-align:center;"<br />
|-<br />
! scope="col"|Clock speed<br />
! scope="col"|Time<br />
! scope="col"|Increase<br />
|-<br />
|Normal<br />
|1'46'02<br />
|&mdash;<br />
|-<br />
|50Hz<br />
|1'23'78<br />
|27.711%<ref name="Dragon50hztest"/><br />
|}<br />
<br />
The latest standalone version of [[Snes9x]], as well as [[RetroArch|Snes9x-Next]] and [[higan|bsnes-mercury]] allows for SFX overclocking. Though in the latter the increase in CPU requirements can be noticeable.<br />
<br />
==PC-Engine (TG-16)==<br />
The main CPU can be overclocked on real hardware but will also speed up audio.<ref>http://nfggames.com/games/pce/</ref><br />
<br />
[[Mednafen]] allows overclocking the CPU up to 100x, without affecting audio pitch, in its non-default [{{MednafenURL|documentation/pce_fast.html}} pce_fast] core via the [{{MednafenURL|documentation/pce_fast.html#pce_fast.ocmultiplier pce_fast.ocmultiplier}}] setting.<br />
<br />
==N64==<br />
Some emulators like the [[libretro]] port of [[Mupen64Plus]] have an overclocking option called "VI Refresh", and [[1964]] UltraFast (a very old fork of 1964) have an option to overclock the CPU.<br />
<br />
Some games (see the list below) can take advantage of overclocking and improves frame rate, while most others (such as Super Mario 64) have built-in frame rate limiter and unaffected by overclocking.<ref>http://forum.pj64-emu.com/showpost.php?p=51810&postcount=6</ref><ref>http://www.emucr.com/2011/02/1964-ultrafast-v3.html</ref><br />
<br />
===List of games that can take advantage of overclocking===<br />
* ''A Bug's Life''<br />
* ''Aidyn Chronicles - The First Mage''<br />
* ''Armorines - Project S.W.A.R.M.''<br />
* ''Big Mountain 2000''<br />
* ''Carmageddon''<br />
* ''Conker's Bad Fur Day''<br />
* ''Destruction Derby 64''<br />
* ''Disney's Donald Duck - Goin' Quackers / Donald Duck - Quack Attack''<br />
* ''Duck Dodgers Starring Daffy Duck / Looney Toons - Duck Dodgers''<br />
* ''Earthworm Jim 3D''<br />
* ''Extreme-G''<br />
* ''Extreme-G XG2''<br />
* ''F1 Racing Championship''<br />
* ''F-1 Pole Position 64''<br />
* ''Gex 3 - Deep Cover Gecko''<br />
* ''GoldenEye 007''<br />
* ''Hot Wheels Turbo Racing''<br />
* ''Human Grand Prix - New Generation''<br />
* ''Jet Force Gemini / Star Twins''<br />
* ''Jeremy McGrath Supercross 2000''<br />
* ''Kobe Bryant's NBA Courtside''<br />
* ''Madden Football 64''<br />
* ''Madden NFL 99-2002''<br />
* ''Mario Kart 64 (Multiplayer and some tracks only)''<br />
* ''Milo's Astro Lanes''<br />
* ''Monaco Grand Prix - Racing Simulation 2''<br />
* ''Monster Truck Madness 64''<br />
* ''NASCAR 99/2000''<br />
* ''NBA In the Zone 98 / NBA Pro 98''<br />
* ''Off Road Challenge''<br />
* ''Perfect Dark''<br />
* ''Quake II''<br />
* ''Racing Simulation 2''<br />
* ''Rakuga Kids''<br />
* ''Rayman 2 - The Great Escape''<br />
* ''Roadsters Trophy''<br />
* ''San Francisco Rush - Extreme Racing (Multiplayer only)''<br />
* ''San Francisco Rush 2049 (Multiplayer only)''<br />
* ''South Park Rally''<br />
* ''StarCraft 64''<br />
* ''Starshot - Space Circus Fever''<br />
* ''Super Robot Spirits''<br />
* ''Taz Express''<br />
* ''The New Tetris''<br />
* ''Tom Clancy's Rainbow Six''<br />
* ''Tonic Trouble''<br />
* ''Toy Story 2''<br />
* ''Transformers - Beast Wars Transmetal''<br />
* ''Turok 2 - Seeds of Evil / Violence Killer - Turok New Generation''<br />
* ''V-Rally Edition 99''<br />
* ''WCW vs. nWo - World Tour''<br />
* ''World Cup 98''<br />
<br />
==GameCube/Wii==<br />
[[Dolphin]] supports overclocking and underclocking the CPU. Overclocking can remove slowdown from games that have them, pushing them closer to their actual target frame rate. It causes several issues with many games, so don't expect it to be a perfect solution.<br />
<br />
Dolphin used to have a VBeam Speed Hack that doubled GPU clock rate. This has since been removed, as the developers found that it didn't really help in many cases.<br />
<br />
==PlayStation==<br />
On real hardware, overclocking is possible using [http://djky2k3.tripod.com/psx_oc.html this modification].<br />
<br />
On emulators, [[Duckstation]] allows you to overclock the CPU up to 1000% or 10x. [https://github.com/SonofUgly/PCSX-Reloaded/releases This modified build] of [[PCSX-Reloaded|PCSX-R]] as well as [http://ngemu.com/threads/pcsxr-pgxp.186369/ this fork] allow for overclocking, though most games will break past 1.5x clock speed. Recent builds of Beetle PSX (the libretro fork of Mednafen's PS1 core) also support overclocking, by way of removing timing penalties instead of increasing clock speed. EPSXe also natively supports overclocking up to 4x. Hydro Thunder benefits a lot from it, running at a constant 30 FPS without any other issues.<br />
<br />
==PS2==<br />
On original model PS2s, you can overclock by a small amount without too much problem, but the biggest issue will be sped-up audio. Slim model PS2s use the GPU's clock rate as a base for the CPU (multiplying the GPU's clock by 2), so overclocking the CPU will also overclock the GPU resulting in many visual problems.<ref name="PS2OC">http://nfggames.com/forum2/index.php?topic=2220.0</ref><br />
<br />
All recent builds of [[PCSX2]] have a speed hack that allows you to increase the EE cycle-rate without having any effect on the audio, although it does still break a few games most of them run fine and with less slowdown. The emulator also has a speed hack called VU Cycle Stealing, which allows for increased GPU performance at the cost of CPU cycles. It gives an incorrect FPS readout, though.<br />
<br />
==PSP==<br />
[[PPSSPP]] allows over/underclocking of the main CPU. Due to Sony underclocking the CPU to 222 MHz then removing the underclock in a later firmware update to allow it to run at 333 MHz<ref>https://en.wikipedia.org/wiki/PlayStation_Portable_hardware#Technical_specifications</ref> (and thus not having games closely tied to clock rate), overclocking the system (and emulating an overclocked system) results to next to no ill effects.<br />
<br />
==Neo Geo==<br />
[[FinalBurn Alpha]] allows for overclocking of Neo Geo games. MAMEUIFX (aka MAME32FX) also allows for overclocking.<ref>http://mame32fx.altervista.org/home.htm</ref> All Neo Geo should run at full speed when overclocked.<br />
<br />
==Sega Genesis==<br />
The original hardware can be overclocked leading to faster/smoother gameplay.<ref>http://www.youtube.com/watch?v=SVrElANZg2M</ref><br />
<br />
Most Genesis emulators don't allow overclocking. The [[Genesis Plus GX]] developer, for instance, says that implementing overclocking is "not easy to add without potentially break other things. <ref>https://code.google.com/p/genplus-gx/issues/detail?id=223</ref><br />
<br />
[http://aamirm.hacking-cult.org/www/regen.html Regen] allows overclocking in the dev build version.<ref>http://segaretro.org/Regen</ref> Games with sprite flicker, like Altered Beast, and games with some slowdown, like Rambo III or Mega Man: The Wily Wars, play perfectly with Regen's "Overclock M68000" setting at 732 (1.5x original speed). The game speed and audio are unaffected by overclocking.<br />
<br />
BlastEm and HazeMD also allow for overclocking but neither are really recommended for normal usage.<br />
<br />
==3DO==<br />
[[Phoenix (emulator)|Phoenix]] and standalone Windows version of [[4DO]] allows up to 4.0/400% of the original 3DO clock speed, making some low frame rate titles such as [[wikipedia:Doctor_Hauzer|Doctor Hauzer]] and [[wikipedia:Killing_Time_(video_game)|Killing Time]] more playable. Also possible to overclock CPU in [[libretro]] version of [[4DO]]<ref>https://docs.libretro.com/library/opera/#core-options</ref> in options in core's quick menu after game launch, but only to 2.0x speed, that still may seem slow.<br />
<br />
The possibility of this function to break games (like incorrect physic and unplayable speed) is unknown.<br />
<br />
==Nintendo DS==<br />
<br />
In DSi and 3DS systems, it is possible to run classic DS games at higher clocks by the use of [[nds-bootstrap]]. This hypervisor has the option of running classic DS games in DSi mode, effectively overclocking the CPU from 67MHz to 133MHz. This change can remove slowdowns and improve framerate in some games, but can add instability in several others.<br />
<br />
==References==<br />
{{Reflist}}<br />
<br />
[[Category:FAQs]]</div>Intrusohttps://emulation.gametechwiki.com/index.php?title=Overclocking&diff=51332Overclocking2022-12-09T11:17:12Z<p>Intruso: /* PlayStation */ adding mention to duckstation</p>
<hr />
<div>Overclocking is the process by which the CPU clock speed is increased. The reason for doing this would be to reduce slowdown in games or to increase the frame rate. However, as this is a hack and not intended by designers, it can result in many issues. Certain systems can have an overclocked CPU with few if any issues, while others can not overclock without major issues. <br />
<br />
==Chart==<br />
{| class="wikitable" style="text-align:center;"<br />
|-<br />
! scope="col"|System<br />
! scope="col"|Normal clock<br />
! scope="col"|Hardware Overclock<br />
! scope="col"|Emulation Overclock<br />
! scope="col"|Overclock levels<br />
|-<br />
|[[Nintendo Entertainment System emulators|NES]]<br />
|1.79 MHz<br />
|{{✓}}<br />
|{{✓}}<br />
|?<br />
|-<br />
|[[Super Nintendo emulators|SNES]] (Main CPU)<br />
|3.58 MHz<br />
|{{✓}}<br />
|{{✓}}<br />
|4.1-7.6 Mhz<br />
|-<br />
|[[Super Nintendo emulators|SNES]] (Super FX 1)<br />
|10.5 MHz<br />
|{{✓}}<br />
|{{✓}}<br />
|40-60 Mhz<br />
|-<br />
|[[Super Nintendo emulators|SNES]] (Super FX 2)<br />
|21 MHz<br />
|{{✓}}<br />
|{{✓}}<br />
|40-60 Mhz,<br />
|-<br />
|[[Sega Genesis emulators|Sega Genesis]]<br />
|7.7 MHz<br />
|{{✓}}<ref name="kyorune">http://kyorune.com/modding/article.php?id=73</ref><br />
|{{✓}}<br />
|13.1-25.4 MHz<ref name="kyorune"/><br />
|-<br />
|[[PlayStation emulators|PlayStation]]<br />
|33.8 MHz<br />
|{{✓}}<ref name="kraut">https://www.youtube.com/watch?v=HapnSOseDfw</ref><br />
|{{✓}}<br />
|66Mhz<ref name="kraut"/><br />
|-<br />
|[[Sega Saturn emulators|Sega Saturn]]<br />
|28.6 MHz*<br />
|{{✗}}<br />
|{{✗}}<br />
|-<br />
|-<br />
|[[Nintendo 64 emulators|Nintendo 64]]<br />
|93.75 MHz<br />
|{{✓}}<ref name="n64oc">http://www.gamesx.com/misctech/n64oc.htm</ref><br />
|{{✓}}<br />
|125-187.5 Mhz<ref name="n64oc"/><br />
|-<br />
|[[Neo Geo emulators|Neo Geo]]<br />
|12 MHz<br />
|{{✓}}<ref name="neooc">http://www.neo-geo.com/forums/showthread.php?158016-68K-s-guide-to-overclocking-your-Neo-Geo-AES</ref><br />
|{{✓}}<br />
|14-18 MHz<ref name="neooc"/><br />
|-<br />
|[[3DO emulators|3DO]]<br />
|12.5 MHz<br />
|{{na|text=Unknown}}<br />
|{{✓}}<br />
|{{na}}<br />
|-<br />
|}<br />
<nowiki>*</nowiki> Sega Saturn has two SH-2 CPUs<br />
<br />
==MAME==<br />
By default [[MAME]] allows you to change the clock speed of the systems it emulates (including consoles) to anything between 50% to 250% of the original clock speed, the only requirement is that you enable cheats for that game/system.<br />
<br />
==NES==<br />
Overclocking is possible on real hardware, but doing so also speeds up the audio unless you're using a special hardware mod like the HiDefNES which does allow for overclocking without changing the audio pitch<ref name="HiDefNESoverclock">https://youtu.be/QnQuBN3iYVA?t=4m8s</ref>. <br />
<br />
[[FCEUX]] as of 2.2.3 includes an overclocking option which works by adding additional scanlines to the PPU loop. This method doesn't cause audio distortion. It is found under Config > Timing.<br />
<br />
[[puNES]] as of 0.101 includes the same feature. It is found under Tools > PPU Hacks.<br />
<br />
[[Mesen]] as of 0.2.2 includes the same feature, as well as CPU overclocking. Both are found under Options > Emulation > Overclocking.<br />
<br />
For PPU Overclocking, the number of additional scanlines is user-defined. 240 Post-render Scanlines (Referred to as "Before NMI" in Mesen) should be more than enough for most games. If you happen to experience graphical glitching or crashes with a PPU overclock, try the VBlank Scanlines ("After NMI" in Mesen) option instead. Though uncommon, this is required for some games, a notable example being Contra Force.<br />
<br />
==SNES==<br />
===Main CPU===<br />
For an NTSC SNES, the master clock rate is approximate ~21.477 MHz, but the CPU's effective clock rates are ~3.58 MHz, ~2.68 MHz, or ~1.79 MHz. This is because any CPU operation takes 6 master cycles (i.e. 21.477/6 = 3.58) and memory access can take 6, 8, or 12, depending on the area of RAM is accessed. In the case of ROM access, it also depends on whether bit 0 of CPU register 420D is set to 0 (SlowROM, 8) or 1 (FastROM, 6).<ref name="Fullsnes - No$SNS Specs">http://problemkaputt.de/fullsnes.htm#cpuclockcycles</ref><br />
<br />
In testing overclocks on the original hardware, the following issues occur (speeds listed represent the maximum effective clock rate):<br />
<br />
* 4.1 MHz: Small amounts of sprite breakup occasionally; very little slowdown.<br />
* 5.1 MHz: Sprite breakup; no slowdown<br />
* 6.6 MHz: Color palette errors; sprites fail to render<br />
* 7.6 MHz: Color palette errors; sprites fail to render. Freezes after a few minutes.<ref name="SNES overclock">http://web.archive.org/web/20070629163744/http://www.undergroundcm.com/index.php?option=com_content&task=view&id=15&Itemid=38</ref><br />
<br />
Only MAME has an option to change the main CPU frequency, which requires you to enable cheats. MAME SNES emulation is very demanding by default and activating the overclock only makes it worse. It is more stable than the real hardware while overclocked and won't exhibit the same issues, but it is still very unstable especially if you adjust the frequency multiple times. It also does not allow you to go over 250% clock speed, which isn't enough to fully get rid of slowdowns in some games.<br />
<br />
The latest standalone version of [[Snes9x]] and all of the [[libretro]] cores builds can overclock by reducing the number of emulated CPU/memory access cycles from 6, 8, and 12 to either 4, 5, and 6 (Compatible) or 3, 3, and 3 (Max) respectively. Just for comparison, that means the Max option is effectively 7.16 MHz. Gameplay is not sped up (assuming the game is not in a constant state of some slowdown, to begin with, like Out of This World) and the issues experienced on real hardware are not present, though stability will vary depending on the game and which option you use. Also to note, some games may work better with the Max option rather than Compatible, as appears to be the case for Mega Man X1 which has a bit of graphical corruption under very specific conditions when using the Compatible option, so try both if you encounter issues.<br />
<br />
===Super FX chip===<br />
The first version of the chip, commonly referred to as simply "Super FX", is clocked with a 21 MHz signal, but an internal clock speed divider halves it to 10.5 MHz. Later on, the design was revised to become the Super FX GSU-2; this, unlike the first Super FX chip revision, is able to reach 21 MHz.<br />
<br />
The SFX chip can be overclocked on real hardware or emulation with fewer issues than overclocking the CPU. However, tests have shown that overclocking can increase the speed of the game, in addition to increasing the frame rate and removing slowdown.<ref name="Dragon50hztest">https://www.youtube.com/watch?v=tfNI3HpUt-4</ref><br />
<br />
{| class="wikitable" style="text-align:center;"<br />
|-<br />
! scope="col"|Clock speed<br />
! scope="col"|Time<br />
! scope="col"|Increase<br />
|-<br />
|Normal<br />
|1'46'02<br />
|&mdash;<br />
|-<br />
|50Hz<br />
|1'23'78<br />
|27.711%<ref name="Dragon50hztest"/><br />
|}<br />
<br />
The latest standalone version of [[Snes9x]], as well as [[RetroArch|Snes9x-Next]] and [[higan|bsnes-mercury]] allows for SFX overclocking. Though in the latter the increase in CPU requirements can be noticeable.<br />
<br />
==PC-Engine (TG-16)==<br />
The main CPU can be overclocked on real hardware but will also speed up audio.<ref>http://nfggames.com/games/pce/</ref><br />
<br />
[[Mednafen]] allows overclocking the CPU up to 100x, without affecting audio pitch, in its non-default [{{MednafenURL|documentation/pce_fast.html}} pce_fast] core via the [{{MednafenURL|documentation/pce_fast.html#pce_fast.ocmultiplier pce_fast.ocmultiplier}}] setting.<br />
<br />
==N64==<br />
Some emulators like the [[libretro]] port of [[Mupen64Plus]] have an overclocking option called "VI Refresh", and [[1964]] UltraFast (a very old fork of 1964) have an option to overclock the CPU.<br />
<br />
Some games (see the list below) can take advantage of overclocking and improves frame rate, while most others (such as Super Mario 64) have built-in frame rate limiter and unaffected by overclocking.<ref>http://forum.pj64-emu.com/showpost.php?p=51810&postcount=6</ref><ref>http://www.emucr.com/2011/02/1964-ultrafast-v3.html</ref><br />
<br />
===List of games that can take advantage of overclocking===<br />
* ''A Bug's Life''<br />
* ''Aidyn Chronicles - The First Mage''<br />
* ''Armorines - Project S.W.A.R.M.''<br />
* ''Big Mountain 2000''<br />
* ''Carmageddon''<br />
* ''Conker's Bad Fur Day''<br />
* ''Destruction Derby 64''<br />
* ''Disney's Donald Duck - Goin' Quackers / Donald Duck - Quack Attack''<br />
* ''Duck Dodgers Starring Daffy Duck / Looney Toons - Duck Dodgers''<br />
* ''Earthworm Jim 3D''<br />
* ''Extreme-G''<br />
* ''Extreme-G XG2''<br />
* ''F1 Racing Championship''<br />
* ''F-1 Pole Position 64''<br />
* ''Gex 3 - Deep Cover Gecko''<br />
* ''GoldenEye 007''<br />
* ''Hot Wheels Turbo Racing''<br />
* ''Human Grand Prix - New Generation''<br />
* ''Jet Force Gemini / Star Twins''<br />
* ''Jeremy McGrath Supercross 2000''<br />
* ''Kobe Bryant's NBA Courtside''<br />
* ''Madden Football 64''<br />
* ''Madden NFL 99-2002''<br />
* ''Mario Kart 64 (Multiplayer and some tracks only)''<br />
* ''Milo's Astro Lanes''<br />
* ''Monaco Grand Prix - Racing Simulation 2''<br />
* ''Monster Truck Madness 64''<br />
* ''NASCAR 99/2000''<br />
* ''NBA In the Zone 98 / NBA Pro 98''<br />
* ''Off Road Challenge''<br />
* ''Perfect Dark''<br />
* ''Quake II''<br />
* ''Racing Simulation 2''<br />
* ''Rakuga Kids''<br />
* ''Rayman 2 - The Great Escape''<br />
* ''Roadsters Trophy''<br />
* ''San Francisco Rush - Extreme Racing (Multiplayer only)''<br />
* ''San Francisco Rush 2049 (Multiplayer only)''<br />
* ''South Park Rally''<br />
* ''StarCraft 64''<br />
* ''Starshot - Space Circus Fever''<br />
* ''Super Robot Spirits''<br />
* ''Taz Express''<br />
* ''The New Tetris''<br />
* ''Tom Clancy's Rainbow Six''<br />
* ''Tonic Trouble''<br />
* ''Toy Story 2''<br />
* ''Transformers - Beast Wars Transmetal''<br />
* ''Turok 2 - Seeds of Evil / Violence Killer - Turok New Generation''<br />
* ''V-Rally Edition 99''<br />
* ''WCW vs. nWo - World Tour''<br />
* ''World Cup 98''<br />
<br />
==GameCube/Wii==<br />
[[Dolphin]] supports overclocking and underclocking the CPU. Overclocking can remove slowdown from games that have them, pushing them closer to their actual target frame rate. It causes several issues with many games, so don't expect it to be a perfect solution.<br />
<br />
Dolphin used to have a VBeam Speed Hack that doubled GPU clock rate. This has since been removed, as the developers found that it didn't really help in many cases.<br />
<br />
==PlayStation==<br />
On real hardware, overclocking is possible using [http://djky2k3.tripod.com/psx_oc.html this modification].<br />
<br />
On emulators, [[Duckstation]] allows you to overclock the CPU up to 1000% or 10x. [https://github.com/SonofUgly/PCSX-Reloaded/releases This modified build] of [[PCSX-Reloaded|PCSX-R]] as well as [http://ngemu.com/threads/pcsxr-pgxp.186369/ this fork] allow for overclocking, though most games will break past 1.5x clock speed. Recent builds of Beetle PSX (the libretro fork of Mednafen's PS1 core) also support overclocking, by way of removing timing penalties instead of increasing clock speed. EPSXe also natively supports overclocking up to 4x. Hydro Thunder benefits a lot from it, running at a constant 30 FPS without any other issues.<br />
<br />
==PS2==<br />
On original model PS2s, you can overclock by a small amount without too much problem, but the biggest issue will be sped-up audio. Slim model PS2s use the GPU's clock rate as a base for the CPU (multiplying the GPU's clock by 2), so overclocking the CPU will also overclock the GPU resulting in many visual problems.<ref name="PS2OC">http://nfggames.com/forum2/index.php?topic=2220.0</ref><br />
<br />
All recent builds of [[PCSX2]] have a speed hack that allows you to increase the EE cycle-rate without having any effect on the audio, although it does still break a few games most of them run fine and with less slowdown. The emulator also has a speed hack called VU Cycle Stealing, which allows for increased GPU performance at the cost of CPU cycles. It gives an incorrect FPS readout, though.<br />
<br />
==PSP==<br />
[[PPSSPP]] allows over/underclocking of the main CPU. Due to Sony underclocking the CPU to 222 MHz then removing the underclock in a later firmware update to allow it to run at 333 MHz<ref>https://en.wikipedia.org/wiki/PlayStation_Portable_hardware#Technical_specifications</ref> (and thus not having games closely tied to clock rate), overclocking the system (and emulating an overclocked system) results to next to no ill effects.<br />
<br />
==Neo Geo==<br />
[[FinalBurn Alpha]] allows for overclocking of Neo Geo games. MAMEUIFX (aka MAME32FX) also allows for overclocking.<ref>http://mame32fx.altervista.org/home.htm</ref> All Neo Geo should run at full speed when overclocked.<br />
<br />
==Sega Genesis==<br />
The original hardware can be overclocked leading to faster/smoother gameplay.<ref>http://www.youtube.com/watch?v=SVrElANZg2M</ref><br />
<br />
Most Genesis emulators don't allow overclocking. The [[Genesis Plus GX]] developer, for instance, says that implementing overclocking is "not easy to add without potentially break other things. <ref>https://code.google.com/p/genplus-gx/issues/detail?id=223</ref><br />
<br />
[http://aamirm.hacking-cult.org/www/regen.html Regen] allows overclocking in the dev build version.<ref>http://segaretro.org/Regen</ref> Games with sprite flicker, like Altered Beast, and games with some slowdown, like Rambo III or Mega Man: The Wily Wars, play perfectly with Regen's "Overclock M68000" setting at 732 (1.5x original speed). The game speed and audio are unaffected by overclocking.<br />
<br />
BlastEm and HazeMD also allow for overclocking but neither are really recommended for normal usage.<br />
<br />
==3DO==<br />
[[Phoenix (emulator)|Phoenix]] and standalone Windows version of [[4DO]] allows up to 4.0/400% of the original 3DO clock speed, making some low frame rate titles such as [[wikipedia:Doctor_Hauzer|Doctor Hauzer]] and [[wikipedia:Killing_Time_(video_game)|Killing Time]] more playable. Also possible to overclock CPU in [[libretro]] version of [[4DO]]<ref>https://docs.libretro.com/library/opera/#core-options</ref> in options in core's quick menu after game launch, but only to 2.0x speed, that still may seem slow.<br />
<br />
The possibility of this function to break games (like incorrect physic and unplayable speed) is unknown.<br />
<br />
==References==<br />
{{Reflist}}<br />
<br />
[[Category:FAQs]]</div>Intrusohttps://emulation.gametechwiki.com/index.php?title=Compatibility_layers&diff=45833Compatibility layers2022-03-19T15:12:43Z<p>Intruso: /* Compatibility layers */ removing the otdvm/winevdm entry, I didn't notice it was already on the table as wineVDM</p>
<hr />
<div>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.<br />
<br />
==Compatibility layers==<br />
{| class="wikitable" style="text-align:center;"<br />
|-<br />
! scope="col"|Name<br />
! scope="col"|Operating System(s)<br />
! scope="col"|Latest Version<br />
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr><br />
! scope="col"|Active<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
! scope="col"|Runs the following software<br />
|-<br />
!colspan="7"|PC / x86<br />
|-<br />
|[[Wine]]<br />
|align=left|{{Icon|Linux|macOS|FreeBSD}}<br />
|[https://wiki.winehq.org/Download {{WineVer}} <br />(Dev: {{WineDevVer}})]<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|Windows applications and games<br />
|-<br />
|[[Proton]]<br />
|align=left|{{Icon|Linux}}<br />
|[https://store.steampowered.com/about/ {{ProtonVer}}]<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|Windows games<br />
|-<br />
|[[TeknoParrot]]<br />
|align=left|{{Icon|Windows}}<br />
|[https://teknoparrot.com/download {{TeknoVer}}]<br />
|{{✗}} ||{{✓}} ||{{✓}}<br />
|PC-based arcade games<br />
|-<br />
|CrossOver<br />
|align=left|{{Icon|Linux|macOS|ChromeOS}}<br />
|[https://www.codeweavers.com/products 21.1.0]<br />
|{{✗}} ||{{✓}} ||{{✓}}<br />
|Windows applications and games<br />
|-<br />
|[[Anbox]]<br />
|align=left|{{Icon|Linux}}<br />
|[https://docs.anbox.io/userguide/install.html git]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|Android software<br />
|-<br />
|[[Darling]]<br />
|align=left|{{Icon|Linux}}<br />
|[https://github.com/darlinghq/darling git]<br />
|{{✓}} ||{{✓}} ||{{✗}} <small>(WIP)</small><br />
|macOS software<br />
|-<br />
|[[WineVDM]]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/otya128/winevdm/releases git]<br />[https://ci.appveyor.com/project/otya128/winevdm/ Dev]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|16-bit Windows apps and games<br />
|-<br />
|[[Wineskin]]<br />
|align=left|{{Icon|macOS}}<br />
|[http://wineskin.urgesoftware.com/tiki-index.php?page=Downloads 1.7]<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|Windows applications and games<br />
|-<br />
|WineBottler<br />
|align=left|{{Icon|macOS}}<br />
|[https://winebottler.kronenberg.org/ 4.0.1.1 Dev]<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|Windows applications and games<br />
|-<br />
|[[WoW]]<br />
|align=left|{{Icon|Windows}}<br />
|?<br />
|{{✗}} ||{{✗}} ||{{✗}}<br />
|Windows 9x apps and games<br />
|-<br />
|[[Win3mu]]<br />
|align=left|{{Icon|Windows}}<br />
|?<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|Windows 3.x apps and games<br />
|-<br />
|[[NTVDMx64]]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/leecher1337/ntvdmx64 git]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|DOS applications and games<br />
|-<br />
|[[Ardi Executor]]<br />
|align=left|{{Icon|Windows|Linux|DOS}}<br />
|[https://web.archive.org/web/20080404193445/http://www.ardi.com/ardi.php 2.1.17]<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|Classic Mac OS software up to System 6<br />
|-<br />
|[http://dosemu.sourceforge.net/ DOSEmu]<br />
|align=left|{{Icon|Linux}}<br />
|[https://sourceforge.net/projects/dosemu/files/ 1.4.0]<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|DOS software<br />
|-<br />
|[http://dosemu2.github.io/dosemu2/ DOSEmu2]<br />
|align=left|{{Icon|Linux}}<br />
|[https://github.com/dosemu2/dosemu2 git]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|DOS software<br />
|-<br />
!colspan="7"|Mobile / ARM<br />
|-<br />
|[https://box86.org/ Box86]<br />
|align=left|{{Icon|LiA|Android|Pandora|Pyra}}<br />
|[https://github.com/ptitSeb/box86 git]<br />
|{{✓}} ||{{✓}} ||{{TBD}}<br />
|x86 Linux programs<br />
|-<br />
|[[Wine]]<br />
|align=left|{{Icon|Android}}<br />
|[https://wiki.winehq.org/Download {{WineDevVer}}]<br />
|{{✓}} ||{{✓}} ||{{✗}} <small>(WIP)</small><br />
|Windows applications and games<br />
|-<br />
|[https://github.com/AndreRH/hangover Hangover]<br />
|align=left|{{Icon|Android|LinuxARM}}<br />
|[https://github.com/AndreRH/hangover/releases git]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|Windows applications and games<br />
|-<br />
|[[Anbox]]<br />
|align=left|{{Icon|LinuxARM}}<br />
|[https://docs.anbox.io/userguide/install.html git]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|Android software<br />
|-<br />
|[[FEX-Emu]]<br />
|align=left|{{Icon|LinuxARM}}<br />
|[https://github.com/FEX-Emu/FEX git]<br />
|{{TBD}} ||{{✓}} ||{{TBD}}<br />
|x86 and X86-64 Linux programs<br />
|-<br />
!colspan="9"|Console<br />
|-<br />
|[[Nintendont]]<br />
|align=left|{{Icon|Wii|WiiU}}<br />
|[https://github.com/FIX94/Nintendont 2021-07-12]<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|GameCube games<br />
|}<br />
<br />
===Comparisons===<br />
*[[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]].<br />
**[[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.<br />
**[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. <br />
**[[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. <br />
* [[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.<br />
* [[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.<br />
<br />
==Wrappers==<br />
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.<br />
<br />
{{Main|Wrappers}}<br />
<br />
[[Category:Compatibility layers]]<br />
[[Category:Not really emulators]]</div>Intrusohttps://emulation.gametechwiki.com/index.php?title=Wrappers&diff=45832Wrappers2022-03-19T15:08:38Z<p>Intruso: /* Comparisons */</p>
<hr />
<div>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.<br />
<br />
==90's APIs==<br />
During the 90s, many [[Intel CPUs|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.<br />
<br />
Even games using older versions of DirectDraw or Direct3D can benefit from wrappers, since those interfaces may not even work properly on newer systems. Wrappers can even enable various overrides and enhancements, such as [https://reshade.me/ ReShade].<br />
<br />
{| class="wikitable sortable" style="text-align:center;"<br />
|-<br />
! scope="col"|Name<br />
! scope="col"|OS<br />
! scope="col"|Latest Version<br />
! scope="col"|Translates<br />
! scope="col"|Into<br />
! scope="col"|<abbr title="Free and Open-Source Software">FOSS</abbr><br />
! scope="col"|Active<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
|-<br />
|[http://www.zeus-software.com/downloads/nglide nGlide]<br />
|align=left|{{Icon|Windows}}<br />
|[http://www.zeus-software.com/downloads/nglide 2.10]<br />
|Glide<br />
|Vulkan, Direct3D 9<br />
|{{✗}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[http://dege.freeweb.hu/ dgVoodoo2]<br />
|align=left|{{Icon|Windows}}<br />
|[http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2/ {{DgVoodoo2Ver}}]<br />
|Glide, DirectX 1-9<br />
|Direct3D 11, Direct3D 12<br />
|{{✗}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[[Wine|WineD3D]]<br />
|align=left|{{Icon|Windows|Linux|macOS}}<br />
|[https://wiki.winehq.org/Download {{WineVer}}] <small>(Linux, macOS)</small><br/>[https://fdossena.com/?p=wined3d/index.frag {{WineDevVer}}] <small>(Windows)</small><br />
|DirectX 1-11<br />
|Vulkan, OpenGL<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://www.dxgl.org/ DXGL]<br />
|align=left|{{Icon|Windows}}<br />
|[https://www.dxgl.org/downloads/ {{DXGLVer}}]<br />
|DirectX 1-7<br />
|OpenGL<br />
|{{✓}} ||{{✓}} ||{{TBD}}<br />
|-<br />
|[http://www.glidos.net/ Glidos]<br />
|align=left|{{Icon|Windows}}<br />
|[http://www.glidos.net/download.html 1.53b]<br />
|Glide <small>(DOS)</small><br />
|?<br />
|{{✗}} ||{{✗}} ||{{TBD}}<br />
|-<br />
|[http://openglide.sourceforge.net/ OpenGlide]<br />
|align=left|{{Icon|Windows}}<br />
|[https://sourceforge.net/projects/openglide/files/latest/download 0.09 Alpha]<br />
|Glide<br />
|OpenGL<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|-<br />
|[https://sourceforge.net/projects/psvoodoo/ psVoodoo]<br />
|align=left|{{Icon|Windows}}<br />
|[https://sourceforge.net/projects/psvoodoo/files/latest/download 0.13]<br />
|Glide<br />
|Direct3D 9<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|-<br />
|[https://github.com/ata4/glrage glrage]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/ata4/glrage/releases/latest r10]<br />
|ATI3DCIF, DirectDraw 2<br />
|OpenGL 3.3<br />
|{{✓}} ||{{✗}} ||{{✓}}<br />
|-<br />
|}<br />
<br />
===Comparisons===<br />
;nGlide<br />
:Currently the best Glide wrapper, supporting all three public versions (2.11, 2.60 and 3.10) but it's closed-source. It originally only used Direct3D 9 until Vulkan output was added in 2.0, allowing it to work under Linux using [[Wine]] 2.10.0 and newer.<ref name="nglidevulkan">http://www.zeus-software.com/forum/viewtopic.php?f=2&t=2044</ref> nGlide also supports high resolution modes. See the [http://www.zeus-software.com/downloads/nglide/compatibility compatibility list].<br />
<br />
;dgVoodoo2<br />
:Targets Glide 2.11, 2.45, 3.10, 3.1 Napalm, all versions of DirectDraw and Direct3D up to version 7, Direct3D 8.1, and Direct3D 9. Outputs Direct3D 11 with different device types as wrapping output such as hardware or software rendering.<br />
<br />
;[[Wine|WineD3D]]<br />
:Wine's internal wrapper for Direct3D 1-11 that targets OpenGL. It works pretty well for running older Direct3D games, though it does not come with a Glide implementation of its own. A custom build incorporating Vulkan support is available for Windows [https://fdossena.com/?p=wined3d/index.frag here].<br />
<br />
;DXGL<br />
:Reimplements DirectDraw using OpenGL. It is considered alpha software despite many applications working.<br />
<br />
;glrage<br />
:Reimplements ATI3DCIF, an API from ATI used in a handful of games, and DirectDraw 2 over OpenGL. Originally designed specifically for Tomb Raider 1/UB patched with ATIRage patch, currently also supports Assault Rigs and Wipeout. Additionally, it applies some improvements, fixes and QoL changes to the games.<br />
<br />
==2000's and later APIs==<br />
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].<br />
<br />
{| class="wikitable sortable" style="text-align:center;"<br />
|-<br />
! scope="col"|Name<br />
! scope="col"|OS<br />
! scope="col"|Latest Version<br />
! scope="col"|Translates<br />
! scope="col"|Into<br />
! scope="col"|<abbr title="Free and Open-Source Software">FOSS</abbr><br />
! scope="col"|Active<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
|-<br />
|[https://github.com/doitsujin/dxvk DXVK]<br />
|align=left|{{Icon|Linux}}<br />
|[https://github.com/doitsujin/dxvk/releases {{DXVKVer}}]<br />
|Direct3D 9-11<br />
|Vulkan<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://github.com/HansKristian-Work/vkd3d-proton VKD3D-Proton]<br />
|align=left|{{Icon|Linux}}<br />
|[https://github.com/HansKristian-Work/vkd3d-proton/releases 2.6]<br />
|Direct3D 12<br />
|Vulkan<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|vkd3d<br />
|align=left|{{Icon|Linux}}<br />
|[https://source.winehq.org/git/vkd3d.git/ {{Vkd3dVer}}]<br />
|Direct3D 12<br />
|Vulkan<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|-<br />
|[[Wine|WineD3D]]<br />
|align=left|{{Icon|Windows|Linux|macOS}}<br />
|[https://wiki.winehq.org/Download {{WineVer}}] <small>(Linux, macOS)</small><br/>[https://fdossena.com/?p=wined3d/index.frag {{WineDevVer}}] <small>(Windows)</small><br />
|Direct3D 1-11<br />
|OpenGL<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://github.com/KhronosGroup/MoltenVK MoltenVK]<br />
|align=left|{{Icon|macOS|iOS}}<br />
|[https://github.com/KhronosGroup/MoltenVK/releases {{MoltenVKVer}}]<br />
|Vulkan<br />
|Metal<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://github.com/iXit/wine-nine-standalone Gallium Nine]<br />
|align=left|{{Icon|Linux}}<br />
|[https://github.com/iXit/wine-nine-standalone/releases v0.8]<br />
|Direct3D 9<br />
|Gallium<br />
|{{✓}} ||{{✓}} ||{{~}} <small>WIP</small><br />
|-<br />
|[https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/docs/drivers/zink.rst Zink]<br />
|align=left|{{Icon|Linux}}<br />
|[https://gitlab.freedesktop.org/mesa/mesa/tree/zink git]<br />
|OpenGL<br />
|Vulkan<br />
|{{✓}} ||{{✓}} ||{{TBD}}<br />
|-<br />
|[https://github.com/crosire/d3d8to9/ d3d8to9]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/crosire/d3d8to9/releases git]<br />
|Direct3D 8<br />
|Direct3D 9<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|-<br />
|}<br />
<br />
===Comparisons===<br />
;DXVK<br />
:Was originally designed to accelerate support for Direct3D 11 games running under [[Wine]] since a native implementation seemed unlikely. Today it is bundled into [[Proton]]. Later merged D9VK to add Direct3D 9 support.<br />
<br />
;WineD3D<br />
:Wine's internal wrapper for Direct3D 1-11 that targets OpenGL. For newer APIs it has more bugs than DXVK. A custom build incorporating Vulkan support is available for Windows [https://fdossena.com/?p=wined3d/index.frag here].<br />
<br />
;MoltenVK<br />
:Developed by the Brenwill Workshop under the Khronos Group, it reimplements Vulkan for Metal. Emulators like [[Dolphin]] and [[DuckStation]] use MoltenVK instead of a native Metal renderer to support Apple devices.<br />
<br />
;vkd3d<br />
:Wine's work-in-progress Direct3D 12 to Vulkan wrapper.<br />
<br />
;VKD3D-Proton<br />
:A fork of VKD3D funded by Valve, which is more ahead and experimentally supports DXR via VK_KHR_ray_tracing.<br />
<br />
;Gallium Nine<br />
:An implementation of the Direct3D 9 library on top of the Gallium driver for Linux. By using calls native to Linux, applications running under Wine run "at near-native speeds" according to the maintainers. The caveat is that this only works on Mesa, not NVIDIA's proprietary driver.<br />
<br />
;Zink<br />
:A "just-in-case" implementation of OpenGL on top of Vulkan first introduced in 2018 by Collabora for the Mesa driver.<ref>Erik Faye-Lund (October 31, 2018). [https://www.collabora.com/news-and-blog/blog/2018/10/31/introducing-zink-opengl-implementation-vulkan/ Introducing Zink, an OpenGL implementation on top of Vulkan]. Collabora.</ref><br />
<br />
==See also==<br />
* [[Compatibility layers]] - Allows software written for one platform to run on another.<br />
<br />
==References==<br />
{{Reflist}}<br />
<br />
==External links==<br />
* [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)<br />
<br />
[[Category:Not really emulators]]</div>Intrusohttps://emulation.gametechwiki.com/index.php?title=Wrappers&diff=45831Wrappers2022-03-19T15:07:38Z<p>Intruso: added glrage</p>
<hr />
<div>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.<br />
<br />
==90's APIs==<br />
During the 90s, many [[Intel CPUs|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.<br />
<br />
Even games using older versions of DirectDraw or Direct3D can benefit from wrappers, since those interfaces may not even work properly on newer systems. Wrappers can even enable various overrides and enhancements, such as [https://reshade.me/ ReShade].<br />
<br />
{| class="wikitable sortable" style="text-align:center;"<br />
|-<br />
! scope="col"|Name<br />
! scope="col"|OS<br />
! scope="col"|Latest Version<br />
! scope="col"|Translates<br />
! scope="col"|Into<br />
! scope="col"|<abbr title="Free and Open-Source Software">FOSS</abbr><br />
! scope="col"|Active<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
|-<br />
|[http://www.zeus-software.com/downloads/nglide nGlide]<br />
|align=left|{{Icon|Windows}}<br />
|[http://www.zeus-software.com/downloads/nglide 2.10]<br />
|Glide<br />
|Vulkan, Direct3D 9<br />
|{{✗}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[http://dege.freeweb.hu/ dgVoodoo2]<br />
|align=left|{{Icon|Windows}}<br />
|[http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2/ {{DgVoodoo2Ver}}]<br />
|Glide, DirectX 1-9<br />
|Direct3D 11, Direct3D 12<br />
|{{✗}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[[Wine|WineD3D]]<br />
|align=left|{{Icon|Windows|Linux|macOS}}<br />
|[https://wiki.winehq.org/Download {{WineVer}}] <small>(Linux, macOS)</small><br/>[https://fdossena.com/?p=wined3d/index.frag {{WineDevVer}}] <small>(Windows)</small><br />
|DirectX 1-11<br />
|Vulkan, OpenGL<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://www.dxgl.org/ DXGL]<br />
|align=left|{{Icon|Windows}}<br />
|[https://www.dxgl.org/downloads/ {{DXGLVer}}]<br />
|DirectX 1-7<br />
|OpenGL<br />
|{{✓}} ||{{✓}} ||{{TBD}}<br />
|-<br />
|[http://www.glidos.net/ Glidos]<br />
|align=left|{{Icon|Windows}}<br />
|[http://www.glidos.net/download.html 1.53b]<br />
|Glide <small>(DOS)</small><br />
|?<br />
|{{✗}} ||{{✗}} ||{{TBD}}<br />
|-<br />
|[http://openglide.sourceforge.net/ OpenGlide]<br />
|align=left|{{Icon|Windows}}<br />
|[https://sourceforge.net/projects/openglide/files/latest/download 0.09 Alpha]<br />
|Glide<br />
|OpenGL<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|-<br />
|[https://sourceforge.net/projects/psvoodoo/ psVoodoo]<br />
|align=left|{{Icon|Windows}}<br />
|[https://sourceforge.net/projects/psvoodoo/files/latest/download 0.13]<br />
|Glide<br />
|Direct3D 9<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|-<br />
|[https://github.com/ata4/glrage glrage]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/ata4/glrage/releases/latest r10]<br />
|ATI3DCIF, DirectDraw 2<br />
|OpenGL 3.3<br />
|{{✓}} ||{{✗}} ||{{✓}}<br />
|-<br />
|}<br />
<br />
===Comparisons===<br />
;nGlide<br />
:Currently the best Glide wrapper, supporting all three public versions (2.11, 2.60 and 3.10) but it's closed-source. It originally only used Direct3D 9 until Vulkan output was added in 2.0, allowing it to work under Linux using [[Wine]] 2.10.0 and newer.<ref name="nglidevulkan">http://www.zeus-software.com/forum/viewtopic.php?f=2&t=2044</ref> nGlide also supports high resolution modes. See the [http://www.zeus-software.com/downloads/nglide/compatibility compatibility list].<br />
<br />
;dgVoodoo2<br />
:Targets Glide 2.11, 2.45, 3.10, 3.1 Napalm, all versions of DirectDraw and Direct3D up to version 7, Direct3D 8.1, and Direct3D 9. Outputs Direct3D 11 with different device types as wrapping output such as hardware or software rendering.<br />
<br />
;[[Wine|WineD3D]]<br />
:Wine's internal wrapper for Direct3D 1-11 that targets OpenGL. It works pretty well for running older Direct3D games, though it does not come with a Glide implementation of its own. A custom build incorporating Vulkan support is available for Windows [https://fdossena.com/?p=wined3d/index.frag here].<br />
<br />
;DXGL<br />
:Reimplements DirectDraw using OpenGL. It is considered alpha software despite many applications working.<br />
<br />
;glrage<br />
Reimplements ATI3DCIF, an API from ATI used in a handful of games, and DirectDraw 2 over OpenGL. Originally designed specifically for Tomb Raider 1/UB patched with ATIRage patch, currently also supports Assault Rigs and Wipeout. Additionally, it applies some improvements, fixes and QoL changes to the games.<br />
<br />
==2000's and later APIs==<br />
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].<br />
<br />
{| class="wikitable sortable" style="text-align:center;"<br />
|-<br />
! scope="col"|Name<br />
! scope="col"|OS<br />
! scope="col"|Latest Version<br />
! scope="col"|Translates<br />
! scope="col"|Into<br />
! scope="col"|<abbr title="Free and Open-Source Software">FOSS</abbr><br />
! scope="col"|Active<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
|-<br />
|[https://github.com/doitsujin/dxvk DXVK]<br />
|align=left|{{Icon|Linux}}<br />
|[https://github.com/doitsujin/dxvk/releases {{DXVKVer}}]<br />
|Direct3D 9-11<br />
|Vulkan<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://github.com/HansKristian-Work/vkd3d-proton VKD3D-Proton]<br />
|align=left|{{Icon|Linux}}<br />
|[https://github.com/HansKristian-Work/vkd3d-proton/releases 2.6]<br />
|Direct3D 12<br />
|Vulkan<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|vkd3d<br />
|align=left|{{Icon|Linux}}<br />
|[https://source.winehq.org/git/vkd3d.git/ {{Vkd3dVer}}]<br />
|Direct3D 12<br />
|Vulkan<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|-<br />
|[[Wine|WineD3D]]<br />
|align=left|{{Icon|Windows|Linux|macOS}}<br />
|[https://wiki.winehq.org/Download {{WineVer}}] <small>(Linux, macOS)</small><br/>[https://fdossena.com/?p=wined3d/index.frag {{WineDevVer}}] <small>(Windows)</small><br />
|Direct3D 1-11<br />
|OpenGL<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://github.com/KhronosGroup/MoltenVK MoltenVK]<br />
|align=left|{{Icon|macOS|iOS}}<br />
|[https://github.com/KhronosGroup/MoltenVK/releases {{MoltenVKVer}}]<br />
|Vulkan<br />
|Metal<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|-<br />
|[https://github.com/iXit/wine-nine-standalone Gallium Nine]<br />
|align=left|{{Icon|Linux}}<br />
|[https://github.com/iXit/wine-nine-standalone/releases v0.8]<br />
|Direct3D 9<br />
|Gallium<br />
|{{✓}} ||{{✓}} ||{{~}} <small>WIP</small><br />
|-<br />
|[https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/docs/drivers/zink.rst Zink]<br />
|align=left|{{Icon|Linux}}<br />
|[https://gitlab.freedesktop.org/mesa/mesa/tree/zink git]<br />
|OpenGL<br />
|Vulkan<br />
|{{✓}} ||{{✓}} ||{{TBD}}<br />
|-<br />
|[https://github.com/crosire/d3d8to9/ d3d8to9]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/crosire/d3d8to9/releases git]<br />
|Direct3D 8<br />
|Direct3D 9<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|-<br />
|}<br />
<br />
===Comparisons===<br />
;DXVK<br />
:Was originally designed to accelerate support for Direct3D 11 games running under [[Wine]] since a native implementation seemed unlikely. Today it is bundled into [[Proton]]. Later merged D9VK to add Direct3D 9 support.<br />
<br />
;WineD3D<br />
:Wine's internal wrapper for Direct3D 1-11 that targets OpenGL. For newer APIs it has more bugs than DXVK. A custom build incorporating Vulkan support is available for Windows [https://fdossena.com/?p=wined3d/index.frag here].<br />
<br />
;MoltenVK<br />
:Developed by the Brenwill Workshop under the Khronos Group, it reimplements Vulkan for Metal. Emulators like [[Dolphin]] and [[DuckStation]] use MoltenVK instead of a native Metal renderer to support Apple devices.<br />
<br />
;vkd3d<br />
:Wine's work-in-progress Direct3D 12 to Vulkan wrapper.<br />
<br />
;VKD3D-Proton<br />
:A fork of VKD3D funded by Valve, which is more ahead and experimentally supports DXR via VK_KHR_ray_tracing.<br />
<br />
;Gallium Nine<br />
:An implementation of the Direct3D 9 library on top of the Gallium driver for Linux. By using calls native to Linux, applications running under Wine run "at near-native speeds" according to the maintainers. The caveat is that this only works on Mesa, not NVIDIA's proprietary driver.<br />
<br />
;Zink<br />
:A "just-in-case" implementation of OpenGL on top of Vulkan first introduced in 2018 by Collabora for the Mesa driver.<ref>Erik Faye-Lund (October 31, 2018). [https://www.collabora.com/news-and-blog/blog/2018/10/31/introducing-zink-opengl-implementation-vulkan/ Introducing Zink, an OpenGL implementation on top of Vulkan]. Collabora.</ref><br />
<br />
==See also==<br />
* [[Compatibility layers]] - Allows software written for one platform to run on another.<br />
<br />
==References==<br />
{{Reflist}}<br />
<br />
==External links==<br />
* [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)<br />
<br />
[[Category:Not really emulators]]</div>Intrusohttps://emulation.gametechwiki.com/index.php?title=Compatibility_layers&diff=45830Compatibility layers2022-03-19T13:03:06Z<p>Intruso: /* Compatibility layers */</p>
<hr />
<div>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.<br />
<br />
==Compatibility layers==<br />
{| class="wikitable" style="text-align:center;"<br />
|-<br />
! scope="col"|Name<br />
! scope="col"|Operating System(s)<br />
! scope="col"|Latest Version<br />
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr><br />
! scope="col"|Active<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
! scope="col"|Runs the following software<br />
|-<br />
!colspan="7"|PC / x86<br />
|-<br />
|[[Wine]]<br />
|align=left|{{Icon|Linux|macOS|FreeBSD}}<br />
|[https://wiki.winehq.org/Download {{WineVer}} <br />(Dev: {{WineDevVer}})]<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|Windows applications and games<br />
|-<br />
|[[Proton]]<br />
|align=left|{{Icon|Linux}}<br />
|[https://store.steampowered.com/about/ {{ProtonVer}}]<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|Windows games<br />
|-<br />
|[[TeknoParrot]]<br />
|align=left|{{Icon|Windows}}<br />
|[https://teknoparrot.com/download {{TeknoVer}}]<br />
|{{✗}} ||{{✓}} ||{{✓}}<br />
|PC-based arcade games<br />
|-<br />
|CrossOver<br />
|align=left|{{Icon|Linux|macOS|ChromeOS}}<br />
|[https://www.codeweavers.com/products 21.1.0]<br />
|{{✗}} ||{{✓}} ||{{✓}}<br />
|Windows applications and games<br />
|-<br />
|[[Anbox]]<br />
|align=left|{{Icon|Linux}}<br />
|[https://docs.anbox.io/userguide/install.html git]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|Android software<br />
|-<br />
|[[Darling]]<br />
|align=left|{{Icon|Linux}}<br />
|[https://github.com/darlinghq/darling git]<br />
|{{✓}} ||{{✓}} ||{{✗}} <small>(WIP)</small><br />
|macOS software<br />
|-<br />
|[[WineVDM]]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/otya128/winevdm/releases git]<br />[https://ci.appveyor.com/project/otya128/winevdm/ Dev]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|16-bit Windows apps and games<br />
|-<br />
|[[Wineskin]]<br />
|align=left|{{Icon|macOS}}<br />
|[http://wineskin.urgesoftware.com/tiki-index.php?page=Downloads 1.7]<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|Windows applications and games<br />
|-<br />
|WineBottler<br />
|align=left|{{Icon|macOS}}<br />
|[https://winebottler.kronenberg.org/ 4.0.1.1 Dev]<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|Windows applications and games<br />
|-<br />
|[[WoW]]<br />
|align=left|{{Icon|Windows}}<br />
|?<br />
|{{✗}} ||{{✗}} ||{{✗}}<br />
|Windows 9x apps and games<br />
|-<br />
|[[Win3mu]]<br />
|align=left|{{Icon|Windows}}<br />
|?<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|Windows 3.x apps and games<br />
|-<br />
|[[Winevdm/Otvdm]]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/otya128/winevdm/releases/latest 0.8.1]<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|Runs win16 apps (Windows 1.x, 2.x & 3.x)<br />
|-<br />
|[[NTVDMx64]]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/leecher1337/ntvdmx64 git]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|DOS applications and games<br />
|-<br />
|[[Ardi Executor]]<br />
|align=left|{{Icon|Windows|Linux|DOS}}<br />
|[https://web.archive.org/web/20080404193445/http://www.ardi.com/ardi.php 2.1.17]<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|Classic Mac OS software up to System 6<br />
|-<br />
|[http://dosemu.sourceforge.net/ DOSEmu]<br />
|align=left|{{Icon|Linux}}<br />
|[https://sourceforge.net/projects/dosemu/files/ 1.4.0]<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|DOS software<br />
|-<br />
|[http://dosemu2.github.io/dosemu2/ DOSEmu2]<br />
|align=left|{{Icon|Linux}}<br />
|[https://github.com/dosemu2/dosemu2 git]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|DOS software<br />
|-<br />
!colspan="7"|Mobile / ARM<br />
|-<br />
|[https://box86.org/ Box86]<br />
|align=left|{{Icon|LiA|Android|Pandora|Pyra}}<br />
|[https://github.com/ptitSeb/box86 git]<br />
|{{✓}} ||{{✓}} ||{{TBD}}<br />
|x86 Linux programs<br />
|-<br />
|[[Wine]]<br />
|align=left|{{Icon|Android}}<br />
|[https://wiki.winehq.org/Download {{WineDevVer}}]<br />
|{{✓}} ||{{✓}} ||{{✗}} <small>(WIP)</small><br />
|Windows applications and games<br />
|-<br />
|[https://github.com/AndreRH/hangover Hangover]<br />
|align=left|{{Icon|Android|LinuxARM}}<br />
|[https://github.com/AndreRH/hangover/releases git]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|Windows applications and games<br />
|-<br />
|[[Anbox]]<br />
|align=left|{{Icon|LinuxARM}}<br />
|[https://docs.anbox.io/userguide/install.html git]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|Android software<br />
|-<br />
|[[FEX-Emu]]<br />
|align=left|{{Icon|LinuxARM}}<br />
|[https://github.com/FEX-Emu/FEX git]<br />
|{{TBD}} ||{{✓}} ||{{TBD}}<br />
|x86 and X86-64 Linux programs<br />
|-<br />
!colspan="9"|Console<br />
|-<br />
|[[Nintendont]]<br />
|align=left|{{Icon|Wii|WiiU}}<br />
|[https://github.com/FIX94/Nintendont 2021-07-12]<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|GameCube games<br />
|}<br />
<br />
===Comparisons===<br />
*[[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]].<br />
**[[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.<br />
**[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. <br />
**[[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. <br />
* [[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.<br />
* [[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.<br />
<br />
==Wrappers==<br />
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.<br />
<br />
{{Main|Wrappers}}<br />
<br />
[[Category:Compatibility layers]]<br />
[[Category:Not really emulators]]</div>Intrusohttps://emulation.gametechwiki.com/index.php?title=Compatibility_layers&diff=45829Compatibility layers2022-03-19T13:02:27Z<p>Intruso: /* Compatibility layers */ adding otdvm/winevdm (it runs win16 apps)</p>
<hr />
<div>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.<br />
<br />
==Compatibility layers==<br />
{| class="wikitable" style="text-align:center;"<br />
|-<br />
! scope="col"|Name<br />
! scope="col"|Operating System(s)<br />
! scope="col"|Latest Version<br />
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr><br />
! scope="col"|Active<br />
! scope="col"|[[Recommended Emulators|Recommended]]<br />
! scope="col"|Runs the following software<br />
|-<br />
!colspan="7"|PC / x86<br />
|-<br />
|[[Wine]]<br />
|align=left|{{Icon|Linux|macOS|FreeBSD}}<br />
|[https://wiki.winehq.org/Download {{WineVer}} <br />(Dev: {{WineDevVer}})]<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|Windows applications and games<br />
|-<br />
|[[Proton]]<br />
|align=left|{{Icon|Linux}}<br />
|[https://store.steampowered.com/about/ {{ProtonVer}}]<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|Windows games<br />
|-<br />
|[[TeknoParrot]]<br />
|align=left|{{Icon|Windows}}<br />
|[https://teknoparrot.com/download {{TeknoVer}}]<br />
|{{✗}} ||{{✓}} ||{{✓}}<br />
|PC-based arcade games<br />
|-<br />
|CrossOver<br />
|align=left|{{Icon|Linux|macOS|ChromeOS}}<br />
|[https://www.codeweavers.com/products 21.1.0]<br />
|{{✗}} ||{{✓}} ||{{✓}}<br />
|Windows applications and games<br />
|-<br />
|[[Anbox]]<br />
|align=left|{{Icon|Linux}}<br />
|[https://docs.anbox.io/userguide/install.html git]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|Android software<br />
|-<br />
|[[Darling]]<br />
|align=left|{{Icon|Linux}}<br />
|[https://github.com/darlinghq/darling git]<br />
|{{✓}} ||{{✓}} ||{{✗}} <small>(WIP)</small><br />
|macOS software<br />
|-<br />
|[[WineVDM]]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/otya128/winevdm/releases git]<br />[https://ci.appveyor.com/project/otya128/winevdm/ Dev]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|16-bit Windows apps and games<br />
|-<br />
|[[Wineskin]]<br />
|align=left|{{Icon|macOS}}<br />
|[http://wineskin.urgesoftware.com/tiki-index.php?page=Downloads 1.7]<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|Windows applications and games<br />
|-<br />
|WineBottler<br />
|align=left|{{Icon|macOS}}<br />
|[https://winebottler.kronenberg.org/ 4.0.1.1 Dev]<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|Windows applications and games<br />
|-<br />
|[[WoW]]<br />
|align=left|{{Icon|Windows}}<br />
|?<br />
|{{✗}} ||{{✗}} ||{{✗}}<br />
|Windows 9x apps and games<br />
|-<br />
|[[Win3mu]]<br />
|align=left|{{Icon|Windows}}<br />
|?<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|Windows 3.x apps and games<br />
|-<br />
|[[Otvdm]]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/otya128/winevdm/releases/latest 0.8.1]<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|Runs win16 apps (Windows 1.x, 2.x & 3.x). It's also known as Winevdm.<br />
|-<br />
|[[NTVDMx64]]<br />
|align=left|{{Icon|Windows}}<br />
|[https://github.com/leecher1337/ntvdmx64 git]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|DOS applications and games<br />
|-<br />
|[[Ardi Executor]]<br />
|align=left|{{Icon|Windows|Linux|DOS}}<br />
|[https://web.archive.org/web/20080404193445/http://www.ardi.com/ardi.php 2.1.17]<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|Classic Mac OS software up to System 6<br />
|-<br />
|[http://dosemu.sourceforge.net/ DOSEmu]<br />
|align=left|{{Icon|Linux}}<br />
|[https://sourceforge.net/projects/dosemu/files/ 1.4.0]<br />
|{{✓}} ||{{✗}} ||{{✗}}<br />
|DOS software<br />
|-<br />
|[http://dosemu2.github.io/dosemu2/ DOSEmu2]<br />
|align=left|{{Icon|Linux}}<br />
|[https://github.com/dosemu2/dosemu2 git]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|DOS software<br />
|-<br />
!colspan="7"|Mobile / ARM<br />
|-<br />
|[https://box86.org/ Box86]<br />
|align=left|{{Icon|LiA|Android|Pandora|Pyra}}<br />
|[https://github.com/ptitSeb/box86 git]<br />
|{{✓}} ||{{✓}} ||{{TBD}}<br />
|x86 Linux programs<br />
|-<br />
|[[Wine]]<br />
|align=left|{{Icon|Android}}<br />
|[https://wiki.winehq.org/Download {{WineDevVer}}]<br />
|{{✓}} ||{{✓}} ||{{✗}} <small>(WIP)</small><br />
|Windows applications and games<br />
|-<br />
|[https://github.com/AndreRH/hangover Hangover]<br />
|align=left|{{Icon|Android|LinuxARM}}<br />
|[https://github.com/AndreRH/hangover/releases git]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|Windows applications and games<br />
|-<br />
|[[Anbox]]<br />
|align=left|{{Icon|LinuxARM}}<br />
|[https://docs.anbox.io/userguide/install.html git]<br />
|{{✓}} ||{{✓}} ||{{✗}}<br />
|Android software<br />
|-<br />
|[[FEX-Emu]]<br />
|align=left|{{Icon|LinuxARM}}<br />
|[https://github.com/FEX-Emu/FEX git]<br />
|{{TBD}} ||{{✓}} ||{{TBD}}<br />
|x86 and X86-64 Linux programs<br />
|-<br />
!colspan="9"|Console<br />
|-<br />
|[[Nintendont]]<br />
|align=left|{{Icon|Wii|WiiU}}<br />
|[https://github.com/FIX94/Nintendont 2021-07-12]<br />
|{{✓}} ||{{✓}} ||{{✓}}<br />
|GameCube games<br />
|}<br />
<br />
===Comparisons===<br />
*[[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]].<br />
**[[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.<br />
**[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. <br />
**[[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. <br />
* [[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.<br />
* [[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.<br />
<br />
==Wrappers==<br />
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.<br />
<br />
{{Main|Wrappers}}<br />
<br />
[[Category:Compatibility layers]]<br />
[[Category:Not really emulators]]</div>Intruso