melonDS v0.7.1 is released. melonDS is an open source Nintendo DS(NDS) emulator. melonDS is part of a second wave of DS emulators. There are a few other emulator projects that are part of it, which you might have already heard of. Either way, check them out!

melonDS Features:
* almost-complete 2D graphics
* 3D graphics (software renderer) with texturing, alphablending, lighting
* input: keyboard and joystick, touchscreen
* backup memory
* booting from the BIOS
* resizable video output window, preserving aspect ratio of individual screens

melonDS Changelog:

As title says.

We're not showing screenshots because they wouldn't be a good medium for conveying the number of changes in this release.

The biggest change here is that the core timings were entirely renovated to try being closer to the hardware.

First of all, after several days of gruelling testing and guesswork, we were finally able to understand the GX timings, and emulate them properly for the first time. But, as we weren't gonna stop there, we also renovated the timings for DMA and memory accesses, so that both of them are closer to their hardware counterparts. DMA and ARM7 should be pretty close to perfection now, ARM9 less so but it's still more realistic.

We have also been fixing the emulator's main loop, so that the ARM9, ARM7 and system clocks shouldn't desync anymore.

All of this, with a few added optimizations, fixes a whole bunch of issues, from things flickering to audio crackling to games outright going haywire (hi RaymanDS). Your games are now running better than ever!

... or not. That's also the point of the 0.7.1 release, I want to hear about any issues caused by the timing renovation, so we can get them fixed for the epic 0.8.

We already have one such issue, all of this is causing sprite flickering in Pokémon Platinum. Quick attempts at fixing this went nowhere, so we will have to investigate this proper.

There's also a number of misc fixes. For example, the 3D glitches that showed up in Mario Kart DS were fixed, but there's already a lengthy post about this.

There's a small fix to 2D windows, nothing really noteworthy, just fixes a game that was setting up backwards windows.

The input system no longer requires a dpad to be mapped to directional keys for joystick axes to work.

The code that looks for local files (melonDS.ini, BIOS, firmware...) was modified to explicitly check the directory melonDS is in, if that is not the same as the working directory. So in these cases it will no longer fail to find its files. Also, if melonDS.ini is absent, the preferred directory for creating it is the directory melonDS is in.

And, finally, we finally got rid of the old savemem type autodetect code. Considering its complexity and the amount of failures, it was a trainwreck. So instead, now, melonDS will pull that information from the provided ROM database (romlist.bin).

Edit- If your game is still failing to save: you might have an old failed save file lying around, try deleting it. When a save file is present, melonDS determines the savemem type from the file size, so if a file is present with a wrong size, you will have to delete it.