• Welcome to SCdev.org. Please log in.

Welcome to the new SCdev forums!

Getting Into Nintendo DS Programming/DEV

Started by WarGames, January 12, 2006, 11:05:17 PM

Previous topic - Next topic

WarGames

Hello all, ive been programming the DS for less than a month now but I thought I'd post a topic to help people on how to get into the skill.

You'll need to know basic command line skills, know some sort of C/C++ and/or ASSEMBLY language, and have TIME TO SPARE!  :razz:

Here's a site to get everyone started: http://www.double.co.nz/nintendo_ds/

Its a great site with a bunch of tutorials to get you into the scheme of things once youve learned the basics you'll be able to get code onto your sc, and even create your own modifications of the sources on the site or your very own code.

One N00b question I would expect to hear a lot is,
"How do I get code onto the DS?!"

The answer is long but not so complex and the site above does a great job of explaining.  But basically you will need to download the Devkitpro tools and libnds libraries.  These will allow you to compile hombrew code that you might otherwise run on a console (dos) promt.  You'll also need to configure your IDE to use the proper compiler.exe or be able to use command line and make makefiles.  The tasks mentioned can be learned relatively simple and you will find many web documents with more information when you search google.  I'd highly reccomend you have some experience with just plain C programming for Dos/console in order to understand the concepts of NDS development.

If you have any questions on development as you go along feel free to post your problems here and in your own topics as I and others will try to help you out.

I encourage everyone to try this, its a great way to get another use out of your system and not feel like a complete pirate.  hope this helps some people

goodluck and happy coding.
ndsdev on efnet

McScruff

Very funny you should mention this, i set up the dev environment yesterday, and have just started to learn myself, so far i have only been putting text onto both screens (Hello World Examples) but its a start, i have looked at the site you mentioned, but i have prefered http://www.palib.info/wiki/doku.php?id=homepage as a n00b :)

WarGames

ndsdev on efnet

WarGames

here are some other useful sites:

Guides/References/Documents from drunkencoders:
http://www.drunkencoders.com/index.php?system_id=1&page=Documents

Aaron Rogers' PA_lib Tutorials:
http://www.aaronrogers.com/nintendods/PA_Lib

Yet another NDS programming tutorial:
http://www.dspassme.com/programmers_guide/tutorial


see....now you don't have an excuse not to make your own nintendo ds games!  :lol:
ndsdev on efnet

jb32

Thanks for the links,very interesting
My girlfriend was very suprised when she saw her
name  on the ds ,instead of Hello world ofcourse,but still very difficult  :lol:

bitblt

Many well known programmers are self taught.  For example John Carmack (founder of ID Software) never attended a university. Ken Silverman published his first software title at age 15, and 3 years later signed a contract with Apogee software to create Duke Nukem 3D. Bill Gates started developing basic interpreters when he was in High School, and dropped out of college after he formed a company called Microsoft.  Microsoft sold variants of his BASIC interpreter to big corporations like Atari and Commodore, and later acquired ownership of a little home-brew application called (MS)DOS.

I live a comfortable life in Las Vegas working as a Game Software Engineer for a successful international Gaming company.  I am self taught.  I graduated BASIC and started developing software in C and 6502 asm at age 14, mostly game demos.  Presently in my spare time (i have two kids) I develop software for GBA and DS as a hobby.  I am currently trying to optimize (ARM asm) the inner loop of my first release for DS.

Let me tell you this:

The GBA and the DS are excellent platforms to learn how to program C and ASM.  They are embedded systems with well organized 32 bit flat memory models.  This means . . . they are much simpler to program than DOS or Windows, especially games.  When you program GBA/DS there is no DOS4GW, or Win32, or DirectX, or APIs, or OS or anything . . . just your code.

If you have zero programming experience then I recommend learning something like QBASIC as a first step.  Once you understand IF, GOSUB, FOR, WHILE, CASE, variable assignment, binary logic, and hexadecimal, you are well on your way.  Anyone with an IQ of 100 and a logical mind can learn how to program.  It just takes determination and practice.  It's fun!

If you have any previous experience, QBASIC, Visual Basic, Pascal, Java, C/C++, ASM, etc., the fundamental concepts of programming are all the same. The only real difference is syntax and environment.  If you are intelligent enough to install DevKitPro, load a sample project, build it, and run the result on your DS, you can program for DS.  Just tweak and hack a simple demo until you start to feel comfortable. Program silly little things. A full blown application is merely an organized collection of simple little things. If all else fails read the documentation.

If you have some experience with C/C++, and would just like to get started programming games for GBA/DS, I recommend HAM Ngine for GBA and "Programming The Nintendo Game Boy Advance by Jonathan S. Harbour" . . .
http://www.jharbour.com/gameboy/default.aspx

The DS documentation and the DevkitPro tool chain are works in progress . . . and therefore more challenging to get started with.  For DS, I highly recommend developing with WiFiMe, and also an emulator.  Perhapse I will find time to write a "ARM asm for DS newbies" tutorial, but don't hold your breath.

Edit:
I should have typed this in word first before posting so many edits  :oops:

creepyplaidman

PAlib is such a great starting place to learn programing for DS. I would highly recomend looking at the tutorials in the PAlib wiki. Also WinDS is a really nice api with great support if you want to make a pseudo windows like program.