Nintendo DS (DeSmuME)Link

Contribute to this documentationLink

In order to propose improvements to this document, visit its corresponding source page on github. Changes are proposed using "Pull Requests."


Port of Desmume to libretro.

Why use this core?Link

Awaiting description.

How to get and install the DeSmuME core:Link

  1. Start up RetroArch. Inside the main menu, go to 'Online Updater'.

  2. Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'.

  3. Browse through the list and select 'Nintendo DS (DeSmuME)'.

After this has finished downloading, the core should now be ready for use!

How to play (after installation):Link

  1. Go back to RetroArch's main menu screen. Select 'Load Content'.

  2. Browse to the folder that contains the content you want to run.

  3. Select the content that you want to run.

  4. If you are asked which core to select, choose 'Nintendo DS (DeSmuME)'.

The game should now start running!


  • YopYop156
  • Zeromus

See alsoLink


A summary of the licenses behind RetroArch and its cores have found here.


Content that can be loaded by the DeSmuME core have the following file extensions:

  • .nds
  • .bin


RetroArch database(s) that are associated with the DeSmuME core:


Feature Supported
Core Options
RetroArch Cheats
Native Cheats
Softpatching -
Disk Control
Crop Overscan


The DeSmuME core's directory name is 'DeSmuME'

Game data is saved/loaded to and from where save files are stored.

  • .dsv (Game save)

Save states are saved/loaded to and from where state files are stored.

  • .state (State)

Save directory

  • .dsv (Game save)

State directory

  • .state (State)

Core provided aspect ratioLink

Awaiting description.


Changing the system nickname isn't currently supported by the DeSmuME core.

Core optionsLink

The DeSmuME core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded.

  • Internal resolution (restart) (256x192/512x384/768x576/1024x768/1280x960/1536x1152/1792x1344/2048x1536/2304x1728/2560x1920):

Self explanatory. Please note that the DeSmuME core is only software rendered.

Internal resolution - 256x192

Internal resolution - 2560x1920

  • CPU cores (1/2/3/4)

Configure how much CPU cores the DeSmuME core will use. Please note that, in general, DeSmuME benefits more from few fast CPUs than from many slow CPUs. For example, a dual-core 3.9GHz CPU will run DeSmuME much faster than a 12-core 1.6GHz CPU.

  • CPU mode (interpreter/jit)

Choose to run CPU emulation through the Interpreter engine or the JIT Dynamic Recomplier engine.

Interpreter has better compatibility than JIT Dynamic Recompiler. Some games that fail when using JIT Dynamic Recompiler will work fine with Interpreter. The tradeoff here is that Interpreter has much lower performance than JIT Dynamic Recompiler.

Please note that the default setting for this core option is dependent on your hardware. The JIT Dynamic Recompiler is not available on all hardware (e.g. Android devices).

  • JIT block size (0 to 100 in increments of 1. 12 is default.)

This core option is only available when the 'CPU mode' core option to set to jit. You may need to tune the block size to prevent some games from breaking. 1 = most accurate, 100 = fastest.

  • Screen layout (top/bottom / bottom/top / left/right / right/left / top only / bottom only / quick switch / hybrid/top / hybrid/bottom)


Screen layout - top/bottom

Screen layout - bottom/top

Screen layout - left/right

Screen layout - right/left

Screen layout - top only

Screen layout - bottom only

Screen layout - hybrid/top

Screen layout - hybrid/bottom

  • Hybrid layout scale (restart) (1/3)

Self explanatory. The 'Screen layout' core option must be set to a hybrid setting for this to function properly.

Hybrid layout scale - 1

Hybrid layout scale - 3

  • Hybrid layout show both screens (Off/On)

Removes the small top screen when the 'Screen layout' core option is set to hybrid/top

Removes the small bottom screen when the 'Screen layout' core option is set to hybrid/bottom

  • Hybrid layout cursor always on small screen (Off/On)

Self explanatory.

Disablng this allows you to use the stylus on the big bottom screen when the 'Screen layout' core option is set to hybrid/bottom.

  • Enable mouse/pointer (Off/On)

Enabling this allows you to use mouse inputs for the stylus.

  • Pointer type (mouse/touch)

Setting this to mouse allows you to use mouse inputs for the stylus

Setting this to touch allows you to use touch inputs for the stylus (e.g. Touch controls on Android devices)

  • Pointer Colour (white/black/red/blue/yellow)

Configure the color of the stylus pointer.

Pointer Colour - white

Pointer Colour - black

Pointer Colour - red

Pointer Colour - blue

Pointer Colour - yellow

  • Pointer mode l-analog (none/emulated/absolute/pressed)

Awaiting description.

  • Pointer mode r-analog (none/emulated/absolute/pressed)

Awaiting description.

  • Emulated pointer deadzone percent (0 to 35 in increments of 5. 15 is default.)

Awaiting description.

  • Emulated pointer acceleration modifier percent (0 to 100 in increments of 1. 0 is default.)

Awaiting description.

  • Emulated stylus pressure modifier percent (0 to 100 in increments of 1. 50 is default.)

Configure the emulated pressure on the touchscreen from a stylus pressing on it.

  • Enable emulated stylus jitter (Off/On)

Emulate the tiny jitter from a human hand when holding a stylus; some games were accidentally dependent on this.

  • Load Game into Memory (restart) (Off/On)

Loads the entire game into memory before startup. Will decrease in-game loading times at the cost of increased game startup times.

  • Enable Advanced Bus-Level Timing (Off/On)

This will improve or fix some games but it is very performance demanding. Disable this if you want more speed.

  • Firmware language (Auto/English/Japanese/French/German/Italian/Spanish)

Choose the language of the BIOS.

  • Frameskip (0/1/2/3/4/5/6/7/8/9)

Choose how much frames should be skipped to improve performance at the expense of visual smoothness.

It is generally safe to choose 1 or 2 if you don't mind a slightly choppier game, in order to get a speedup.

If screens seem stuck or screen flickering becomes unacceptable, pick a different frame skip value.

  • Screen Gap (0 to 100 in increments of 1. 0 is default.)

Self explanatory.

Screen Gap - 0

Screen Gap - 100

  • Enable Edgemark (Off/On)

Awaiting description.

  • Enable Line Hack (Off/On)

Fixes some graphical bugs involving lines, but causes some other bugs. Not many games use lines.

  • Enable TXT Hack (Off/On)

Fixes text bugs in some games (e.g. Etrian Odyssey). You may need to toggle it off & on by scene.

  • Force Microphone Enable (Off/On)

Self explanatory.

  • Microphone Simulation Settings (internal/sample/random/physical):

Configure microphone input settings.

With the internal setting, DeSmuME will use its internal noise sample for microphone input which works for many games that want you to blow on the mic.

With the sample setting, you can supply your own microphone sample for microphone input. This may not work currently in the DeSmuME core.

With the random setting, DeSmuME will use random whitenoise for microphone input which will work for games that require blowing but which don't work with the internal noise sample.

With the physical setting, you can use your default recording device for microphone input. This may not work currently in the DeSmuME core.


Device typesLink

The DeSmuME core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s):

User 1 device typesLink

  • RetroPad - Joypad
  • RetroPad w/Analog - Joypad - There is no reason to switch to this.

Other controlsLink

Controller tablesLink

Joypad and analog device type tableLink

User 1 input descriptors RetroPad
Select Select
Start Start
Up Up
Down Down
Left Left
Right Right
Lid Close/Open Lid Close/Op
Tap Stylus Tap Stylus
Toggle Microphone Toggle Microphone
Quick Screen Switch Quick Screen Switch
N/A X Pointer mode l-analog
N/A Y Pointer mode l-analog
N/A X Pointer mode r-analog
N/A Y Pointer mode r-analog

Mouse device type tableLink

User 1 input descriptors Stylus
N/A Stylus
N/A Press

Pointer device type tableLink

User 1 input descriptors Stylus
N/A Pointer Stylus
N/A Pointer Pressed Press


Game Issue
Alice in Wonderland Needs JIT Block Size 8 or smaller to get past title screen.
Golden Sun: Dark Dawn (Europe) Runs very slowly. Buggy sound.
Hotel Dusk: Room 215 Graphics glitches. Unintended "scanlines" appear on some screens.
Pokémon HeartGold (Europe) (Rev 10) Graphics glitches . Black pixels pop-ups in the top screen. Top screen goes black.
Pokémon SoulSilver (Europe) (Rev 10) Graphics glitches. Black pixels pop-ups in the top screen. Top screen goes black.
Puppy Palace (U) / My Puppy Shop (E) Crashes in menus.
Rune Factory (U) Random crashes.
Rune Factory 2 (U) Random crashes.
Ultimate Mortal Kombat 3 Runs very slowly.
Yoshi Touch & Go Runs very slowly.
Yu-Gi-Oh! 5D's WORLD CHAMPIONSHIP 2010 (J) Random crashes.