Difference between pages "Game engine recreations and source ports" and "DeSmuME"

From Emulation General Wiki
(Difference between pages)
Jump to navigation Jump to search
(Multi game engine)
 
m (github link updated)
 
Line 1: Line 1:
Sometimes a full system emulator is overkill. This is especially true when a developer only wants to get one game (or a number of games that use the same engine) working. In that case, reimplementing that game alone would save more time than implementing the platform it runs on. These kinds of projects are common when abandonware has large communities; when the original developer has disbanded and can no longer support or update it, an effort is then made to get it running natively on newer versions of-- and/or entirely different-- operating systems and platforms.
+
{{Infobox emulator
 +
|logo = Desmume.png
 +
|logowidth = 100
 +
|version = {{DeSmuMEVer}}
 +
|active = Yes
 +
|platform = Multi-platform
 +
|target = [[Nintendo DS emulators|Nintendo DS]]
 +
|developer = YopYop156<br/>[http://wiki.desmume.org/index.php?title=DeSmuME:About#DeSmuME_current_team DeSmuME Team]
 +
|website = [https://desmume.org/ DeSmuME.org]
 +
|source = [https://github.com/TASEmulators/desmume GitHub]
 +
|license = GNU GPLv2
 +
}}
  
* When the developer only has a binary to work with (and not the [[source code]]), they recreate the engine rather than port it, hence the term '''[[wikipedia:Game engine recreation|game engine recreations]]''' (or alternatively '''game engine re-implementations'''). How the developers go about this process depends on their philosophy; they may opt to decompile the original executable and have their own program rely on the original until all of its functions have been remade, at which point the original binary is no longer needed. Alternatively, they can be remade based on a clean room design, in which the project implements the abstract features without having to disassemble the original, going by how components are expected to be used rather than how the game uses them. Some engines come about simply because they were inspired by the original game, and the programmer felt confident enough that no reverse engineering was necessary to make an engine that does the same thing.
+
'''DeSmuME''' is an open-source [[Nintendo DS emulators|Nintendo DS emulator]]. It is the most accurate Nintendo DS emulator and is actively developed by the DeSmuME Team. It can be run from the command line directly or as a graphical program.
* In rare cases, games are released as open-source by the publishers themselves, allowing developers to perform a '''source port''' of the code. This skips the step of figuring out how the game works. The most common example that's often used is id Software's release of Doom in 1997. It led to [[wikipedia:List of Doom source ports|so many ports being released]] that the community began to joke about what devices haven't gotten it running yet.
 
  
Some projects are implemented in ways that the original developer did not intend; for example, for a platform other than which publishers marketed it for. And they're not just limited to game engines either; [https://webamp.org/ Webamp] is a JavaScript application that reimplements Winamp in the web browser. These projects are almost always open-source which also allows new programmers to fix bugs that could have been difficult to track down during development (alternatively, the bugs may be emulated to allow old mods to continue to safely exploit them). When most of the effort is on programming, the project will usually require the original game's assets (such as files in the installation directory or ROMs) until those ever get remade. This lets the developers claim they aren't infringing the game's copyrights since the player must obtain the original to use it; if the game is still being sold, this could allow the publisher to even earn revenue from the project.
+
The regular version now allows for increasing internal resolution.
  
For the sake of brevity, most of these projects often refer to themselves under some variety of '''fan remakes'''. The [[#External links|External links]] section has lists for a number of known and available projects.
+
It is also available as a libretro core for [[RetroArch]].
  
==Multi game engine==
+
==Download==
WATERMELON MANGO CHECKMARKS CHECKMATE
+
{| cellpadding="4"
{| class="wikitable" style="text-align:center;"
 
 
|-
 
|-
! scope="col"|Name
+
|align=center|{{Icon|Win-big}}
! scope="col"|Operating System(s)
+
|'''[https://desmume.org/download/ Stable & Nightly releases]'''
! scope="col"|Latest Version
 
! scope="col"|[[libretro|Libretro Core]]
 
! scope="col"|Active
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
! scope="col"|Supported game(s)
 
 
|-
 
|-
!colspan="9"|Action-adventure (3rd-person)
+
|colspan="3"|<hr/>
 
|-
 
|-
|[https://opentomb.github.io/ OpenTomb]
+
|align=center|{{Icon|Win-big}}
|align=left|{{Icon|Windows|Linux|macOS}}
+
|[https://ci.appveyor.com/project/zeromus/desmume/build/artifacts Latest Dev build]<br><small>Requires [https://www.microsoft.com/en-us/download/details.aspx?id=52685  Microsoft Visual C++ Runtime]</small>
|[https://github.com/opentomb/OpenTomb/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Tomb Raider 1–5
 
|-
 
|[http://xproger.info/projects/OpenLara/ OpenLara]<ref group=N>OpenLara was inspired by OpenTomb</ref>
 
|align=left|{{Icon|Windows|Linux|macOS|Android|LinuxARM|3DS|Switch}}
 
|[https://github.com/XProger/OpenLara/releases git]
 
|{{✓}} ||{{✓}} ||{{~}}
 
|Tomb Raider 1–4
 
|-
 
!colspan="9"|Adventure
 
|-
 
|[[ResidualVM]]
 
|Multi-platform
 
|[http://www.residualvm.org/downloads 0.3.1]
 
|{{✗}} ||{{✗}}<ref group=N>ResidualVM has merged with ScummVM</ref> ||{{✓}}
 
|3D adventure games (Grim Fandango, Escape from Monkey Island, Myst III: Exile & The Longest Journey)
 
|-
 
|[[ScummVM]]
 
|Multi-platform
 
|[https://www.scummvm.org/downloads {{ScummVMVer}}]
 
|{{✓}} ||{{✓}} ||{{✓}}
 
|Adventure games and RPGs (LucasArts, Sierra, Activision, Humongous & more. Over [[wikipedia:ScummVM#Supported_games|250 games]].)
 
|-
 
!colspan="9"|FPS
 
|-
 
|[https://m210.duke4.net BuildGDX]
 
|{{Icon|Windows|Linux|macOS}}
 
|[https://m210.duke4.net Website]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Blood, Duke Nukem 3D, Shadow Warrior, Powerslave/Exhumed, Redneck Rampage, Redneck Rampage Rides Again, Witchaven, Witchaven II, TekWar, Legend of the Seven Paladins
 
|-
 
|Raze
 
|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/coelckers/Raze/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Duke Nukem 3D, Blood, Redneck Rampage, Shadow Warrior and Exhumed/Powerslave, Nam, WW2 GI
 
|-
 
|[https://www.eduke32.com EDuke32] <br/>VoidSW <ref group=N>VoidSW is included with EDuke32</ref>
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://dukeworld.com/eduke32/synthesis/latest/?s=d&o=d&dir=eduke32/synthesis/latest Website]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|''EDuke32:'' Duke Nukem 3D, Ion Fury, NAM, World War II GI <br/>''VoidSW:'' Shadow Warrior
 
|-
 
|[https://nukeykt.retrohost.net RedNukem]
 
|{{Icon|Windows|Linux}}
 
|[https://github.com/nukeykt/NRedneck/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Duke Nukem 3D, Duke Nukem 64, Redneck Rampage, Redneck Rampage Rides Again, NAM, World War II GI
 
|-
 
|Metaforce
 
|{{Icon|Windows|Linux|macOS}}
 
|[https://releases.axiodl.com/ Dev builds]<br/>[https://github.com/AxioDL/metaforce git]
 
|{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 
|Metroid Prime 1–3
 
|-
 
|XLEngine
 
|{{Icon|Windows|Linux}}
 
|[https://github.com/Mindwerks/XLEngine/releases git]
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|Star Wars: Dark Forces, Daggerfall<br/>''Later:'' Outlaws, Blood, Shadow Warrior
 
|-
 
|[https://zdoom.org/index ZDoom]
 
|{{Icon|Windows|Linux|macOS}}
 
|[https://zdoom.org/downloads 2.81]
 
|{{✗}} ||{{✗}}<ref group=N>ZDoom has been discontinued. However the development of its replacements, GZDoom and LZDoom, is still active.</ref> ||{{✓}}
 
|Doom I–II, Final Doom, Heretic, Hexen: Beyond Heretic, Chex Quest I–III, Strife: Quest for the Sigil, Hacx: Twitch 'n Kill
 
|-
 
!colspan="9"|Platform
 
|-
 
|[http://clonekeenplus.sourceforge.net Commander Genius]
 
|{{Icon|Windows|Linux|macOS|Switch}}
 
|[http://clonekeenplus.sourceforge.net/download.php 2.8.2]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Commander Keen in Invasion of the Vorticons, Commander Keen in Keen Dreams, Commander Keen in Goodbye Galaxy, Commander Keen in Aliens Ate My Babysitter
 
|-
 
!colspan="9"|Racing
 
|-
 
|OpenNFS
 
|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/OpenNFS/OpenNFS/releases git]
 
|{{✗}} ||{{✓}} ||{{~}}
 
|Need for Speed I–III, Need for Speed: High Stakes, Need for Speed: Porsche Unleashed, Need for Speed: Hot Pursuit 2
 
|-
 
!colspan="9"|RPG
 
|-
 
|[[EasyRPG]]
 
|Multi-platform
 
|[https://easyrpg.org/player/downloads {{EasyRPGVer}}]
 
|{{✓}} ||{{✓}} ||{{✓}}
 
|RPG Maker 2000/2003 games
 
|-
 
|[http://www.gemrb.org GemRB]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD|Android}}
 
|[https://github.com/gemrb/gemrb/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Infinity Engine <br/>(Baldur's Gate series (1998–2001), Planescape: Torment, Icewind Dale series (2000–2002))
 
|-
 
|[[Neko RPGXP Player]]
 
|{{Icon|Android}}
 
|[https://play.google.com/store/apps/details?id=net.kernys.rgss&hl 2.01]
 
|{{✗}} ||{{✓}} ||{{~}}
 
|RPG Maker XP/VX/VA/MV games
 
|-
 
|[https://xoreos.org/ xoreos]
 
|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/xoreos/xoreos 0.0.6]
 
|{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 
|BioWare's Aurora engine & derivatives <br/>(BioWare's 7 PC/console RPGs, Sonic Chronicles: The Dark Brotherhood, The Witcher)
 
|-
 
!colspan="9"|RTS
 
|-
 
|[https://openage.sft.mx openage]
 
|align=left|{{Icon|Windows|Linux|macOS|BSD}}
 
|[https://github.com/SFTtech/openage/releases git]
 
|{{✗}} ||{{✓}} ||{{~}}
 
|Age of Empires, AoE II (HD), Star Wars: Galactic Battlegrounds
 
|-
 
|[http://www.openra.net OpenRA]
 
|{{Icon|Windows|Linux|macOS|BSD|PSVita}}
 
|[https://github.com/OpenRA/OpenRA/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Early Westwood games (Command & Conquer, C&C: Red Alert). <br/>''Soon:'' 2nd-gen C&C (C&C: Tiberian Sun).
 
|-
 
|[https://github.com/TheAssemblyArmada/Vanilla-Conquer Vanilla Conquer]
 
|{{Icon|Windows|Linux|macOS|BSD}}
 
|[https://github.com/OpenRA/OpenRA/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Early Westwood games (Command & Conquer, C&C: Red Alert, Dune 2000). <br/>Based on the official source code release by EA, with the goal of serving as a portable drop-in replacement for the original executables as well as a platform for mod developers.
 
|-
 
|[http://timjones.io/blog/tags/opensage OpenSAGE]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/OpenSAGE/OpenSAGE/releases git]
 
|{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 
|EA's Command & Conquer games <br/>(C&C: Generals, C&C: Generals - Zero Hour) <br/>''Soon:'' The Battle for Middle-earth series (2004–2006), C&C 3 & expansion.
 
|-
 
|[https://stratagus.com/stratagus.html Stratagus]
 
|align=left|{{Icon|Windows|Linux|macOS|Android}}
 
|[https://github.com/Wargus/stratagus 3.1.2]
 
|{{✗}} ||{{✓}}<ref group=N>Stargus is in pre-alpha but development has been halted. Stratagus, Wargus, and War1gus are being updated regularly.</ref> ||{{✓}}<ref group=N>StarCraft is only partially playable in Stargus in Stargus's current stage. The other games for the other engines work well if installed correctly.</ref>
 
|''[https://github.com/Wargus/wargus Wargus]:'' Warcraft II: Tides of Darkness + Beyond the Dark Portal, Aleona's Tale<br/>''[https://github.com/Wargus/war1gus War1gus]:'' Warcraft: Orcs & Humans<br/>''[https://github.com/Wargus/stargus Stargus]:'' StarCraft (partially playable)<br/>''Stratagus:'' Wyrmsun
 
|-
 
!colspan="9"|Shoot 'em up
 
|-
 
|[https://rec98.nmlgc.net ReC98]
 
|Multi-platform
 
|[https://github.com/nmlgc/ReC98 git]
 
|{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 
|Touhou 1–5 (PC-98)
 
 
|}
 
|}
  
==Single game engine==
+
==Issues==
{| class="wikitable" style="text-align:center;"
+
DeSmuME uses [[Wikipedia:DirectInput|DirectInput]] if an [[Xbox 360 emulators|Xbox 360]] controller is being used. No support for [[Wikipedia:DirectInput#XInput|XInput]] exists. This will be noticeable if an Xbox 360 controller's LT and RT inputs are mapped to emulate the DS's L and R buttons respectively.
|-
+
 
! scope="col"|Name
+
Several features aren't supported by DeSmuME and aren't parts of its future as per the emulator's current design philosophy. They include:
! scope="col"|Platform(s)
+
*DS Download Play
! scope="col"|Latest Version
+
*DS Local Play (local multiplayer)
! scope="col"|[[libretro|Libretro Core]]
+
*DS Wi-Fi Play (online multiplayer)
! scope="col"|Active
+
*DSi emulation (DSi-enhanced retail, DSi-exclusive retail, DSiWare)
! scope="col"|[[Recommended Emulators|Recommended]]
+
*DS/Wii Connectivity
! scope="col"|Supported game(s)
+
 
|-
+
A DeSmuME fork with online multiplayer, which includes functional code that made it to official version 0.9.7 before being removed, is available and has been improved to allow for limited dumping of online data prior to the server shutdown in 2014, as well as a version allowing for using online play for a select few games and downloading DLC data from alternative servers with the backed-up data.
!colspan="9"|Action-adventure
+
 
|-
+
At some point in 2010, development on these features was permanently discontinued and the developers distanced themselves from the above-mentioned fork. The official team stance on this is as follows, and is as clear as it can get:
|OpenJK
+
 
|align=left|{{Icon|Windows|Linux|macOS}}
+
::''As you may have come to find, Release versions and WIP builds distributed by DeSmuME developers do not have the Wi-Fi menu enabled, while builds provided by dodgy scener sites or the one your best friend in the whole wide world has handed to you on a USB key does.''
|[https://builds.openjk.org Build]<br/>[https://github.com/JACoders/OpenJK git]
+
::''Officially, DeSmuME DOES NOT support the use of builds with Wi-Fi support.''
|{{✗}} ||{{✓}} ||{{~}}
+
::''As such, though it may come as a shock to you, requests for help or information about it are thus NOT likely to obtain a response to your satisfaction.''
|Star Wars Jedi Knight II: Jedi Outcast, Star Wars Jedi Knight: Jedi Academy
+
::''The developers have no current interest for furthering the development of the EXPERIMENTAL_WIFI, and the current state of the DeSmuME source code might have even completely broken it.''
|-
+
 
!colspan="9"|Adventure
+
It was also deemed that the Dynamic JIT recompiler was a poor fit for the DeSmuME project and as such a fork called "DeSmuME 0.9.9 JIT" including it was made, and some used to recommend it over the mainline project. Much later, like with the internal resolution feature, a compromise was reached and a slightly different implementation was since included in the main project after 0.9.11.
|-
+
 
|The Ur-Quan Masters
+
==Troubleshooting==
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
+
If the game is slow:
|[http://sc2.sourceforge.net/downloads.php 0.8.0]
+
*Enable the '''dynamic recompiler''' in '''Emulation Settings'''.
|{{✗}} ||{{✓}} ||{{✓}}
+
*If it's still slow, you must be running on a toaster. It can't be helped. But try tinkering with things for the fastest settings you can find.
|Star Control II
+
*Use frameskip as the absolute last resort.
|-
+
*If your graphics card was designed by Nvidia and the OpenGL Display Method (useful for its filter) is stuttering despite reporting good framerate, open the Nvidia Control Panel and turn off Threaded Optimization for this program. What's happening is sequential OpenGL code is being put on different processors running at different speeds, forcing them to wait for each other repeatedly.
!colspan="9"|FPS
+
If the sound is distorted.
|-
+
*'''Synchronous''' mode is far less buggy. '''Method Z''' seems to work the best in most cases.
|Aleph One
+
If the 3D is messed up.
|align=left|{{Icon|Windows|Linux|macOS}}
+
*Set it to OpenGL 3.2. Old OpenGL had problems with 3D itself, while SoftRasterizer had alignment issues with 2D. But 3.2 seems to fix most of both.
|[https://alephone.lhowon.org/download.html 1.4]
+
*SoftRasterizer's texture alignment issues are supposedly fixed on a per game basis with the newer TXT hack. It now seems to be more compatible and showing more effects than GL3.2. Etrian Odyssey and Dragon Quest V seem to work best with it over GL3.2.
|{{✗}} ||{{✓}} ||{{✓}}
+
 
|Marathon 1-2, Marathon Infinity
+
==Graphical enhancement==
|-
+
After the increased internal resolutions were implemented in the X432 fork, as well as in [[DraStic]] and even the barebones official Nintendo Virtual Console DS emulator on Wii U, the mainline DeSmuME project developers decided to reconsider and include their own implementation for higher internal resolution.
|[http://bibendovsky.github.io/bstone BStone]
+
 
|align=left|{{Icon|Windows|Linux|macOS}}
+
Official dev builds now have the option to render at a higher resolution as well, and filter textures to boot. Overall, it's more hardware intensive than X432R's implementation.
|[https://github.com/bibendovsky/bstone/releases git]
+
 
|{{✗}} ||{{✓}} ||{{✓}}
+
The latest development version of [[RetroArch]] DeSmuME core also has an option to increase internal resolution which can be set using '''desmume_internal_resolution''' in Core Options. This option was added in [https://github.com/libretro/desmume/commit/5e430dfbc22f9d54c77f291304a38352ee1e5a63 August 8, 2015 commit]. This is massively CPU-intensive because only SoftRasterizer exists in RetroArch core.
|Blake Stone: Aliens of Gold, Blake Stone: Planet Strike
+
 
|-
+
*The OpenGL 3.2 renderer option in 3D Settings supports '''Multisampling Anti-Aliasing (MSAA)'''. Turning it on helps the edges of ultra low-res DS polygons and lines smooth out appear to wobble less during movement, and retain their shape better when viewed from distance. Unlike post-processing effects that modify the still frame after completion and essentially try to guess at the shapes they are smoothing, this effect knows the actual shapes of the polygons themselves.
|Crispy Doom <br/>Crispy Heretic
+
**Versions before r5032 had this option for a long time, but it was only put in the GUI at r5032. To turn it on in older versions you needed to change a value from false to true in the source code and recompile it.
|align=left|{{Icon|Windows|Linux}}
+
*Another thing you can do is filter it. Make sure '''OpenGL''' and '''Filter''' are checked under '''Display Method'''.
|[https://github.com/fabiangreffrath/crispy-doom/releases git]
+
*Finally, there are a variety of post-processing shaders that can be selected under '''Magnification Filter'''. Whether that is simple Nearest 2x or some pixel art scaling filter like HQx or xBRZ is up to you. No post-processing smoothing is perfect, but if you want to use one the xBRZ options are generally the most high-end among smoothing filters present.
|{{✗}} ||{{✓}} ||{{✓}}
+
*macOS version of DeSmuME also has support for multi-pass post-processing shaders and filters which Windows version currently doesn't have.
|''Crispy Doom:'' Doom 1-2, Final Doom <br/>''Crispy Heretic:'' Heretic
+
*Leaving it native and aligning it to a CRT (Set to a 384 high resolution) is also an option, if you feel like going through the effort.
|-
+
*Recent DeSmuME revisions now add support for texture filtering, greatly reducing pixelation albeit at the cost of blurrier visuals. Some may find this rather jarring or too N64-esque, so it's a matter of individual preference as there's an option to turn it on or off.
|[https://dhewm3.org dhewm3]
+
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD|Amiga}}
+
===DeSmuME X432R===
|[https://github.com/dhewm/dhewm3/releases git]
+
Mainline DeSmuME didn't offer any options for higher than native internal resolutions at first. DeSmuME X432R is a fork with the option to increase internal resolution. Be warned that this option is very system-intensive. There have been reports of people who can run [[Dolphin]] and [[PCSX2]] at a perfect pace but can't run this at full speed using increased internal resolution, however newer versions are much faster.
|{{✓}} ||{{✓}} ||{{✓}}
+
 
|Doom 3 (Original)
+
While generally more accurate, the SoftRasterizer is massively CPU-intensive in this mode, whereas the OpenGL renderer shares the load with your GPU. This can be considered a '''speedup''' option, but it also boasts an MSAA option unavailable to SoftRasterizer.
|-
+
 
|[https://doom64ex.wordpress.com Doom64 EX]
+
This fork also has some options for configuring sub-screens. This fork is no longer active, and its last version is dated 19-04-2015.
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://sourceforge.net/projects/doom64ex/files/doom64ex/2.5 2.5]
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|Doom 64 (Original)
 
|-
 
|[http://www.descent2.de D2X-XL] <br/>[https://www.dxx-rebirth.com DXX-Rebirth]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://sourceforge.net/projects/d2x-xl 1.18.74] <br/>[https://github.com/dxx-rebirth/dxx-rebirth/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Descent, Descent II
 
|-
 
|ECWolf
 
|align=left|{{Icon|Windows|Linux|macOS|Android}}
 
|[http://maniacsvault.net/ecwolf/download.php 1.3.3]
 
|{{✓}} ||{{✓}} ||{{✓}}
 
|Wolfenstein 3D, Spear of Destiny, Super 3D Noah’s Ark
 
|-
 
|Hammer of Thyrion
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[http://uhexen2.sourceforge.net 1.5.9]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Hexen II
 
|-
 
|[https://ioquake3.org ioquake3]
 
|align=left|{{Icon|Windows|Linux|macOS|Amiga}}
 
|[https://ioquake3.org/get-it 1.36]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Quake III: Arena
 
|-
 
|iortcw
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/iortcw/iortcw/releases git]
 
|{{✗}} ||{{~}} ||{{✓}}
 
|Return to Castle Wolfenstein
 
|-
 
|[http://nukeykt.retrohost.net NBlood]
 
|align=left|{{Icon|Windows|Linux}}
 
|[https://github.com/nukeykt/NBlood/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Blood
 
|-
 
|OpenMoHAA
 
|align=left|{{Icon|Windows|Linux}}
 
|[https://sourceforge.net/projects/openmohaa/]
 
|{{✗}} ||{{✗}} ||{{✗}}
 
|Medal of Honour: Allied Assault
 
|-
 
|OpenXRay
 
|align=left|{{Icon|Windows|Linux}}
 
|[https://github.com/OpenXRay/xray-16/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|S.T.A.L.K.E.R.: Clear Sky, S.T.A.L.K.E.R.: Call of Pripyat
 
|-
 
|[http://pcex.retrohost.net PCExhumed]
 
|align=left|{{Icon|Windows|Linux}}
 
|[https://lerppu.net/wannabethesis/pcexhumed/]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Powerslave (PC)
 
|-
 
|[https://powerslaveex.wordpress.com Powerslave EX]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/svkaiser/PowerslaveEX git]
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|Powerslave (Console)
 
|-
 
|[https://docs.libretro.com/library/prboom PrBoom]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://github.com/libretro/libretro-prboom git]
 
|{{✓}} ||{{~}}<ref group=N>PrBoom-plus is still active</ref> ||{{✓}}
 
|Doom 1-2, Final Doom
 
|-
 
|[http://quakespasm.sourceforge.net Quakespasm] <br/>vkQuake<ref group=N>vkQuake is based on Quakespasm, but uses Vulkan instead of OpenGL for rendering</ref>
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://sourceforge.net/projects/quakespasm 0.93.2] <br/>[https://github.com/Novum/vkQuake/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Quake 1
 
|-
 
|RBDOOM-3-BFG
 
|align=left|{{Icon|Windows|Linux}}
 
|[https://github.com/RobertBeckebans/RBDOOM-3-BFG/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Doom 3 (BFG Edition)
 
|-
 
|[https://icculus.org/rott Rise of the Triad for Linux]
 
|align=left|{{Icon|Windows7|Linux|DC}}
 
|[https://icculus.org/rott/releases git]
 
|{{✗}} ||{{✗}} ||{{✗}}
 
|Rise of the Triad: Dark War
 
|-
 
|rottexpr
 
|align=left|{{Icon|Windows|Linux}}
 
|[https://github.com/LTCHIPS/rottexpr/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Rise of the Triad: Dark War
 
|-
 
|Shockolate
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://github.com/Interrupt/systemshock/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|System Shock 1
 
|-
 
|[https://theforceengine.github.io The Force Engine]
 
|align=left|{{Icon|Windows}}
 
|[https://theforceengine.github.io/downloads.html 0.01.006]
 
|{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 
|Star Wars: Dark Forces, Outlaws
 
|-
 
|[https://disenchant.net/tyrquake Tyrquake]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://disenchant.net/git/tyrquake.git git]
 
|{{✓}} ||{{✓}} ||{{✓}}
 
|Quake 1
 
|-
 
|vitaQuake II
 
|align=left|{{Icon|Windows|Linux|macOS|Vita}}
 
|[https://github.com/Rinnegatamante/vitaQuakeII git], [http://vitadb.rinnegatamante.it/#/info/278 PS Vita]
 
|{{✓}} ||{{✓}} ||{{✓}}
 
|Quake 2
 
|-
 
|[https://xash.su/xash3d.html Xash3D]
 
|align=left|{{Icon|Windows|Linux|Android}}
 
|[https://xash3d.ru/doku.php?id=downloads 0.99]
 
|{{✗}} ||{{~}} ||{{✓}}
 
|Half-Life 1
 
|-
 
|[https://www.yamagi.org/quake2 Yamagi Quake II]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://deponie.yamagi.org/quake2 8.00]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Quake 2
 
|-
 
!colspan="9"|Platform
 
|-
 
|Jazz² Resurrection
 
|align=left|{{Icon|Windows|Linux|macOS|Android}}
 
|[https://github.com/deathkiller/jazz2/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Jazz Jackrabbit 2
 
|-
 
|NXEngine <br/>[https://github.com/nxengine/nxengine-evo nxengine-evo]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[http://nxengine.sourceforge.net 1.0.0.6] <br/>[https://github.com/nxengine/nxengine-evo/releases git]
 
|{{✓}} ||{{✗}} ||{{✓}}
 
|Cave Story
 
|-
 
|[http://www.alister.eu/jazz/oj/about.php OpenJazz]
 
|align=left|{{Icon|Windows|Linux|macOS|Pandora|GP32|DC}}
 
|[https://github.com/AlisterT/openjazz/releases git]
 
|{{✗}} ||{{~}} ||{{✓}}
 
|Jazz Jackrabbit 1
 
|-
 
|R.E.L.I.V.E.
 
|align=left|{{Icon|Windows|Linux}}
 
|[https://github.com/AliveTeam/alive_reversing git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Oddworld: Abe's Oddysee, Oddworld: Abe's Exoddus
 
|-
 
|rawgl
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/cyxx/rawgl/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Another World/Out of This World
 
|-
 
|REminiscence
 
|align=left|{{Icon|Windows|Android}}
 
|[http://cyxdown.free.fr/reminiscence 0.4.8]
 
|{{✓}} ||{{✓}} ||{{✓}}
 
|Flashback (Another World's spiritual sequel)
 
|-
 
|Rigel Engine
 
|align=left|{{Icon|Windows|Linux|macOS|LinuxARM}}
 
|[https://github.com/lethal-guitar/RigelEngine/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Duke Nukem II
 
|-
 
|[https://www.popot.org/get_the_games.php?game=SDLPoP SDLPoP]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/NagyD/SDLPoP/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Prince of Persia (1989)
 
|-
 
|[[ Super Mario 64 Port]]
 
|Multi-platform
 
|Depends on port
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Super Mario 64 (N64)
 
|-
 
|[http://www.bigorno.net/xrick xrick]
 
|align=left|{{Icon|Windows|Linux|GameCube|BeOS|Amiga|GP32}}
 
|[http://www.bigorno.net/xrick/download.html #021212]
 
|{{✓}} ||{{✗}} ||{{✓}}
 
|Rick Dangerous
 
|-
 
!colspan="9"|Puzzle
 
|-
 
|Lemmini
 
|align=left|{{Icon|Windows|macOS}}
 
|[https://github.com/mjfwalsh/lemmini/releases git]
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|Lemmings
 
|-
 
!colspan="9"|Racing
 
|-
 
|CannonBall
 
|align=left|{{Icon|Windows|Linux|macOS|Pandora|LinuxARM}}
 
|[https://github.com/djyt/cannonball/wiki git]
 
|{{✓}} ||{{✗}} ||{{✓}}
 
|OutRun
 
|-
 
|NFSIISE
 
|align=left|{{Icon|Windows|Linux|macOS|Android}}
 
|[https://github.com/zaps166/NFSIISE/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Need for Speed II: SE
 
|-
 
|OpenC1
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[http://1amstudios.com/projects/openc1 1.4]<br/>[https://github.com/jeff-1amstudios/OpenC1 git]
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|Carmageddon
 
|-
 
|OpenLGR
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/james-knippes/openlgr git]
 
|{{✗}} ||{{✗}} ||{{✗}}
 
|Lego Racers
 
|-
 
|OpenMC2
 
|align=left|{{Icon|Linux|macOS}} (via [[Wine]])
 
|[https://github.com/LRFLEW/OpenMC2/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Midnight Club II
 
|-
 
|[https://openswe1r.github.io OpenSWE1R]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/OpenSWE1R/openswe1r git]
 
|{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 
|Star Wars Episode 1: Racer
 
|-
 
|[https://yethiel.gitlab.io/RVDocs RVGL]
 
|align=left|{{Icon|Windows|Linux|Android|LinuxARM|Pandora}}
 
|[https://rvgl.re-volt.io 21.0125a]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Re-Volt
 
|-
 
|REDriver2
 
|align=left|{{Icon|Windows|Linux}}
 
|[https://github.com/SoapyMan/REDRIVER2 git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Driver 2
 
|-
 
|[https://pyra-handheld.com/boards/threads/stunt-car-remake.79671 stuntcarremake]<ref group=N>Based on Stunt Car Racer Remake for Windows</ref>
 
|align=left|{{Icon|Windows7|Linux|Pandora}}
 
|[https://repo.openpandora.org/?page=detail&app=stuntcarremake_ptitseb Build 08]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Stunt Car Racer (Amiga / AtariST)
 
|-
 
!colspan="9"|RPG
 
|-
 
|[http://arx-libertatis.org Arx Libertatis]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://github.com/arx/ArxLibertatis/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Arx Fatalis
 
|-
 
|Daggerfall Unity
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://www.dfworkshop.net/projects/daggerfall-unity/live-builds Beta 0.11.4]<br/>[https://github.com/Interkarma/daggerfall-unity git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|The Elder Scrolls II: Daggerfall
 
|-
 
|DevilutionX
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD|Haiku|Switch}}
 
|[https://github.com/diasurgical/devilutionX/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Diablo
 
|-
 
|REGoth
 
|align=left|{{Icon|Windows|Linux}}
 
|[https://github.com/REGoth-project/REGoth-bs git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Gothic, Gothic II
 
|-
 
|[https://makipl.github.io/OpenVIII-monogame OpenVIII]
 
|align=left|{{Icon|Windows|Linux}} <!-- planned: {{Icon|Android|iOS}} -->
 
|[https://github.com/MaKiPL/OpenVIII git]
 
|{{✗}} ||{{✓}} ||{{✗}}
 
|Final Fantasy VIII
 
|-
 
|[https://opendiablo2.com OpenDiablo2]
 
|align=left|{{Icon|Windows|Linux}}
 
|[https://github.com/OpenDiablo2/OpenDiablo2 git]
 
|{{✗}} ||{{✓}} ||{{✗}}
 
|Diablo II
 
|-
 
|[https://openmw.org OpenMW]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://openmw.org/downloads 0.46.0]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|The Elder Scrolls III: Morrowind
 
|-
 
|OpenTESArena
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/afritz1/OpenTESArena/releases git]
 
|{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 
|The Elder Scrolls I: Arena
 
|-
 
!colspan="9"|RTS
 
|-
 
|OpenDUNE
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://github.com/OpenDUNE/OpenDUNE/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Dune II: The Building of a Dynasty
 
|-
 
|[http://www.ta3d.org/home-en.php TA3D]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/zuzuf/TA3D/releases git]
 
|{{✗}} ||{{✗}} ||{{~}}
 
|Total Annihilation
 
|-
 
!colspan="9"|RTT
 
|-
 
|[http://freesynd.sourceforge.net FreeSynd]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://sourceforge.net/projects/freesynd 0.7.5]
 
|{{✗}} ||{{✗}} ||{{✗}}
 
|Syndicate (1993)
 
|-
 
|[http://swars.vexillium.org Syndicate Wars Port]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[http://swars.vexillium.org/#download 0.3]
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|Syndicate Wars
 
|-
 
!colspan="9"|TBS
 
|-
 
|[https://ctp2.darkdust.net civctp2]
 
|align=left|{{Icon|Windows|Linux|Pandora}} Pyra
 
|[https://github.com/civctp2/civctp2/releases git] <br/>([https://github.com/ptitSeb/ctp2 ctp2] for Linux/Pandora/Pyra])
 
|{{✗}} ||{{~}} ||{{✓}}
 
|Call to Power II
 
|-
 
|[http://www.civone.org CivOne]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/SWY1985/CivOne git]
 
|{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 
|Sid Meier's Civilization
 
|-
 
|[https://openxcom.org OpenXcom]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://openxcom.org/git-builds git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|UFO: Enemy Unknown (X-Com: UFO Defense), X-COM: Terror From the Deep
 
|-
 
!colspan="9"|Sandbox
 
|-
 
|[https://openrw.org OpenRW]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://github.com/rwengine/openrw git]
 
|{{✗}} ||{{✓}} ||{{~}}
 
|Grand Theft Auto III
 
|-
 
|re3<br/>reVC
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/GTAmodding/re3 re3] <br/>[https://github.com/GTAmodding/re3/tree/miami reVC]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Grand Theft Auto III, Grand Theft Auto: Vice City
 
|-
 
|San Andreas Unity
 
|align=left|{{Icon|Windows|Linux|macOS|Android}}
 
|[https://github.com/GTA-ASM/SanAndreasUnity/releases git]
 
|{{✗}} ||{{✓}} ||{{~}}
 
|Grand Theft Auto: San Andreas
 
|-
 
!colspan="9"|Shoot 'em up
 
|-
 
|OpenTyrian
 
|align=left|{{Icon|Windows|Linux|Android}}
 
|[https://github.com/opentyrian/opentyrian/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Tyrian
 
|-
 
!colspan="9"|Sim - City-building
 
|-
 
|[https://bitbucket.org/dalerank/caesaria/wiki/Home CaesarIA]
 
|align=left|{{Icon|Windows|Linux|macOS|Android|Haiku}}
 
|[https://sourceforge.net/projects/opencaesar3/files 0.5] (2016)
 
|{{✗}} ||{{✗}} ||{{✗}}
 
|Caesar III
 
|-
 
|[https://github.com/bvschaik/julius Julius]<br />[https://github.com/Keriew/augustus Augustus] <small>(Gameplay changes)</small>
 
|align=left|{{Icon|Windows|Linux|macOS|Vita|Switch}}
 
|[https://github.com/bvschaik/julius/releases 1.6]<br />[https://github.com/Keriew/augustus/releases 3.0.1]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Caesar III
 
|-
 
!colspan="9"|Sim - Construction/Management
 
|-
 
|[http://corsixth.com CorsixTH]
 
|align=left|{{Icon|Windows|Linux|macOS|BSD}}
 
|[https://github.com/CorsixTH/CorsixTH/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Theme Hospital
 
|-
 
|[https://www.reddit.com/r/locomotion OpenLoco]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/OpenRCT2/OpenLoco/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Chris Sawyer's Locomotion
 
|-
 
|[https://openrct2.org OpenRCT2]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/OpenRCT2/OpenRCT2/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|RollerCoaster Tycoon 2
 
|-
 
|[https://www.openttd.org/en OpenTTD]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/OpenTTD/OpenTTD/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Transport Tycoon Deluxe
 
|-
 
!colspan="9"|Sim - Flight Combat
 
|-
 
|terminal-recall
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/jtrfp/terminal-recall git] <br/>[https://sourceforge.net/projects/terminal-recall/files/nightly-builds/ Nightly Builds]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Terminal Volocity, Fury3
 
|-
 
!colspan="9"|TPS
 
|-
 
|max_vita
 
|align=left|{{Icon|Vita}}
 
|[https://github.com/fgsfdsfgs/max_vita/releases git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Max Payne
 
|-
 
!colspan="9"|Visual novel
 
|-
 
|NitroSharp
 
|align=left|{{Icon|Windows|Linux}}
 
|[https://github.com/CommitteeOfZero/nitrosharp/releases git]
 
|{{✗}} ||{{✓}} ||{{~}} <small>(WIP)</small>
 
|ChäoS;HEAd NoAH
 
|}
 
  
==Notes==
+
*[https://web.archive.org/web/20190718184333/http://shikaver01.webcrow.jp/ http://shikaver01.webcrow.jp/] <small>(Wayback Machine)</small>
<references group=N />
+
*Binary of SVN r5043: http://www75.zippyshare.com/v/67167782/file.html
  
==External links==
+
==Review==
* [https://osgameclones.com/ Open Source Game Clones] (Likely the best and most complete list.)
+
DeSmuME is currently the best available [[Nintendo DS emulators|Nintendo DS emulator]] on PCs. It is far better than [[No$|No$GBA]] when it comes to accuracy, though not flawless. However, it's more hardware intensive than any other DS emulator (either No$GBA or emulated DraStic) and many features are not supported.
* [https://github.com/leereilly/games Games on GitHub] by Lee Reilly ([https://github.com/leereilly/games/blob/master/README.md Master list] in wider view. This list from leereilly contains Table of Contents and categories with highlighted links to Git repos.)
 
* [https://trilarion.github.io/opensourcegames/ Open Source Games on GitHub] by Trilarion ([https://github.com/Trilarion/opensourcegames/blob/master/entries/tocs/_games.md#Games Master list]. As good as OSGC site above & frighteningly far larger list than leereilly's Git list. Over [https://github.com/Trilarion/opensourcegames/blob/master/README.md 1200 game entries]!)
 
* [https://en.wikipedia.org/wiki/Game_engine_recreation#Methods Game engine recreation] on Wikipedia (Has links to lists of: 1) commercial video games with source code; 2) source ports; and 3) game engine recreations.)
 
* [https://en.wikipedia.org/wiki/List_of_commercial_video_games_with_available_source_code#Games_with_reconstructed_source_code List of games with reconstructed source code] on Wikipedia
 
* [https://en.wikipedia.org/wiki/List_of_open-source_video_games List of open-source video games] on Wikipedia (Not very complete, and the different categories are somewhat confusing.)
 
* [https://libregamewiki.org/Main_Page LibreGameWiki] (Small learning curve applies for navigating around the wiki. Tends to focus more on indigenous open-source engines.)
 
* [https://directory.fsf.org/wiki/Category/Game Game category of the Free software directory] (Wiki with fairly basic content. Tends to focus more on indigenous open-source engines.)
 
  
:<u>Curated Lists:</u>
+
==Gallery==
:* [https://thingsiplay.game.blog/2020/03/13/open-source-drm-free-games/ Tuncay  D.'s recommendations for OS, DRM-free games] (thingsiplay.game.blog. Mar 13, 2020. Not for game recreations. Some selections have similarities to old commercial games.)
+
<gallery>
:* [https://thingsiplay.game.blog/2020/05/19/open-source-and-alike-games/ Tuncay  D.'s recommendations for OS & alike games] (thingsiplay.game.blog. May 19, 2020. Focused on game recreations and engines similar to other games.)
+
Internal resolution comparion - Assassin's Creed II Discovery.png|Top: native internal resolution (256x192). Bottom: 4x internal resolution (1024x768)
 +
Kit Mystery Challenge nearest neighbour.png|''Kit Mystery Challenge'' running at 2x internal resolution and nearest-neighbour (i.e. DS-style) texture filtering.
 +
Kit Mystery Challenge filtered.png|The same scene in ''Kit Mystery Challenge'', albeit with GL Tex Smoothing enabled. Notice the blurrier floor texture.
 +
</gallery>
  
'''News:'''
+
==Guides and info==
* [https://www.gamingonlinux.com/articles/category/Game_Engine GamingOnLinux.com] (For the latest news on releases and updates of game recreations and source ports that work on Linux)
+
*[https://wiki.desmume.org/index.php?title=Main_Page DeSmuME Wiki]
* [https://www.reddit.com/r/opensourcegames/ Reddit feed] (Aggregation quality is a little bit spotty. You have to wade through the news posts a bit for the relevant software.)
 
* [https://www.reddit.com/r/pcgaming/comments/hiuizr/list_of_open_source_games_list_of_open_source/ List of Open Source Games on Reddit] (Thread by u/AMD_CEO. Wed Jul 1, 2020. Had added recommendations to links also seen above.)
 
  
 +
<!-- ==References==
 +
<references/> -->
  
[[Category:Game engine recreations]]
+
[[Category:Emulators]]
[[Category:Not really emulators]]
+
[[Category:Console emulators]]
 +
[[Category:Handheld console emulators]]
 +
[[Category:Nintendo DS emulators]]
 +
[[Category:Windows emulation software]]
 +
[[Category:Linux emulation software]]
 +
[[Category:macOS emulation software]]

Revision as of 01:30, 22 October 2021

DeSmuME
Desmume.png
Developer(s) YopYop156
DeSmuME Team
Latest version 0.9.13
Active Yes
Platform(s) Multi-platform
Emulates Nintendo DS
Website DeSmuME.org
License GNU GPLv2
Source code GitHub

DeSmuME is an open-source Nintendo DS emulator. It is the most accurate Nintendo DS emulator and is actively developed by the DeSmuME Team. It can be run from the command line directly or as a graphical program.

The regular version now allows for increasing internal resolution.

It is also available as a libretro core for RetroArch.

Download

Windows Stable & Nightly releases

Windows Latest Dev build
Requires Microsoft Visual C++ Runtime

Issues

DeSmuME uses DirectInput if an Xbox 360 controller is being used. No support for XInput exists. This will be noticeable if an Xbox 360 controller's LT and RT inputs are mapped to emulate the DS's L and R buttons respectively.

Several features aren't supported by DeSmuME and aren't parts of its future as per the emulator's current design philosophy. They include:

  • DS Download Play
  • DS Local Play (local multiplayer)
  • DS Wi-Fi Play (online multiplayer)
  • DSi emulation (DSi-enhanced retail, DSi-exclusive retail, DSiWare)
  • DS/Wii Connectivity

A DeSmuME fork with online multiplayer, which includes functional code that made it to official version 0.9.7 before being removed, is available and has been improved to allow for limited dumping of online data prior to the server shutdown in 2014, as well as a version allowing for using online play for a select few games and downloading DLC data from alternative servers with the backed-up data.

At some point in 2010, development on these features was permanently discontinued and the developers distanced themselves from the above-mentioned fork. The official team stance on this is as follows, and is as clear as it can get:

As you may have come to find, Release versions and WIP builds distributed by DeSmuME developers do not have the Wi-Fi menu enabled, while builds provided by dodgy scener sites or the one your best friend in the whole wide world has handed to you on a USB key does.
Officially, DeSmuME DOES NOT support the use of builds with Wi-Fi support.
As such, though it may come as a shock to you, requests for help or information about it are thus NOT likely to obtain a response to your satisfaction.
The developers have no current interest for furthering the development of the EXPERIMENTAL_WIFI, and the current state of the DeSmuME source code might have even completely broken it.

It was also deemed that the Dynamic JIT recompiler was a poor fit for the DeSmuME project and as such a fork called "DeSmuME 0.9.9 JIT" including it was made, and some used to recommend it over the mainline project. Much later, like with the internal resolution feature, a compromise was reached and a slightly different implementation was since included in the main project after 0.9.11.

Troubleshooting

If the game is slow:

  • Enable the dynamic recompiler in Emulation Settings.
  • If it's still slow, you must be running on a toaster. It can't be helped. But try tinkering with things for the fastest settings you can find.
  • Use frameskip as the absolute last resort.
  • If your graphics card was designed by Nvidia and the OpenGL Display Method (useful for its filter) is stuttering despite reporting good framerate, open the Nvidia Control Panel and turn off Threaded Optimization for this program. What's happening is sequential OpenGL code is being put on different processors running at different speeds, forcing them to wait for each other repeatedly.

If the sound is distorted.

  • Synchronous mode is far less buggy. Method Z seems to work the best in most cases.

If the 3D is messed up.

  • Set it to OpenGL 3.2. Old OpenGL had problems with 3D itself, while SoftRasterizer had alignment issues with 2D. But 3.2 seems to fix most of both.
  • SoftRasterizer's texture alignment issues are supposedly fixed on a per game basis with the newer TXT hack. It now seems to be more compatible and showing more effects than GL3.2. Etrian Odyssey and Dragon Quest V seem to work best with it over GL3.2.

Graphical enhancement

After the increased internal resolutions were implemented in the X432 fork, as well as in DraStic and even the barebones official Nintendo Virtual Console DS emulator on Wii U, the mainline DeSmuME project developers decided to reconsider and include their own implementation for higher internal resolution.

Official dev builds now have the option to render at a higher resolution as well, and filter textures to boot. Overall, it's more hardware intensive than X432R's implementation.

The latest development version of RetroArch DeSmuME core also has an option to increase internal resolution which can be set using desmume_internal_resolution in Core Options. This option was added in August 8, 2015 commit. This is massively CPU-intensive because only SoftRasterizer exists in RetroArch core.

  • The OpenGL 3.2 renderer option in 3D Settings supports Multisampling Anti-Aliasing (MSAA). Turning it on helps the edges of ultra low-res DS polygons and lines smooth out appear to wobble less during movement, and retain their shape better when viewed from distance. Unlike post-processing effects that modify the still frame after completion and essentially try to guess at the shapes they are smoothing, this effect knows the actual shapes of the polygons themselves.
    • Versions before r5032 had this option for a long time, but it was only put in the GUI at r5032. To turn it on in older versions you needed to change a value from false to true in the source code and recompile it.
  • Another thing you can do is filter it. Make sure OpenGL and Filter are checked under Display Method.
  • Finally, there are a variety of post-processing shaders that can be selected under Magnification Filter. Whether that is simple Nearest 2x or some pixel art scaling filter like HQx or xBRZ is up to you. No post-processing smoothing is perfect, but if you want to use one the xBRZ options are generally the most high-end among smoothing filters present.
  • macOS version of DeSmuME also has support for multi-pass post-processing shaders and filters which Windows version currently doesn't have.
  • Leaving it native and aligning it to a CRT (Set to a 384 high resolution) is also an option, if you feel like going through the effort.
  • Recent DeSmuME revisions now add support for texture filtering, greatly reducing pixelation albeit at the cost of blurrier visuals. Some may find this rather jarring or too N64-esque, so it's a matter of individual preference as there's an option to turn it on or off.

DeSmuME X432R

Mainline DeSmuME didn't offer any options for higher than native internal resolutions at first. DeSmuME X432R is a fork with the option to increase internal resolution. Be warned that this option is very system-intensive. There have been reports of people who can run Dolphin and PCSX2 at a perfect pace but can't run this at full speed using increased internal resolution, however newer versions are much faster.

While generally more accurate, the SoftRasterizer is massively CPU-intensive in this mode, whereas the OpenGL renderer shares the load with your GPU. This can be considered a speedup option, but it also boasts an MSAA option unavailable to SoftRasterizer.

This fork also has some options for configuring sub-screens. This fork is no longer active, and its last version is dated 19-04-2015.

Review

DeSmuME is currently the best available Nintendo DS emulator on PCs. It is far better than No$GBA when it comes to accuracy, though not flawless. However, it's more hardware intensive than any other DS emulator (either No$GBA or emulated DraStic) and many features are not supported.

Gallery

Guides and info