SNES emulator for DS
Assembly C C++ Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
arm7
arm9 * working sleep mode when you close your DS Jan 1, 2014
common
.gitignore
LICENSE
Makefile
Makefile_nitrofs
README.md fuck you Joseph Y. Wang and your shitty fake site Dec 15, 2013
build.bat
build_nitrofs.bat
clean.bat
lolsnes.bmp Add icon courtesy of Flurry (from GBAtemp). Sep 3, 2013

README.md

lolSnes

http://lolsnes.net/

A SNES emulator for the DS. My goal is to make rendering the most accurate possible, we'll see how far I can get.

** EmuCR please stop copypasting this every time you post a lolSnes build. It is almost always outdated. Either ** spend some time determining a more accurate feature list, or don't release Git builds.

Considering the DS isn't powerful enough to handle a line-accurate software renderer AND emulate the CPU and other funny things at the same time, I have to emulate graphics using the DS hardware. Reproducing the functions it doesn't support (like per-tile priority or funky color effects) will be the challenge. How they will be emulated will also depend on how games use them.

What is currently supported

  • CPU -- 99% (all opcodes emulated; may miss a few unimportant bits about timing)
  • PPU -- ~50% (2bpp, 4bpp and 8bpp graphics, modes 0-4 and 7, mosaic, master brightness)
  • SPC700 -- 90% (most important stuff emulated)
  • DSP -- ~80% (code taken from SNemulDS. Emulates BRR sound with envelopes. Seems to lack noise and echo.)
  • DMA -- 50% (HDMA not supported yet, and DMA method is inefficient)
  • Support for large ROMs via intelligent ROM cache system
  • Regular joypad for player 1
  • Linear audio interpolation (the SNES does Gaussian interpolation, but the DS isn't powerful enough)
  • SRAM with auto-saving

What is NOT supported

  • Expansion chips
  • Multiplayer

What will never be emulated correctly (hacks could be developed for most common cases, though)

  • Color subtract -- DS hardware has no such feature
  • Offset per tile -- same as above
  • Per-tile priority -- layer priority is changed per-scanline based on gross approximation, though

100% accurate graphics emulation is impossible, but we'll do our best.

How to use

Place lolsnes.nds in your flashcart's root folder (or wherever DS ROMs are). In the same folder, create a folder named 'snes', and place your ROMs in there.

lolSnes is able to properly detect the ROM type in most cases. Headered and headerless ROMs are supported, both LoROM and HiROM.

Once it starts, you should see a (not so) fancy ROM selection menu. Select the ROM you want to play, and press A or B. Then uh... see what happens. Some games run, others explode spectacularly or just do nothing.