melonDS 1.0 RC, there it is!
We have finally released a brand new version of melonDS: 1.0 RC.
A bit of a disclaimer about this unusual version number: due to the large number of changes since 0.9.5, this version is a Release Candidate. We have done a thorough round of testing and bugfixing, but there is always the chance that further issues went unnoticed. This release will be the occasion to catch them and fix them for the actual, proper 1.0 release.
Now, the biggest changes this release brings:
Core refactor
This is the biggest change by far. We have undertaken a large and ambitious refactor of the melonDS core, in order to make it possible to run multiple instances of the emulator within one single process.
What does this change mean for end users? It means that local multiplayer is easier to deal with, since we no longer have to deal with inter-process communication. It also means that depending on your platform, local multiplayer may be more performant now.
However, much like in 0.9.5, this multiplayer mode only works when running multiple instances on the same computer. But we have another ace up our sleeve, which we'll see next.
It's also worth noting that this refactor was partly motivated by the idea of adding netplay support. While I haven't been able to get netplay working yet, the refactor has laid a very important foundation for it. We'll get there, eventually!
LAN support
You might remember LAN multiplayer and the associated betas. This feature has been backported and brought to you proper in this new melonDS release.
This means that you can play local multiplayer games with family or friends over the local network.
Do note, however, that due to the tight timing requirements of the local multiplayer protocol, it requires a pretty good ethernet network to work. Do not expect it to work well over wifi. And, most importantly, do not expect it to work at all over VPN, Hamachi, or any sort of tunnel that goes through the internet. We will not accept issue reports about LAN connection failures that involve tunneling.
OpenGL compute shader renderer
Until now, we had the software renderer and the OpenGL renderer. The software renderer produces very accurate graphics but can't be upscaled. On the other hand, the OpenGL renderer supports upscaling, but it is prone to all sorts of problems and glitches.
So Generic brought us this new OpenGL renderer, which uses compute shaders to closely reproduce the DS GPU's rasterization algorithms on your computer's GPU.
This renderer brings together the best of both worlds: a graphical output that is very accurate, but at the same time, support for upscaling and other improvements.
The old OpenGL renderer will still be around, along with this new one. You can select them in the 3D settings dialog.
Software renderer improvements
Speaking of renderers, Jakly has been at work researching the intricacies of the DS GPU far more in depth than I have. She has committed several accuracy fixes and improvements to the software renderer, some of which might make a big difference depending on the game.
Jakly is also currently fighting our worst enemy, the Horseman of Timings. Compared to this, fighting the Horseman of Wifi was a walk in the park. But she's been doing some impressive work figuring out the intricacies of the DS's timing model, and might finally deal with a lot of the old timing issues. So stay tuned!
Multi-window support
This has been a long requested feature: the ability to split melonDS across two windows, or more. And it is finally here.
The way this feature works is quite similar to DeSmuME: you can open a new emulator window (View -> Open new window), which will function like the initial window. Then the layout settings can be set per window, allowing you to have one screen per window, but also many other possibilities. melonDS also remembers how many windows you had open and how they were configured.
We have also moved the layout settings to a separate View menu to make things clearer.
This is a first iteration of this feature, so it may get refined based on user feedback.
R4 Revolution and M3 Simply support
Until now, the way DLDI support was done in melonDS was pretty high-level. It was implemented through a custom DLDI driver that melonDS patches in, and a special cart class (CartHomebrew) is used, which can interface with melonDS's DLDI driver. While it isn't too far off reality, and works just fine, it is an entirely custom solution not based on any existing hardware.
asiekierka has been working on emulating specific flashcart models: the R4 Revolution and the M3 Simply. This makes it possible to, say, run these flashcarts' original menus. Can be a nice touch!
It's also pretty nice to have a reference as to how that hardware works.
Many other fixes
There are way too many fixes, changes, and general improvements to list here. You can find them in the changelog, for the most part.
Nightly builds
I plan to open up the section for nightly builds on the download page soon. I will keep you informed.
You will find this release on our downloads page, as usual. Enjoy!
Source
Download