Tutorial Useful resources to help you out with starting to make NDS homebrew


Active Member
May 2, 2020
a lot of people have asked themselves, how to get started with NDS homebrew development, so I compiled a list of a few links I consider quite important to look into.
First, of course you have to know either C/C++, as they're the only languages you can currently write NDS Homebrew in (appart from Assembly, but that's really hard).
For starters, you should watch this video by PolyMars:
I recommend watching it, to get a good overview, over what it's like to make NDS homebrew. Also, please note that you can draw sprites with libGL2D as well now, as devKitPro got an update since then that fixed it. Since the fix, libGL2D now also comes with libnds, so you're technically already good to go if you want to use it.
Now onto the other links:

Here's a post explaing the basics of NDS hb development, including NFlib (the graphics library he uses for sprites): https://gbatemp.net/threads/ds-programming-for-newbies.322106/

NFlib, the library PolyMars used to make the final version with sprites can be found here: https://github.com/knightfox75/nds_nflib

SimpleNFL is a way to simplify the use of NFlib even more, and only requires a single header file. It's completely optional of course, and to be honest, NFlib is quite easy to use already, but it makes things such as checking if two rectangles overlap a bit easier. It can be found here: https://github.com/PipeWarp/SimpleNFL

If you want, you can also take a look at libGL2D, the lib PolyMars used for the primitive prototype. It's a bit more difficult to use and has some disadvantages, but it also has a lot of advantages that might end up making it worth it. Link is: http://rel.phatcode.net/junk.php?id=117
Btw, if you're wondering why I included the link even though it already comes with libnds, the download includes a user guide, which the libnds version doesn't have

Here's a guide I wrote on converting sprites using grit: https://gbatemp.net/threads/preparing-images-for-grit.567187/

Also, if you want to dig into how the DS works, and maybe even use pure libnds without libGL2D/NFlib, you may want to take a look at this: https://problemkaputt.de/gbatek.htm.
It explains every single bit in detail. It's pretty difficult though, if you haven't got any experience with such low level stuff and if you don't know the basics of how the NDS works already.

If you want to do stuff using pure libnds, and you want to have an easier time managing the VRAM, I can really recommend these tools: https://mtheall.com/banks.html and https://mtheall.com/vram.html.

Last but not least, here's the libnds documentation. It also includes libGL2D: https://libnds.devkitpro.org/

That should cover everything you need for now. If you have anything to add, please tell me.
Last edited by SkilLP,


Game Developer / Graphic Artist / Musician
Nov 2, 2008
Thanks for keeping DS Homebrew alive!
I't been a while since I seen any new stuff.. Maybe somebody will make something cool with these tools? I would love to get into it myself.. But a bit busy with GameBoy Homebrew these days..!
General chit-chat
Help Users
  • No one is chatting at the moment.
    Psionic Roshambo @ Psionic Roshambo: Well found out what Tom has been up too... Lol