Looking Toward the Next Generation of DS Emulators

As we've seen happen before, there are sometimes multiple generations of emulators for a single system. One of the most obvious examples of this would be the SNES. The early days of the SNES saw two behemoth emulators take over, ZSNES and Snes9x. They lorded over SNES emulation until bsnes showed up.

Because of its higher accuracy that relied on the power of modern computers, it became the standard for SNES emulation. But, this changing of the guard wasn't immediate - it took quite some time for the community to catch up to the SNES emulation golden age. The result? We now have multiple emulators with near-full compatibility with the SNES library.

It's the Nintendo DS's Turn For its Golden Age of Emulation

When people think about flourishing emulation scenes, Nintendo DS may not be the first one to come to mind: cemu is making blistering progress on the Wii U, Xenia and RPCS3 seem to be hitting their stride, and Cxbx seems to be making progress on fan-favorite Xbox titles.

But Nintendo DS may be in an even better spot to make leaps over the next year. There's a ton of documentation alongside a crop of capable Nintendo DS emulators right now.

  • The Android behemoth DraStic provides unprecedented performance and runs many DS games full speed with good accuracy even on phones.
  • The PC stalwart DeSmuME is a tried and true emulator with a big userbase, lots of features, and high compatibility.
  • And we cannot forget No$gba and the extensive documentation done by its creator. No$gba is probably the closest emulator to DSi Support as well, but isn't usually the best option if you're just looking to play various games without issues.

And those are only the tip of the iceberg! But what makes the Nintendo DS emulation scene so exciting are the next generation of emulators. Just in the past year or so, three new emulators have thrown their hat into the ring.

While there emulators are young and not quite ready to challenge for the crown of go-to DS Emulator, that doesn't mean they lack value! I took a look at all three of these emulators as they are now just to see how they stack up to the current DS emulation solutions and where they may be going in the near and distant future.

Note: I mostly focused on emulation quality when looking at these emulators. Don't expect a lot of extra features. This includes some features essential to emulation of the DS, like microphone support, and other amenities like savestates. With GBE-Plus, you'll also want to be very familiar with how to compile an emulator without additional instructions.

On with the show!

melonDS (0.2 and 0.3) by StapleButter

I didn't know anything about melonDS before heading into this article. I had never used it nor did I ever plan on using it. It's the true definition of zero expectations. melonDS made a very poor first impression with a bland, empty UI that's awkwardly broken up into three different windows.

This is what shows up when you open melonDS for the first time

All you can do is setup the BIOS, firmware, and whether you want to boot to the DS's system menu. I decided to boot up Super Mario 64 DS as the first test on melonDS. I was hit with some pretty poor speeds; the main menu wasn't quite full speed, and in game seemed to hover around ~80% on my Intel Core i5-3570K. Switching to a second PC, a Core i7-6700K, alleviated most of the lag, but isn't an option most users will have.

Lag will be the experience for most people in 3D-heavy games. Unless you have an absolutely top-tier CPU, don't expect full speed in melonDS yet. Games that don't rely as heavily on 3D, however, require much less power. Advance Wars: Dual Strike ran near-perfect on the i5, and that was the case for pretty much every 2D game.

Despite the performance, I ended up very impressed after my time with melonDS. It may not have all the bells and whistles, but the core of the emulator feels solid. It's a good feeling when I trust the emulator to do its job without any fear of crashing or game-breaking glitches as I play.

Advance Wars: DualstrikeAdvance Wars: Dual Strike
Game 2The Legend of Zelda: Phantom Hourglass
Mario Kart DSMario Kart DS
Metroid Prime PinballMetroid Prime Pinball
Mario Party DSMario Party DS
Mario Hoops 3 on 3Mario Hoops 3 on 3

That isn't to say my time with melonDS was perfect. I did run into a few games that had problems with save files and other nagging issues.

melonDS seems incapable of generating a valid savefile for Metroid Prime: Hunters

The one severe visual error I found resided in Burnout Legends, but it was already fixed during the writing of this article with the release of 0.3!

Game 1MelonDS 0.2
Game 2melonDS 0.3 Test Build

You can actually see the outlines of prominent details within the static while driving in 0.2.

Future Goals

Performance. StapleButter assured me that improving performance without compromising accuracy was a huge goal going forward. The main bottleneck right now is graphics rendering, especially in high polygon scenes, which makes sense considering what I ran into while using it. The future does look bright, though, as an experimental build I stole borrowed with threaded rendering ran almost everything I had at full speed even on the i5-3570K. This didn't mean everything was perfectly smooth, as loading screens and transitions seemed to still have slowdown.

In terms of features, melonDS has some very lofty and interesting goals. Near the top of the list are some fan-favorites like Wi-Fi support, alongside important preservation goals like better homebrew support and cartridge timings. While Nintendo's Wi-Fi servers for DS are long dead, third party servers still exist, and tons of game supported local Wi-Fi play!

I came into melonDS knowing nothing, but, just seeing what it is now makes me excited for its bright future.


Medusa Alpha 2 by endrift

The brainchild of endrift, Medusa is a DS emulator built upon the multi-system emulator mGBA, which already supports the Game Boy, Game Boy Color and Game Boy Advance.

That means Medusa is already an excellent emulator of the older handhelds and carries over a lot of the nice features. You'll have archived ROM support, video-dumping with audio and other features you wouldn't expect from a new DS emulator.

The Legend of Zelda: Phantom HourglassThe Legend of Zelda: Phantom Hourglass
Metroid Prime - HuntersMetroid Prime: Hunters
Bomberman Story DSBomberman Story DS
Puyo Pop FeverPuyo Pop Fever
StarFox CommandStarFox Command
Sonic RushSonic Rush

A lot of games look and play well in Medusa already. When I was testing Super Mario 64 DS, there were moments that I forgot I was using an early alpha of a DS emulator.

That's because the visuals looked near perfect and Medusa was able to run full speed without any drops. While Super Mario 64 DS isn't a particularly taxing game, Medusa is able to run quite a few games full speed on my i5-3570K right now. That isn't to say everything is perfect; high polygon scenes in games still make it struggle. Moving over to the i7-6700K quelled the slowdowns in more strenuous games like The Legend of Zelda: Phantom Hourglass.

On the sound side of things, some audio modes seem to be unimplemented in Medusa. This results in some sounds not playing in certain games, such as the red coin effect in Super Mario 64 DS. The good news is that an unimplemented feature is much easier to handle and fix than an incorrectly implemented feature, so expect this to be sorted out without too much of a headache.

With Medusa, most of my problems weren't actually related to emulation, but instead with user experience. Controller support is bad. If you select the window while a controller is configured, the controller won't work properly. The solution is to click off of the emulator window, which is less than ideal considering you have to use the mouse to click on things for touchscreen controls.

I also had some crashes show up here and there, mostly between resetting and switching games. The worst offender for causing crashes is that if you disconnect your controller while the emulator is running, it will crash.

endrift notified me that these issues were mostly a consequence of merging in an experimental update to controller support that wasn't quite ready for primetime, but was necessary for DS input. As such, these issues should get ironed out as the new interface matures.

Future Goals

As a branch of mGBA, the eventual goal of Medusa is to be merged into mGBA proper. Considering that mGBA is one of the most accurate GBA emulators around, that sets a high bar for Medusa going forward.


GB Enhanced Plus (with DS support) by Shonumi

This is the quintessential experimental DS emulator. There's no release build, and the instructions to compile are pretty much "it should compile." Considering that much more detailed instructions haven't been enough for me, I wasn't successful compiling GB Enhanced Plus.

What is GB Enhanced Plus?

Like mGBA, GB Enhanced Plus is a multi-system emulator featuring the Game Boy, Game Boy Color and Game Boy Advance alongside now experimental DS support. From what I’ve heard, it doesn’t run any commercial DS titles yet. Once it does, I plan on taking a much longer look at it.

GBE-Plus is most notable for how it makes it easier to colorize and modify various Game Boy titles. The goals of the emulator seem to be more or less tied to what Shonumi wants to do, so there’s a definite chance that some exciting and unique features found nowhere else could hit within the DS side of the emulator. This one is worth keeping an eye on despite there being so little to see right now.


Comparisons

Now we get to the fun part: pitting the emulators against each other to see where they differ. I'm not going to be really getting into which emulator is better because that's pointless at this stage and heavily depends on what you want out of the emulator. What I am going to do is look at how they perform in a few games to give you an idea of where they are at and how they compare to current emulators.

Mario Hoops 3 on 3

This is a fun one because both Medusa and melonDS have their own set of issues. We're going to zoom through these quickly with some examples of both emulators having their own issues.

Mario Basketball 3 on 3 on MedusaMedusa Alpha 2
Mario Basketball 3 on 3 on MelonDSmelonDS 0.3

Item objects near the court render fine on Medusa, but render behind the court on melonDS.

Mario Basketball 3 on 3 on MedusaMedusa Alpha 2
Mario Basketball 3 on 3 on melonDSmelonDS 0.2

The transparent backboard does not render on Medusa.

Characters will flash when you take control of them or the AI takes control of them. Both Medusa and melonDS get this correct, so, this time we'll bring DeSmuME in for the comparison.

Mario Basketball 3 on 3 on MedusaMedusa Alpha 2
Mario Basketball 3 on 3 on DeSmuMEDeSmuME
Mario Basketball 3 on 3 on melonDSmelonDS 0.2

Something to note is that melonDS flashes bright colors, and Medusa flashes darker colors. DeSmuME renders this correctly. In melonDS 0.3 (unshown) the colors are closer but still incorrect.

Madden NFL 2006

While most users probably aren't clamoring to play the DS version of Madden 2006, it actually has been one of the more interesting test cases on these new emulators. melonDS and Medusa don't handle it very well.

Madden 2006 on MedusaMedusa Alpha 2
Madden 2006 on DeSmuMEDeSmuME
Madden 2006 on MelonDSMelonDS 0.2

MelonDS and Medusa both have severe issues, while DeSmuME again shows us what it should look like. In melonDS 0.3 (unshown) the missing polygons are fixed but the character models are still black.

While DeSmuME shows us how the game is supposed to look, many other emulators still fail in this strange title, including No$GBA.

What is Madden NFL 2006 doing? Well, that's up to the developers to figure out!

Burnout Legends

While I showed a graphics issue with this game being fixed earlier, Burnout Legends needs a second mention here as well. This game is more playable on Medusa and melonDS than DeSmuME!

Why? DeSmuME suffers from some severe timing issues that make driving a pain in the taillight.

If you watch closely, you can see the game's pace plummet throughout the turns.

Don't go calling Medusa and melonDS more accurate yet, though! The reason why the game runs better in those emulators could be a case of even worse emulation! On real hardware, the game employs some kind of frameskipping in order to avoid slowdown. During those areas, DeSmuME incorrectly slows down instead of skipping frames, while on melonDS and Medusa, the game maintains a solid framerate at all times.

So even though this game runs better on Medusa and melonDS, it is likely a consequence of them being less accurate than DeSmuME.

Overall, both Medusa and melonDS exceeded my expectations. The examples above were cherry-picked because both emulators had issues. In most titles, there weren't many serious visual issues.

Emulator Performance

Before this project, I wasn't really familiar with Nintendo DS emulation outside of playing a few of my favorite games. I was initially very surprised that a DS emulator wouldn’t run full speed on my i5-3570K, even if it was unoptimized.

The reason for this is simple: Medusa and melonDS use software renderers and a CPU interpreter. If you tried running Dolphin on those settings on the same PC, you'd be very lucky to see ~1 FPS. While the DS isn't as powerful as the GameCube, without those optimizations, performance takes a pretty big hit.

Notes - I kept DeSmuME in as accurate of settings as I could. With OpenGL + Dynamic recompilation, you can make it go faster. I also excluded melonDS's 0.3 and its threaded rendering, as it's still a bit experimental and Medusa currently lacks the feature anyway. melonDS 0.2 and Medusa Alpha 2 feels like a much closer comparison as to how far along they were.


Conclusion

After testing two dozen games, including popular titles such as Pokémon Diamond and Pearl, The Legend of Zelda: Phantom Hourglass, StarFox Command and many more, I can confidently say users looking only to enjoy their favorite Nintendo DS games on PC should probably stick to one of the more mature emulators. They're going to be better right now.

These new emulators do present an opportunity for people looking to test though. If you don't mind running into issues or dealing with subpar performance, there's a lot of games untested in these emulators and bugs that need to be reported! The developers have been very friendly toward bug reports and usually have the simpler ones fixed within days!

While I greatly enjoyed trying out melonDS and Medusa, I'm not ready to write off GB Enhanced Plus yet. While we always strive for accurate emulation, isn't there space for an emulator with all kinds of wild and wacky enhancements too? Considering the feature-set of most DS emulators, I'd say something like that would be welcomed by users if it was done well enough.

Now you may be wondering: Do these new emulators spell the end for DraStic, DeSmuME, No$GBA and the rest of the old guard? I don't think so - after all, I used DeSmuME for my header image. Even if the new emulators keep improving, that doesn't mean the older emulators will lose their prominence in the scene. We can look to the SNES emulation scene and how it turned out as an example once again. While most people would consider ZSNES to be a relic of the past, Snes9x has managed to improve itself over the years and find its place as a modern SNES emulator.

And that's really the best way to look at this. These new Nintendo DS emulators can only help the state of the scene. And because of that, I'm excited to see what features, enhancements, and compatibility these emulators bring to the table.