About lolSnes
lolSnes is a SNES emulator for the Nintendo DS.

It is made of all new, original code, except the DSP part which is an improved version of SNemulDS's code.

Emulating a console such as the SNES on a nowadays underpowered handheld like the Nintendo DS, is a challenge for me. Well, it's not really the hardest challenge, people have done harder things before, such as emulating more powerful consoles on the DS, or emulating the SNES on the GBA. That is truly amazing.

The lolSnes project was started in August 2011. Back then, the SNES-on-DS scene was already mostly stagnant. I wanted to make something that would be better than what already exists, mostly on the graphics aspect. I figured it'd be an interesting challenge to properly emulate the SNES graphics.

I started by writing the emulator base, and a CPU core in ASM. It was good. Then I moved on to the graphics. I planned on making a line-accurate software renderer. But this approach was wrong. The DS isn't powerful enough to handle such a renderer.

That killed my motivation, and the project then stayed dormant, like all my failed projects.

For some reason, two years later, in August 2013, I felt like continuing this project. I trashed the software renderer attempt, and started implementing the renderer using the DS's 2D hardware.

It is the only viable approach on the DS. As previously explained, the DS isn't powerful enough for the software way. There's the 3D hardware, but it isn't a viable option either. Its resources would be unsufficient to emulate SNES graphics, not to mention it would be impossible to emulate color effects or screen transitions.

Of course, it will be impossible to get perfect graphics emulation using the DS's 2D hardware. With trickery, it is possible to get close, but not perfect. For example, the SNES supports color subtraction between layers, and there's no way to achieve such an effect on the DS. And of course, there's the famous per-tile priority which is the trickiest one to emulate. How these fancy features will be emulated will mostly depend on how popular games use them.
Credits
• Martin Korth for his nice SNES documentation and NO$SNS's debugger
• SFC dev wiki and everyone who have written SNES documentations
• Archeide and whoever else made SNemulDS's DSP
• fincs (from #dsdev) for helping me fix an annoying freeze issue
• Flurry (from GBAtemp) for her nice icons
• anybody who has tested lolSnes and given feedback