Difference between revisions of "Nintendo DS emulators"

From Emulation General Wiki
Jump to navigation Jump to search
(Game Formats: I believe there were only four physically released DSi exclusives?)
(41 intermediate revisions by 19 users not shown)
Line 11: Line 11:
 
|emulated = {{✓}}
 
|emulated = {{✓}}
 
}}
 
}}
The '''[[gametech:Nintendo DS|Nintendo DS]]''' (NDS) is a handheld console produced by Nintendo on November 21, 2004 and had 2 ARM CPUs with 4MB of RAM. The main selling point was the use of dual screens for gameplay, with one being a touchscreen. It is the only console to have come close to the [[PlayStation 2 emulators|PlayStation 2]] in lifetime sales (154.02 million units), as a result of attracting a large amount of casual players, and even non-gamers, into the gaming community.
+
The '''[[gametech:Nintendo DS|Nintendo DS]]''' (NDS) is a handheld console produced by Nintendo on November 21, 2004 and had 2 ARM CPUs (ARM9 and ARM7) with 4MB of RAM. The main selling point was the use of dual screens for gameplay, with one being a touchscreen. It is the only console to have come close to the [[PlayStation 2 emulators|PlayStation 2]] in lifetime sales (154.02 million units), as a result of attracting a large amount of casual players, and even non-gamers, into the gaming community.
  
 
==Emulators==
 
==Emulators==
 
{| class="wikitable" style="text-align:center;"
 
{| class="wikitable" style="text-align:center;"
|-
 
 
! scope="col"|Name
 
! scope="col"|Name
! scope="col"|Operating System(s)
+
! scope="col"|Platform(s)
 
! scope="col"|Latest Version
 
! scope="col"|Latest Version
! scope="col"|GBA
+
! scope="col"|[[Game Boy Advance emulators|GBA]]
 
! scope="col"|NDS
 
! scope="col"|NDS
! scope="col"|DSi
+
! scope="col"|[[Nintendo DSi emulators|DSi]]
 
! scope="col"|[[libretro|Libretro Core]]
 
! scope="col"|[[libretro|Libretro Core]]
 
! scope="col"|Active
 
! scope="col"|Active
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
|-
!colspan="9"|PC
+
!colspan="9"|PC / x86
 
|-
 
|-
 
|[[DeSmuME]]
 
|[[DeSmuME]]
|Multi-platform
+
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://ci.appveyor.com/project/zeromus/desmume {{DeSmuMEVer}}]
 
|[https://ci.appveyor.com/project/zeromus/desmume {{DeSmuMEVer}}]
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|-
 
|[[melonDS]]
 
|[[melonDS]]
|Windows, Linux
+
|align=left|{{Icon|Windows|Linux}}
|[http://melonds.kuribo64.net/downloads.php {{MelonDSVer}}]
+
|[http://melonds.kuribo64.net/downloads.php {{MelonDSVer}}] [https://github.com/Arisotura/melonDS/actions <br/>Dev Builds]
|{{✗}} ||{{✓}} ||{{~}} ||{{✓}} ||{{✓}} ||{{~}} <small>(WIP)</small>
+
|{{✗}} ||{{✓}} ||{{~}}* ||{{✓}} ||{{✓}} ||{{}} <small>(WIP)</small>
 
|-
 
|-
 
|[[DeSmuME#Graphical_Enhancement|DeSmuME X432R]]
 
|[[DeSmuME#Graphical_Enhancement|DeSmuME X432R]]
|Multi-platform
+
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
|[http://shikaver01.webcrow.jp/desmume_x432r/index.html 2015-04-19]
+
|[http://web.archive.org/web/20150920170430im_/http://shikaver01.webcrow.jp/desmume_x432r/index.html 2015-04-19]
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{~}}
+
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{}}
 
|-
 
|-
 
|[[GBE+]]
 
|[[GBE+]]
|Windows, Linux, macOS (untested)
+
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/shonumi/gbe-plus/releases {{GBEVer}}]
 
|[https://github.com/shonumi/gbe-plus/releases {{GBEVer}}]
 
|{{✓}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 
|{{✓}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 
|-
 
|-
 
|[[mGBA#medusa|medusa]]
 
|[[mGBA#medusa|medusa]]
|Windows, Linux
+
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://mgba.io/downloads.html alpha 2]
 
|[https://mgba.io/downloads.html alpha 2]
 
|{{✓}} ||{{✓}} ||{{✗}} ||{{✗}} || {{✗}}<ref name="medusa suspended"/>||{{✗}} <small>(WIP)</small>
 
|{{✓}} ||{{✓}} ||{{✗}} ||{{✗}} || {{✗}}<ref name="medusa suspended"/>||{{✗}} <small>(WIP)</small>
 
|-
 
|-
 
|[https://corgids.wordpress.com/ CorgiDS]
 
|[https://corgids.wordpress.com/ CorgiDS]
|Windows, Linux
+
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/PSI-Rockin/CorgiDS/releases 0.1]<br />[http://www.emucr.com/search/label/CorgiDS SVN]
 
|[https://github.com/PSI-Rockin/CorgiDS/releases 0.1]<br />[http://www.emucr.com/search/label/CorgiDS SVN]
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}}<ref>https://corgids.wordpress.com/2018/02/12/extended-break/</ref> ||{{✗}}
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}}<ref>https://corgids.wordpress.com/2018/02/12/extended-break/</ref> ||{{✗}}
 
|-
 
|-
 
|ndsemu
 
|ndsemu
|Windows
+
|align=left|{{Icon|Windows}}
 
|[https://github.com/rasky/ndsemu Git]
 
|[https://github.com/rasky/ndsemu Git]
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
|-
 
|[[No$|No$GBA]]
 
|[[No$|No$GBA]]
|Windows, DOS
+
|align=left|{{Icon|Windows|DOS}}
 
|[http://problemkaputt.de/gba.htm {{No$GBAVer}}]
 
|[http://problemkaputt.de/gba.htm {{No$GBAVer}}]
|{{✓}} ||{{✓}} ||{{}} ||{{✗}} ||{{✓}} ||{{✗}}
+
|{{✓}} ||{{✓}} ||{{~}} ||{{✗}} ||{{✓}} ||{{✗}}
 
|-
 
|-
 
|[https://web.archive.org/web/20110225190819/http://neonds.com/ NeonDS]
 
|[https://web.archive.org/web/20110225190819/http://neonds.com/ NeonDS]
|Windows
+
|align=left|{{Icon|Windows}}
 
|[https://web.archive.org/web/20100925152735/http://neonds.com/system/files/NeonDS_0.2.1.zip 0.2.1]
 
|[https://web.archive.org/web/20100925152735/http://neonds.com/system/files/NeonDS_0.2.1.zip 0.2.1]
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
|-
 
|dasShiny
 
|dasShiny
|Windows, Linux
+
|align=left|{{Icon|Windows|Linux}}
 
|[https://github.com/Cydrak/dasShiny Git]
 
|[https://github.com/Cydrak/dasShiny Git]
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
|-
 
|[http://ds-duos.blogspot.com/ DuoS]
 
|[http://ds-duos.blogspot.com/ DuoS]
|Windows
+
|align=left|{{Icon|Windows}}
 
|[http://www.emulator-zone.com/download.php/emulators/nds/duos/DuoS.zip 8/25/2012 Beta]
 
|[http://www.emulator-zone.com/download.php/emulators/nds/duos/DuoS.zip 8/25/2012 Beta]
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
|-
 
|[[Ensata]]
 
|[[Ensata]]
|Windows
+
|align=left|{{Icon|Windows}}
 
|[http://www.mediafire.com/file/x0odmalrndt9m7a/Ensata+v1.4d.rar 1.4d]
 
|[http://www.mediafire.com/file/x0odmalrndt9m7a/Ensata+v1.4d.rar 1.4d]
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
|-
 
|[https://web.archive.org/web/20111130005614/http://ideasemu.biz/ iDeaS]
 
|[https://web.archive.org/web/20111130005614/http://ideasemu.biz/ iDeaS]
|Windows, Linux
+
|align=left|{{Icon|Windows|Linux}}
 
|[http://www.emulator-zone.com/files/emulators/nds/ideas/ideas1040.7z 1.0.4.0]
 
|[http://www.emulator-zone.com/files/emulators/nds/ideas/ideas1040.7z 1.0.4.0]
 
|{{✓}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|{{✓}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
|-
 
|[https://github.com/Hydr8gon/NooDS NooDS]
 
|[https://github.com/Hydr8gon/NooDS NooDS]
|Windows, Linux
+
|align=left|{{Icon|Windows|Linux|macOS}}
|[https://github.com/Hydr8gon/NooDS Git]
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✗}}
 
|-
 
!colspan="9"|Console
 
|-
 
|[[Virtual Console]]
 
|Wii U
 
|
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|[[melonDS]]
 
|Switch
 
|[https://gbatemp.net/download/melonds-for-switch.35201/ 0.7.4-2]
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✗}}
 
|-
 
|[https://github.com/Hydr8gon/NooDS NooDS]
 
|Switch
 
 
|[https://github.com/Hydr8gon/NooDS Git]
 
|[https://github.com/Hydr8gon/NooDS Git]
|{{}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✗}}
+
|{{}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✗}}
 
|-
 
|-
!colspan="9"|Mobile
+
!colspan="9"|Mobile / ARM
 
|-
 
|-
 
|[[DraStic]]
 
|[[DraStic]]
|[[Android emulators|Android]], Pandora,<br />Linux <small>(Raspberry Pi)</small>
+
|align=left|{{Icon|Android|Pandora}}
 
|[https://play.google.com/store/apps/details?id=com.dsemu.drastic {{DraSticVer}}]
 
|[https://play.google.com/store/apps/details?id=com.dsemu.drastic {{DraSticVer}}]
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✓}}
 +
|-
 +
|[[melonDS]]<small> (unofficial)</small>
 +
|align=left|{{Icon|Android}}
 +
|[https://github.com/rafaelvcaetano/melonDS-android Git]
 +
|{{✗}} ||{{✓}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{~}} (WIP)
 
|-
 
|-
 
|[https://inds.nerd.net/ iNDS]<br/><small>(nds4ios derived)</small><br/><small>(DeSmuME based)</small>
 
|[https://inds.nerd.net/ iNDS]<br/><small>(nds4ios derived)</small><br/><small>(DeSmuME based)</small>
|[[iOS emulators|iOS]]
+
|align=left|{{Icon|iOS}}
 
|[https://github.com/iNDS-Team/iNDS/releases Git]
 
|[https://github.com/iNDS-Team/iNDS/releases Git]
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✓}}
 
|-
 
|-
 
|nds4ios
 
|nds4ios
|[[iOS emulators|iOS]]
+
|align=left|{{Icon|iOS}}
 
|[http://nds4ios.angelxwind.net/i/?page/downloads SVN]
 
|[http://nds4ios.angelxwind.net/i/?page/downloads SVN]
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}}
|-
 
|Dsoid
 
|[[Android emulators|Android]]
 
|[http://www.emucr.com/search/label/Dsoid?&max-results=12 SVN]
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
 
|-
 
|-
 
|[http://jeffq.com/blog/nds4droid/ nds4droid]<br/><small>(DeSmuME based)</small>
 
|[http://jeffq.com/blog/nds4droid/ nds4droid]<br/><small>(DeSmuME based)</small>
|[[Android emulators|Android]]
+
|align=left|{{Icon|Android}}
 
|[https://github.com/jquesnelle/nds4droid Git]
 
|[https://github.com/jquesnelle/nds4droid Git]
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 +
|-
 +
|[https://github.com/Hydr8gon/NooDS NooDS]
 +
|align=left|{{Icon|Android}}
 +
|[https://github.com/Hydr8gon/NooDS Git]
 +
|{{✓}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✗}}
 +
|-
 +
!colspan="9"|Console
 +
|-
 +
|[[Virtual Console]]
 +
|align=left|{{Icon|WiiU}}
 +
|
 +
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}}
 +
|-
 +
|[[melonDS]]
 +
|align=left|{{Icon|Switch}}
 +
|[https://github.com/rsduck/melonDS/releases Release 4]<br/>[https://gbatemp.net/threads/melonds-for-switch-continuation.570021/ GBATemp Thread]
 +
|{{✗}} ||{{✓}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✗}}
 +
|-
 +
|[https://github.com/Hydr8gon/NooDS NooDS]
 +
|align=left|{{Icon|Switch}}
 +
|[https://github.com/Hydr8gon/NooDS Git]
 +
|{{✓}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✗}}
 
|}
 
|}
 +
<small><nowiki>*</nowiki>Only emulated in the latest Dev Builds.</small>
  
 
===Comparisons===
 
===Comparisons===
 
;[[DeSmuME]]: One of the most developed emulators for regular DS games. DeSmuME has had significant improvements since 2018, though new features are still in development and are only available through either nightly/dev builds. It now uses less CPU/GPU resources, and Wi-Fi is also underway. If you're worried about stability, then stick to the latest stable release. Otherwise, the latest dev builds will have more to offer. (See [[Common Problems and Solutions]] for tips.)
 
;[[DeSmuME]]: One of the most developed emulators for regular DS games. DeSmuME has had significant improvements since 2018, though new features are still in development and are only available through either nightly/dev builds. It now uses less CPU/GPU resources, and Wi-Fi is also underway. If you're worried about stability, then stick to the latest stable release. Otherwise, the latest dev builds will have more to offer. (See [[Common Problems and Solutions]] for tips.)
 
;[[DraStic]]: A payware, closed-source emulator for [[Android emulators|Android]] devices that can run games at a decent speed even on potato phones. It's on par with (or in some cases better than) DeSmuME, and emulating it through BlueStacks on PC may actually be a viable and fast alternative aside from a slight input delay. Some rumors have spread around that the developers deliberately put in issues to mess with pirated copies, though this is considered unsubstantiated. At the very least, you shouldn't expect any support from Exophase and company if you use a pirated copy, though it is available for free on the Raspberry Pi and Odroid via RetroPie.
 
;[[DraStic]]: A payware, closed-source emulator for [[Android emulators|Android]] devices that can run games at a decent speed even on potato phones. It's on par with (or in some cases better than) DeSmuME, and emulating it through BlueStacks on PC may actually be a viable and fast alternative aside from a slight input delay. Some rumors have spread around that the developers deliberately put in issues to mess with pirated copies, though this is considered unsubstantiated. At the very least, you shouldn't expect any support from Exophase and company if you use a pirated copy, though it is available for free on the Raspberry Pi and Odroid via RetroPie.
;[[melonDS]]: Arisotura's goal is to make an emulator that's better optimized and includes features that others lack, either intentionally or not. While the developers of No$GBA had documented the Wi-Fi capabilities first, melonDS is the first and only emulator that's gotten as far as it has and it has been found to work reasonably well with a handful of games.  There's also been progress made in emulating the DSi<ref name="melonDSi">http://melonds.kuribo64.net/comments.php?id=94</ref><ref name="progress on DSi">http://melonds.kuribo64.net/comments.php?id=99&p</ref>, so far it's been able to boot into the firmware and is being developed in a separate branch of the main project. It could surpass DeSmuME when it covers more features.
+
;[[melonDS]]: Arisotura's goal is to make an emulator that's better optimized and includes features that others lack, either intentionally or not. While the developers of No$GBA had documented the Wi-Fi capabilities first, melonDS is the first and only emulator that's gotten as far as it has and it has been found to work reasonably well with a handful of games.  There's also been progress made in emulating the DSi<ref name="melonDSi">http://melonds.kuribo64.net/comments.php?id=94</ref><ref name="progress on DSi">http://melonds.kuribo64.net/comments.php?id=99&p</ref>, so far it's been able to boot into the firmware and load some DSiWare, but "DSi mode" support for retail games is still unsupported. It's on par with DeSmuME in terms of compatibility, but lack some features.
;[[No$|No$GBA]]: Focuses on speed, and has major compatibility issues and glitches as a result. But because it was originally a GBA emulator, the DS's 3D features are still very poorly handled. However, it might be an option for a very low-end machine but don't expect a lot of games to run perfectly, or at all. A fan program, No$Zoomer, was released for version 2.6 which increases compatibility and options, as well as the titular zooming abilities. The biggest addition is noise cancellation which clears up static that No$GBA makes with its 3D rendering. No$Zoomer hasn't rebased yet but does add options for window resizing. There haven't been any noticeable changes with regards to accuracy, however. As of v2.8, No$GBA supports DSi games and is currently the first and only emulator that does. Only use No$GBA in the cases of DSi games, debugging (if you've taken up romhacking for DS games), if you value speed above everything, or just as a last resort.
+
;[[No$|No$GBA]]: Focuses on speed, and has major compatibility issues and glitches as a result. But because it was originally a GBA emulator, the DS's 3D features are still very poorly handled. However, it might be an option for a very low-end machine but don't expect a lot of games to run perfectly, or at all. A fan program, No$Zoomer, was released for version 2.6 which increases compatibility and options, as well as the titular zooming abilities. The biggest addition is noise cancellation which clears up static that No$GBA makes with its 3D rendering. No$Zoomer hasn't rebased yet but does add options for window resizing. There haven't been any noticeable changes with regards to accuracy, however. In v2.8, No$GBA became the first emulator to supports DSi games, which has been their most notable feature. Only use No$GBA for DSi games that don't work on other emulators, debugging (if you've taken up romhacking for DS games or homebrew development), if you value speed above everything or just as a last resort.
 
;[[mGBA#medusa|medusa]]: [[mGBA]] developer endrift is also creating a DS emulator, but it's very much a work-in-progress and isn't nearly as far as melonDS in terms of the capabilities it's covered. As of March 2018, medusa's development is "suspended until further notice".<ref name="medusa suspended">https://mgba.io/2018/03/09/holy-grail-bugs-revisited/#postscript-a-several-month-late-explanation</ref>
 
;[[mGBA#medusa|medusa]]: [[mGBA]] developer endrift is also creating a DS emulator, but it's very much a work-in-progress and isn't nearly as far as melonDS in terms of the capabilities it's covered. As of March 2018, medusa's development is "suspended until further notice".<ref name="medusa suspended">https://mgba.io/2018/03/09/holy-grail-bugs-revisited/#postscript-a-several-month-late-explanation</ref>
 
;iDeaS: An abandoned and experimental DS emulator that uses a plug-in system, it's very slow and buggy but has partially gotten some features working like the camera and slide accessories.
 
;iDeaS: An abandoned and experimental DS emulator that uses a plug-in system, it's very slow and buggy but has partially gotten some features working like the camera and slide accessories.
Line 174: Line 179:
 
|-
 
|-
 
! scope="col"|Name
 
! scope="col"|Name
! scope="col"|Operating System(s)
+
! scope="col"|Platform(s)
 
! scope="col"|Latest Version
 
! scope="col"|Latest Version
 
! scope="col"|Local
 
! scope="col"|Local
Line 182: Line 187:
 
|-
 
|-
 
|[[melonDS|melonDS]]
 
|[[melonDS|melonDS]]
|Windows, Linux
+
|align=left|{{Icon|Windows|Linux}}
 
|{{MelonDSVer}}
 
|{{MelonDSVer}}
|{{~}} ||{{~}} ||{{~}} ||{{}}
+
|{{~}} ||{{~}} ||{{}} ||{{}}<small>(Git)</small>
 
|-
 
|-
 
|[[DeSmuME]]
 
|[[DeSmuME]]
|Mult-Platform
+
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|{{DeSmuMEVer}}
 
|{{DeSmuMEVer}}
 
|{{✗}} ||{{✗}} ||{{~}} ||{{✓}}
 
|{{✗}} ||{{✗}} ||{{~}} ||{{✓}}
 
|-
 
|-
 
|[[No$|No$GBA]]
 
|[[No$|No$GBA]]
|Windows, [[Intel CPUs|DOS]]
+
|align=left|{{Icon|Windows|DOS}}
 
|[http://problemkaputt.de/gba.htm {{No$GBAVer}}]
 
|[http://problemkaputt.de/gba.htm {{No$GBAVer}}]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
Line 200: Line 205:
  
 
===Local Wireless Communication===
 
===Local Wireless Communication===
Players who have a copy of the same game can link together using the DS's wireless signals, given that the game offers this feature.
+
Players who have a copy of the same game can link together using the DS' wireless signals (given that the game offers this feature).
  
melonDS supports wireless communication with several games, including ''New Super Mario Bros.'' and ''Pokemon'', but you need to have either multiple instances opened, which can slow down performance and cause more timing problems, or connect multiple computers via LAN. No$GBA can emulate it but the connection fails somewhere during establishing the actual connection (despite the names from the other DS showing just fine).
+
melonDS supports wireless communication with several games, including ''New Super Mario Bros.'' and ''Pokemon'', but you need to have either multiple instances opened, which can slow down overall performance, or connect multiple computers via LAN. No$GBA is able to connect, but fails before the actual connection is finished.
  
 
===DS Download Play===
 
===DS Download Play===
Players who both have a DS but only one copy of a game can use the "Download Play" to play together without everyone needing a copy of the game.  The player with the physical cartridge will host the game, while the other players connect using a "downloaded" version of it.  Normally they are simple mini-games or stripped down versions of the main game, but some games like ''Mario Party DS'' requires Download Play in order to use its multiplayer.
+
Players who both have a DS but only one copy of a game can use "Download Play" to play together without everyone needing a copy of the game.  The player with the physical cartridge will host the game while the other players connects using a "downloaded" version received from the host.  Normally they are either simple mini-games, stripped down demos of the main game, or a limited version of multiplayer.  In most cases it's better to use multi-cart instead, however there are some games, like ''Mario Party DS'', that requires Download Play in order to use its multiplayer.
  
Download Play isn't supported by any emulator so far, though [[Emulators on 3DS#Nintendo DS|NDS-bootstrap]] homebrew on the Nintendo 3DS can boot some of them. MelonDS fails during the download process though some actually go as far as booting, but never to the actual "game"
+
Download Play is supported by melonDS. Like with local multiplayer, it is very hit and miss but unlocking the framerate helps. melonDS will often fail during the download process, but some games actually go as far as booting and sometimes in-game as well.
  
 
===Nintendo Wi-Fi Connection===  
 
===Nintendo Wi-Fi Connection===  
Nintendo's online service that was available for the Wii and DS and was free to use.  It was shutdown on May 20, 2014 due to the company GameSpy, who were the ones managing these servers, shutting down its multiplayer services after being bought out. A popular game that used this feature was ''Mario Kart DS''.   
+
Nintendo's online service that was available for the Wii and DS and was free to use.  It was shutdown on May 20, 2014 due to the company GameSpy, the ones who were managing these servers, shutting down its multiplayer services after being bought out. A popular game that used this feature was ''Mario Kart DS''.   
  
There was a third-party DeSmuME forks that successfully emulated WFC but has quite a bit of requirement (Ethernet cable, though this can be circumvented with external software). After service shutdown, there was a version compatible with the fan servers (restoring all DLC data but sadly most multiplayer games had their content lost forever).  melonDS is one of the only emulators to offer wi-fi capabilities. <!--can melonDS connect to any fan servers?--> It's still a work-in-progress, but it works relatively well.
+
There was a third-party DeSmuME forks that successfully emulated WFC but has quite a bit of requirement (Ethernet cable, though this can be circumvented with external software). After the service shutdown, there was a version compatible with the fan servers (restoring all DLC data but sadly most multiplayer games had their content lost forever).  melonDS is one of the only emulators to offer Wi-Fi capabilities. It's still a work-in-progress, but it works relatively well.
  
 
===DS/Wii Connectivity===
 
===DS/Wii Connectivity===
Uses the wireless communication on the DS to connect to the Wii.  The idea is parallel to the GBA Link Cable for the GameCube, and just like the Link Cable, only a handful of games actually have this feature. Some notable examples are ''Pokemon Battle Revolution'' in which players could transfer their Pokemon to the game and use the DS as a controller, ''Animal Crossing: City Folk'' in which data could be transferred between the DS version ''Animal Crossing: Wild World'', and the ''Nintendo Channel'' on the Wii where players could download demos of DS games to their console using Download Play.
+
Uses the wireless communication on the DS to connect to the Wii.  The idea is parallel to the GBA Link Cable for the GameCube, and just like the Link Cable, only a handful of games actually have this feature. Some notable examples are ''Final Fantasy Crystal Chronicles: Echoes of Time'' which is essentially the same as the DS port but can connect with other DS' with the game, ''Pokemon Battle Revolution'' in which players could transfer their Pokemon to the game and use the DS as a controller, ''Animal Crossing: City Folk'' in which data could be transferred between the DS version ''Animal Crossing: Wild World'', and the ''Nintendo Channel'' on the Wii where players could download demos of DS games to their console using Download Play (basically the same idea as the Download Station kiosk).
  
So far, no emulator has been able to emulate this feature, nor have attempted to, and considering that the GBA/GCN connectivity on Dolphin has yet to fully functions, hints that this feature won't be emulated for a while.  If this was ever going to be emulated, it would require work on both ends.
+
So far, no emulator has been able to emulate this feature, nor have attempted to, and considering that the GBA/GCN connectivity on Dolphin has yet to achieve full functionality (and a lack of interesting titles that uses it), hints that this feature won't be emulated for a while.  If this was ever going to be emulated, it would require work on both ends.
  
 
===GBA/DS Connectivity===
 
===GBA/DS Connectivity===
Inserting a GBA cartridge in the Slot-2 of the Nintendo DS while a game is running can unlock various gameplay features for [https://nintendo.fandom.com/wiki/List_of_Nintendo_DS_games_with_GBA_connectivity some DS games]. It's unknown if NO$GBA supports this, but it can be done in DeSmuME by going to Config > Slot 2 (GBA Slot) and selecting GBA Cartridge. Select the GBA ROM file, make sure its <code>.sav</code> file is in the same folder. You may need to reset the game for it to take effect. DeSmuME, however, does not support GBA games with hardware features like the solar sensor from GBA Boktai cartridges used in Boktai DS (Lunar Knight).
+
Inserting a GBA cartridge in the Slot-2 of the Nintendo DS while a game is running can unlock various gameplay features for [https://nintendo.fandom.com/wiki/List_of_Nintendo_DS_games_with_GBA_connectivity several DS games].  
 +
 
 +
It's unknown if No$GBA supports this, but it can be done in DeSmuME by going to Config > Slot 2 (GBA Slot) and selecting GBA Cartridge. Select the GBA ROM file, make sure its <code>.sav</code> file is in the same folder. You may need to reset the game for it to take effect.  
 +
The latest git of melonDS added support for GBA connectivity and even added support for the solar sensor on GBA Boktai cartridges used in Boktai DS (Lunar Knight), something DeSmuME has yet to support.  Either drag-and-drop the GBA ROM onto the program before starting or open the file before loading the NDS file.
  
 
==Nintendo DSi==
 
==Nintendo DSi==
[[File:DSiBlack.png|300px|thumb|right|The design was very similar to the DS Lite]]
+
{{Main|Nintendo DSi emulators}}
Released on April 5, 2009, the '''Nintendo DSi''' added new lighting effects, an inner and outer 0.3 megapixel digital cameras, 16MB of RAM (compared to the previous 4MB of RAM),  a faster ARM9 CPU clocked at 133 MHz, and offered downloadable titles called "DSiWare".  It cost {{Inflation|USD|169.99|2009}} at launch and later dropped to {{Inflation|USD|149.99|2010}}.  The system, however, was region-locked, meaning that DSi exclusives from different regions couldn't be used and the system language couldn't be changed, and did away with backwards-compatiblity by removing Slot-2, which was used to load GBA cartridges and other gaming accesories (''i.e. Guitar Hero: On Tour'').
 
 
 
===Game Formats===
 
There are three types of games that uses the DSi hardware enhancements:
 
 
 
;DSi-enhanced retail cartridges: A regular game cartridge that is compatible with the older NDS models, but unlocks more RAM and features when used on the DSi (commonly it's just camera support, but may provide better performance with the extra RAM).  Only a [http://www.rfgeneration.com/blogs/pdrydia/DSi-enhanced-titles-an-incomplete-list-1969.php couple of games] had this feature and is similar to how some late Game Boy Color games (mainly the ones made by Capcom or WayForward in the early 2000s) would offer additional feature played on the Game Boy Advance.  These games will still boot on any NDS emulators, but will be detected as if it was on the original DS and will load without any DSi enhancements.  DSi-enhanced games will also have an animated icon when displayed in the boot menu of the DSi, which is the only indication that it's DSi-enhanced.
 
;DSi-exclusive retail cartridges: Retail cartridges that relies on the DSi hardware features. An error screen will show when attempting to load one of these games on a regular DS console(and by extension, emulators also). These cartridges where white instead of gray and only [https://www.giantbomb.com/nintendo-dsi-exclusive/3015-3774/games/ four games] were physically released this way, either as launch titles or because they were too big to be sold as DSiWare (see below). 
 
;DSiWare: Downloadable titles only available through the DSi Shop (discontinued as of March 31, 2017). They have a 16MB size limitation due to the small size of the internal NAND and there were a lot of interesting exclusives for the system released as DSiWare.  The Nintendo 3DS can also run DSiWare, due to the firmware used for backwards-compatibility being same as the DSi, and offers a way to back them up to an SD card, but not the save files.  The Nintendo 3DS eShop also has some DSiWare for purchase, though it uses a different file packaging format. 
 
 
 
All three formats can be converted to <code>.nds</code> format. Compared to regular DS games, DSi games had some additional header information that wasn't even correctly dumped in the earlier broken dumps. The 2017 set has updated many of these to the correct format, though it's still severely lacking in DSiWare exclusives. DSiWare dumps exist in both <code>.nds</code> format and <code>.cia</code> format (for installation on a homebrewed 3DS).
 
 
 
Even though it's possible to convert these titles to <code>.nds</code>, when attempting to run these games on a normal emulator it will either show an error message (when attempting to run a DSi-exclusive title), or will crash on boot-up (when attempting to run DSiWare) due to missing encryption abilities and lack of DSi hardware support.  DSi-enhanced games will run as if it was on a regular DS model.
 
 
 
On the DSi/3DS family of handhelds, the first two formats can be played on some select DSi-compatible flashcarts like the discontinued and expensive CycloDS iEvolution flashcart(which won't work on a stock 3DS unless you install custom firmware to whitelist it). As for the third type, it's only available for digital purchase at the 3DS eShop and installed as apps to the limited TWL NAND, though they can also be installed as custom titles if in a <code>.cia</code> format (the same format for all 3DS applications, but here it's also a container for a <code>.nds</code> ROM in this case, meaning converting back and forth is possible), provided custom firmware has already been installed.  Since the DSi Shop has closed, the only way of obtaining DSiWare on the physical system is by [[Modding Consoles/Flashcarts#Nintendo_DSi|homebrewing]] your DSi and either installing it to the system's NAND, or installing TWiLight Menu++ and loading it as a <code>.nds</code> ROM.
 
 
 
===Emulation===
 
{| class="wikitable" style="text-align:center;"
 
|-
 
! scope="col"|Name
 
! scope="col"|Operating System(s)
 
! scope="col"|Latest Version
 
! scope="col"|DSi (enhanced)
 
! scope="col"|DSi (exclusive)
 
! scope="col"|DSi (digital)
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
|[[No$|No$GBA]]
 
|Windows, [[Intel CPUs|DOS]]
 
|[http://problemkaputt.de/gba.htm 2.9b]
 
|{{✓}} ||{{✓}} ||{{✓}} ||{{✗}}
 
|-
 
|[[melonDS|melonDS]]
 
|Windows, Linux
 
|alpha
 
|{{✗}} ||{{✗}} ||{{~}} ||{{~}} <small>([http://melonds.kuribo64.net/comments.php?id=94 WIP])</small>
 
|}
 
 
 
There hasn't been much of a need for DSi emulation due to it's small library of exclusive games and lack of DSi-enhanced titles that provide anything major besides camera support.  The only thing really notable is DSiWare, which saw several exclusive releases.
 
 
 
No$GBA added support for DSi games of all three formats starting with version 2.8, although some games won't boot and others have graphical glitches. You'll need to enable ''"16MB DSi/retail"'' under the settings in order to use it. Compatibility is very iffy due to No$GBA's already poor DS emulation, and the camera is just spoofed as a static image and will causes the emulator to crash whenever used, meaning games that uses it may boot, but won't be very playable.
 
 
 
DSi used an encryption system for the game dumps that went on to be enhanced and used for the 3DS. This encryption is checked at start-up, hence why Nintendo DS emulators don't even manage to boot DSiWare dumps. It's very unlikely DSi-mode emulation is ever going to be implemented in DeSmuME in particular due to various ''creative differences'' unique to that project.
 
 
 
melonDS recently started attempts at DSi emulation and has been able to boot the system's firmware<ref name="melonDSi">http://melonds.kuribo64.net/comments.php?id=94</ref> and even showed that it can boot ''Flipnote Studios'', but freezes when attempting to create a new note.<ref name="progress on DSi">http://melonds.kuribo64.net/comments.php?id=99&p</ref>.  It's being worked on off an experimental branch and requires a lot of files to be dumped from the DSi in order to work, but it could become the most usable option for DSi emulation in the near future.  Most of it is being done using the documentation that the No$GBA devs have already compiled on the subject.
 
 
 
===BIOS Files===
 
DSi emulation requires a copy of the lower 32K-halves of the ARM7/ARM9 BIOS files (<code>BIOSDSI7.ROM</code> and <code>BIOSDSI9.ROM</code>), which are different from the regular DS BIOS files and needed for the decryption. All the needed files are <code>bios7i.bin</code>, <code>bios9i.bin</code>, <code>BIOSDSI7.ROM</code>, <code>BIOSDSI9.ROM</code>, <code>BIOSNDS7.ROM</code>, and <code>BIOSNDS9.ROM</code>. These unicorns can be found [http://archive.org/details/DSiFirmwareFiles here].
 
 
 
It's also advised (but still completely '''optional''') to use a NAND dump as well to increase compatibility (though adding games is more complex, and a soft-modding solution to dump it is still being worked on). Rename it to "DSi-1.mmc" (should be about 250MB). In No$GBA, change ''"Reset/Startup Entrypoint"'' to ''"GBA/NDS BIOS"'' to now boot the emulator and games in DSi mode. Hex editing is required in order to "install" new DSiWare titles. Using a NAND dump fixes a lot of glitches and crashes related to languages and use of the internal DSi font.
 
  
 
==Special Hardware==
 
==Special Hardware==
Line 283: Line 242:
 
;Pokémon Keyboard: Bundled with the Pokémon Typing game (JP/UK/FR). The game refuses to boot without a keyboard, but it can be run on emulators with an anti-piracy fix and another DeSmuME-specific save bug fix. There is also [http://pokemonlog.com/pokemon-fuligin-download-rom/ a pre-patched ROM.] While it's playable using the on-screen keyboard on the lower screen, the keyboard isn't actually emulated. There is [https://github.com/AnimeCommander/Learn.With.Pokemon-Typing-Adventure.lua/blob/master/Pok%C3%A9mon%20Typing%20DS%20Keyboard%20Script.lua a Lua script] that permits using the actual keyboard by mapping presses of the actual keyboard to taps of the virtual Touch Screen. However, you are going to need to blank out all the control/hotkey bindings of DeSmuME if you are going to play this game because some of the keyboard keys also activate some controls; otherwise, pressing the Q key would also pause the game, given one example. A recommendation would be to have a separate copy of 32-bit DeSMuMe which purpose is playing *only* the Pokémon typing games. In that copy, place the patched ROM, the Lua script, and a 32-bit version of [https://sourceforge.net/projects/luabinaries/files/5.1.5/Windows%20Libraries/Dynamic/ lua51.dll.] (The platform used in building the <code>.dll</code> should not matter.) Even then, not only is the emulated workaround a little slow, but saving is still broken. Use savestates, instead.
 
;Pokémon Keyboard: Bundled with the Pokémon Typing game (JP/UK/FR). The game refuses to boot without a keyboard, but it can be run on emulators with an anti-piracy fix and another DeSmuME-specific save bug fix. There is also [http://pokemonlog.com/pokemon-fuligin-download-rom/ a pre-patched ROM.] While it's playable using the on-screen keyboard on the lower screen, the keyboard isn't actually emulated. There is [https://github.com/AnimeCommander/Learn.With.Pokemon-Typing-Adventure.lua/blob/master/Pok%C3%A9mon%20Typing%20DS%20Keyboard%20Script.lua a Lua script] that permits using the actual keyboard by mapping presses of the actual keyboard to taps of the virtual Touch Screen. However, you are going to need to blank out all the control/hotkey bindings of DeSmuME if you are going to play this game because some of the keyboard keys also activate some controls; otherwise, pressing the Q key would also pause the game, given one example. A recommendation would be to have a separate copy of 32-bit DeSMuMe which purpose is playing *only* the Pokémon typing games. In that copy, place the patched ROM, the Lua script, and a 32-bit version of [https://sourceforge.net/projects/luabinaries/files/5.1.5/Windows%20Libraries/Dynamic/ lua51.dll.] (The platform used in building the <code>.dll</code> should not matter.) Even then, not only is the emulated workaround a little slow, but saving is still broken. Use savestates, instead.
 
;DS Camera: Accessory bundled with the Japan-only Face Training (a European localization for Christmas 2007 was canceled, and it was released as a retail DSi game in 2010 using the internal camera rather than the original accessory). Not to be confused with the built-in DSi camera. No emulators exist for it at all.
 
;DS Camera: Accessory bundled with the Japan-only Face Training (a European localization for Christmas 2007 was canceled, and it was released as a retail DSi game in 2010 using the internal camera rather than the original accessory). Not to be confused with the built-in DSi camera. No emulators exist for it at all.
;Bayer DIDGIT: A glucose meter for children with a game entitled ''Knock 'Em Downs: World's Fair'' that rewards them for checking their blood sugar levels regularly. The game has been dumped but no support for the glucose meter peripheral exists as of the time of this writing; it may, however, be possible to add reward points through Action Replay codes, not to mention that the game will still function without the glucose meter attachment anyway (albeit with reduced functionality, of course).
+
;Bayer DIDGIT: A glucose meter for diabetic children with a game called ''Knock 'Em Downs: World's Fair'' that rewards them for checking their blood sugar levels regularly. The game has been dumped but no support for the glucose meter peripheral exists as of the time of this writing; it may, however, be possible to add reward points through Action Replay codes, not to mention that the game will still function without the glucose meter attachment anyway (albeit with reduced functionality, of course).
  
 
===iQue DS Region Lock===
 
===iQue DS Region Lock===
 
iQue is Nintendo's Chinese subsidiary (previously a partnership between them and Wei Yen until 2013), so when they released the DS with a few localized games, their ROMs had special flags set in them to check if the hardware that ran the cartridge was iQue's or Nintendo's as a sort of region lock. Nintendo's own hardware would fail this check, throwing an "Only for iQue DS" error in white text on a black background. No other DS games have this mechanism; not even for Korean releases. This region lock is bypassed by the 3DS for these DS games, even though 3DS games have their own region lock. It's weird.
 
iQue is Nintendo's Chinese subsidiary (previously a partnership between them and Wei Yen until 2013), so when they released the DS with a few localized games, their ROMs had special flags set in them to check if the hardware that ran the cartridge was iQue's or Nintendo's as a sort of region lock. Nintendo's own hardware would fail this check, throwing an "Only for iQue DS" error in white text on a black background. No other DS games have this mechanism; not even for Korean releases. This region lock is bypassed by the 3DS for these DS games, even though 3DS games have their own region lock. It's weird.
  
Emulators differ in their behavior to this region lock. No$GBA crashes. DeSmuME is accurate to non-iQue hardware and will replicate the failure.
+
Emulators differ in their behavior to this region lock. No$GBA crashes. DeSmuME can load them. However, for melonDS, you need a [[Emulator Files|Firmware Dump]] from an iQue DS, otherwise it will replicate the region lock.
  
 
The only way the ROM will accept other hardware (and thus emulators) is with a hack, involving a simple byte change. Use a hex editor to change the byte located at <code>0x1D</code> from value <code>80</code> to <code>00</code>.
 
The only way the ROM will accept other hardware (and thus emulators) is with a hack, involving a simple byte change. Use a hex editor to change the byte located at <code>0x1D</code> from value <code>80</code> to <code>00</code>.

Revision as of 01:04, 11 August 2020

Nintendo DS
DSlitewhite.png
Developer Nintendo
Type Handheld game console
Generation Seventh generation
Release date 2004
Discontinued 2013
Predecessor Game Boy Advance
Successor Nintendo 3DS
Emulated

The Nintendo DS (NDS) is a handheld console produced by Nintendo on November 21, 2004 and had 2 ARM CPUs (ARM9 and ARM7) with 4MB of RAM. The main selling point was the use of dual screens for gameplay, with one being a touchscreen. It is the only console to have come close to the PlayStation 2 in lifetime sales (154.02 million units), as a result of attracting a large amount of casual players, and even non-gamers, into the gaming community.

Emulators

Name Platform(s) Latest Version GBA NDS DSi Libretro Core Active Recommended
PC / x86
DeSmuME Windows Linux macOS FreeBSD 0.9.13
melonDS Windows Linux 0.9.5
Dev Builds
~* (WIP)
DeSmuME X432R Windows Linux macOS FreeBSD 2015-04-19
GBE+ Windows Linux macOS 1.7 (WIP)
medusa Windows Linux macOS alpha 2 [1] (WIP)
CorgiDS Windows Linux macOS 0.1
SVN
[2]
ndsemu Windows Git
No$GBA Windows MS-DOS 3.05 ~
NeonDS Windows 0.2.1
dasShiny Windows Linux Git
DuoS Windows 8/25/2012 Beta
Ensata Windows 1.4d
iDeaS Windows Linux 1.0.4.0
NooDS Windows Linux macOS Git
Mobile / ARM
DraStic Android Pandora r2.6.0.4a build 109
melonDS (unofficial) Android Git ~ (WIP)
iNDS
(nds4ios derived)
(DeSmuME based)
iOS Git
nds4ios iOS SVN
nds4droid
(DeSmuME based)
Android Git
NooDS Android Git
Console
Virtual Console Wii U
melonDS Switch Release 4
GBATemp Thread
NooDS Switch Git

*Only emulated in the latest Dev Builds.

Comparisons

DeSmuME
One of the most developed emulators for regular DS games. DeSmuME has had significant improvements since 2018, though new features are still in development and are only available through either nightly/dev builds. It now uses less CPU/GPU resources, and Wi-Fi is also underway. If you're worried about stability, then stick to the latest stable release. Otherwise, the latest dev builds will have more to offer. (See Common Problems and Solutions for tips.)
DraStic
A payware, closed-source emulator for Android devices that can run games at a decent speed even on potato phones. It's on par with (or in some cases better than) DeSmuME, and emulating it through BlueStacks on PC may actually be a viable and fast alternative aside from a slight input delay. Some rumors have spread around that the developers deliberately put in issues to mess with pirated copies, though this is considered unsubstantiated. At the very least, you shouldn't expect any support from Exophase and company if you use a pirated copy, though it is available for free on the Raspberry Pi and Odroid via RetroPie.
melonDS
Arisotura's goal is to make an emulator that's better optimized and includes features that others lack, either intentionally or not. While the developers of No$GBA had documented the Wi-Fi capabilities first, melonDS is the first and only emulator that's gotten as far as it has and it has been found to work reasonably well with a handful of games. There's also been progress made in emulating the DSi[3][4], so far it's been able to boot into the firmware and load some DSiWare, but "DSi mode" support for retail games is still unsupported. It's on par with DeSmuME in terms of compatibility, but lack some features.
No$GBA
Focuses on speed, and has major compatibility issues and glitches as a result. But because it was originally a GBA emulator, the DS's 3D features are still very poorly handled. However, it might be an option for a very low-end machine but don't expect a lot of games to run perfectly, or at all. A fan program, No$Zoomer, was released for version 2.6 which increases compatibility and options, as well as the titular zooming abilities. The biggest addition is noise cancellation which clears up static that No$GBA makes with its 3D rendering. No$Zoomer hasn't rebased yet but does add options for window resizing. There haven't been any noticeable changes with regards to accuracy, however. In v2.8, No$GBA became the first emulator to supports DSi games, which has been their most notable feature. Only use No$GBA for DSi games that don't work on other emulators, debugging (if you've taken up romhacking for DS games or homebrew development), if you value speed above everything or just as a last resort.
medusa
mGBA developer endrift is also creating a DS emulator, but it's very much a work-in-progress and isn't nearly as far as melonDS in terms of the capabilities it's covered. As of March 2018, medusa's development is "suspended until further notice".[1]
iDeaS
An abandoned and experimental DS emulator that uses a plug-in system, it's very slow and buggy but has partially gotten some features working like the camera and slide accessories.
Ensata
Nintendo's official DS emulator that was leaked to the public. It's not very usable or compatible but it can run a few games.

Comparisons of several Nintendo DS emulators:

High Resolution

melonDS
Has added support for OpenGL renderer and upscaling as of version 0.8.[5] The renderer is much faster than DeSmuME's and supports increasing the internal resolution up to 8x native resolution. More features such as texture filtering are planned.
DeSmuME X432R
A fork of DeSmuME, that has many more graphical enhancement such as an option to increase internal resolution and use MSAA. The devs of DeSmuME have now included an option for increased internal resolution (see below), making X432R outdated. See the DeSmuME page for more details.
DeSmuME (libretro)
Also has an option to increase internal resolution since August 8, 2015 git commit. It requires a very high-end CPU to run at a reasonable framerate.
DraStic
Has released a beta version supporting double the original resolution.
Virtual Console (Wii U)
Has a configuration file with support for x2 internal resolution without any significant performance hit (as well as a brightness setting). However, there's no legit way to enable it without a homebrew-enabled console.

Connectivity

The DS offers five types of connections:

  • Local Wireless Communications - (Multiple Cartridges)
  • DS Download Play - (Single Cartridge)
  • Wi-Fi Connection - (Online Multiplayer)
  • DS/Wii Connectivity
  • GBA/DS Connectivity
Name Platform(s) Latest Version Local Download Play Wi-Fi GBA/DS
melonDS Windows Linux 0.9.5 ~ ~ (Git)
DeSmuME Windows Linux macOS FreeBSD 0.9.13 ~
No$GBA Windows MS-DOS 3.05

The major challenge with emulating multiplayer functionalities is timing inaccuracies, which have made many projects, such as DeSmuME, not want to implement them. So far, the only emulator to actually make any progress is melonDS, but even that is still under development.

Local Wireless Communication

Players who have a copy of the same game can link together using the DS' wireless signals (given that the game offers this feature).

melonDS supports wireless communication with several games, including New Super Mario Bros. and Pokemon, but you need to have either multiple instances opened, which can slow down overall performance, or connect multiple computers via LAN. No$GBA is able to connect, but fails before the actual connection is finished.

DS Download Play

Players who both have a DS but only one copy of a game can use "Download Play" to play together without everyone needing a copy of the game. The player with the physical cartridge will host the game while the other players connects using a "downloaded" version received from the host. Normally they are either simple mini-games, stripped down demos of the main game, or a limited version of multiplayer. In most cases it's better to use multi-cart instead, however there are some games, like Mario Party DS, that requires Download Play in order to use its multiplayer.

Download Play is supported by melonDS. Like with local multiplayer, it is very hit and miss but unlocking the framerate helps. melonDS will often fail during the download process, but some games actually go as far as booting and sometimes in-game as well.

Nintendo Wi-Fi Connection

Nintendo's online service that was available for the Wii and DS and was free to use. It was shutdown on May 20, 2014 due to the company GameSpy, the ones who were managing these servers, shutting down its multiplayer services after being bought out. A popular game that used this feature was Mario Kart DS.

There was a third-party DeSmuME forks that successfully emulated WFC but has quite a bit of requirement (Ethernet cable, though this can be circumvented with external software). After the service shutdown, there was a version compatible with the fan servers (restoring all DLC data but sadly most multiplayer games had their content lost forever). melonDS is one of the only emulators to offer Wi-Fi capabilities. It's still a work-in-progress, but it works relatively well.

DS/Wii Connectivity

Uses the wireless communication on the DS to connect to the Wii. The idea is parallel to the GBA Link Cable for the GameCube, and just like the Link Cable, only a handful of games actually have this feature. Some notable examples are Final Fantasy Crystal Chronicles: Echoes of Time which is essentially the same as the DS port but can connect with other DS' with the game, Pokemon Battle Revolution in which players could transfer their Pokemon to the game and use the DS as a controller, Animal Crossing: City Folk in which data could be transferred between the DS version Animal Crossing: Wild World, and the Nintendo Channel on the Wii where players could download demos of DS games to their console using Download Play (basically the same idea as the Download Station kiosk).

So far, no emulator has been able to emulate this feature, nor have attempted to, and considering that the GBA/GCN connectivity on Dolphin has yet to achieve full functionality (and a lack of interesting titles that uses it), hints that this feature won't be emulated for a while. If this was ever going to be emulated, it would require work on both ends.

GBA/DS Connectivity

Inserting a GBA cartridge in the Slot-2 of the Nintendo DS while a game is running can unlock various gameplay features for several DS games.

It's unknown if No$GBA supports this, but it can be done in DeSmuME by going to Config > Slot 2 (GBA Slot) and selecting GBA Cartridge. Select the GBA ROM file, make sure its .sav file is in the same folder. You may need to reset the game for it to take effect. The latest git of melonDS added support for GBA connectivity and even added support for the solar sensor on GBA Boktai cartridges used in Boktai DS (Lunar Knight), something DeSmuME has yet to support. Either drag-and-drop the GBA ROM onto the program before starting or open the file before loading the NDS file.

Nintendo DSi

Main article: Nintendo DSi emulators

Special Hardware

Guitar Hero Pad
Used in the "Guitar Hero: On Tour" series (required) and Band Hero DS. Supported by DeSmuME (Slot 2).
Piano for Easy Piano
Supported by DeSmuME (Slot 2).
Taito Paddle Controller
Compatible with Arkanoid, Space Invaders Extreme, Space Invaders Extreme 2 and Space Bust-a-Move. Supported by DeSmuME (Slot 2).
Tilt Sensor
Used in "Tony Hawk's Motion/Hue's Pixel Painter." No emulators support this add-on yet. (Slot 2)
Rumble Pack
Supported by DeSmuME (Slot 2). Requires compatible Joystick.
Slide Controller
Required by "Slide Adventure Mag Kid". Yasu made a shoddy plug-in for iDeaS (recommended version was 1.0.2.9.) to try to emulate it. No emulators support this add-on at the moment.
Pokémon Keyboard
Bundled with the Pokémon Typing game (JP/UK/FR). The game refuses to boot without a keyboard, but it can be run on emulators with an anti-piracy fix and another DeSmuME-specific save bug fix. There is also a pre-patched ROM. While it's playable using the on-screen keyboard on the lower screen, the keyboard isn't actually emulated. There is a Lua script that permits using the actual keyboard by mapping presses of the actual keyboard to taps of the virtual Touch Screen. However, you are going to need to blank out all the control/hotkey bindings of DeSmuME if you are going to play this game because some of the keyboard keys also activate some controls; otherwise, pressing the Q key would also pause the game, given one example. A recommendation would be to have a separate copy of 32-bit DeSMuMe which purpose is playing *only* the Pokémon typing games. In that copy, place the patched ROM, the Lua script, and a 32-bit version of lua51.dll. (The platform used in building the .dll should not matter.) Even then, not only is the emulated workaround a little slow, but saving is still broken. Use savestates, instead.
DS Camera
Accessory bundled with the Japan-only Face Training (a European localization for Christmas 2007 was canceled, and it was released as a retail DSi game in 2010 using the internal camera rather than the original accessory). Not to be confused with the built-in DSi camera. No emulators exist for it at all.
Bayer DIDGIT
A glucose meter for diabetic children with a game called Knock 'Em Downs: World's Fair that rewards them for checking their blood sugar levels regularly. The game has been dumped but no support for the glucose meter peripheral exists as of the time of this writing; it may, however, be possible to add reward points through Action Replay codes, not to mention that the game will still function without the glucose meter attachment anyway (albeit with reduced functionality, of course).

iQue DS Region Lock

iQue is Nintendo's Chinese subsidiary (previously a partnership between them and Wei Yen until 2013), so when they released the DS with a few localized games, their ROMs had special flags set in them to check if the hardware that ran the cartridge was iQue's or Nintendo's as a sort of region lock. Nintendo's own hardware would fail this check, throwing an "Only for iQue DS" error in white text on a black background. No other DS games have this mechanism; not even for Korean releases. This region lock is bypassed by the 3DS for these DS games, even though 3DS games have their own region lock. It's weird.

Emulators differ in their behavior to this region lock. No$GBA crashes. DeSmuME can load them. However, for melonDS, you need a Firmware Dump from an iQue DS, otherwise it will replicate the region lock.

The only way the ROM will accept other hardware (and thus emulators) is with a hack, involving a simple byte change. Use a hex editor to change the byte located at 0x1D from value 80 to 00.

Other issues

Certain games, such as American Girl titles (e.g. Julie Finds a Way and Kit Mystery Challenge) suffer from severe flickering issues which keep those games from being playable on most emulators. DraStic was the first emulator able to run the two games properly, and while DeSmuME r5043 had an initial fix that worked around the glitch, it was removed in later revisions as it broke compatibility with Pokemon SoulSilver among others; this has since been patched on r5531 once the true nature of the bug was better understood. The fix would be later incorporated in other emulators. Ultimate Mortal Kombat suffers from flickering and slowdown due to the way it loads sprites, though it isn't as serious in DraStic. Star Wars: The Clone Wars – Jedi Alliance is an even more egregious example, crashing due to timing differences between actual hardware and an emulated system.

References