Tutorial  Updated

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

Hi,
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 KonPet,

KimKong

Game Developer / Graphic Artist / Musician
Member
Joined
Nov 2, 2008
Messages
296
Trophies
1
Website
skrap-klan.itch.io
XP
1,133
Country
Norway
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..!
 

ZippyCat

Member
Newcomer
Joined
Mar 15, 2022
Messages
7
Trophies
0
Location
Kramatorsk
XP
60
Country
Ukraine
thats some real nice starter guide! currently learning how to do games for nintendo ds.
main reason why i want to do nds homebrew is cause im still interested up to today in dual screen concept and its the only console i have.
either way thats a very nice guide. followed it and already made my first simple game using libnds and nflib.
 
  • Like
Reactions: Coto and KonPet

Coto

-
Member
Joined
Jun 4, 2010
Messages
2,979
Trophies
2
XP
2,566
Country
Chile
thats some real nice starter guide! currently learning how to do games for nintendo ds.
main reason why i want to do nds homebrew is cause im still interested up to today in dual screen concept and its the only console i have.
either way thats a very nice guide. followed it and already made my first simple game using libnds and nflib.
ATM you may want to start with 2D stuff since it's pretty common in NDS homebrew.

When you get more experience (port at least 1 2D game), you may want to delve into 3D.

DS 3D hardware resembles the older architecture where the 2D and the 3D processors were separated, where you'd deal with specific software side 3D calls to get the final 3D result (3D accelerator), as opposed to today's standard triangle-oriented, all in-one 2D+3D graphics processor pipeline (3DS onwards).
 

ZippyCat

Member
Newcomer
Joined
Mar 15, 2022
Messages
7
Trophies
0
Location
Kramatorsk
XP
60
Country
Ukraine
ATM you may want to start with 2D stuff since it's pretty common in NDS homebrew.

When you get more experience (port at least 1 2D game), you may want to delve into 3D.

DS 3D hardware resembles the older architecture where the 2D and the 3D processors were separated, where you'd deal with specific software side 3D calls to get the final 3D result (3D accelerator), as opposed to today's standard triangle-oriented, all in-one 2D+3D graphics processor pipeline (3DS onwards).
yeah i do know its better to start out with 2d stuff, which im doing already. but about seperated processors... i didnt know about it, thanks!
and talking about porting, im trying to port a game already on the nintendo ds!
 

Coto

-
Member
Joined
Jun 4, 2010
Messages
2,979
Trophies
2
XP
2,566
Country
Chile
yeah i do know its better to start out with 2d stuff, which im doing already. but about seperated processors... i didnt know about it, thanks!
and talking about porting, im trying to port a game already on the nintendo ds!
I've got code using 2D in this repo of mine, and 3D as well. So I hope you can achieve what you want.
 
  • Like
Reactions: ZippyCat

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BigOnYa @ BigOnYa:
    Games are still released on PS4\ XboxOne, so I imagine will be same scenario.
    +1
  • SylverReZ @ SylverReZ:
    True. We'll have to see.
    +1
  • SylverReZ @ SylverReZ:
    Currently we don't know what's happening at all, it's up to our imagination to decide (especially via IGN and other sources).
    +1
  • BigOnYa @ BigOnYa:
    I have a feeling big N has a extra trick up they sleeve to prevent piracy this time w Switch 2. (Lotus 4 maybe) So the new games can't be dumped, even w a dump tool. (Mig dumper)
    +1
  • SylverReZ @ SylverReZ:
    It would have to be extra security measures in the Switch 2 gamecarts that will be different from the OG Switch carts. So, for example, Switch 2 gamecarts will not work with the Switch, because it has a different ASIC. Game partitions and layout to a Switch ROM will be the same, but has extra flags in the ROM header info that only the Switch 2 will recognise.
    +1
  • BigOnYa @ BigOnYa:
    Yea bet that's the case.
  • K3Nv3 @ K3Nv3:
    Switch musk
  • K3Nv3 @ K3Nv3:
    I like how restaurants treat people that want to pay in cash now days like they're about to rob the place heard one say oh you have cash let me get the manager really just to pay in cash lol
  • BigOnYa @ BigOnYa:
    If Trump does the proposed tarrifs it means a $449 Switch2 will now cost $569 plus tax.
  • Veho @ Veho:
    Just tell them to keep the change.
  • K3Nv3 @ K3Nv3:
    Give me your change so I can rob you while I pay you
  • BigOnYa @ BigOnYa:
    When I owned my pizza place many years ago, we didn't have a cash register at all, every employee was given a "bank" of small bills at start of shift. Then everyone pocketed the money and made change, and I'd cash everyone out at end of shift. One time we had a gunman come in to rob me and wanted to know where's the cash register. I told him we don't take cash, only credit, and he left with nothing. Cops caught him even.
  • K3Nv3 @ K3Nv3:
    I like to carry $20 cash but rest 100% on card or in my safe
    +1
  • K3Nv3 @ K3Nv3:
    I don't really like having it all in the bank because you never know when systems go down or information gets stolen
    +1
  • BigOnYa @ BigOnYa:
    Yea I'm same, carry little cash anymore. I do keep an emergency $50 bill hidden in my wallet, under license tho.
  • K3Nv3 @ K3Nv3:
    And dehydrated cat jerky
    +1
  • BigOnYa @ BigOnYa:
    My wifeys aunt gave her some gold coins in her will when she passed last year, and the tax man was gonna tax her a gift tax on it, but our accountant said if she sells the gold and put that money into a 5 year CD, it will be untaxable. So she did, and now IRS saying they want a income tax on the gold coin sale. Damn taxman always greedy.
  • K3Nv3 @ K3Nv3:
    Might need to get some injection shots for tmj so that's lovely still bothering me
  • BigOnYa @ BigOnYa:
    That sucks, sorry to hear.
  • perspex @ perspex:
    can i get a job in game dev by learning on my own online or do I need like a 3 yr degree or something for it?
  • perspex @ perspex:
    also im 29, not the youngest student thats for sure...
  • Veho @ Veho:
    Sure.
    +1
  • Veho @ Veho:
    You have to have something to show, like a portfolio.
    +1
  • perspex @ perspex:
    makes sense...
    Veho @ Veho: https://i.imgur.com/YXHxHmc.mp4