lolSNES™SNES emulator for DS by Mega-Mario

lolSnes SNES emu for DS

lolSnes is a Super Nintendo Entertainment System (SNES) rom emulator for the Nintendo DS flash cards. It is compatible with all versions of the 3DS / DSi / DS Lite and the original NDS as long as you have a NDS Flash Card capable of running homebrew .nds roms.

lolSnes SNES emulator on DS

Testing lolSnes on PC

If you don't have a flash card for testing how lolSnes works you can use DeSmuME Nintendo DS emulator for PC Windows, Linux and Mac. That is how the lolSnes screenshots were made - running an SNES emulator inside a DS emulator!

Adding SNES Game Roms to the emulator

lolSNES games snes roms

To run the emulator on DS you will need to download the lolSNES.nds file from the download section of this site. Copy it to the microSD card that you use in your Nintendo DS Flash Card adapter. Together with the lolsnes.nds file you should copy a SNES game rom file that needs to be renamed to rom.smc and placed in a /snes/ folder.

  1. Download lolsnes.nds and some snes roms
  2. Copy lolsnes.nds file to your flash card
  3. Rename a snes rom file you would like to play to rom.smc
  4. Copy rom.smc to the /snes/ directory of your flash card
  5. Run lolSNES Emulator on NDS / DS Lite / DSi / 3DS and the rom file will automatically load in the emulator!
  6. * do to legal issues there are NO commercial SNES ROMs on this website. Use to find a lot of links to sites with games for lolSnes.

lolSnes Questions answered by Mega-Mario

How to run lolSnes on DeSmuME DS emulator:

For DeSmuME, you need to use version 0.9.9, and set the slot1 device to Retail and slot2 to MPCF flash card device. And don't forget to configure the directories properly.

What is the game compatibility? Which snes roms work on lolsnes.nds?

And for compatibility, well... there's no precise list atm. All I know is that games that are known to require insane accuracy will not run. If your game doesn't run in Snes9x or ZSNES, there's about zero chance that it'll run on lolSnes.

Why start a new project and not just continue devoloping another Open Source project like the for example SNemulDS?

I'd have continued on SNemulDS if possible, the only problem is that the source code of the last version seems to be completely gone from the internet, and SNemulDS being a port of an emulator made for DOS, it won't be as efficient as an emulator made specifically for the DS.

How soon if ever is lolSnes going to be finishes?

I'm going to complete it. If my motivation doesn't fail me, that is.
I'd mainly like graphics to have right priority and all without requiring to switch/disable layers or whatever game-dependent manual action.

Tile priority will be tricky to emulate without major overhead, too. But eventually I'll find a way.

As for sound, well... I hope interpolation will be feasible, but dunno. The SPC700 core is already taking quite a bit of the ARM7's power.

As for lolSnes, well, I'm planning to release a proper build very soon. I made it so BG3 becomes the topmost layer if BG3 high priority is enabled, assuming most games would do that to use BG3 as a HUD layer. It works quite well for SMW. I don't think it'll be good for every game, though.

I still want to come up with better ways of handling per-tile priority, though. I'll likely be resorting to SNemulDS's tricks (ie using extra layers in modes other than mode 0, or switching the whole BG to higher priority per-line if all the tiles on a given line are high-prio or empty). I could also try using spare sprites to handle individual tiles that don't get covered by the other workaround.

I'm also trying to add support for saves. So far it reads saves fine. But then I tested on my DS, and that annoying issue came back: CPU->SPC700 transfers hang in between for some mysterious reason, and then both CPUs get stuck waiting for each other to do stuff. Given how they normally communicate, this shouldn't happen, I still need to investigate it. Annoyingly, it never seems to happen on DeSmuME or the new Pokemon Emulator.

Is there going to be a special accelerated version of lolSnes for SuperCard DStwo flash cards?

for SCDSTwo, I'm not planning on supporting it. I don't have one so I couldn't test. And not everyone has it, either.

What speed hacks for SNES emulators are going to be used in lolSnes?

I may also add support for SuperDAT (snesadvance.dat) speedhacks. Right now it applies speedhacks if it detects a SMW-style idle loop, but I figure that idle loops vary wildly from one game to another, and autopatching wouldn't be feasible.
Problem with the SuperDAT is that it contains all sorts of hacks, not only about speed. Some hacks are about fixing graphics or skipping SPC700 code or other stuff I don't want.

Are we going to see a Nintendo 3DS version of lolSnes?

3DS homebrew would be nice, but the 3DS isn't hacked yet. Also given the 3DS's power, you could just port Snes9x, so there wouldn't be as much fun.






Recent Posts

.nds binary added

so that you can download it and do not have to compile it yourself.

lolSnes How-To

using the latest version of devKitPro compile a binary from the latest build of the source files. Copy the created lolSnes.nds to a DS flash card of your choice. On the flash card create a new directory named /snes/ and copy an SNES ROM you want to play to it. Note that the rom has to be renamed to rom.smc as there is no built-in file browser or multi game loader.