Hi! I've waited for a few months, but I think it's about time I make an actual introduction post for BlocksDS.

This is the official location: https://github.com/blocksds/sdk

BlocksDS is a Nintendo DS SDK built on top of GCC, and using libraries like libnds, maxmod, dswifi, and Elm's FatFs. The idea is to have an SDK that is mostly backwards-compatible with projects developed with devkitARM, while cleaning up the code and adding new features.

You can see a more in-depth explanation in this blog post, but I'll summarize below the points of the article that may be of interest to most people.

Some of the current advantages over devkitARM are:

  • Smaller binary size and smaller RAM usage.
  • The licences of all the code have been clarified and documented.
  • A lot of system code of libnds has been documented to help future work on it.
  • There is basic multithreading support.
  • The DSi camera is supported.
  • NDS ROMs can be generated with animated icons.

I'd like to thank a few contributors, including lifehackerhansol and Pk11, but specially asie, which has been super helpful.

The main disadvantages over devkitARM:

  • BlocksDS is Linux-only. There are Docker images that you can use on other OSes, and you can install it in WSL if you're using Windows, but there is no native support, which may be a problem for some potential users.
  • The compatibility with devkitARM isn't perfect. You will need to heavily modify any project that uses features provided by the fork of newlib in devkitARM, like devoptab (but this is a very niche situation).

Also, I've done a lot of work to bring NFlib and Nitro Engine up to date, clean their code and their documentation, check them out too!

Thank you for your interest!