melonDS 0.8.3
About fucking time, I guess.

So what does this release bring? Well, we have been trying to address the issues present in previous 0.8.x releases (or sometimes even older releases, heh).

For example, I fixed the bug that was introduced with the new support for Ctrl+K type hotkeys. Basically, using Shift/Ctrl/etc as regular keys mapped to buttons was no longer possible. So, support for key mappings with modifiers was restricted to hotkeys. Meaning that using right Shift as R (as done by the default key mapping) should no longer cause input problems.

I have been trying to fix the issues we had with the framerate limiter and audio output, too, with moderate success. As I haven't been able to come up with a one-size-fits-all fix, there are now three different sync modes you can use, individually or together:

* Limit framerate: the oldschool framerate limiter. Although this is a revamped version that tries to average over several frames, reducing the likelihood of limiting too aggressively on certain games that internally run at 30FPS and are otherwise able to run fullspeed.

* Audio sync: synchronizes emulation to the audio output system. Seems to result in a bit more fluctuation in the framerate, but should prevent any audio stuttering.

* VSync (in the video settings dialog): synchronizes video output to your monitor's refresh rate. This only works with OpenGL, and currently only works under Windows (OpenGL support under Linux still needs more love). Also, DS games/programs may alter their framerate by messing with VCount, which VSync would be ill-equipped to deal with (unlike the two other sync methods).

I think most of the audio issues came from not properly syncing, which resulted in semi-regular overflows or underflows in the SPU FIFO, causing stuttering. The current audio output system cannot be precise enough to prevent those, as it works with small audio frames.

Speaking of which, I have also been revising it to use a more standard output frequency, in case some bad audio driver doesn't appreciate the previous frequency of 47340Hz. Now, it will attempt to run at 48000Hz, but it also allows SDL to specify another frequency if needed.

There are also a few other fixes that were long due (like OpenGL initialization failing under OpenGL <4.2), and some accuracy improvements, as usual.

As promised, beta builds of the JIT and DSi branches are coming soon, so stay tuned! Those will be based off older melonDS versions (0.8.2 and 0.8.1 respectively), though.


melonDS 0.8.3, Windows 64-bit
melonDS 0.8.3, Linux 64-bit

If you're feeling generous: here's our Patreon
NOD says:
Sep 5th 2019
Thanks for another update, I hope dsi emulation will be superb one day! Any news on Android builds?
AsPika2219 says:
Sep 6th 2019
Thanks for update! Waiting for JIT soon!
poudink says:
Sep 6th 2019
but with the different sample rate, does that mean the audio will run slightly too fast?
poudink says:
Sep 6th 2019
I meant play, not run
Arisotura says:
Sep 7th 2019
poudink: it should not, there's a resampler (and it was there before too, the original sample rate is ~32823Hz)
Ammako says:
Sep 7th 2019
This seems to be an improvement, but frame limiter is still too aggressive, whether I use Vsync or Audio Sync.

There are certain things that cause the emulator to run slower, for example, wireless communications and especially download play. If I turn off all frame limiters, then I can get it to run at around 140 fps, and once I start transmitting download play app to another instance, the framerate drops to around 90 fps. So surely, I should be able to maintain a stable 60 fps with frame limiter, given that I am able to achieve 90. But if I enable frame limiters, then the framerate drops to ~40 fps, even though my computer is clearly able to handle 60 in that scenario.

VSync does a little better, the framerate only drops to ~52, but I don't understand why the framerate would have to drop below 60 at all when it's able to run well above 60 with frame limiter disabled.
branchus says:
Sep 7th 2019
Thank you so much :)
Generic alias RSDuck says:
Sep 8th 2019
> I tried Mario Kart DS using the latest git but i think it happens on every game.
The frame rate is choppy.
It even happens if I disable JIT so it's not that (and even hardware/software renderers wont matter).

I can't reproduce, though I already had made some changes, which I have pushed now. Perhaps that'll fix it for you.
Sorer says:
Sep 8th 2019
No it's not that.
Well at least 0.8.3 is stable and is working fine for now.
VootCaboot says:
Sep 11th 2019
I hope we get a good running emulator that can play DSi games - I can't wait to see a higher internal resolution X-Scape!
Natsuki says:
Feb 2nd 2020
Este emulador conheci a pouco tempo, mas gostei muito devido a fazer trocas no pokémon na uniom room, mas gostaria de tirar uma dúvida: Estava jogando pokémon diamond ao iniciar o jogo salvei o o progresso fechei o emulador e abri novamente e quando iniciei o jogo ele não carregou o save e iniciou o jogo como seu eu nao estivesse salvo o jogo. OBS: Quando eu salvei o jogo na pasta do mesmo ele criou um save, mas quando abro a rom o emulador não carrega o save.
Gostaria de saber se eu posso ter feito algo de errado ou precisa ser feita alguma configuração.
Obrigado pela atenção.
Kairi says:
Jul 31st 2020
I dont know why my melonds often in 30fps when I start, after I shut down my laptop. For the first time it because biosgba.rom suddenly disappear, second time it because the config setting suddenly change. But now, i dont know why it still in 30 fps. anyone can help?
Post a comment