melonDS 0.9 is out!
It's been forever, but, finally, here it is. melonDS 0.9.

And it's big.

So, what are the highlights of this release?

- JIT recompiler

Brought to you by Generic (aka RSDuck), the new JIT recompiler enables melonDS to run much faster, and quite often reach fullspeed even when emulating DSi titles!

There are a few settings you can try out to get the most out of this JIT. While it has been heavily tested and worked on, it's still imperfect.

- DSi emulation

This is the other flagship feature of this release: melonDS now emulates the DSi!

You will need a NAND and firmware dump from your DSi, as well as augmented BIOS dumps (such as those that NO$GBA requires). The following BIOS dumper can dump the required BIOS files from a homebrew-enabled DSi.

Do note that this is still experimental. For one, direct boot will not work under DSi mode. Not everything is running yet, either, but we're getting there. melonDS does not yet emulate some hardware like the DSi cameras (but on the other hand, emulates DSi wifi).

melonDS has a small hack to bypass the region check. However, DSiware titles can't be run standalone yet, they will need to be installed to the NAND.

- GBA slot support

melonDS now supports loading a GBA ROM to simulate having a cartridge in the GBA slot. This is done by selecting a .gba file while your game is running. Note that we don't support emulating the GBA in any way.

We also support the Boktai solar sensor addon. Support for more addons is planned.

- New Qt UI

This means we get to do more without needing to work around the limitations that libui had. For the end user, this also means a bigger binary, but on the other hand, on Windows, all the dependencies are linked statically, so melonDS does not come with external DLLs anymore.

The new interface adds features that were long requested: for example, you can open the emu settings dialog to point melonDS at your desired BIOS/firmware/etc files, without needing to move/rename them around.

- Cheats

This is another popular request, and here it is. melonDS lets you enter Action Replay codes to mess with your games in whatever ways you want.


melonDS now supports letting homebrew access files and directories on a SD card image. Note that for now, you will need to provide an image file, melonDS does not yet build such images on the fly like DeSmuME can do.

Similarly, you can also use a SD card image to emulate the console's SD card in DSi mode.

- and the rest!

As usual, there are plenty of little improvements with this melonDS release, that are too many to list here, but you may discover them on your own! Or find them in the changelog (which we are still busy compiling - it's a big release).


melonDS 0.9, Windows 64-bit
melonDS 0.9, Linux 64-bit

If you're feeling generous: here's our Patreon
Rian Caio says:
Sep 15th 2020
Well AltWFC Works for me in direct mode
Arisotura says:
Sep 15th 2020
if you're doing local wifi you need to enable MAC randomization
Ryan N Zyan says:
Sep 15th 2020
./melonDS: error while loading shared libraries: cannot open shared object file: No such file or directory

I am getting this error on linux mint. i tried everything but nothing helped.
WaluigiWare64 says:
Sep 15th 2020
Ryan N Zyan: You need to install the libslirp library.

sudo apt install libslirp0
GalacticPirate says:
Sep 16th 2020
Very late comment, but congrats for the release
I feel like it's the first one that can be considered undoubtedly superior to the uh, alternatives :P
Dammit Jim says:
Sep 17th 2020
Internal resolutions beyond 4x DO NOT IMPROVE EDGE ALIASING. 2x, 3x, and 4x each display incremental improvement, but 5x - 16x appear identical. The only benefit appears to be with texture aliasing. A proper 16x internal resolution should downsample the image, which would remove aliasing from poly edges rather than preserving it.

This is with the Win64 build.
Dammit Jim says:
Sep 17th 2020
Upon further examination, 5x - 16x don't do anything other than improve polygon stability. The texture aliasing improvement I saw was due to enabling screen filtering. Disabled, the aliasing between 4x and 16x appear identical. Please take this as constructive criticism. Your emulator has come a long way, but a properly executed 16x IR would be a most welcome addition if possible.
poudink says:
Sep 17th 2020
none of them improve aliasing. all it does is increase the resolution the models are rendered at and it's all scaled in nearest neighbour.
Arisotura says:
Sep 17th 2020
have you tried enabling screen filtering?
Dammit Jim says:
Sep 17th 2020

Yeah, nearest neighbor seems about right. That would explain why the temporal anti-aliasing in MelonDS is pretty much non-existent. While nearest neighbor is a fast solution that's useful for unlocking high res assets, it's also an ugly one that can actually increase aliased edges when not applying it to the resolution in multiples of 4.


Yeah, I did experiment with your screen filtering option, as mentioned in my second post. It's helpful as it does soften the temporal aliasing somewhat, but doesn't remove it. Since MelonDS utilizes OpenGL, I tried forcing MSAA & SGSSAA through my Nvidia drivers, but that was a no go. SMAA can be forced via ReShade, but like screen filtering, it doesn't remove temporal aliasing. SMAA makes great still shots in a game like Metroid Prime Hunters, but doesn't look good in motion.

That's the challenge all 3D emulators face: To not only properly emulate that system's games, but to match or surpass the image quality of the original system. For example, look at Metroid Prime on the GC. When you first land at the space port, you see these yellow lines surrounding the station. On the GC, these lines are an aliased mess, but CRT televisions negated that effect somewhat. On the Dolphin, with AA disabled, the aliasing is even more pronounced on an LCD display. However, if you enable 8x SSAA + FXAA, the yellow lines render smooth as butter and easily surpass the GC's IQ.

As of now, when playing Metroid Prime Hunters on MelonDS, it's like playing Metroid Prime on the Dolphin without 8x SSAA. All of the flaws are more pronounced. The higher resolution does increase detail, but 3D games scroll poorly due to the use of nearest neighbor. The original DS\DSi screens have these issues also, but like the CRT, they are less pronounced.
Generic aka RSDuck says:
Sep 17th 2020
the DS supports anti aliasing for solid polygons and it's screen has a pretty slow response rate. The first is properly emulated with the sw renderer, but the later is implemented for neither. Textures are always sampled with a nearest neightbor filter (which I think poudink meant to say).

Depending on whether you enable screen filtering or not the higher resolution framebuffer is sampled with a nearest neightbor or linear filter. In practice this should mean that with a render resolution above your screen size you should be eable to get one step of downsampling with the linear filter.
Arisotura says:
Sep 17th 2020
I want to add some proper form of antialiasing to the GL renderer eventually, as well as texture filtering/upscaling.
poudink says:
Sep 17th 2020
"(which I think poudink meant to say)"
No, what I meant to say is that the image is scaled with a nearest neighbour filter. If your window is smaller than the internal resolution, it will be scaled down in nearest neighbour. I believe Jim meant to say that it should instead use a scaling filter when downscaling the image to the window size, which would indeed reduce aliasing.
Generic aka RSDuck says:
Sep 17th 2020
I'm sorry then. As I already said, with the filtering option enabled this is not entirely true though, as one step of downsampling should be performed.
brr says:
Sep 24th 2020
Hey, Arisotura, can you fix RSS? Yeah, I know, but I use it.
Also, your certificate is outdated.

And thanks for the wonderful emulator.
Post a comment