How to Play Nintendo DS Games on Linux with DeSmuME

Ds Games On Linux With Desmume Featured

The Nintendo DS was an insanely popular console for years. It was the platform for countless games, now considered classics. It even revitalized plenty of old favorites. Now the DS is also a thing of the past, but how can you play your Nintendo DS games on Linux? DeSmuME is an emulator for Linux that will let you relive the glory days of the DS right on your laptop or desktop.

Also read: The Ultimate Guide to Dolphin Emulator

Install DeSmuME

DeSmuME is available officially on Windows (x86/x86-64/x86 without SSE2) and Macs (x86/x86-64 and PowerPC), but its source code is also available for anyone who’d like to port it elsewhere. Because of this, you can find ports of it even for the Xbox and PlayStation. Thus, it was almost a given it would find its way to Linux.

You can find DeSmuME in many distributions’ official repositories, making its installation an easy affair.

Ubuntu/Debian

You can find DeSmuME on Debian’s and Ubuntu’s official repositories. Install it with:

sudo apt install desmume

Arch / OpenSUSE / Solus Linux

DeSmuME’s installation on Arch, OpenSUSE, or Solus Linux is as easy as as it is on Debian and Ubuntu. For Arch, you can bring it on board with:

sudo pacman -S desmume

On OpenSUSE, you can install it with:

sudo zypper in desmume

Finally, to install it on Solus, try:

sudo eopkg it desmume

Fedora

Fedora is one of the distributions that doesn’t include DeSmuME in its repositories. Thankfully, RPM Fusion does. To install DeSmuME, you first have to add this unofficial source of software to your repositories list. Do this with:

sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

The actual installation only needs:

sudo dnf install desmume

Also read: How to Set Up VisualBoyAdvance-M Emulator on Windows

Playing Games

There are two ways to get Nintendo DS games on your Linux PC, and only one of them is legal. The first is to make backups of your DS games using a flash cartridge.

The other – and much easier – way is by downloading them. Unfortunately, this is outright illegal in many countries but falls within a legal gray area in others.

When, one way or another, you have a game you want to play as a ROM in “ds” format, fire up DeSmuME, then click on the first icon in its toolbar and select your game’s file.

Ds Games On Linux With Desmume Open Rom

The game you chose will load and run automatically. Depending on the game, you may need to use your mouse on the emulated DS’s second screen (it’s the bottom one by default) or press some buttons to play.

Ds Games On Linux With Desmume Rom Running

The Nintendo DS’s keys directional cross is mapped to the cursor keys. Its A, B, R, L, X, and Y buttons are, respectively, mapped to X, Z, W, Q, S, and A on the keyboard. Finally, the Start and Select controls are by default mapped to Return and the right Shift key.

Also read: Turn Any PC Into a Retro Gaming Machine With Batocera Linux

Control Remapping

If you don’t like DeSmuME’s default controls, you can remap them to other keys by paying a visit to “Config -> Edit controls.”

Ds Games On Linux With Desmume Edit Controls

To remap any control to a different key, click on it, then press the new key corresponding to this action.

Ds Games On Linux With Desmume Edit Controls Dialog

We find it’s better to use a mouse and keyboard combination for the games that use the DS’s touch screen. However, many DS games only utilized the second screen as a display, not extra input. Those games feel better with a joypad, closer to the original button arrangement of the DS. DeSmuME works with most generic joypads that are already usable on your PC. Those controls are also re-mappable if you don’t like the defaults. You can alter them from “Config -> Edit Joystick controls.”

Ds Games On Linux With Desmume Edit Joystick

Screen Control

The DS had one screen under the other, and most of its games are designed for this screen orientation. Some weren’t, though, and treated each screen as an independent display. With those games, you can take better advantage of the widescreen estate on your PC by rearranging DeSmuME’s screens next to the other.

Ds Games On Linux With Desmume Screens Horizontal

You can do that from “View -> LCDs Layout -> Horizontal” or by pressing Ctrl + 2 on the keyboard. Return to the vertical orientation from this menu or by pressing Ctrl + 1. DeSmuME also allows you to swap the screens from this menu or by pressing Space, useful when you care more about the secondary screen’s input than a passive display on the main one. Finally, for the rare games that didn’t use the secondary screen, you can set the emulator to display only one screen. Either choose the “Single screen” option from the same menu or press Ctrl + 0 on your keyboard.

Ds Games On Linux With Desmume Window Size Multiplier

You probably have an HD monitor on your PC, and DeSmuME’s output will look like thumbnails on your screen. You can change the virtual screen’s size from “View -> Window Size” and then select a multiplier from that sub-menu. 1x means native size and is the default. Higher multipliers will enlarge the virtual screens. Scale to window will “free” the multiplier to match the size of the emulator’s window.

Ds Games On Linux With Desmume Window Size Free Scale

Due to the way LCD screens work, it’s better if you choose an even multiplier. Both odd and even multipliers will look blocky, but on top of that, odd ones introduce increased artifacting.

Ds Games On Linux With Desmume Video Filter

There’s a way to minimize the blockiness by using filters. DeSmuME offers you a collection of filters, accessible from the “View -> Video Filter” sub-menu.

Performance & Save States

DeSmuME is a relatively old emulator, and you probably won’t have any problems with performance on a modern PC. If you do, when on an older or under-powered PC, you can improve the emulator’s performance by skipping frames. The option is accessible from “Config -> Frameskip” and is set initially to 0 (never skip).

Ds Games On Linux With Desmume Frameskip

The emulator will display fewer frames by choosing an increased value, thus “speeding up” the game. Those frames will be missing, though, resulting in choppier animations and scrolling. After a point, this option ends up useful only in slow, mostly static games, like RPGs and adventures, since everything else with real-time controls will be unplayable.

Playing most games wouldn’t be of much use if you couldn’t save your progress. First, in most games you can actually use the built-in save features to save data in DeSmeME. Play your game like you normally would and save your data. You’ll be able to load it next time. Still, some of those are limited – you may only be able to save at particular points in the game.

There is another way to save the state of the game directly through DeSmuME.

Ds Games On Linux With Desmume Save States

Choose “File -> Save state” and one of the ten slots to save the game’s current state into a file. To recall the saved state, choose “File -> Load state” and the saved game’s slot.

It’s also worth noting that DeSmuME allows you to record audio and video from your games through the appropriately named “File -> Record video/audio.” You can also take screenshots from the “Take a screenshot option” that follows or by pressing Ctrl + S while playing.

Now that you know how to play Nintendo DS games on Linux, next you can install DOSbox to play old DOS games or play PSP games with PPSSPP.

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox

Odysseas Kourafalos

OK's real life started at around 10, when he got his first computer - a Commodore 128. Since then, he's been melting keycaps by typing 24/7, trying to spread The Word Of Tech to anyone interested enough to listen. Or, rather, read.