Posts filed under 'Releases'

SNEmulDS 0.5 beta

This version aims to improve in sound and graphics. As the emulation becomes more and more complex, it is more and more difficult to add new features without breaking the emulation overall, so some new feature will not be enabled by default for all games. The configuration file select which features are enabled or not, and becomes very important (so don’t forget to put it in the root directory!).

I tried very hard to improve sound, and i succeeded to get much better musics in some games, but there may still some “pops” or “cracks” sometimes, and the sound can slowdown or goes mad in some rare circumtances (the ARM7 seems not powerful enough).

A new menu has been added : the GFX config menu, this menu offer a simple way to change the GFX behaviour in real time. The emulation is not stopped like in the options menu, you can enable/disable several features and see which ones are better for the game. (See README for more informations)
Here is the list of changes

  • Changed the Sound timers, now the timers should be a bit more accurate and removed the timers hacks
  • Moved back the Sound RAM in the fast ARM7 RAM, removed unused code from ARM7 codes
  • Now support sprite address change during frame (limited to two addresses by frame), this makes Ogre Battle much more playable
  • Left handed people can now enjoy the SNES mouse option (right buttons can be used like left joypad).
  • Options can now be saved in configuration file
  • New SNES config menu
  • Fixed some bugs

Optionnal feature (enabled by configuration file):

  • Added sound synchronisation fixes, this is a set of flags that make ARM9 slowdown or make ARM9 wait for the ARM7. Those options make Square games (and other games) sound much better, but also break sound in other games. So this option is available through the configuration file. I only changed for the configuraiton file for Chrono Trigger, SOM1 and FFVI. You will have to modify the configuration and test the options for other games.
  • Added priority per tile for BG3, by detecting if there are more low or high priority per tile at each line (see README)
  • Added priority per tile for BG1 and BG2, by using the fourth DS layer. Low priority tiles go to fourth layer, and high priority per tiles (this idea was taken from SNESAdvance).
  • Sprites priorities can now be changed. See configuraiton file for more informations. The default is 1123 but 1223 makes some games look better (like Castlevania IV first level for instance)

Get it here (and patch it with DLDI):

218 comments May 7th, 2007

SNEmulDS 0.5 alpha 2

This intermediate release fixes the critical issues that appeared with SNEmulDS 0.5 alpha. It also includes a better GFX engine, and the new SNES mouse emulation mode.

Here is the complete list of changes:

  • Fixed the critical sound bug (should go back to SNEmulDS 0.4f sound)
  • Better GFX engine (use dynamic memory allocation)
  • SNES emulation mode (see below)
  • Fixed a bug in decimal ADC instruction (FZERO chronometer is now ok)
  • The number of cyles used by DMA is counted correctly (more games boot)

I removed the ARM7 entry addresses, it seems to break ninjads, and is not necessary for others (i hope!).

You can get it here (don’t forget to patch it as always):

Pre - patched for R4 / M3 Simply:

I put below the presentation of the SNES emulation mode. Don’t forget to include snemul.cfg, this is necessary to have the game playable.

You can select the mouse emulation mode with START+L+R+LEFT, then the bottom screen and the upper screen switch. You use the stylus to move the mouse cursor.

-> You can also switch the screen without selecting mouse emulation mode using START+L+R+RIGHT.

Currently there are two methods of emulation:

# One for all games that uses SNES mouse. It compute the distance between two stylus “click” to emulate the move of the mouse.
This is not accurate and some games like Populous II use non linear moving, so the mouse cursor doesn’t follow the stylus.

# Another method modifies directly the variables in RAM where the game stores the X and Y positions of cursor. This way, the mouse cursor moves accurately. But i have to search for each game, where is this information (that’s quite easy with a debugger anyway).
The X Y address are stored in snemul.cfg. You need to have this file up-to-date.

For both methods, the D-pad is used to select the way the stylus emulate the mouse:
- press LEFT: when the touch screen is pressed, the mouse is moved to this point and the mouse’s left button is pressed
- press RIGHT: when the touch screen is pressed, the mouse is moved to this point and the mouse’s right button is pressed
- press DOWN: when the touch screen is pressed, the mouse is moved to this point. When the touch screen is not pressed, the buttons are released and the cursor doesn’t move.

Another option is available with first method:
- press UP and press the touchscreen at the same time : the stylus calibrates to this point. Use this if the mouse cursor doesn’t follow the stylus correctly.

126 comments April 2nd, 2007

SNEmulDS 0.5 alpha!

This time, after sound and CPU, the big update is on graphics side! The graphics engine has been entirely rewritten and should offer a much better look for most games (especially RPG like Chrono Trigger)!

Look at those screenshots (sorry for the bad quality):




This alpha version also integrate a new configuration file, that allow you to choose the best options for each game.

  • New GFX engine that support tile address alteration (For RPG games and others)
  • Faster HDMA (Makes games like Chrono Trigger faster)
  • Much better line by line engine, which is now the default (Old tile mode is nearly broken in this alpha)
  • Better transparency support
  • Other GFX updates: Moved sprites 1 pixel down, Background color alteration by scanlines, fixed 16px tiles flip, better mode 5, better scrolling, new squish method…
  • Added configuration file support snemul.cfg (no saving support yet in this alpha) that allow specific configuration for each game.
  • And Thanks to Lestat for making the nice SNEmulDS Icon!

Get it here :

As usual you have to patch it, i aldready did it for R4DS/M3Simply :

Please take a look in the configuration file, you can change the ROMs directory and other interesting stuff.

Another important information, the site has moved to “”. Please update your bookmark!
On a side note, welcome to a new developper in the SNEmulDS team : oothkoo!

81 comments March 25th, 2007

SNEmulDS 0.4 final

This release contains various bug fixes, which should improve games compatibility and stability. Some minor features have also been added like options saved in save states, background Layer selector, and hinge support.
Here is a list of changes:

  • Fixed ROM paging, this should improve stability of large ROMs (especillay DKC2)
  • Some CPU instructions were bugged because of the way SNEmulDS write in I/O ports, this should also improve stability (ie Crash before first boss in Zelda)
  • Fixed a bug that made Chrono Trigger freeze during battles
  • Changed the way emulator detect blank screen (Street Fighter Turbo, RTYPE3, Final Fantasy Mystic Quest now works)
  • Fixed some bugs with SRAM memory, which unlock most ROM protections (Uniracer, Bust-a-move, … now boot)
  • Now sound core doesn’t randomly crash when using line by line engine
  • Better reset of sound core, some games now run correctly when they are launched after another game (ie Super Bomberman >2)
  • Save states also save options
  • Added background layer selector. You can again enable/disable backgrounds.
  • Added hinge support. If you close you DS, emulation is stopped and SRAM is saved.
  • SRAM is now automatically saved before loading another ROM

Get it here:

32 comments March 12th, 2007

SNEmulDS 0.4 beta

SNEmulDS 0.4 alpha contained a lot of stupid bugs that i fixed in this beta release. There are still bugs, but i think it worth a try for most users, because a lot of games were broken. I also added a manual background layers selector.

Here is the complete list of changes:

  • Fixed the broken BREAK and COP instructions
  • Fixed the ROM write protection by using the protection unit of the ARM9 (thanks to bubble2k for pointing me that)
  • Fixed the Emulation flag at startup (problem with DKC3)
  • Stupid again, SNES’s RAM was not in the cached memory, speed up games (10-20%)
  • Reduced memory consumption, now ROM memory is static (no more malloced), should remove ROM overflow and RAM overwriten problems
  • Added an experimental “line by line” engine (buggy, slow, unstable, uncomplete… maybe useful for a few games)
  • Added a manual background priority selector (can be choosen in options or with START+LEFT+RIGHT+UP or START+LEFT+RIGHT+DOWN for automatic)
  • Added another speed hack option : “Interrupt speed hacks” that should be better than “Full speed hacks” for some games. “Middle speed hacks” is now “Cycles speed hacks”

You can get it here:

As usual you may have to patch it with DLDI drivers, for more information see here :

27 comments February 26th, 2007

Alpha release of SNEmulDS 0.4!

It has been a long time with no real updates of SNEmulDS.. This first release break this silence, and i hope it will please everyone. First of all, the main change is the integration of the CPU engine of SnezziDS. In fact, I wanted to make my own CPU engine in ASM, but i rapidly saw that i couldn’t do better than bubble2k did. I recognize his work as a masterpiece in DS homebrews. I personnally added some new features from the original C CPU of SNEmulDS: speed hacks, memory protection, and ROM paging/dynamic reloading (giving Large ROMs support for Slot-1 cards). All combined CPU engine and speed hacks give a great boost in speed.
There are also various changes:

  • Implemented MODE 7
  • Partial line by line engine for MODE 7 games
  • Implemented MODE 3,4 (256 colors)
  • Now SNEmulDS uses devkitpro 20 and libfat library from chishm with DLDI support, for better compatibility
  • Improved ROM paging, reducing bugs for Large ROMs (> 3 Mo)
  • Fixed memory leaks (And consequently, fixed famous “Unsupported Large LoRom” bug)
  • Three level of speed hacks : no speed hacks, medium speed hacks, full speed hacks. Each level give various compatibility and speed enhancements.
  • Fixed various bugs
  • Now SNEmulDS sources are under GNU license, to be compatible with snezzids

Get it here : (don’t forget to patch it with your DLDI driver, SNES games are loaded from SNES directory)

Sources are available on SVN, or with this package :

27 comments February 20th, 2007

SNEmulDS 0.3 with DLDI

I just finished building SNEmulDS v0.3 with DLDI support. This system made by chishm should make SNEmulDS compatible with much more devices:

  • DSLink (microSD Card)
  • Ewin2 (SD Card)
  • EZ Flash 4 (SD Card)
  • EZ Flash 5 (SD Card)
  • G6 Flash (version 0.15)
  • M3 Adapter (Compact Flash)
  • M3 Adapter (SD card)
  • Max Media Dock (Compact Flash)
  • GBA Movie Player (Compact Flash)
  • GBA Movie Player (SD Card)
  • NEO Flash MK2 & MK3 (SD Card)
  • NEO2 (SD Card)
  • Ninja DS (SD Card)
  • R4(DS)- Revolution for DS, M3 Simply compatible
  • SuperCard (Compact Flash)
  • SuperCard DS (Slot-1)
  • SuperCard (SD Card)

More informations here :

You can patch SNEmulDS.nds to support others devices as long as those device have been made compatible with the DLDI system. So you should visit this site regularly for update, if your device is not supported by SNEmulDS yet!

Please try it with your device and tell me on the pocketheaven forum if you have any problems…

49 comments January 15th, 2007

Previous Posts