The One That Flourished: A Look at melonDS 0.8

Two years ago, I declared that Nintendo DS was entering a golden age with several new emulators ready to challenge the established normal.

While I'm by no means declaring the other emulators I mentioned in the article as losers, one of them in particular has truly become a force within the Nintendo DS emulation scene: melonDS

melonDS 0.8 brings a high performance hardware renderer that can breathe new life into DS titles.

On May 31st, melonDS 0.8 released and put the rest of the scene on notice: this emulator means business.  Featuring a brand new OpenGL renderer that maintains high performance even at increased internal resolutions while maintaining superb accuracy, melonDS has a compelling case to be your main Nintendo DS emulator.


A Worthy Rival

When it comes to desktop DS emulation, DesMuME has been the king for many years.  While there are specialty emulators and a graveyard of projects that have since been abandoned, DeSmuME has thrived as the dominant emulator.  Featuring high compatibility, performance, tons of customization options, filters, enhancements, and more, this is a fully featured flagship emulator.

melonDS on the other hand feels empty in some ways.  There aren't many options, but most of the important ones you'd expect are available.  You aren't going to be able to modify every aspect of emulation as you would in DeSmuME, but you can still do things like change the screen layouts and customize the gap for games that have gameplay go between screens.

Simple, Barebones, but refreshingly easy to use.

The real meat of melonDS starts once you boot up a game.  melonDS has always been a high accuracy emulator, but before there was a huge sacrifice to performance.  This time around, the gap in performance between DeSmuME and melonDS has closed.  In fact, melonDS runs at the same speed on my computer regardless of whether it's at native resolution or at 8x internal resolution!

High resolution mode is a bit weird in melonDS in dual screen 3D games. A third party modification to DeSmuME was used to test high resolution perf. 60 FPS is full speed in this chart despite the games outputting 30 FPS. This is due to how the emulators themselves measure performance.

Do note while the above data is accurate, there are tons of speedhacks, frameskipping, and more than can achieve higher framerates in DeSmuME.  I used the default settings.  

Metroid Prime Hunters gives off the vibes of an old Unreal Engine game at 8x Internal Resolution

melonDS's new OpenGL renderer is the biggest reason to use it over other emulators. Because it's so fast, there's no reason to not have it set to the maximum resolution right now if you even have a mid-range gaming computer.  

The one thing that DeSmuME does a lot better than melonDS is provide options to mitigate and minimize the effects of slowdown.  There is a plethora of settings I could use if my computer was weaker to make the emulator run even faster by sacrificing accuracy.  Even if there is slowdown, it's a lot harder to notice in DeSmuME unless you have performance metrics enabled.  That's because audio is emulated off thread by default - asynchronous audio.

You can change this in the settings, but I found it bit odd this was the default behavior when I was doing performance testing.  I'm very biased on this matter, but, I really dislike this being the default setting.

Asynchronous audio on by default means that timings can be wrong if the emulator is running too fast or too slow.

It's a bit refreshing that in melonDS I don't really need to worry about any of this.  I can say that because all the games were running full speed for me... but if you need that extra performance or are suffering from slowdown, it might be a bit frustrating that there is nothing you can do about it.

Games with strong art design look excellent when pushed beyond the Nintendo DS's native resolution.

While I did have a great time with melonDS's renderers, it must be noted that high resolution support can be a bit wonky in games that render 3D to both screens at the same time.  Specifically in the Zelda games, I ran into issues where every other frame would be native resolution.  It doesn't look good in motion, but, you can get some rather nice screenshots!  This will likely get fixed in a future update, but it needed to be mentioned.

Though HD Resolutions are a bit buggy in dual screen 3D games, they still look great when they work.

On top of the new OpenGL renderer,  melonDS still offers one of the best software renderers I've ever seen.  It's considerably slower than OpenGL, but, in most games I was still reaching full speed.  And considering how ridiculously accurate it is with even the most minute effects, sometimes it's worth using just to see if you're missing anything.

In the case of The Legend of Zelda: Phantom Hourglass, melonDS's software renderer is the only renderer I've seen that correctly emulates character outlines.

The outline around Link is discolored, inconsistent, or entirely non-existent in every other emulator I've tried. melonDS's rendering of the effect was verified as accurate when compared to hardware.

Extra Features

One of the main reasons I couldn't recommend any of the newer emulators back in the original article was that they all lacked important features.  melonDS isn't exactly what you'd call fully featured, but a lot of the important features that you'd expect are already there. Controller configuration is simple but works, savestates are much appreciated, and there are some necessary additions such as closing the DS and microphone that are used in some popular games.

My Blue Yeti picks up everything... even when hooked up to a DS emulator.

Perhaps the most exciting feature that melonDS offers is local WiFi support for playing multiplayer games together.  This feature is extremely experimental and doesn't work all that great in many popular games.  Yet, there's just something incredibly nostalgic to see things even beginning to work.  Some games even work right now, such as Burnout Legends on DS.  Even features like Download Play are almost working.

melonDS's local multiplayer support is impressive, but not quite there for general use.
Download Play actually gets as far as booting the game on the second DS before finally failing.

Comparisons

Has melonDS improved since the initial article?  Of course!  Let's take a look at some of the games that were broken in 0.2/0.3 and compare them to how they look in 0.8!

melonDS 0.3 on the left, melonDS 0.8 on the right. Mario Hoops issues are gone in the latest release. Much like with Phantom Hourglass, outlines on some effects only work on software renderer.
melonDS 0.3 on the left, melonDS 0.8 on the right. Madden 06 looks a lot better now.

Testing the games that once gave problems to melonDS proved that Arisotura wasn't just focusing on enhancements.  The base emulation quality is incredibly high and already feels like an emulator that has been around for decades.

Problems

Trying out melonDS 0.8 is what inspired me to write this article, so you already know that I absolutely loved what I saw.  Unfortunately, there are quite a few problems right now, some of which will likely be fixed sooner than later.  I ran into quite a few crashes with changing graphics settings before booting a game, and the software renderer with OpenGL rasterization appears bugged.  There's also a lack of scaling on HiDPi screens, meaning that some of the render modes don't work well.

In terms of usability, it's a lot less plug and play than DeSmuME as well.  Unlike DeSmuME, there isn't a way to HLE the BIOS or generate a firmware.   This won't be a problem forever, as long term there are plans for a BIOS replacement and firmware generation that won't require as much setup.

And obviously, some features don't entirely work quite yet, such as local WiFi emulation.  Overall though, the problems were rather minor considering how many new features have been added.

In Conclusion

If I haven't made it abundantly clear already, melonDS is a worthy addition to the Nintendo DS emulation scene.  While it may not have quite the feature set necessary to be the only thing you need for desktop DS emulation, it's definitely going to be my first choice going forward.

Was I right about the Golden Age of DS emulation being upon us?  I can't say I was correct in my supposition, but DS emulation feels like it has a bright future.  While DeSmuME hasn't changed much, it's still being worked on and No$GBA has also continued to push the boundaries with DSi emulation.  In another two years, I could easily see melonDS being the dominant emulator, or, perhaps, another emulator will make a huge leap.  Speaking of other emulators...


What Happened to GBE+ and Medusa

While melonDS has flourished, the other emulators are still around.  While not as well known of an emulator GB Enhanced+ has continued to add support for tons of obscure accessories across the GameBoy era handhelds.  I'm excited to say that GBE+ has hit the milestone of finally booting commercial DS games!

GBE+ is steadily making progress and can boot a few games.

Considering the unique features that GBE+ already has, it will definitely be a welcome addition to the world of DS emulation as it matures.  Right now, it's in an extremely experimental state.  Even if its DS emulation isn't ready for the casual user, everyone interested in emulation will get something out of Shonumi's articles on their blog.  You can find everything from progress updates to feature articles that detail obscure hardware that most of us have never heard about.

Medusa hasn't changed much since my last article, but that's not necessarily a terrible thing.  The project hasn't been abandoned, it's just that endrift has been busy perfecting mGBA.  I highly suggest that you read endrift's series of articles on "Holy Grail" bugs.  They're incredibly interesting and show just how hard it can be to emulate every game in a library.  That said, I strongly doubt we've heard the last of endrift's foray into Nintendo DS emulation.