• Print

MelonDS 0.3

Description

DS emulator, sorta

 

The goal is to do things right and fast, akin to blargSNES (but hopefully better). But also to, you know, have a fun challenge :)

 

The source code is provided under the GPLv3 license.

 

How to use:

melonDS requires BIOS/firmware copies from a DS. Files required:

  • bios7.bin, 16KB: ARM7 BIOS
  • bios9.bin, 4KB: ARM9 BIOS
  • firmware.bin, 256KB: firmware

Note: the DS-mode firmware in the 3DS isn't bootable, it only contains the bare minimum to run games.

 

As for the rest, the interface should be pretty straightforward. If you have a question, don't hesitate to ask, though!

 

TODO LIST

  • better 3D engine
  • sound
  • wifi
  • other non-core shit (debugger, graphics viewers, cheat crapo, etc)

 

TODO LIST FOR LATER

  • sound
  • more 3D engine features
  • hardware renderer for 3D
  • wifi
  • maybe emulate flashcarts or other fancy hardware
  • big-endian compatibility (Wii, etc)
  • LCD refresh time (used by some games for blending effects)
  • any feature you can eventually ask for that isn't outright stupid

Changelog

So what's new in this version?

A bunch of bugfixes. This version has better compatibility than the previous one.

This includes graphical glitches ranging from UI elements folding on themselves to motion blur filters becoming acid trips, or your TV decoder breaking.

But also, more evil bugs. As stated in previous posts, booting your game from the firmware is no longer a gamble, it should be stable all the time now. An amusing side note on that bug, it has existed since melonDS 0.1, but in that version, the RTC returned a hardcoded time, so the bug would always behave the same (some games worked, others not). melonDS 0.2 started using the system time, which is what introduced the randomness.

The 3D renderer got one-upped too. Now it runs on a separate thread, which gives a pretty nice speed boost on multicore CPUs. This is optional, so if it causes issues or slows things down, you can disable it and the renderer will work mostly like before.

When I had to implement the less interesting aspects of this (controlling the 3D renderer thread), I procrastinated and implemented 3D features instead. Like fog or edge marking. You can see them demonstrated in the screenshots above.

Then I went back and finished the threading. I'm not a big fan of threaded code, but it seems to be completely stable.

However, resetting or loading a new game is still not completely stable, it has a chance of freezing. Oh and the UI still sucks. I plan to finally get at the UI shit for 0.4, and I want to ditch wxWidgets, so I don't really feel like pouring a lot of time into the current UI.

There are more things that went into this release, and I'll let you find out!


Also, here's the melonDS Patreon for those who feel generous.


Have fun!

Links

Downloads

Gallery


 
 

Comments

blog comments powered by Disqus