How to begin homebrewing?

Discussion in 'NDS - Emulation and Homebrew' started by nathan_cpt, Dec 23, 2013.

  1. nathan_cpt
    OP

    nathan_cpt Member

    Newcomer
    28
    4
    Dec 6, 2013
    I've downloaded some homebrew utilities and apps. I'm AMAZED at how good even the simplest apps look! I would really like to contribute to this DS community. How do I begin? I have no programming skills and no software, which programming languages do I need to learn? What software do I need?
     
  2. elhobbs

    elhobbs GBAtemp Advanced Fan

    Member
    807
    296
    Jul 28, 2008
    United States
    while learning to program on the ds is not impossible - it is really difficult. you will not have the option of robust debugging tools like you have on a PC. I recommend that you learn the C programming language and write a few apps on the PC before you try your hand at the ds.

    however, to answer your questions - you start here and install the devkitARM toolchains and examples. the there are a few other options but primarily you will code in C. it sounds like you may already have a flash cart, but if not look here for options.
     
  3. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,744
    9,614
    Nov 21, 2005
    United Kingdom
    For my money you have two real options as far as homebrew development goes. There are a whole bunch of random languages that got interpreters, ports or compilers for the DS ( http://gbatemp.net/threads/attempting-to-list-all-programming-languages-available-for-the-ds.357792/ ) but only two or three that really matter.

    C and C++
    http://devkitpro.org/
    A half nice tutorial can be found http://www.patater.com/manual . It is a bit out of date but will hopefully get you started.

    Lua
    http://microlua.xooit.fr/index.php

    Lua is a far nicer to learn scripting language but there is plenty of great DS homebrew made with it (and a couple of commercial games, Puzzle quest being a good example). C and C++ are both quite hard to learn (but very common) languages that do the really good stuff everywhere on every platform. Lua is quite popular on the PC and elsewhere though.
    With C and C++ there was a previous thing called palib, however it stopped being developed and we no longer suggest it to new programmers.

    That said if you have really never made anything before you might do better to start on the PC.
    http://programming-motherfucker.com/become.html
    http://learnpythonthehardway.org/ (Python is a great language to know and learn).
    http://www.youtube.com/view_play_list?p=6B940F08B9773B9F
     
  4. Foxi4

    Foxi4 On the hunt...

    pip Reporter
    23,640
    21,692
    Sep 13, 2009
    Poland
    Gaming Grotto
  5. bkifft

    bkifft avowed Cuthwaldian

    Member
    600
    266
    Jun 10, 2010
    Gambia, The
    A nice guide if you have at least some experience in programming/system architecture is http://dev-scene.com/NDS/Tutorials , although it got never finished.

    More in depth is http://www.patater.com/manual , although it's quite dated and in a few points even out dated.

    Also check out http://forum.gbadev.org DS section

    edit: clarification: elhobbs is right, learning to code on an embedded device like the DS is not the easiest thing to do unless you manage to jig up a rig that adds a debug interface (kinda like a homemade devkit).

    but to a certain extend you can run your programs on DS emulators, some of which offer debug features.
     
  6. nathan_cpt
    OP

    nathan_cpt Member

    Newcomer
    28
    4
    Dec 6, 2013
    Thanks for the advice guys, looks very complicated but I have some time on my hands. Now to start getting in to it.