Homebrew melonDS 0.8 - OpenGL renderer and upscaling

Arisotura

rise of melonism
OP
Member
Joined
Dec 5, 2009
Messages
839
Trophies
1
Age
30
Location
center of the Sun
Website
kuribo64.net
XP
2,498
Country
France
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.

Upscaling


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
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BakerMan
    I rather enjoy a life of taking it easy. I haven't reached that life yet though.
    SylverReZ @ SylverReZ: @BakerMan, Fuck sigma, go with sugma.