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.

Again.

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 :)
MelonMan says:
May 26th 2020
Amnesia: No problem! :P
AP says:
May 26th 2020
RSDuck, thank you. This version works flawlessly with Platinum. Now, if there were more filtering options to have it less pixelated, that's it.

Looking forward to updates, where would I find them as soon as they release?
AP says:
May 26th 2020
Also, props that it works without overclocking. Hellova job.
wtf says:
May 26th 2020
25 dlls, this is bullshit
Guest says:
May 26th 2020
Thanks MelonMan, your build is working pretty nicely here. It is certainly odd that when I built compiled the Qt branch on Solus, the resulting binary failed to launch.
MelonMan says:
May 27th 2020
Whoops, the "make j$(nproc --all)" line in the Linux instructions should be "make -j$(nproc --all)"
MelonMan says:
May 27th 2020
And the latest build crashes with
/home/ubuntu/melonDS/src/GPU3D_OpenGL.cpp:1145:5: error: reference to ‘glActiveTexture’ is ambiguous
glActiveTexture(GL_TEXTURE1);
^~~~~~~~~~~~~~~
in the make line. I think Arisotura is still working on the OpenGL renderer for Qt.

Also Guest, my instructions are for a Linux OS based on Ubuntu 18.04 LTS so I think that's why it didn't work.
Arisotura says:
May 28th 2020
>25 dlls, this is bullshit

totally
MelonMan says:
May 29th 2020
And the size as well. MelonDS with libui is about 4 MB, but melonDS with Qt is over 70 MB (an over 1600% increase)!
AsPika2219 says:
May 31st 2020
Waiting for release! 😇
Guest says:
May 31st 2020
MelonMan, I did run "make -j$(nproc --all)", when compiling (I have it stored in my clipboard, due to me using it often).
Arisotura says:
May 31st 2020
70MB is exaggerated, I wonder how it got that big? it was about 30MB here, and after stripping it was 21MB

similarly, 4MB for a libui build is a tad big, the official builds aren't even 1MB
MelonMan says:
May 31st 2020
Arisotura: Using File Explorer, Windows reports that the file size is ~4MB. https://i.paste.pics/96BPL.png
Post a comment
Name:
DO NOT TOUCH