Skip to content

Nintendo DS Homebrew

Q: What is DS Homebrew?

A: Read Wikipedia article.

DS Homebrew does not require any modding – just a flash cart where you put custom software and which fits into the DS. It is also perfectly legal – there is some great software, including games, developed by hobbyists and available for free.

Yes, you can also play DS roms (and GBA roms with a slot-2 expansion or flash cart). However this is not why I bought my card, and I discourage people from using roms unless they have purchased the original cart. If you do own the original, roms can very convenient because many games will fit on a 2GB microSD card.


I have a CycloDS Evolution with a 2GB microSD card, and an Ezflash V 3in1 expansion card. The Evolution is a Slot-1 solution – it goes in the DS gamecard slot – and it uses the microSD card for memory. The expansion card goes in the GBA slot (Slot-2) and provides RAM expansion (very important for DSLinux and the Opera Browser), rumble support, and allows me to run gba homebrew stored on the microSD card of my Evolution.

The Evolution also includes a USB 2.0 microSD card reader, which has worked well for me in both Windows XP and Linux. I’m very happy with the Evolution so far. The 3in1 is a bit harder to use – no documentation is included, and it’s hard to find the information on line. More on that later.

From the discussion linked below, I gather that the CycloDS Evolution and the M3 Simply/R4 are the most popular flash carts at the moment. The evolution has the lead in features, but it’s also more expensive (~55 vs 40). Also the Evolution supports micro SDHC (high capacity) cards. There are other cards with good reviews – just make sure to get one that supports DLDI auto patching. Check the latest firmware – some of them added auto patching after the cart was released, and it’s not in the reviews.

Discussion of Best Flash Carts

I purchased my 3in1 from Real Hot Stuff. They have good prices and very fast delivery. They are frequently out of stock of the more popular carts, but I think this is a problem with the supply source and typical of all the retailers.

Software – Applications

ComicBookDS – An excellent comic book image viewer. The bundled Java application PictoDS converts comics to a special format, and then you can copy it to the DS along with the viewer application. PictoDS is packaged with a windows executable, but I was able to get it working under Linux (Ubuntu Feisty 64bit). I plan on posting more on this later.

DSFTP – FTP server for the DS. The main webpage is down, so I’ve mirrored the latest version here. This has limited usefulness, as the DS wifi connection is very slow. However for small transfers it can be more convenient then yanking out the Evolution, pulling out the microSD, putting it in the USB reader, etc. You must configure the wireless using a commercial game first – I do not know of any homebrew wifi config tool. DSLinux seems to have something, but I don’t know if it creates the type of profile that DSFTP requires.

DSOrganize – Personal information manager. Also includes a web browser, file browser, and some other stuff. The file browser hasn’t worked for me using the beta Evolution firmware. Haven’t used the other functions much – however if you like to use PDAs/PIMs you should check this out.

Phidias – Very cool drawing application. The controls take some getting used to, but you can create amazing things with this program. Colors! is another popular drawing program, but I haven’t tried it yet.

MoonShell – Media player. Haven’t used it much, but seems to have great support for different music formats. If you have an Evolution, use the TeamCyclops version.

That’s it for now. Later on I’ll post some info about my favorite homebrew games.


  1. F! says:

    “PictoDS is packaged with a windows executable, but I was able to get it working under Linux (Ubuntu Feisty 64bit). I plan on posting more on this later.”

    I’d love to know how you managed to do that. I’m fighting to make the Linux or Windows version work in Ubuntu and I can’t do it 🙁

  2. bda says:

    Getting the windows version working was a royal pain, but the new Linux release of PictoDS ran on my system without much effort. I’m now using the PictoDS 2.1.0 linux release.

    I think the only requirement is a 32-bit JVM. I installed the ia32-sun-java6-bin package from the ubuntu multiverse repository. If you are running 32-bit ubuntu, just the normal sun-java6-bin should do the trick. Then if you run the script in the PictoDS distribution it should start.

    If you’re still having problems post them here and I might be able to help.

  3. F! says:

    Hi! Thanks for answering!

    Ok, I have a 32-bit ubuntu (7.10) and sun-java6-bin is installed.
    This is what I try to do in Terminal:

    $ cd (to the folder, I have PictoDS_linux_2.1.0)
    $ chmod +x
    $ ./

    and I get this error:

    Exception in thread “main” java.lang.UnsupportedClassVersionError: org/pictods/ui/PictodsUI (Unsupported major.minor version 50.0)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(
    at Method)
    at java.lang.ClassLoader.loadClass(
    at sun.misc.Launcher$AppClassLoader.loadClass(
    at java.lang.ClassLoader.loadClass(
    at java.lang.ClassLoader.loadClassInternal(

    Sorry for the long message. I hope you can figure out what do I do wrong… I’m quite new to linux, so I’m a bit lost in here. 😀

  4. bda says:

    What do you get if you run ‘java -version’? It could be that you have another java runtime installed along side java6, and for some reason that other version is set to be the default java.

    If you have an older java release installed and you remove it, then java6 should become the default. Or you can set the default java manually, and keep both versions:

    Ubuntu (and all Debian based distributions) has a system for managing multiple versions of software. The command for controlling this is ‘update-alternatives’. I don’t know of any GUI front-ends. Here’s a sample:

    $ update-alternatives –display java
    java – status is manual.
    link currently points to /usr/lib/jvm/java-6-sun/jre/bin/java
    /usr/lib/jvm/ia32-java-6-sun/jre/bin/java – priority 63
    slave java.1.gz: /usr/lib/jvm/ia32-java-6-sun/jre/man/man1/java.1.gz
    /usr/lib/jvm/java-1.5.0-sun/jre/bin/java – priority 53
    slave java.1.gz: /usr/lib/jvm/java-1.5.0-sun/jre/man/man1/java.1.gz

    Current `best’ version is /usr/lib/jvm/ia32-java-6-sun/jre/bin/java.

    So my default java is from the java-6-sun package, which is actually 64-bit. I modified my script to use the 32-bit java /usr/lib/jvm/ia32-java-6-sun/jre/bin/java instead of the default.

    If you run ‘update-alternatives –config java’ as root, it will ask you which version you want to be the default. You probably want java6 as the default, since everything should work under java6.

    Let me know if any of this works.

  5. F! says:

    bda, THANK YOU!!!!!!!!

    It was the first issue. I had Java Web Start 1.4 installed (no idea why) as well as 6. So I uninstalled the 1.4, and now it works!

    Thank you SO much for you help!!!! 🙂

    A bit early, but my best wishes for you this Christmas! 😉

  6. F! says:

    Ok, like a good n00b, I talked too fast. LOL!

    Now the application goes but nothing happens. I tried every single class of file accepted and, even it says “OK” there’s no cbds file anywhere. It simply says OK but nothing happens…. I check the “Path Settings” but I don’t know if I have to modify anything… I tried to change the Output Path and nothing, also. I don’t get it.

    Well, thanks anyway. 🙂

  7. M! says:

    I have pictods up and running but I cannot get it to produce me a file, it says it can’t find unrar even after I’ve pointed it to look at it.

  8. will says:

    hi i have a problem vewing .cbds file on my comicbookreader for my r4ds.
    im able to bring up th app.(comicbookreader) and see the files name but when i go to click on it nothing shows up only a dark screen?

    plz help 🙁

Leave a Reply