melonDS on the Nintendo Switch
What's this?

In case you didn't know, melonDS has a port for the Switch. And it's made by me!

It's actually been around for a while now, but just today I put out an update with a major UI overhaul. As in, it actually has a UI now.

For the longest time the port was just text-based, with few options and it ran like crap. I just did it for fun, and because melonDS was surprisingly easy to port. A couple weeks ago we gained the ability to overclock the Switch, and this let melonDS actually reach playable framerates for a few games!

Normally overclocking is scary, but not so much on the Switch. The Switch rocks an Nvidia Tegra X1, the same processor used in the Nvidia Shield TV. Maybe to save battery life, or maybe to prevent overheating, the Switch runs at about half the clock speed of the Shield by default. Since melonDS isn't GPU intensive at all, the cooling of the Switch is plenty good enough to handle the higher clock speed on its own for emulation.

So now that that's a thing, melonDS on Switch seems to be more than just a novelty. It seems like it could actually become a usable NDS emulator! Unfortunately the UI is still shit. So I built a UI with OpenGL that resembles the UI of the Switch itself.

It's not much, but it gets the job done. On top of that I added all of the screen layouts available in desktop melonDS for some extra fun. Aside from a few minor things, melonDS for Switch is now at feature-parity with core melonDS, and it doesn't look terrible, either.

So what's in store for this project?

Well, since the UI is more or less finished, the plan from here on is to keep the Switch version up-to-date with core melonDS. Once the hardware renderer comes along in 0.8, it'll likely be able to run most, if not all, games at full speed. I'd also love to help StapleButter out with the core project, although my expertise in writing actual emulation code is extremely limited.

I guess I'm able to post on the blog now, so you can expect more updates from me at some point in the future.

If you're interested in my project, you can find it on GitHub here.
extherian says:
Dec 13th 2018
'Writing emulation code' isn't really what's needed so much as an interest in reverse engineering. Writing the code is the easy part, the hard part is figuring out the correct behaviour to begin with.

Anyone can learn to churn out a few lines of C++, but what this project really needs is an extra brain to think about how to do things. If you're up for that, I'm sure your lack of experience with programming emulators won't be a problem.
Dean Heck says:
Dec 13th 2018
I really doubt that the Switch can emulate NDS games at playable speed, even with an i5 4460 some games are below the normal framerate.

So I don't think it's a viable task, at least not using the code from the Melon DS, that not even matched the DesMume performance yet.
omar jaber says:
Dec 13th 2018
when i want to boot up the roms it saying it is missing firmware.bin biosnds7.rom biosnds9.rom but i put it in the switch/melonds folder i need help please
Hydr8gon says:
Dec 13th 2018
Wrong names. They need to be "bios7.bin" and bios9.bin".
poudink says:
Dec 14th 2018
I'm sure the switch can run DS games full speed because the Wii U could. You shouldn't really use desmume as a reference for speed, either. It's not exactly known to be a very fast DS emulator.

Either, it's nice that overclocking's a thing, even though the battery probably last something like an hour.
Dean Heck says:
Dec 14th 2018
The ARM CPU (A57 and A53 @ 1 GHz) on switch is slower than the CPU on Wii U (IBM custom @ 1.2Ghz).
poudink says:
Dec 14th 2018
The VC emulator probably isn't the most optimized thing in the world, knowing Nintendo, and it can run games full speed while upscaling 3D graphics. IIRC the switch's CPU should also be able to emulate it faster because it's ARM, like the DS. We can't know for sure until the hardware renderer happens, anyway.
Arisotura says:
Dec 15th 2018
can't really tell what their emulator is doing and how accurate it is, but it's probably taking big shortcuts. it doesn't have to be compatible with everything, it can be hacked to run the specific game it's packaged with.
poudink says:
Dec 15th 2018
well since DS VC injection is a thing, I assumed the same emulator is used for all the VC titles.
Dylan says:
Dec 6th 2020
Hi there, I love your work so far and for what it is, it is perfectly acceptable to me.
The only request I have is the ability to play with one screen and switch between them using the press of an analog stick. So if I'm playing Castlevania I can fullscreen it.
AN94A4 says:
Jul 30th 2021
Post a comment