Home | New Tutorials | Programs | ||
---|---|---|---|---|
1-R4DS Setup | 2-Software | Space Invaders | ||
Old Tutorials | DSEmu | |||
1-Setup | 4-Sound | 7-FIFO | ||
2-Framebuffer | 5-SRAM | 8-Interrupts | ||
3-Keys | 6-Filesystems | 9-Microphone | ||
10-Extended Rotation Background |
17 January 2006: DSEmu 0.4.10 is out with bugfixes and new functionality! Sprites
and some 8 but pallette based bitmap modes are working! Many more
demos run. Check out the working examples
or download them from your favourite homebrew site. Keep an eye on my DS Developer weblog for more information.
21 December 2005: DSEmu 0.4.9 is out. This version contains mainly bug fixes and
changes to get it working with devkitpro r17 and libnds dated 2005-12-12.
I've also added a section to this page with links to some working examples to try with DSEmu. Keep an eye on my DS Developer weblog for more information.
DSEmu is an open source Nintendo DS Emulator written by Imran Nazar and released under the BSD License. Unfortunately Imran hasn't been able to continue development of it and on the DSEmu forums he welcomed other people adding to it.
Although DSEmu is not very complete it does have at least two things going for it. The first is the source is available. And the second is it has a debugger and stepper built in. So you can step through the ARM7 and ARM9 disassembly which is quite useful.
I got the latest source and made a few changes to get it working with some demo programs. It has quite a few limitations still but being able to step through the code, examine the ARM registers, etc has prove quite educational to me. I've made that release, with source, available here for anyone who wants to use it.
Other Nintendo DS emulators are Dualis and IDeaS.
WinDS | Ruby |
---|---|
Tickle Girl 1 | Tickle Girl 2 |
Space Invaders | Battleships |
Python Power | YASFCave |
Mode 5 Scrolling Demo | TicTacToe |
The binary release containing my modifications is available here:
Date | Version | Download | Source |
---|---|---|---|
17 January 2006 | 0.4.10 | dsemu-0.4.10.zip | dsemu-src-0.4.10.tar.gz |
21 December 2005 | 0.4.9 | dsemu-0.4.9.zip | dsemu-src-0.4.9.tar.gz |
28 September 2005 | 0.4.8 | dsemu-0.4.8.zip | dsemu-src-0.4.8.tar.gz |
15 September 2005 | 0.4.7 | dsemu-0.4.7.zip | dsemu-src-0.4.7.tar.gz |
22 August 2005 | 0.4.6 | dsemu-0.4.6.zip | dsemu-src-0.4.6.tar.gz |
11 July 2005 | 0.4.5 | dsemu-0.4.5.zip | dsemu-src-0.4.5.tar.gz |
04 July 2005 | 0.4.4 | dsemu-0.4.4.zip | dsemu-src-0.4.4.tar.gz |
27 June 2005 | 0.4.3 | dsemu-0.4.3.zip | dsemu-src-0.4.3.tar.gz |
25 June 2005 | 0.4.2 | dsemu-0.4.2.zip | dsemu-src-0.4.2.tar.gz |
21 June 2005 | 0.4.1 | dsemu-0.4.1.zip | dsemu-src-0.4.1.tar.gz |
20 June 2005 | 0.4.0 | dsemu-0.4.0.zip | dsemu-src-0.4.0.tar.gz |
This is a list of some quick example homebrew programs that I've tested and work with DSEmu. This should give you something to quickly try. Other examples that may or may not work can be found on my tutorials pages or some of the Nintendo DS homebrew sites. Don't forget to unzip the file to extract the .nds which is what should be loaded into DSEmu.
The source for DSEmu is in a Darcs archive. Using Darcs you can retrieve the latest code with:
darcs get http://www.dsdeveloper.co.nz/repos/dsemu
This will create a 'dsemu' directory containing the latest code. Darcs is a great version control system. To get the latest changes to the repository use the 'pull' command:
darcs pull http://www.dsdeveloper.co.nz/repos/dsemu
Each local copy that you've retrieved is a fully fledged repository. You can record changes, pass them to other repositories or send them to me as patches. Here's some common commands:
; Record changes you've made to your local copy into a patch darcs record ; See what changes you've made that haven't been recorded yet darcs whatsnew ; See just a summary darcs whatsnew --summary ; Add a new file darcs add newfile.txt ; Create a patch file containing changes you've recorded to ; email to me. darcs send -o patches.pat http://www.dsdeveloper.co.nz/repos/dsemu
Feel free to work on the source and send me patches using the 'darcs send' command shown above. I'll integrate them into the central repository.
Copyright (c) 2006, Chris Double. All Rights Reserved.