What's new

LolSnes-- SNES emulator for Nds

NES_player4LIFE

Texture Pack Invader
Moderator
I hope this project will bring some new life into the SNES-on-DS scene. It looks like all the existing emulators for the DS are dormant or discontinued, which is sad.

lolSnes is a project that Mega-Mario started two years ago. He wished to make a SNES emulator for the DS, that could render most sane games without glitches. However after inadvertently following the wrong approach with the PPU side: trying to make a line-accurate software renderer. The DS just wasn't powerful enough to handle such a renderer. That discovery pretty much shattered any motivation and the project stayed dormant for two years.

But now he is back to working on it again and coded the PPU using the DS's 2D video hardware.

So far, SMW is playable, to some extent. The background layer tends to obstruct text like menus and info boxes because per-tile priorities aren't emulated yet.

You also can't get past Donut Plains 2: for some reason, the camera keeps rewinding and moving forward a bit at the start of the level, keeping you from going further. Aside from this bug, game play is near perfect. The game also runs at full speed (albeit with a speedhack).

Screenshot
rj6VWxY.png


* Main CPU: 99% -- all opcodes emulated, may miss some unimportant bits though
* PPU: ~30% -- Mode 1 BG and OBJ supported, as well as some of the priority
* SPC700: 80% -- most useful opcodes implemented, as well as I/O (SPC/CPU comm, timers)
* DSP: 0% -- what it says. No sound yet.
* Joypad input for joypad 1

Issues

* There is no interface for selecting a ROM-- it is hardcoded to load snes/rom.smc
* Tearing and black pixels tend to appear when backgrounds scroll, because writes to the BG scroll registers are applied directly and not synced to the DS display
* CPU bugs are hidden in the main CPU core, and possibly the SPC700 core. They may bite you when you expect it the least.

For those who are interested, the source code is available in a Github repo.

Stay tuned to GbaTemp for an update.
Linkfor Git builds.
GitHub
Emutalk thread
 
Last edited:

Top