Difference between revisions of "Nintendo DS emulators"

From Emulation General Wiki
Jump to navigation Jump to search
(Emulators)
(Tags: Mobile edit, Mobile web edit)
m
 
(268 intermediate revisions by 81 users not shown)
Line 2: Line 2:
 
|title = Nintendo DS
 
|title = Nintendo DS
 
|logo = DSlitewhite.png
 
|logo = DSlitewhite.png
 +
|imagecaption=Nintendo DS Lite
 
|developer = [[:Nintendo]]
 
|developer = [[:Nintendo]]
 
|type = [[:Category:Handheld consoles|Handheld game console]]
 
|type = [[:Category:Handheld consoles|Handheld game console]]
 
|generation = [[:Category:Seventh-generation video game consoles|Seventh generation]]
 
|generation = [[:Category:Seventh-generation video game consoles|Seventh generation]]
|release = 2004
+
|release=2004 (DS)<br/>2008 (DSi)
 
|discontinued = 2013
 
|discontinued = 2013
 
|predecessor = [[Game Boy Advance emulators|Game Boy Advance]]
 
|predecessor = [[Game Boy Advance emulators|Game Boy Advance]]
|successor = [[Nintendo DSi emulators|Nintendo DSi]]
+
|successor=[[Nintendo 3DS emulators|(new) 3DS]]
 
|emulated = {{✓}}
 
|emulated = {{✓}}
}}
+
}}  
 +
 
 +
{{for|other emulators that run on NDS hardware|Emulators on DS}}
 +
 
 +
The '''[[wikipedia:Nintendo DS|Nintendo DS]]''' (NDS) is a handheld console produced by Nintendo and released on November 21, 2004, and had 2 ARM CPUs (ARM9 and ARM7) with 4 MBs of RAM and was priced at {{Inflation|USD|149.99|2004}}. 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 number of casual players, and even non-gamers, into the gaming community.
  
The '''[[wikipedia: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.
+
;Remember, certain titles such as [[Wikipedia:Category:Nintendo_DSi_games|DSi retail]] and [[Wikipedia:List_of_DSiWare_games_and_applications|DSiWare]] games are exclusive to the DSi. Make sure your chosen emulator [[#Hardware_features_and_accessories|supports these variations (see "DSi exclusive features" section)]] if you want to play them.
  
 
==Emulators==
 
==Emulators==
{| class="wikitable" style="text-align:center;"
+
<div style="overflow-x:auto;width:100%">
 +
{| class="wikitable" style="text-align:center;width:100%"
 
! scope="col"|Name
 
! scope="col"|Name
 
! scope="col"|Platform(s)
 
! scope="col"|Platform(s)
 
! scope="col"|Latest Version
 
! scope="col"|Latest Version
! scope="col"|[[Game Boy Advance emulators|GBA]]
+
! scope="col"|'''[[#Nintendo DSi|DSi]]'''
! scope="col"|[[Nintendo DSi emulators|DSi]]
+
! scope="col"|[[#Enhancements|Enhancements]]
! scope="col"|[[libretro|Libretro Core]]
+
! scope="col"|[[#Hardware_features_and_accessories|Hardware features<br/>and accessories]]
 +
! scope="col"|<small>Compatibility</small>
 
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 
! scope="col"|Active
 
! scope="col"|Active
! scope="col"|[[Recommended Emulators|Recommended]]
+
! scope="col"|[[Recommended emulators|Recommended]]
 
|-
 
|-
!colspan="9"|PC / x86
+
!colspan="11"|PC / x86
 +
|-
 +
|[[melonDS]]
 +
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 +
|Dev Builds<ref group=N>[https://nightly.link/melonDS-emu/melonDS/workflows/build-windows/master/melonDS-windows-x86_64.zip Windows], [https://nightly.link/melonDS-emu/melonDS/workflows/build-ubuntu/master/melonDS-ubuntu-x86_64.zip Ubuntu], [https://nightly.link/melonDS-emu/melonDS/workflows/build-macos-universal/master/macOS-universal.zip macOS-universal]</ref><br/>[http://melonds.kuribo64.net/downloads.php {{MelonDSVer}}]<br/>[https://buildbot.libretro.com/nightly/ ''libretro core'']<ref group=N name=melonDSRA>Similar to Dolphin, PPSSPP and Citra libretro cores, the standalone version of melonDS is highly recommended over the libretro core as the libretro core version is outdated specifically two versions out of date (still on 0.9.3), and the generation 5 Pokemons are broken. If you turn on C-Gear, after a few minutes you'll be unable to save. [https://github.com/libretro/melonDS/issues/179#issuecomment-1407488464 '''You also can't use any wifi features'''] or do in game trades either or the game will freeze.</ref>
 +
|{{✓}} ||{{~}} ||{{~}} ||[https://melonds.kuribo64.net/board/forum.php?id=3 ?] ||{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|-
 
|[[DeSmuME]]
 
|[[DeSmuME]]
|align=left|{{Icon|Windows|Linux|macOS}}
+
|align=left|{{Icon|Windows|Linux|macOS|Web}}
|[https://desmume.org/download/ {{DeSmuMEVer}}]
+
|[https://desmume.org/download/ {{DeSmuMEVer}}/Nightly]<br/>[https://buildbot.libretro.com/nightly/ libretro core]
|{{✗}} ||{{}} ||{{}} ||{{✓}} ||{{✓}} ||{{✓}}
+
|{{✗}} ||{{~}} ||{{~}} ||? ||{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|-
|[[melonDS]]
+
|[[BizHawk]]<abbr title="Uses melonDS 0.9.5 core for nintendo DS and DSi emulation, mGBA or VBA-Next cores for Game Boy Advance emulation">*</abbr>
|align=left|{{Icon|Windows|Linux|macOS}}
+
|align=left|{{Icon|Windows|Linux}}
|[http://melonds.kuribo64.net/downloads.php {{MelonDSVer}}] [https://github.com/Arisotura/melonDS/actions <br/>Dev Builds]
+
|[https://gitlab.com/TASVideos/BizHawk/-/pipelines Dev builds]<br/>[http://tasvideos.org/BizHawk/ReleaseHistory.html {{BizHawkVer}}]
|{{}} ||{{~}} ||{{}} ||{{✓}} ||{{✓}} ||{{}}
+
|{{}} ||{{~}} ||{{~}} ||? ||{{✓}} ||{{✓}} ||{{~}}
 
|-
 
|-
|[[DeSmuME#Graphical_Enhancement|DeSmuME X432R]]
+
|[[No$|No$GBA]]
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
+
|align=left|{{Icon|Windows|DOS}}
|[http://web.archive.org/web/20150920170430im_/http://shikaver01.webcrow.jp/desmume_x432r/index.html 2015-04-19]
+
|[http://problemkaputt.de/gba.htm {{No$GBAVer}}]
|{{}} ||{{}} ||{{}} ||? ||{{✗}} ||{{}}
+
|{{}} ||{{N}} ||{{~}} ||? ||{{✗}} ||{{✓}} ||{{~}}
 
|-
 
|-
 
|[[GBE+]]
 
|[[GBE+]]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|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>
 +
|-
 +
|[[NooDS]]
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[https://github.com/Hydr8gon/NooDS/releases git]
 +
|{{✗}} ||{{✗}} ||{{✗}} ||? ||{{✓}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 +
|-
 +
|[[mGBA#medusa|mGBA/medusa]]
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[https://mgba.io/downloads.html#medusa alpha 2]
 +
|{{✗}} ||{{✗}} ||{{✗}} ||? ||{{✓}} || {{~}}<ref name="medusa suspended"/>||{{✗}} <small>(WIP)</small>
 
|-
 
|-
|[[mGBA#medusa|medusa]]
+
|[[SkyEmu]]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|align=left|{{Icon|Windows|Linux|macOS}}
|[https://mgba.io/downloads.html alpha 2]
+
|[https://github.com/skylersaleh/SkyEmu/pull/321 Dev Builds]<br/>[https://github.com/skylersaleh/SkyEmu/releases {{SkyEmuVer}}]
|{{}} ||{{✗}} ||{{✗}} ||{{✓}} || {{}}<ref name="medusa suspended"/>||{{✗}}
+
|{{}} ||{{✗}} ||{{✗}} ||? ||{{✓}} ||{{}} ||{{✗}} <small>(WIP)</small>
 
|-
 
|-
 
|[https://corgids.wordpress.com/ CorgiDS]
 
|[https://corgids.wordpress.com/ CorgiDS]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/PSI-Rockin/CorgiDS/releases git]<br />[http://www.emucr.com/search/label/CorgiDS SVN]
 
|[https://github.com/PSI-Rockin/CorgiDS/releases git]<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
 
|align=left|{{Icon|Windows}}
 
|align=left|{{Icon|Windows}}
 
|[https://github.com/rasky/ndsemu git]
 
|[https://github.com/rasky/ndsemu git]
|{{✗}} ||{{✗}} ||{{✗}} ||? ||{{✗}} ||{{✗}}
+
|{{✗}} ||{{✗}} ||{{✗}} ||? ||{{✓}} ||{{✗}} ||{{✗}}
|-
 
|[[No$|No$GBA]]
 
|align=left|{{Icon|Windows|DOS}}
 
|[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]
 
|align=left|{{Icon|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
 
|align=left|{{Icon|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]
 
|align=left|{{Icon|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]]
 
|align=left|{{Icon|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]
 
|align=left|{{Icon|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]
+
|dust
|align=left|{{Icon|Windows|Linux|macOS}}
+
|align=left|{{Icon|Windows|Linux|Mac|Web}}
|[https://github.com/Hydr8gon/NooDS git]
+
|[https://github.com/kelpsyberry/dust git]
|{{}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✗}}
+
|{{}} ||{{✗}} ||{{✗}} ||? ||{{✓}} ||{{✓}} ||{{✗}}
 +
|-
 +
!colspan="10"|Mobile / ARM
 
|-
 
|-
!colspan="9"|Mobile / ARM
+
|<small>[https://docs.libretro.com/library/desmume/ DeSmuME_libretro]</small>
 +
|align=left|{{Icon|Android|iOS}}
 +
|[https://buildbot.libretro.com/nightly/ libretro core]
 +
|{{✗}} ||{{~}} ||{{~}} ||? ||{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|-
 
|[[DraStic]]
 
|[[DraStic]]
|align=left|{{Icon|Android|Pandora}}
+
|align=left|{{Icon|Android|Pandora|Pyra}}
|[https://play.google.com/store/apps/details?id=com.dsemu.drastic {{DraSticVer}}]
+
|[https://play.google.com/store/apps/details?id=com.dsemu.drastic&hl=en_US&gl=US {{DraSticVer}}]<br>[https://pyra-handheld.com/repo/apps/32 0.1 Pyra]
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✓}}
+
|{{✗}} ||{{?}} ||{{?}} ||[https://pandorawiki.org/DraStic_Compatibility_List 68%<br/><small> 49 out of 73 reported titles (Pandora) </small>]<br />[https://xdaforums.com/t/drastic-ds-updated-to-v2-1-5-1a-xplay-compatibility-list-over-100-games-playable.2396919/ 88%<br/><small> 127 out of 145 reported titles (Android) </small>] ||{{~}} ||{{✓}} ||{{✓}}
 +
|-
 +
|[[melonDS]]<small> (unofficial)</small><br/><small>[https://docs.libretro.com/library/melonds/ melonds_libretro]</small>
 +
|align=left|{{Icon|Android|iOS}}
 +
|[https://github.com/rafaelvcaetano/melonDS-android git]<br/>[https://play.google.com/store/apps/details?id=me.magnum.melonds 1.9.3]<br/>[https://buildbot.libretro.com/nightly/ libretro core]<ref group=N name=melonDSRA></ref>
 +
|{{✓}} ||{{~}} ||{{~}} ||? ||{{✓}} ||{{✓}} ||{{~}} <small>(WIP)</small>
 +
|-
 +
|[[Delta]]
 +
|align=left|{{Icon|iOS}}
 +
|[https://github.com/rileytestut/Delta git]
 +
|{{✗}} ||{{?}} ||{{?}} ||? ||{{✓}} ||{{✓}} ||{{~}}
 +
|-
 +
|[[SkyEmu]]
 +
|align=left|{{Icon|Android|iOS}}
 +
|[https://play.google.com/store/apps/details?id=com.sky.SkyEmu v3.2] (Play)[https://www.amazon.com/SkyEmu-GBC-GBA-NDS-Emulator/dp/B0CGHK8QP5 v3.2] (Amazon)[https://github.com/skylersaleh/SkyEmu git]
 +
|{{✗}} ||{{✗}} ||{{✗}} ||? ||{{✓}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 
|-
 
|-
|[[melonDS]]<small> (Unofficial)</small>
+
|[[NooDS]]
 
|align=left|{{Icon|Android}}
 
|align=left|{{Icon|Android}}
|[https://github.com/rafaelvcaetano/melonDS-android git][https://play.google.com/store/apps/details?id=me.magnum.melonds 1.6.0]
+
|[https://play.google.com/store/apps/details?id=com.hydra.noods 0.1]<br/>[https://github.com/Hydr8gon/NooDS/releases git]
|{{~}} ||{{~}} ||{{}} ||{{✓}} ||{{✓}} ||{{~}} (WIP)
+
|{{}} ||{{}} ||{{}} ||? ||{{✓}} ||{{✓}} ||{{}} <small>(WIP)</small>
 
|-
 
|-
|[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>
 
|align=left|{{Icon|iOS}}
 
|align=left|{{Icon|iOS}}
 
|[https://github.com/iNDS-Team/iNDS/releases git]
 
|[https://github.com/iNDS-Team/iNDS/releases git]
|{{✗}} ||{{✗}} ||{{✗}} ||? ||{{}} ||{{}}
+
|{{✗}} ||{{✗}} ||{{✗}} ||? ||{{}} ||{{✗}} ||{{✗}}
 
|-
 
|-
 
|nds4ios
 
|nds4ios
 
|align=left|{{Icon|iOS}}
 
|align=left|{{Icon|iOS}}
 
|[http://nds4ios.angelxwind.net/i/?page/downloads SVN]
 
|[http://nds4ios.angelxwind.net/i/?page/downloads SVN]
|{{✗}} ||{{✗}} ||{{✗}} ||? ||{{✗}} ||{{}}
+
|{{✗}} ||{{✗}} ||{{✗}} ||? ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
|-
|[http://jeffq.com/blog/nds4droid/ nds4droid]<br/><small>(DeSmuME based)</small>
+
|[http://jeffq.com/blog/nds4droid/ nds4droid]<br/><small>(DeSmuME-based)</small>
 
|align=left|{{Icon|Android}}
 
|align=left|{{Icon|Android}}
 
|[https://github.com/jquesnelle/nds4droid git]
 
|[https://github.com/jquesnelle/nds4droid git]
|{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✗}} ||{{✗}}
+
|{{✗}} ||{{✗}} ||{{✗}} ||? ||{{✓}} ||{{✗}} ||{{✗}}
 
|-
 
|-
|[https://github.com/Hydr8gon/NooDS NooDS]
+
!colspan="10"|Console
|align=left|{{Icon|Android}}
+
|-
|[https://github.com/Hydr8gon/NooDS git]
+
|[[Virtual Console]]
|{{✓}} ||{{}} ||{{}} ||{{✓}} ||{{✓}} ||{{}}
+
|align=left|{{Icon|WiiU}}
 +
|
 +
|{{?}} ||{{?}} ||{{?}} ||<small>[[Wikipedia:Virtual_Console#Titles_3|Only for selected titles]]</small> ||{{✗}} ||{{✗}} ||{{✓}}
 +
|-
 +
|TWL_FIRM
 +
|align=left|{{Icon|3DS}}
 +
|N/A
 +
|{{✓}} ||{{✗}} ||{{✗}} ||? ||{{✗}} ||{{✗}} ||{{✓}}
 +
|-
 +
|<small>[https://docs.libretro.com/library/desmume/ DeSmuME_libretro]</small>
 +
|align=left|{{Icon|Switch|PS4}}<br/>{{Icon|Vita}}
 +
|[https://www.retroarch.com/ 0.9.13]
 +
|{{✗}} ||{{~}} ||{{~}} ||? ||{{✓}} ||{{✓}} ||{{✓}}
 +
|-
 +
|[[melonDS]]<br/><small>[https://docs.libretro.com/library/melonds/ melonds_libretro]</small>
 +
|align=left|{{Icon|Switch|Vita}}<br/>{{Icon|PS2}}
 +
|[https://buildbot.libretro.com/nightly/ libretro core]<ref group=N name=melonDSRA></ref><br/>[https://github.com/rsduck/melonDS/releases git]<small> (Switch)</small><br/>[https://github.com/Rinnegatamante/melonDS-Vita git]<small>(Vita Port)</small><br/>[https://github.com/DanielSant0s/melonDS-PS2 git]<small> (PS2 Port)</small><br/>
 +
|{{✓}} ||{{~}} ||{{~}} ||? ||{{✓}} ||{{✓}} ||{{~}} <small>(WIP)</small>
 
|-
 
|-
!colspan="9"|Console
+
|[[NooDS]]
 +
|align=left|{{Icon|Switch|Vita|WiiU}}<br/>{{Icon|PSP}}
 +
|[https://github.com/Hydr8gon/NooDS git]<small> (Switch/Vita/WiiU)</small><br/>[https://github.com/Xiro28/NooDS_PSP git] <small>(PSP port)</small>
 +
|{{✗}} ||{{✗}} ||{{✗}} ||? ||{{✓}} ||{{✓}} ||{{~}} <small>(WIP)</small>
 
|-
 
|-
 
|[[DeSmuME PSP]]
 
|[[DeSmuME PSP]]
 
|align=left|{{Icon|PSP}}
 
|align=left|{{Icon|PSP}}
|[https://cdn.discordapp.com/attachments/590011753849421846/870274164748079104/desmume_psp_4.zip V4][https://github.com/Xiro28/DeSmuME-PSP git][https://github.com/Xiro28/desmume_psp_experimental Exp.]
+
|[https://cdn.discordapp.com/attachments/590011753849421846/870274164748079104/desmume_psp_4.zip V4][https://github.com/Xiro28/DesmumePSPExperimental Experimental]
|{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{}}<small> (WIP)</small>
+
|{{✗}} ||{{✗}} ||{{✗}} ||[[DeSmuME PSP|26%<br/><small>16 out of 63 reported titles </small>]] ||{{✓}} ||{{✓}} ||{{~}}
 
|-
 
|-
 
|DesmumeX
 
|DesmumeX
 
|align=left|{{Icon|Xbox}}
 
|align=left|{{Icon|Xbox}}
 
|[https://www.1emulation.com/forums/topic/35774-desmumex-v087-new-update 0.87]
 
|[https://www.1emulation.com/forums/topic/35774-desmumex-v087-new-update 0.87]
|{{✗}} ||{{✗}} ||{{✗}} ||? ||{{✗}} ||{{✓}}
+
|{{✗}} ||{{✗}} ||{{✗}} ||? ||{{✗}} ||{{✗}} ||{{~}}
|-
 
|[[Virtual Console]]
 
|align=left|{{Icon|WiiU}}
 
|
 
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}}
 
|-
 
|[[melonDS]]
 
|align=left|{{Icon|Switch}}
 
|[https://github.com/rsduck/melonDS/releases git]
 
|{{✗}} ||{{✗}} ||{{✓}} ||? ||{{✓}} ||{{✗}}
 
|-
 
|[https://github.com/Hydr8gon/NooDS NooDS]
 
|align=left|{{Icon|Switch}}
 
|[https://github.com/Hydr8gon/NooDS git]
 
|{{✓}} ||{{✗}} ||{{✗}} ||? ||{{✓}} ||{{✗}}
 
 
|-
 
|-
 
|[[DeSmuME PSP|DSonPSP]]
 
|[[DeSmuME PSP|DSonPSP]]
 
|align=left|{{Icon|PSP}}
 
|align=left|{{Icon|PSP}}
 
|[https://wololo.net/downloads/index.php/download/1235 0.7]
 
|[https://wololo.net/downloads/index.php/download/1235 0.7]
|{{✗}} ||{{✗}} ||{{✗}} ||? ||{{✗}}<small> (POC)</small> ||{{✗}}
+
|{{✗}} ||{{✗}} ||{{✗}} ||? ||? ||{{✗}} <small>(POC)</small> ||{{✗}}
 
|}
 
|}
 +
</div>
 +
<references group=N />
  
 
===Comparisons===
 
===Comparisons===
;[[melonDS]]: Unlike DeSmuME, melonDS can use wifi, and has some DSi support. However, it does require the DS BIOS. In terms of being user-friendly, options in melonDS are more simplified. Has similar DS game compatibility as DeSmuME. Both can run games at a higher internal resolution (sharper 3D objects), and can open roms inside an archive (zip, rar, 7z). Both can display the two screens in a variety of ways, but melonDS has a hybrid mode. [https://i.imgur.com/S73Eb4m.jpg (Example)] 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. melonDS does not have custom file paths yet (all saves will be created where the rom is). Switching to opengl in core options may give a performance boost.
+
;[[melonDS]]
;[[DeSmuME]]: DeSmuME works out of the the box;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. The latest "Stable" build is no longer recommended as it's over 5 years old and lacks any new features. If you do run into issues on the dev builds, then try switching back to the last stable build (see [[Common Problems and Solutions]] for tips).
+
:Unlike DeSmuME, melonDS has some DSi support. In terms of being user-friendly, options in melonDS are more simplified. Has similar DS game compatibility as DeSmuME. Both can run games at a higher internal resolution (sharper 3D objects) and can open ROMs inside a compressed archive (ZIP, RAR, 7Z etc.). Both can display the two screens in a variety of ways, but melonDS has a hybrid mode. [https://i.imgur.com/S73Eb4m.jpg (Example)] 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's been found to work reasonably well with a handful of games. Switching to OpenGL in core options may give a performance boost. In May 2023, it was confirmed that there are plans for high-level emulation of Arm7 on MelonDS. The project is codenamed MelonHLE.
;[[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.
+
 
;[[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.
+
;[[DeSmuME]]
;[[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>
+
:DeSmuME has had significant improvements since 2018; new features include less CPU/GPU resource usage and high-resolution 3D rendering, and Wi-Fi emulation has been reintroduced in the latest builds. v0.9.13 from May 2022 is the first "Stable" build in over 7 years and is highly recommended over all previous builds (though dev builds are also generally very usable). [[OpenEmu]] uses a shallow fork of the v0.9.11 build and should be avoided as well.
;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.
+
;[[DraStic]]
 +
:A (currently) 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 unofficial copies, though this is considered unsubstantiated. At the very least, you shouldn't expect any support from Exophase and company if you use a unofficial copy. It is available on the Raspberry Pi and Odroid via RetroPie, and runs relatively well[https://youtu.be/715kg1-hmxA]. As of March 5, 2024, due to yuzu lawsuits mainly focused on the Zelda franchise, the creator made it free and plans on open sourcing the code.
 +
 
 +
;[[No$|No$GBA]]
 +
:Focuses on speed, and has major compatibility issues and glitches as a result. Because it was initially a GBA emulator, the DS' 3D features are still very poorly handled. '''It's a good option for low-end machines, but don't expect a lot of games to run perfectly'''. A fan program, No$Zoomer, was released for version 2.6, which increases compatibility and options, as well as the titular zooming and resizing abilities. The biggest addition is noise cancellation which clears up static that No$GBA makes with its 3D rendering. It doesn't change accuracy though. No$Zoomer never rebased to newer No$GBA versions, and it looks like it was abandoned, so it likely never will. In v2.8, No$GBA became the first emulator to support 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 ROM-hacking for DS games or homebrew development), if you value speed above everything, if you're using a potato PC, or just as a last resort.
 +
 
 +
;[[Delta]]
 +
:An open-source application for iOS with the ability to emulate many consoles and handhelds, including the DS. Since version 1.3, Delta Emulator allows you to emulate Nintendo DS with a DeSmuME or melonDS core. You will need to have DS BIOS or DSi BIOS to play DS/DSi games in Delta using the melonDS core. It also allows you to boot into DS/DSi home screen and functions similarly to melonDS.
 +
 
 +
;[[mGBA#medusa|mGBA/medusa]]
 +
:[[mGBA]] developer endrift is also creating a DS emulator, but it's very much a [https://mgba.io/timeline.html#IN+THE+FUTURE 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.
 +
;[[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:'''
 
'''Comparisons of several Nintendo DS emulators:'''
Line 176: Line 234:
  
 
===High resolution===
 
===High resolution===
;melonDS: Has an OpenGL renderer with upscaling as of version 0.8.<ref name="melondsopengl">http://melonds.kuribo64.net/comments.php?id=90</ref> The renderer is much faster than DeSmuME's and supports increasing the internal resolution up to 16x native resolution. More features such as texture filtering are planned.
+
;[[melonDS]]
;DeSmuME X432R:A fork of DeSmuME that has 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.
+
:Has an OpenGL renderer with upscaling as of version 0.8.<ref name="melondsopengl">http://melonds.kuribo64.net/comments.php?id=90</ref> The renderer is much faster than DeSmuME's and supports increasing the internal resolution up to 16x native resolution. More features, such as texture filtering, are planned.
;DeSmuME <small>([[libretro]])</small>:Also has an option to increase internal resolution since [https://github.com/libretro/desmume/commit/5e430dfbc22f9d54c77f291304a38352ee1e5a63 August 8, 2015 git commit]. It requires a very high-end CPU to run at a reasonable framerate.
+
 
 +
;DeSmuME X432R
 +
:A fork of DeSmuME that has graphical enhancements, 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]] <small>([[libretro]])</small>
 +
:Also has the option to increase internal resolution since the [https://github.com/libretro/desmume/commit/5e430dfbc22f9d54c77f291304a38352ee1e5a63 8/8/15 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.
 
;DraStic:Has released a beta version supporting double the original resolution.
 
;Virtual Console <small>(Wii U)</small>: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.
 
;Virtual Console <small>(Wii U)</small>: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==
+
==Enhancements==
 +
<div style="overflow-x:auto;width:100%">
 +
{|class="wikitable" style="text-align:center;vertical-align:middle;width:100%"
 +
|- style="font-weight:bold;"
 +
! colspan=2 | Name
 +
! melonDS
 +
! DESmuME
 +
! Bizhawk
 +
! No$GBA
 +
! GBE+
 +
! SkyEmu
 +
! mGBA/medusa
 +
|-
 +
| rowspan=5 | Graphics
 +
| [[Resolution|Resizable Internal Resolution]]
 +
| {{Y}}
 +
| {{Y}}
 +
| {{Y}}
 +
| {{?}}
 +
|
 +
|
 +
|
 +
|-
 +
| [[Widescreen_hacks#Nintendo_DS|Widescreen hack]]<br/><small>Widescreen is possible thanks to specific codes made by the community for a lot of DS games.</small>
 +
| {{Y}}[https://github.com/melonDS-emu/melonDS/issues/395 *]
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
|
 +
|
 +
|
 +
|-
 +
| [[Texture_packs#Texture_Replacement_.283D.29|Texture packs]]
 +
| {{✗}}([https://melonds.kuribo64.net/comments.php?id=182 WIP])
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
|-
 +
| Pre-rendering AA<br/><small>(MSAA, SSAA)</small>
 +
| {{✗}}
 +
| {{Y}} (MSAA)
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
|-
 +
| Super-resolution techniques<br/><small>([https://github.com/NVIDIAGameWorks/Streamline/blob/main/docs/ProgrammingGuideDLSS.md DLSS], XeSS and [[Wikipedia:GPUOpen#FidelityFX_Super_Resolution|FSR 2+]])</small>
 +
| colspan=7 | <small>Requires access to the depth buffer and temporal data like motion-vectors so it's quite challenging and unlikely to be feasible in the near future.<br/>Besides any GPU that can use DLSS can run these emulator at 4k native with ease anyway.</small>
 +
|-
 +
| rowspan=3 | Performance
 +
| [[Overclocking|Overclock]]
 +
| {{~}}[https://melonds.kuribo64.net/board/thread.php?pid=2574#2574 *]
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
|-
 +
| [[30/60_FPS_cheat_codes|Internal Framerate Hack]]
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
|-
 +
| [https://blurbusters.com/frame-generation-essentials-interpolation-extrapolation-and-reprojection/ Frame generation technologies]<br/><small>([https://store.steampowered.com/app/993090/Lossless_Scaling/ LSFG], [https://github.com/NVIDIAGameWorks/Streamline/blob/main/docs/ProgrammingGuideDLSS_G.md DLSS-G], [https://www.techpowerup.com/316835/extrass-framework-paper-details-intels-take-on-frame-generation ExtraSS] and [https://community.amd.com/t5/gaming/amd-fluid-motion-frames-is-out-now-on-amd-radeon-rx-7000-series/ba-p/634372 AFMF])</small>
 +
| colspan=7 | <small>Implementing frame generation technology in an emulator is unfortunately quite challenging and unlikely to be feasible in the near future, however post-processing techniques such as [[Wikipedia:Motion_interpolation|motion interpolation]] is quite possible. [[Input_lag|Input latency]] will be a crucial factor, but its impact likely varies depending on the specific technique employed, it's recommended to use '''after applying the "Internal Framerate Hack"'''.<br/>While '''AFMF''' or '''LSFG''' could be used with melonDS or DESmuME?, please be aware that some visual glitches and artifacts may occur at this time.
 +
|-
 +
| rowspan=6 | Post-Processing
 +
| [[Wikipedia:Category:Anti-aliasing_algorithms|Post-rendering AA]]<br/><small>(FXAA, TXAA and MLAA/SMAA)</small>
 +
| {{~}}<ref group=N3>Only possible with software renderer.</ref>
 +
| {{N}}<abbr title="Supports MSAA but there is no post-rendering AA technique supported.">*</abbr>
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
|-
 +
| [[Wikipedia:Comparison_gallery_of_image_scaling_algorithms|Post-rendering scaling]]<br/><small>(Sharp bilinear, Lanczos and [[Wikipedia:GPUOpen#FidelityFX_Super_Resolution|FSR 1]])</small>
 +
| {{Y}}
 +
| {{Y}}
 +
| {{?}}
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| [[Shaders_and_filters|Filters]]
 +
| {{N}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
|
 +
|
 +
|
 +
|-
 +
|[[Shaders_and_filters#AI-powered filters|AI-powered filter compatible]]<br/><small>([https://www.nvidia.com/en-us/geforce/news/gfecnt/nvidia-freestyle-ansel-enhancements-geforce-experience-article/ Freestyle])</small>
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
|-
 +
| [[Shader_Presets|Shader Chain]]
 +
| {{~}}<ref group=N3 name=lrRA></ref>
 +
| {{~}}<ref group=N3 name=lrRA></ref>
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
|-
 +
|[[High_dynamic_range#Inverse_tone_mapping|Inverse tone mapping compatible]]
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
|-
 +
| rowspan=5 | [https://tasvideos.org/Emulatorresources/Features TAS features]
 +
| [[Wikipedia:Macro_(computer_science)|Macros/Scripts]]/[https://tasvideos.org/LuaScripting Lua]
 +
| [https://github.com/melonDS-emu/melonDS/pull/1671 WIP]
 +
| {{Y}}
 +
| {{Y}}
 +
| {{?}}
 +
|
 +
|
 +
|
 +
|-
 +
| Rewind
 +
| {{N}}[https://melonds.kuribo64.net/board/thread.php?pid=5060 *]
 +
| {{~}}<ref group=N3 name=lrRA></ref>
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
|-
 +
| Fast-Forward/Turbo Speed
 +
| {{Y}}
 +
| {{Y}}
 +
| {{?}}
 +
| {{?}}
 +
|
 +
|
 +
|
 +
|-
 +
| Savestates
 +
| {{Y}}
 +
| {{Y}}
 +
| {{?}}
 +
| {{?}}
 +
|
 +
|
 +
|
 +
|-
 +
| [https://tasvideos.org/Movies Movie recording/playback]
 +
| {{N}}[https://github.com/melonDS-emu/melonDS/issues/463 *]
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| rowspan=2 | Controls
 +
| [[Controllers#Mouse_Injectors_for_Emulators|Mouse Injector Compatible]]
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
|-
 +
| [[Input_lag|Input lag-mitigating technique]]
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
|-
 +
| rowspan=6 | Quality of life
 +
| [[Save_disk_space_for_ISOs|Streamable compression format]]
 +
| {{Y}}
 +
| {{Y}}
 +
| {{?}}
 +
| {{?}}
 +
|
 +
|
 +
|
 +
|-
 +
| Built-in [[Mods,_hacks_and_fan-translations#Built-in_graphics_mod_editor.2Fmanager_for_emulators|Graphics mod editor/manager]]
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
|-
 +
| Built-in [[Cheats_and_patches|Cheat Manager]]
 +
| {{Y}}
 +
| {{Y}}
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| Per-Game Profiles
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| Command Line Options
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| [[Frontends#Graphical_User_Interfaces_.28GUIs.29|Big Picture Mode]]
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| rowspan=5 | Misc
 +
| [[Netplay#Other|Netplay]]
 +
| {{N}}
 +
| {{~}}<ref group=N3 name=lrRA>Only possible with libretro core. [https://github.com/melonDS-emu/melonDS/issues/1146 Github Issue page for adding RetroAchievements to the melonDS standalone version]. But DSi RetroAchievement are [https://docs.libretro.com/guides/retroachievements/#nintendo not supported].</ref>
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
|-
 +
| [[Virtual_reality#VR_game_room_simulations|EmuVR support]]
 +
| colspan=7 |  Exclusive to [https://www.emuvr.net/wiki/Installation_Guide#Downloads libretro cores] at the moment.
 +
|-
 +
| RetroAchievements<br/>[https://retroachievements.org/gameList.php?c=18 DS], [https://retroachievements.org/gameList.php?c=78 DSi]
 +
| {{~}}<ref group=N3 name=lrRA></ref>
 +
| {{~}}<ref group=N3 name=lrRA></ref>
 +
| {{Y}}<ref group=N3 name=RABizHawk>[https://twitter.com/RetroCheevos/status/1647525064667955201?cxt=HHwWgoCw4afUl90tAAAA DSi RetroAchievements exclusive to BizHawk] at the moment.</ref>
 +
| {{N}}
 +
|
 +
|
 +
|
 +
|-
 +
| Free Look<br/><small>Free Look is a enhancement feature that allows manipulation of the in-game camera.</small>
 +
| {{N}}
 +
| [https://old.reddit.com/r/emulation/comments/9lwy0r/desmume_begins_to_implement_a_freelook_feature/ WIP]
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
|-
 +
| [[Wikipedia:Category:Debugging|Debug Features]]
 +
| {{N}}[https://github.com/melonDS-emu/melonDS/issues/249 *]
 +
| {{Y}}
 +
| {{?}}
 +
| {{Y}}
 +
|
 +
|
 +
|
 +
|}
 +
</div>
 +
<references group=N3/>
 +
 
 +
==Hardware features and accessories==
 +
<div style="overflow-x:auto;width:100%">
 +
{| class="wikitable" style="text-align:center;vertical-align:middle;width:100%"
 +
|- style="font-weight:bold;"
 +
| colspan=2 | Name
 +
! DeSmuME
 +
! melonDS
 +
! No$GBA
 +
! GBE+
 +
! SkyEmu
 +
! mGBA/medusa
 +
!Bizhawk
 +
!TWL-FIRM
 +
|-
 +
| rowspan=5 | [[#Connectivity|Connectivity]]
 +
| [[#GBA/DS connectivity|GBA/DS connectivity]]
 +
| {{✓}}
 +
| {{✓}}
 +
| {{~}}
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| [[#Nintendo Wi-Fi Connection|Nintendo Wi-Fi Connection]]
 +
| {{~}}
 +
| {{✓}}
 +
| {{✗}}
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| [[#Local wireless communication|Local wireless communication]]
 +
| {{✗}}
 +
| {{~}}
 +
| {{✗}}
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| [[#DS Download Play|DS Download Play]]
 +
| {{✗}}
 +
| {{~}}
 +
| {{✗}}
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| [[#DS/Wii connectivity|DS/Wii connectivity]]
 +
| {{✗}}
 +
| {{✗}}[https://github.com/melonDS-emu/melonDS/issues/1000 *]
 +
| {{✗}}
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| rowspan=4 | Controllers
 +
| Guitar Hero pad
 +
| {{✓}}
 +
| {{✗}}<ref group=N2 name=Slot2MelonDS>If this [https://github.com/melonDS-emu/melonDS/pull/719 Pull request] gets merged, we could see Slot 2 peripherals supported on MelonDS.</ref>
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
| Piano for Easy Piano
 +
| {{✓}}
 +
| {{✗}}<ref group=N2 name=Slot2MelonDS></ref>
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
| Taito paddle controller
 +
| {{✓}}
 +
| {{✗}}<ref group=N2 name=Slot2MelonDS></ref>
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
| Nintendo Wireless Keyboard
 +
| {{~}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
| rowspan=5 | Inputs
 +
| Rumble pack
 +
| {{✓}}
 +
| {{✗}}<ref group=N2 name=Slot2MelonDS></ref>
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
| Tilt sensor
 +
| {{✗}}
 +
| {{✗}}<ref group=N2 name=Slot2MelonDS></ref>
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
| Pressure-sensitive touchscreen
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
| Slide controller
 +
| {{✗}}<ref group=N2 name=SlideControllerDeSmuME> There is an open [https://github.com/TASEmulators/desmume/pull/737 pull request] that implements support for this add-on.</ref>
 +
| {{✗}}<ref group=N2 name=Slot2MelonDS></ref>
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
| DS camera
 +
| {{✗}}
 +
| {{✓}}<ref group=N2>melonDS supports outer and inner cameras in Physical Camera mode and as Image File.</ref>
 +
| {{~}}<ref group=N2 name="nocash-whitenoise">no$gba supports whitenoise for the camera and microphone.</ref>
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✓}}
 +
|-
 +
| rowspan=2 | Bayer DIDGIT
 +
| Communication
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
| Emulation
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
| rowspan=2 | [https://dmitry.gr/?r=05.Projects&proj=28.%20pokewalker PokéWalker]
 +
| Communication
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
| Emulation[https://github.com/UnrealPowerz/powar *]
 +
| {{✗}}
 +
| {{✗}}[https://github.com/UnrealPowerz/powar/issues/2 *]
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
| colspan=2 | [[#Backwards_compatibility_for_Game_Boy_Advance.2FGBA_Mode|Backwards compatibility for Game Boy Advance/GBA Mode]]
 +
| {{✗}}
 +
| {{✗}}[https://melonds.kuribo64.net/board/thread.php?id=1229 *]
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
| colspan=2 | iQue DS region lock
 +
| {{✓}}
 +
| {{~}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
| colspan=2 | Ubisoft Thrustmaster
 +
| {{TBD}}
 +
| {{TBD}}
 +
| {{TBD}}
 +
| {{Y}}[https://shonumi.github.io/articles/art26.html *]
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
| colspan=2 | Inrou-Kun pedometer
 +
| {{TBD}}
 +
| {{TBD}}
 +
| {{TBD}}
 +
| {{Y}}[https://shonumi.github.io/articles/art26.html *]
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
| colspan=2 | Sega Card Reader
 +
| {{Y}}<ref group=N2 name=CardReaderDeSmuME>Supported in the latest nightly builds, on Windows only.</ref>
 +
| {{TBD}}
 +
| {{TBD}}
 +
| {{Y}}[https://shonumi.github.io/articles/art21.html *]
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
| colspan=2 | Magic Reader
 +
| {{TBD}}
 +
| {{TBD}}
 +
| {{TBD}}
 +
| {{Y}}[https://shonumi.github.io/articles/art23.html *]
 +
| {{✗}}
 +
| {{✗}}
 +
|
 +
|
 +
|-
 +
! colspan=10 | DSi exclusive features
 +
|-
 +
| rowspan=2 | DSi Inputs
 +
| Solar Sensor
 +
| {{✗}}
 +
| {{~}}<ref name=manual group=N2>Only manual configuration. No automatic detection.</ref>
 +
| {{~}}<ref name=manual group=N2 />
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{~}}<ref name=manual group=N2 />
 +
| {{✗}}
 +
|-
 +
| Microphone
 +
| {{✗}}
 +
| {{✓}}<ref group=N2>melonDS supports microphone in External microphone, Blow noise and WAV file.</ref>
 +
| {{~}}<ref group=N2 name="nocash-whitenoise"></ref>
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✓}}
 +
|-
 +
| rowspan=3 | [[#DSi Game formats|DSi Game formats]]
 +
| DSi (enhanced)
 +
| {{✗}}
 +
| {{✓}}
 +
| {{~}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✓}}
 +
| {{✓}}
 +
|-
 +
| DSi (exclusive)
 +
| {{✗}}
 +
| {{✓}}
 +
| {{✓}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✓}}
 +
| {{✓}}
 +
|-
 +
| DSi (digital) & DSiWare
 +
| {{✗}}
 +
| {{✓}}
 +
| {{✓}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✓}}
 +
| {{✓}}
 +
|-
 +
| colspan=2 | DSi SD Card
 +
| {{✗}}
 +
| {{✓}}
 +
| {{✓}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✗}}
 +
| {{✓}}
 +
|}
 +
</div>
 +
<references group=N2/>
 +
===Connectivity===
 
The DS offers five types of connections:
 
The DS offers five types of connections:
 
* '''Local wireless communications''' - ''(Multiple cartridges)''
 
* '''Local wireless communications''' - ''(Multiple cartridges)''
Line 189: Line 870:
 
* '''DS/Wii connectivity'''
 
* '''DS/Wii connectivity'''
 
* '''GBA/DS connectivity'''
 
* '''GBA/DS connectivity'''
 
{| class="wikitable" style="text-align:center;"
 
|-
 
! scope="col"|Name
 
! scope="col"|Platform(s)
 
! scope="col"|Latest Version
 
! scope="col"|Local
 
! scope="col"|Download Play
 
! scope="col"|Wi-Fi
 
! scope="col"|GBA/DS
 
|-
 
|[[melonDS|melonDS]]
 
|align=left|{{Icon|Windows|Linux}}
 
|{{MelonDSVer}}
 
|{{~}} ||{{~}} ||{{✓}} ||{{✓}}
 
|-
 
|[[DeSmuME]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|{{DeSmuMEVer}}
 
|{{✗}} ||{{✗}} ||{{~}} ||{{✓}}
 
|-
 
|[[No$|No$GBA]]
 
|align=left|{{Icon|Windows|DOS}}
 
|[http://problemkaputt.de/gba.htm {{No$GBAVer}}]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}}
 
|}
 
  
 
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.  
 
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===
+
====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).
+
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).
  
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.
+
melonDS supports wireless communication with several games, including ''New Super Mario Bros.'' and the ''Pokémon'' games, but you need to have either multiple instances opened, which can slow down overall performance, or connect multiple computers via LAN. No$GBA can connect but fails before the actual connection is finished.
  
===DS Download Play===
+
====DS Download Play====
This feature allows players with a DS device, and only one copy of a game, to play together. This way, everyone doesn't need to have 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.
+
This feature allows players with a DS and only one copy of a game to play together. This way, not everyone needs a copy of a game.  The player with the physical cartridge will host the game while the other players connect 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, some games, like ''Mario Party DS'', require Download Play 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.
+
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, 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''. 
+
{{Main|Nintendo Wi-Fi Connection}}
  
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 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, [https://nintendo.fandom.com/wiki/Wii-to-DS_connectivity only a handful of games actually have this feature]. Some notable examples include:
  
===DS/Wii connectivity===
+
* ''Final Fantasy Crystal Chronicles: Echoes of Time'' - which is essentially the same as the DS port but can connect with other DSes with the game.
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).
+
* ''Pokémon Battle Revolution'' - in which players could transfer their Pokémon from the Generation IV main series games 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. 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. If this were 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 several DS games].  
 
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.  
+
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, and make sure its <code>.sav</code> file is in the same folder. You may need to reset the game for it to take effect.  
As of version 0.9, melonDS supports 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.
+
As of version 0.9, [https://melonds.kuribo64.net/comments.php?id=110 melonDS supports 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==
+
===Backwards compatibility for Game Boy Advance/GBA Mode===
{{Main|Nintendo DSi emulators}}
+
The Nintendo DS is backward compatible with Game Boy Advance (GBA) cartridges. Should not be confused with [[Game_Boy_Advance_emulators|Game Boy Advance emulation]] or [[#Connectivity|GBA/DS connectivity]]. None of the emulators supports this feature currently.
  
==Special hardware==
+
===Accessories===
 +
:''[[Wikipedia:List_of_Nintendo_DS_accessories|Wikipedia - List of Nintendo DS accessories]]''
 
;Guitar Hero pad: Used in the "Guitar Hero: On Tour" series (required) and Band Hero DS. Supported by DeSmuME (Slot 2).
 
;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).
 
;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).
+
;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)
 
;Tilt sensor: Used in "Tony Hawk's Motion/Hue's Pixel Painter." No emulators support this add-on yet. (Slot 2)
 +
;Pressure-sensitive touchscreen: Used in "Harvest Moon DS", "Colors!", "Metroid Prime: Hunters", "Okamiden" and "Rhythm Heaven". No emulators support this feature yet (can work with analog triggers or DualShock 2/3 pressure-sensitive face buttons).
 
;Rumble pack: Supported by DeSmuME (Slot 2). Requires compatible Joystick.
 
;Rumble pack: Supported by DeSmuME (Slot 2). Requires compatible Joystick.
;Slide controller: Required by "Slide Adventure Mag Kid". Yasu made a shoddy [http://home.usay.jp/pc/etc/nds/iDeaS_slide.zip 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.
+
;Slide controller: Required by "Slide Adventure Mag Kid". No emulators support this add-on at the moment. There is an [https://github.com/TASEmulators/desmume/pull/737 open PR] for DeSmuME that implements this add-on.
;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.
+
;Nintendo Wireless Keyboard: Bundled with "Learn with Pokémon: Typing Adventure" (JP/EU/AU). 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'll 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* this game. 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 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).
+
;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 can load them. However, for melonDS, you need a [[Emulator Files|Firmware Dump]] from an iQue DS, otherwise it will replicate the region lock.
+
Emulators differ in their behavior to this region lock. No$GBA crashes, while 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>.
  
 
===Other issues===
 
===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 [https://sourceforge.net/p/desmume/bugs/1134/ 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.
+
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 ''Pokémon SoulSilver'', among others; this has since been patched on r5531 once the true nature of the [https://sourceforge.net/p/desmume/bugs/1134/ bug] was better understood. The fix would be later incorporated into 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.
 +
 
 +
=Nintendo DSi=
 +
{{Infobox console
 +
|title = Nintendo DSi
 +
|logo = DSiBlack.png
 +
|developer = [[:Nintendo]]
 +
|type = [[:Category:Handheld consoles|Handheld game console]]
 +
|generation = [[:Category:Seventh-generation video game consoles|Seventh generation]]
 +
|release = 2009
 +
|discontinued = 2014
 +
|predecessor=[[Game Boy Advance emulators|Game Boy Advance]], [[Nintendo DS emulators|DS]]
 +
|successor=[[Nintendo 3DS emulators|3DS family]]
 +
|emulated = {{✓}}
 +
}}
 +
 
 +
Released on April 5, 2009, the '''[[wikipedia:Nintendo DSi|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.  It also did away with backwards-compatiblity by removing Slot-2 which was used to load GBA cartridges and certain accessories (such as the Rumble Pak).
 +
 
 +
DSi emulation has been pretty neglected due to its 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 cause 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 some 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.
 +
 
 +
As of version 0.9, melonDS has DSi emulation. It can connect to the internet and can play games with WFC online using libslirp or libpcap. 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 dev has already compiled on the subject<ref>http://melonds.kuribo64.net/board/thread.php?id=13</ref> ([https://problemkaputt.de/gbatek.htm GBATEK]).
 +
 
 +
==DSi 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 if 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 not load any DSi enhancements.  DSi-enhanced games will also have an animated icon when displayed in the boot menu of the DSi and the titleID on the cartridge will say '''TWL''' instead of '''NTR'''.
 +
;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://en.wikipedia.org/wiki/Nintendo_DSi#Software_library five 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 a lot of interesting exclusives for the system were released as DSiWare.  The Nintendo 3DS eShop also had some DSiWare for purchase (which used to be the only ''legal'' way of obtaining them), though it uses a different file packaging format than the DSi. The 3DS itself is also capable of running other DSiWare since the firmware used for backwards-compatibility is the same as the DSi. 
 +
 
 +
All three formats can be converted to <code>.nds</code> format. Compared to regular DS games, DSi games have some additional header information that wasn't even correctly dumped in most early sets. Recent sets have since updated to the correct format. DSiWare dumps can 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, some are only available for digital purchase at the 3DS eShop and are installed as apps to the limited TWL NAND.  Users with custom firmware can also convert DSiWare to an installable <code>.cia</code> and even dump already installed ones back to <code>.nds</code>.  Since both the DSi Shop and 3DS eShop have closed, the only way of obtaining DSiWare on the original system is by [[Modding Consoles/Flashcarts#Nintendo_DSi|homebrewing]] your DSi and launching the <code>.nds</code> ROM through Unlaunch or [[TWiLight Menu++]].
 +
 
 +
==DSi Emulation Tutorial==
 +
===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.  melonDS also requires these files along with the regular DS BIOS and the DSi's firmware.bin. These unicorns can be found [[Emulator_Files#Nintendo_DS_.2F_DSi|here]].
 +
 
 +
It's also advised (but still completely '''optional''') to use a NAND dump for No$GBA to increase compatibility, however a NAND dump is required in order to use melonDS.
 +
 
 +
===No$GBA===
 +
For now, NO$GBA is the most mature DS emulation project that supports the Nintendo DSi. Using the latest debugger version of NO$GBA is recommended.
 +
;Game Loading Methods
 +
:;Simple .nds Loading
 +
:Requirements: These [https://archive.org/details/DSiFirmwareFiles files] with the NO$GBA version overwritten with the latest version.
 +
 
 +
:DSiWare ROMs preserved online in romsets currently use the nds format, similar to regular Nintendo DS ROMs. If you change Emulation Settings > NDS Mode/Colors > DSi (retail/16MB), you can simply drag and drop all three types of DSi content on the emulator (or open the ROM), and it will run in DSi Mode.
 +
 
 +
:However, it's recommended for retail cartridges to be loaded that way with the option "Emulation Settings > Reset/Startup Entry Point" set to "GBA/NDS BIOS". This loading method isn't recommended for DSiWare games because of some bugs introduced and the lack of ability to save altogether. However if you insist, do set that option "Reset/Startup Entry Point" to "Start Cartridge Directly" at your own risk for any unpleasant aspects of the experience.
 +
 
 +
:;NAND Loading
 +
:Requirements are the same as [https://archive.org/details/DSiFirmwareFiles above]. If you have a real DSi unit, you can dump its NAND and use it instead of the included DSi-1.mmc file, so that you play that different game selection.
 +
 
 +
:This option is more authentic to how real hardware works. It has much less bugs and a higher compatibility than the Simple nds loading method. DSiWare games were limited to a 128MB internal NAND memory or 40 games in the DSi Home Menu, whichever limitation comes first. The NAND is represented by the file "DSi-1.mmc" and hosts installed games (that will appear in the DSi Home Menu) and properly working game saves. While the DSi supported SD cards, it did NOT allow for game software to be booted from there.
 +
 
 +
:Make sure to use "Emulation Settings > Reset/Startup Entry Point" at all times. The DSiWare titles that can be booted through this method will appear in the DSi Home Menu as separate slots than the "inserted game cartridge" icon.
  
==References==
+
:Using Unlauncher, a homebrew exploit, games can be added to the NAND. However, this is an advanced technique, and generally heavily discouraged. Users of this software on real hardware were compelled to use custom firmwares that allowed for using game software from the SD card (normally impossible). This means that to take advantage of this method as an emulation user, you will be stuck with the pre-installed games on the commonly shared BIOS files online.
 +
 
 +
:;SD Card Loading
 +
:The most recommended method, as per [http://hg101.proboards.com/thread/14716/emulate-dsi-dsiware these] [https://www.ngemu.com/threads/no-gba-3-0-dsiware-compatibility-list-using-the-nand.206911/ tutorials]. This method loads the game from the SD card instead of the NAND, and allows for an easier time adding new games to the emulator.
 +
 
 +
:Requirements include these files to be placed in the same directory as NO$GBA. Not compatible with the previous methods, and so to be used in a folder with a fresh setup.
 +
 
 +
:* [https://mega.nz/#!aJAyUQIb!OIOOrA_PMeTizDxnmf-5y5fekLxxZkRZfWGKEvV_Tx0 BIOS Files]: Required for DSi emulation.
 +
:* [https://mega.nz/#!qBY0DAJa!18nfxczgF-JxqyFxSogfej7G23vYSjJnQCIh_tdXUq0 Modified NAND]: Includes Unlauncher (Hold A to boot it, but not needed) and [[TWiLight Menu++]]
 +
:* [https://mega.nz/#!vERGXCwY!GSmvL2PODesi0Vmu-atKPXxxz1UyucHZyH9bXghM0a0 2GB SD Card]: Filename is DSi-1.SD
 +
:* A tool to mount a virtual SD drive, such as [https://www.osforensics.com/tools/mount-disk-images.html OSFMount]. To be used (Open DSi-1.SD > "Mount") with the 2GB SD Card to add new .nds files to it. Remember to disable "Read-Only" and to Dismount before using the emulator again.
 +
 
 +
:Some issues are still present with this method. Refer to the next section for tips on how to deal with some of them.
 +
 
 +
===melonDS===
 +
The latest dev builds of melonDS can also boot the DSi Menu and load most DSiWare.
 +
To boot up the DSi Menu, you need specific files which can all be found [[Emulator_Files#Nintendo_DS_.2F_DSi|here]].
 +
==Known Issues==
 +
===No$GBA===
 +
Aside from general emulation problems inherited from the older DS emulation project, there are the following issues:
 +
 
 +
* ''Microphone doesn't work.'' (DSiWare + any method) No known fix.
 +
* ''Camera doesn't work.'' (DSiWare + any method) Unimplemented. No known fix.
 +
* ''Wifi doesn't work.'' Unimplemented.
 +
* ''Touch Screen issues related to Screen Calibration'' (DSiWare + [[TWiLight Menu++]] or simple nds loading) The fix is to load the original DSi Home Menu first (holding B when resetting the emulator or loading it), then reset to TWiLight Menu++ (not holding any buttons) before loading the desired game.
 +
* ''Can't Save'' (DSiWare + simple nds loading) This method is hardware inaccurate to begin with. For best results, switch to [[TWiLight Menu++]] or Original NAND methods.
 +
===melonDS===
 +
melonDS has poor DSP support. DSiWare has to be launched from the NAND as it cannot boot them as .nds.
 +
 
 +
=References=
 
<references />
 
<references />
+
 
 
{{Nintendo}}
 
{{Nintendo}}
  
[[Category:Consoles]]
+
[[Category:Consoles|!DS]]
[[Category:Handheld consoles]]
+
[[Category:Handheld consoles|!DS]]
[[Category:Nintendo consoles]]
+
[[Category:Nintendo consoles|!DS]]
[[Category:Seventh-generation video game consoles]]
+
[[Category:Seventh-generation video game consoles|!DS]]
 
[[Category:Nintendo DS emulators|*]]
 
[[Category:Nintendo DS emulators|*]]
 +
[[Category:ARM-based|!DS]]
 +
[[Category:MAME Driver Status: Preliminary|!DS]]

Latest revision as of 08:31, 25 March 2024

Nintendo DS
DSlitewhite.png
Nintendo DS Lite
Developer Nintendo
Type Handheld game console
Generation Seventh generation
Release date 2004 (DS)
2008 (DSi)
Discontinued 2013
Predecessor Game Boy Advance
Successor (new) 3DS
Emulated
For other emulators that run on NDS hardware, see Emulators on DS.

The Nintendo DS (NDS) is a handheld console produced by Nintendo and released on November 21, 2004, and had 2 ARM CPUs (ARM9 and ARM7) with 4 MBs of RAM and was priced at $149.99. 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 number of casual players, and even non-gamers, into the gaming community.

Remember, certain titles such as DSi retail and DSiWare games are exclusive to the DSi. Make sure your chosen emulator supports these variations (see "DSi exclusive features" section) if you want to play them.

Emulators[edit]

Name Platform(s) Latest Version DSi Enhancements Hardware features
and accessories
Compatibility FLOSS Active Recommended
PC / x86
melonDS Windows Linux macOS FreeBSD Dev Builds[N 1]
0.9.5
libretro core[N 2]
~ ~ ?
DeSmuME Windows Linux macOS Web 0.9.13/Nightly
libretro core
~ ~ ?
BizHawk* Windows Linux Dev builds
2.9.1
~ ~ ? ~
No$GBA Windows MS-DOS 3.05 ~ ? ~
GBE+ Windows Linux macOS 1.7 ? ~ ? (WIP)
NooDS Windows Linux macOS git ? (WIP)
mGBA/medusa Windows Linux macOS alpha 2 ? ~[1] (WIP)
SkyEmu Windows Linux macOS Dev Builds
v3
? (WIP)
CorgiDS Windows Linux macOS git
SVN
? [2]
ndsemu Windows git ?
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 ?
dust Windows Linux macOS Web git ?
Mobile / ARM
DeSmuME_libretro Android iOS libretro core ~ ~ ?
DraStic Android Pandora Dragonbox Pyra r2.6.0.4a build 109
0.1 Pyra
? ? 68%
49 out of 73 reported titles (Pandora)

88%
127 out of 145 reported titles (Android)
~
melonDS (unofficial)
melonds_libretro
Android iOS git
1.9.3
libretro core[N 2]
~ ~ ? ~ (WIP)
Delta iOS git ? ? ? ~
SkyEmu Android iOS v3.2 (Play)v3.2 (Amazon)git ? (WIP)
NooDS Android 0.1
git
? (WIP)
iNDS
(nds4ios-derived)
(DeSmuME-based)
iOS git ?
nds4ios iOS SVN ?
nds4droid
(DeSmuME-based)
Android git ?
Console
Virtual Console Wii U ? ? ? Only for selected titles
TWL_FIRM Nintendo 3DS N/A ?
DeSmuME_libretro Switch PlayStation 4
Vita
0.9.13 ~ ~ ?
melonDS
melonds_libretro
Switch Vita
PlayStation 2
libretro core[N 2]
git (Switch)
git(Vita Port)
git (PS2 Port)
~ ~ ? ~ (WIP)
NooDS Switch Vita Wii U
PSP
git (Switch/Vita/WiiU)
git (PSP port)
? ~ (WIP)
DeSmuME PSP PSP V4Experimental 26%
16 out of 63 reported titles
~
DesmumeX Xbox 0.87 ? ~
DSonPSP PSP 0.7 ? ? (POC)
  1. Windows, Ubuntu, macOS-universal
  2. 2.0 2.1 2.2 Similar to Dolphin, PPSSPP and Citra libretro cores, the standalone version of melonDS is highly recommended over the libretro core as the libretro core version is outdated specifically two versions out of date (still on 0.9.3), and the generation 5 Pokemons are broken. If you turn on C-Gear, after a few minutes you'll be unable to save. You also can't use any wifi features or do in game trades either or the game will freeze.

Comparisons[edit]

melonDS
Unlike DeSmuME, melonDS has some DSi support. In terms of being user-friendly, options in melonDS are more simplified. Has similar DS game compatibility as DeSmuME. Both can run games at a higher internal resolution (sharper 3D objects) and can open ROMs inside a compressed archive (ZIP, RAR, 7Z etc.). Both can display the two screens in a variety of ways, but melonDS has a hybrid mode. (Example) 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's been found to work reasonably well with a handful of games. Switching to OpenGL in core options may give a performance boost. In May 2023, it was confirmed that there are plans for high-level emulation of Arm7 on MelonDS. The project is codenamed MelonHLE.
DeSmuME
DeSmuME has had significant improvements since 2018; new features include less CPU/GPU resource usage and high-resolution 3D rendering, and Wi-Fi emulation has been reintroduced in the latest builds. v0.9.13 from May 2022 is the first "Stable" build in over 7 years and is highly recommended over all previous builds (though dev builds are also generally very usable). OpenEmu uses a shallow fork of the v0.9.11 build and should be avoided as well.
DraStic
A (currently) 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 unofficial copies, though this is considered unsubstantiated. At the very least, you shouldn't expect any support from Exophase and company if you use a unofficial copy. It is available on the Raspberry Pi and Odroid via RetroPie, and runs relatively well[1]. As of March 5, 2024, due to yuzu lawsuits mainly focused on the Zelda franchise, the creator made it free and plans on open sourcing the code.
No$GBA
Focuses on speed, and has major compatibility issues and glitches as a result. Because it was initially a GBA emulator, the DS' 3D features are still very poorly handled. It's a good option for low-end machines, but don't expect a lot of games to run perfectly. A fan program, No$Zoomer, was released for version 2.6, which increases compatibility and options, as well as the titular zooming and resizing abilities. The biggest addition is noise cancellation which clears up static that No$GBA makes with its 3D rendering. It doesn't change accuracy though. No$Zoomer never rebased to newer No$GBA versions, and it looks like it was abandoned, so it likely never will. In v2.8, No$GBA became the first emulator to support 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 ROM-hacking for DS games or homebrew development), if you value speed above everything, if you're using a potato PC, or just as a last resort.
Delta
An open-source application for iOS with the ability to emulate many consoles and handhelds, including the DS. Since version 1.3, Delta Emulator allows you to emulate Nintendo DS with a DeSmuME or melonDS core. You will need to have DS BIOS or DSi BIOS to play DS/DSi games in Delta using the melonDS core. It also allows you to boot into DS/DSi home screen and functions similarly to melonDS.
mGBA/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[edit]

melonDS
Has an OpenGL renderer with upscaling as of version 0.8.[3] The renderer is much faster than DeSmuME's and supports increasing the internal resolution up to 16x native resolution. More features, such as texture filtering, are planned.
DeSmuME X432R
A fork of DeSmuME that has graphical enhancements, 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 the option to increase internal resolution since the 8/8/15 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.

Enhancements[edit]

Name melonDS DESmuME Bizhawk No$GBA GBE+ SkyEmu mGBA/medusa
Graphics Resizable Internal Resolution ?
Widescreen hack
Widescreen is possible thanks to specific codes made by the community for a lot of DS games.
* ? ? ?
Texture packs ✗(WIP)
Pre-rendering AA
(MSAA, SSAA)
✓ (MSAA) ? ? ? ? ?
Super-resolution techniques
(DLSS, XeSS and FSR 2+)
Requires access to the depth buffer and temporal data like motion-vectors so it's quite challenging and unlikely to be feasible in the near future.
Besides any GPU that can use DLSS can run these emulator at 4k native with ease anyway.
Performance Overclock ~* ? ? ? ? ? ?
Internal Framerate Hack
Frame generation technologies
(LSFG, DLSS-G, ExtraSS and AFMF)
Implementing frame generation technology in an emulator is unfortunately quite challenging and unlikely to be feasible in the near future, however post-processing techniques such as motion interpolation is quite possible. Input latency will be a crucial factor, but its impact likely varies depending on the specific technique employed, it's recommended to use after applying the "Internal Framerate Hack".
While AFMF or LSFG could be used with melonDS or DESmuME?, please be aware that some visual glitches and artifacts may occur at this time.
Post-Processing Post-rendering AA
(FXAA, TXAA and MLAA/SMAA)
~[N3 1] * ? ? ? ? ?
Post-rendering scaling
(Sharp bilinear, Lanczos and FSR 1)
?
Filters ? ? ?
AI-powered filter compatible
(Freestyle)
? ? ? ? ? ? ?
Shader Chain ~[N3 2] ~[N3 2]
Inverse tone mapping compatible ? ? ? ? ? ? ?
TAS features Macros/Scripts/Lua WIP ?
Rewind * ~[N3 2]
Fast-Forward/Turbo Speed ? ?
Savestates ? ?
Movie recording/playback *
Controls Mouse Injector Compatible
Input lag-mitigating technique
Quality of life Streamable compression format ? ?
Built-in Graphics mod editor/manager
Built-in Cheat Manager
Per-Game Profiles
Command Line Options
Big Picture Mode
Misc Netplay ~[N3 2]
EmuVR support Exclusive to libretro cores at the moment.
RetroAchievements
DS, DSi
~[N3 2] ~[N3 2] [N3 3]
Free Look
Free Look is a enhancement feature that allows manipulation of the in-game camera.
WIP
Debug Features * ?
  1. Only possible with software renderer.
  2. 2.0 2.1 2.2 2.3 2.4 2.5 Only possible with libretro core. Github Issue page for adding RetroAchievements to the melonDS standalone version. But DSi RetroAchievement are not supported.
  3. DSi RetroAchievements exclusive to BizHawk at the moment.

Hardware features and accessories[edit]

Name DeSmuME melonDS No$GBA GBE+ SkyEmu mGBA/medusa Bizhawk TWL-FIRM
Connectivity GBA/DS connectivity ~
Nintendo Wi-Fi Connection ~
Local wireless communication ~
DS Download Play ~
DS/Wii connectivity *
Controllers Guitar Hero pad [N2 1]
Piano for Easy Piano [N2 1]
Taito paddle controller [N2 1]
Nintendo Wireless Keyboard ~
Inputs Rumble pack [N2 1]
Tilt sensor [N2 1]
Pressure-sensitive touchscreen
Slide controller [N2 2] [N2 1]
DS camera [N2 3] ~[N2 4]
Bayer DIDGIT Communication
Emulation
PokéWalker Communication
Emulation* *
Backwards compatibility for Game Boy Advance/GBA Mode *
iQue DS region lock ~
Ubisoft Thrustmaster TBD TBD TBD *
Inrou-Kun pedometer TBD TBD TBD *
Sega Card Reader [N2 5] TBD TBD *
Magic Reader TBD TBD TBD *
DSi exclusive features
DSi Inputs Solar Sensor ~[N2 6] ~[N2 6] ~[N2 6]
Microphone [N2 7] ~[N2 4]
DSi Game formats DSi (enhanced) ~
DSi (exclusive)
DSi (digital) & DSiWare
DSi SD Card
  1. 1.0 1.1 1.2 1.3 1.4 1.5 If this Pull request gets merged, we could see Slot 2 peripherals supported on MelonDS.
  2. There is an open pull request that implements support for this add-on.
  3. melonDS supports outer and inner cameras in Physical Camera mode and as Image File.
  4. 4.0 4.1 no$gba supports whitenoise for the camera and microphone.
  5. Supported in the latest nightly builds, on Windows only.
  6. 6.0 6.1 6.2 Only manual configuration. No automatic detection.
  7. melonDS supports microphone in External microphone, Blow noise and WAV file.

Connectivity[edit]

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

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[edit]

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).

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

DS Download Play[edit]

This feature allows players with a DS and only one copy of a game to play together. This way, not everyone needs a copy of a game. The player with the physical cartridge will host the game while the other players connect 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, some games, like Mario Party DS, require Download Play 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[edit]

Main article: Nintendo Wi-Fi Connection

DS/Wii connectivity[edit]

Uses 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 include:

  • Final Fantasy Crystal Chronicles: Echoes of Time - which is essentially the same as the DS port but can connect with other DSes with the game.
  • Pokémon Battle Revolution - in which players could transfer their Pokémon from the Generation IV main series games 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. If this were ever going to be emulated, it would require work on both ends.

GBA/DS connectivity[edit]

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, and make sure its .sav file is in the same folder. You may need to reset the game for it to take effect. As of version 0.9, melonDS supports 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.

Backwards compatibility for Game Boy Advance/GBA Mode[edit]

The Nintendo DS is backward compatible with Game Boy Advance (GBA) cartridges. Should not be confused with Game Boy Advance emulation or GBA/DS connectivity. None of the emulators supports this feature currently.

Accessories[edit]

Wikipedia - List of Nintendo DS accessories
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)
Pressure-sensitive touchscreen
Used in "Harvest Moon DS", "Colors!", "Metroid Prime: Hunters", "Okamiden" and "Rhythm Heaven". No emulators support this feature yet (can work with analog triggers or DualShock 2/3 pressure-sensitive face buttons).
Rumble pack
Supported by DeSmuME (Slot 2). Requires compatible Joystick.
Slide controller
Required by "Slide Adventure Mag Kid". No emulators support this add-on at the moment. There is an open PR for DeSmuME that implements this add-on.
Nintendo Wireless Keyboard
Bundled with "Learn with Pokémon: Typing Adventure" (JP/EU/AU). 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'll 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* this game. 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[edit]

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, while 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[edit]

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 Pokémon 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 into 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.

Nintendo DSi[edit]

Nintendo DSi
DSiBlack.png
Developer Nintendo
Type Handheld game console
Generation Seventh generation
Release date 2009
Discontinued 2014
Predecessor Game Boy Advance, DS
Successor 3DS family
Emulated

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 $169.99 at launch and later dropped to $149.99. The system, however, was region-locked, meaning that DSi exclusives from different regions couldn't be used. It also did away with backwards-compatiblity by removing Slot-2 which was used to load GBA cartridges and certain accessories (such as the Rumble Pak).

DSi emulation has been pretty neglected due to its 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 cause 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 some 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.

As of version 0.9, melonDS has DSi emulation. It can connect to the internet and can play games with WFC online using libslirp or libpcap. 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 dev has already compiled on the subject[4] (GBATEK).

DSi Game formats[edit]

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 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 if 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 not load any DSi enhancements. DSi-enhanced games will also have an animated icon when displayed in the boot menu of the DSi and the titleID on the cartridge will say TWL instead of NTR.
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 five 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 a lot of interesting exclusives for the system were released as DSiWare. The Nintendo 3DS eShop also had some DSiWare for purchase (which used to be the only legal way of obtaining them), though it uses a different file packaging format than the DSi. The 3DS itself is also capable of running other DSiWare since the firmware used for backwards-compatibility is the same as the DSi.

All three formats can be converted to .nds format. Compared to regular DS games, DSi games have some additional header information that wasn't even correctly dumped in most early sets. Recent sets have since updated to the correct format. DSiWare dumps can exist in both .nds format and .cia format (for installation on a homebrewed 3DS).

Even though it's possible to convert these titles to .nds, 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, some are only available for digital purchase at the 3DS eShop and are installed as apps to the limited TWL NAND. Users with custom firmware can also convert DSiWare to an installable .cia and even dump already installed ones back to .nds. Since both the DSi Shop and 3DS eShop have closed, the only way of obtaining DSiWare on the original system is by homebrewing your DSi and launching the .nds ROM through Unlaunch or TWiLight Menu++.

DSi Emulation Tutorial[edit]

BIOS Files[edit]

DSi emulation requires a copy of the lower 32K-halves of the ARM7/ARM9 BIOS files (BIOSDSI7.ROM and BIOSDSI9.ROM), which are different from the regular DS BIOS files and needed for the decryption. melonDS also requires these files along with the regular DS BIOS and the DSi's firmware.bin. These unicorns can be found here.

It's also advised (but still completely optional) to use a NAND dump for No$GBA to increase compatibility, however a NAND dump is required in order to use melonDS.

No$GBA[edit]

For now, NO$GBA is the most mature DS emulation project that supports the Nintendo DSi. Using the latest debugger version of NO$GBA is recommended.

Game Loading Methods
Simple .nds Loading
Requirements: These files with the NO$GBA version overwritten with the latest version.
DSiWare ROMs preserved online in romsets currently use the nds format, similar to regular Nintendo DS ROMs. If you change Emulation Settings > NDS Mode/Colors > DSi (retail/16MB), you can simply drag and drop all three types of DSi content on the emulator (or open the ROM), and it will run in DSi Mode.
However, it's recommended for retail cartridges to be loaded that way with the option "Emulation Settings > Reset/Startup Entry Point" set to "GBA/NDS BIOS". This loading method isn't recommended for DSiWare games because of some bugs introduced and the lack of ability to save altogether. However if you insist, do set that option "Reset/Startup Entry Point" to "Start Cartridge Directly" at your own risk for any unpleasant aspects of the experience.
NAND Loading
Requirements are the same as above. If you have a real DSi unit, you can dump its NAND and use it instead of the included DSi-1.mmc file, so that you play that different game selection.
This option is more authentic to how real hardware works. It has much less bugs and a higher compatibility than the Simple nds loading method. DSiWare games were limited to a 128MB internal NAND memory or 40 games in the DSi Home Menu, whichever limitation comes first. The NAND is represented by the file "DSi-1.mmc" and hosts installed games (that will appear in the DSi Home Menu) and properly working game saves. While the DSi supported SD cards, it did NOT allow for game software to be booted from there.
Make sure to use "Emulation Settings > Reset/Startup Entry Point" at all times. The DSiWare titles that can be booted through this method will appear in the DSi Home Menu as separate slots than the "inserted game cartridge" icon.
Using Unlauncher, a homebrew exploit, games can be added to the NAND. However, this is an advanced technique, and generally heavily discouraged. Users of this software on real hardware were compelled to use custom firmwares that allowed for using game software from the SD card (normally impossible). This means that to take advantage of this method as an emulation user, you will be stuck with the pre-installed games on the commonly shared BIOS files online.
SD Card Loading
The most recommended method, as per these tutorials. This method loads the game from the SD card instead of the NAND, and allows for an easier time adding new games to the emulator.
Requirements include these files to be placed in the same directory as NO$GBA. Not compatible with the previous methods, and so to be used in a folder with a fresh setup.
  • BIOS Files: Required for DSi emulation.
  • Modified NAND: Includes Unlauncher (Hold A to boot it, but not needed) and TWiLight Menu++
  • 2GB SD Card: Filename is DSi-1.SD
  • A tool to mount a virtual SD drive, such as OSFMount. To be used (Open DSi-1.SD > "Mount") with the 2GB SD Card to add new .nds files to it. Remember to disable "Read-Only" and to Dismount before using the emulator again.
Some issues are still present with this method. Refer to the next section for tips on how to deal with some of them.

melonDS[edit]

The latest dev builds of melonDS can also boot the DSi Menu and load most DSiWare. To boot up the DSi Menu, you need specific files which can all be found here.

Known Issues[edit]

No$GBA[edit]

Aside from general emulation problems inherited from the older DS emulation project, there are the following issues:

  • Microphone doesn't work. (DSiWare + any method) No known fix.
  • Camera doesn't work. (DSiWare + any method) Unimplemented. No known fix.
  • Wifi doesn't work. Unimplemented.
  • Touch Screen issues related to Screen Calibration (DSiWare + TWiLight Menu++ or simple nds loading) The fix is to load the original DSi Home Menu first (holding B when resetting the emulator or loading it), then reset to TWiLight Menu++ (not holding any buttons) before loading the desired game.
  • Can't Save (DSiWare + simple nds loading) This method is hardware inaccurate to begin with. For best results, switch to TWiLight Menu++ or Original NAND methods.

melonDS[edit]

melonDS has poor DSP support. DSiWare has to be launched from the NAND as it cannot boot them as .nds.

References[edit]