NDS Homebrew Development

From GameBrew

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/

External Links

Advertising: