Sneak peek of melonDS 0.9
There's not going to be any fancy screenshot here, simply because there isn't much that is worth a screenshot. However, I figured I'd give a little status update, because it's been a while. There's been a lot of work done so far, and we're not done yet.

So, first of all, the whole 'new UI' adventure.


At this point, it's been what, four total UIs melonDS has had, counting the one being made.

The very first one didn't even see an actual release. Can't even really call it an UI, it was nothing more than a bare window using the Win32 API directly, along with some hardcoded input mappings, that just served to help me get the emulator core going.

Obviously, it was specific to Windows, and I wanted melonDS to be cross-platform, so it was thrown away. I didn't want to have to maintain separate frontends for each OS, so using a cross-platform UI toolkit was a must. I wanted something that was relatively lightweight, and if possible, used native widgets instead of reimplementing them.

Thus, the 0.1 release came with a wxWidgets UI. Due to not being able to make wxWidgets and SDL interoperate smoothly, the UI was a clunky mess that came in separate windows. But atleast it was more user-friendly, and worked under Linux.

The wxWidgets UI was eventually retired with the 0.5 release. I went with libui, which was small enough that I was able to modify it to meet my needs. The new UI even had several improvements over the previous one. libui's design was not optimal, but it was good enough for what we wanted, so we built upon it for the next releases.

Fast forward to now. As you might have read in the previous posts, we've been wanting to add new features to melonDS, but found that libui lacks support for what we need. We didn't want to spend forever building upon libui, so we decided it was time, after more than two years of service, to retire the good ol' libui UI.

We thought about this for a long while, and in the end, went with Qt for the new UI. I have concerns about this, but I'm hoping for the best.

So how is the Qt adventure going so far?

Pretty good. Qt is fairly nice to work with. The new UI is almost on par with the old one, and in some ways it's better. You can see the progress in our git, in the qt branch.

At the time of writing this, the big things that still need to be taken care of are OpenGL support and the wifi interfaces. And, of course, building an UI for the cheat engine I wrote in February.

There will also be the whole issue of packaging this all up, especially on Windows. The current Qt builds require no less than 25 DLLs. Compare that to the measly 4 DLLs the libui versions came with... We'll need to look into static linking to avoid this madness.

I also want to look into providing Mac builds. Will probably involve installing an OSX VM, sounds like a lot of fun.

As for the rest, I'm keeping some surprise on the upcoming 0.9 features :)
Linoleum says:
May 23rd 2020
> We thought about this for a long while, and in the end, went with Qt for the new UI. I have concerns about this, but I'm hoping for the best.
Can you elaborate wrt. concerns with Qt? Is it related to the rumors that future versions of Qt might be closed source?
Guest says:
May 23rd 2020
This sounds interesting, however I'm not surprised at this post (though I was initially surprised by the first GitHub commit announcing work on a Qt front-end).
MelonMan, how is the Qt front-end shaping up, compared to the LibUI front-end (though I am on Linux, not Windows)?
poudink says:
May 24th 2020
OpenGL has been deprecated on mac for quite a while. it performing well doesn't have much to do with whether or not it is deprecated.
mauchi says:
May 24th 2020
What about wifi feature? I tried to trade pokemon in several ways but blue screen is the only result.
MelonMan says:
May 24th 2020
A linux build from today - qt branch:

Guess I've got to provide build instructions for Linux as well then. Here goes...
MelonMan's guide to building melonDS - qt branch - on Linux
Note: Tested on Linux Mint 19.3.

Run these commands.
sudo apt-get update
sudo apt-get install gtk+-3.0 libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev qt5-default build-essential git
wget -O - 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null
sudo apt-add-repository 'deb bionic main'
sudo apt-get update
sudo apt-get install cmake
git clone -b qt
cd melonDS
mkdir build
cd build
cmake ..
make j$(nproc --all)
melonDS will be located in (current directory)/melonDS/build along with romlist.bin.
SIGMA says:
May 24th 2020
mauchi Wi-Fi is already being worked on in the betterer-wifi branch on the GitHub page.
A dragon says:
May 25th 2020
Does this mean the ability to map analog sticks to act as a cursor on the touch screen is going to be implemented soon?
AP says:
May 25th 2020
Great, but what about the Switch (stand-alone or via Retro Arch)? Currently, playing Platinum for example, is a stuttery mess and if it does work, it would greatly benefit from xBrz. Not sure if I am just blind or it is missing, but resizing the screen independently is also a great thing DeSmuMe does, but it is just not good for the Switch.

Either way, looking forward to it.
poudink says:
May 25th 2020
on switch you should use rsduck's version instead of hydr8gon's if you aren't already and overclock is necessary to get good speed in most games that use the 3D GPU.
AP says:
May 25th 2020
Care to elaborate?
poudink says:
May 26th 2020
elaborate on what? if you're using the switch version, you won't get full speed in most 3D games unless you overclock your switch. it's as simple as that.
AP says:
May 26th 2020
Well, even at max (1875?) it still stutters. I don't know if I have rsducks version, but I suppose looking for "rsduck github" and clicking on the first result -> releases and just download from there is the way to go, yes?
Marck says:
May 26th 2020
Generic aka RSDuck says:
May 26th 2020
the latest build of my switch port can be found here:

it's a bit messy including the way it's distributed (in some random post on gbatemp). Expect improvement in that regard in the next few days, when the next release will hopefully come out ;)
Amnesia says:
May 26th 2020
MelonMan thank you
Post a comment