melonDS 0.8
It's been awaited for so long, and finally, by popular request, here it is: melonDS 0.8, with OpenGL renderer and upscaling!

So, without further ado, let's discover all the details of this.

The OpenGL renderer

This renderer is an attempt at targeting a sweet spot of, say, 90% compatibility while being fast. If you have read the previous posts about the DS GPU and how quirky that thing is compared to your average GPU, you guess that perfect rendering with OpenGL isn't going to be possible, but we can do our best.

The current renderer supports most of the DS GPU features, but not all of them. There is room for improvement, but certain features will just not be implemented. For the games that happen to require those, we still have our old trusty, nearly pixel-perfect software renderer.

But, the OpenGL renderer opens the door to all sorts of graphical improvements. I have plans in mind for more features (namely, some form of texture filtering), but I will draw a line as to keep the codebase not too complex.


The OpenGL renderer is enabled by default, but you can go to the video settings dialog to configure it. Namely, this renderer supports increasing the internal resolution to up to 8x the native resolution.

Note that changing the internal resolution does not change the window size, you will need to take care of that. However, changes from the video settings dialog apply instantly, so you can compare the various settings and select the one you like best.

OpenGL display

The 'OpenGL display' setting uses OpenGL to display the DS screens in the melonDS window. This has nothing to do with the OpenGL renderer directly. However, it is forcibly enabled when using the OpenGL renderer, as the two work fastest when they are together.

OpenGL display can be used with the software renderer. You don't get upscaling, but you can, for example, enforce vsync via driver settings this way. Also, for now, screen filtering doesn't work with OpenGL display, but there are plans for filtering methods that would work with both renderers and provide amazing results. We'll see how far we can get on that front.

The alternative to OpenGL display is the old method that has been used by previous melonDS releases. Direct2D under Windows, cairo under Linux.

Take note that the 0.8 release is a bit of an experiment. Basically, we tested it before release to ensure the OpenGL renderer will work, but we can't cover every setup that exists, so it is likely that there will be issues arising either from crummy programming on our part, or from crummy OpenGL drivers. So, if you have any issue with this, let us know!

melonDS 0.8, Windows 64-bit
melonDS 0.8, Linux 64-bit

If you're feeling generous, if you want to help us take this OpenGL renderer further: here's our Patreon
guest says:
Jun 1st 2019
vsync in my driver is set to "Use the application 3D setting", so melonDS must be telling it to use it.

DeSmuME doesn't have this issue. When I set its display method to OpenGL and disable the frame limitter(not turbo), it has no problem running fast.
Arisotura says:
Jun 1st 2019
melonDS doesn't do anything in particular, so I guess the default is to use vsync. dunno
UncleBenis says:
Jun 1st 2019
Could you please add the ability to put in-game saves and emulator savestates into arbitrary folders? That's the main reason I still use desmume.
Jamie Parker says:
Jun 1st 2019
He is lovely, and I love him.
Elratauru says:
Jun 5th 2019
Is there any plans to have texture-dumping and custom texture support? That would be amazing with this render upscaling.
Post a comment