DS programming, before I start...

Started by
10 comments, last by nixius 15 years, 10 months ago
Hi all, I was unsure whether to post here or in consoles/PDA section but I figured this is a pretty beginner topic. First off I have had the negative experience of starting off on tutorials twice that have been slated later on by this community, so I thought I would ask first this time. I am looking for some nice recommended tutorials that would be good to get me into DS programming. I have got myself an R4 already, so I am on to the 'do' bit really. However, from reading a few posts here, I am not sure if I want to programme for the DS anymore. I do love my DS, and I like the fact that I can make games without overly fancy graphics (blah blah..). One of the main reasons I wanted to start programming for DS, was that I thought it would be a good thing to show at an interview 'look at what I made for the DS'. I have just graduated from a computer gaming degree so this wouldn't be my only interview piece. I am now under the impression that this thought might have been slightly naive of me. From what I have read I thought that homebrew on the DS was pretty much legal, but this fact seems to have been called into question now. Also, it seems that some of the better resources for programming would be 'hard to find'. I am getting a completely different complexion of what programming for the DS will entail (although I am aware the official dev kits are only avaliable to selected developers). So in a nut-shell, is it worth me spending the time and effort programming for the DS. Would it actually look good at an interview or would it project me as some kind of 'rogue' programmer :P. Sorry if this is a weird post, I'm just a little unsure at the moment. Any comments will be very mcuh appreciated.
Advertisement
Honestly, I think some interviewers will think that you are a 'rogue' programmer if you show up with something developed for the DS because you have to be licensed, but there are others that would really appreciate it. I think it all depends on whether you want to take that risk.
Personally, I would be impressed by an interviewee who whipped out a DS with a demo on it (legal or not) and HR would probably be too ignorant to question the legality!
I would look at the PALib library unless you are planning to write everything yourself. There are also documents and forums for DS development at GBAdev. IIRC, Coranac are usually very thorough and correct.

On the topic of taking something like this to an interview, it really does depend on the interviewer but generally most would be interested to see something a bit different from the standard demos.

I know some friends who have taken homebrew demos on handhelds and said that the interviewers were impressed by it mainly because it was different from the norm of demos from applicants.

Steven Yau
[Blog] [Portfolio]

Introduction to Nintendo DS Programming

This is generally what people will refer to when asked for DS homebrew tutorials. It also does cover the legality of it (although it could still be inaccurate.)

I second gregrampage's link. Some other useful links are GBATek (Near complete reference), Doubleco.nz tutorials and the samples that come with devkitPro.

I've been messing around with DS stuff for about two months now and decided to use libnds (Included in devkitPro and what PAlib is built upon) instead of PAlib. PAlib will get you up and running quick but may become restrictive and since libnds is going through some changes soon it may break. I found that using libnds I gained a good understanding of the hardware underneath which has been very useful at times.

While libnds may seem quite low level it provides everything you need apart from a music system. Timers, backgrounds, sprite system, sound, button/touch input, fat filesystem for flash cards, wifi. The 3D wrapper based around OpenGL is great and easy to use, texture loading is easy, picking is easy, lights, enviroment mapping, hardware toon shading, AA is all there too. The only bad things I can think of is the vertex limit (4000 polys IIRC) and that there is no texture filtering.

There are some things which take getting used to however. Only the ARM7 can use the sound hardware, libnds does come with a default ARM7 'core' though which provides an easy to use playSound() function and its not to hard to add support for .mod or .it music. The 3D system can only be used on one screen, however you can buffer one screen and draw on another to get 3D on both (About 50 lines of code), drawback is you lose 256kb of video RAM. The ARM9 is where the main graphics/game code resides.

VRAM is another thing that took me awhile to grasp. You get 512kb of VRAM which you can assign how to want (Background RAM, Sprite RAM, Texture RAM etc.), only certain banks can be assigned to certain modes however. Also when uploading your background 'maps' and 'tiles' they actually go into the same bank of RAM, so you have to be careful not to overwrite something else.

The DS is a really fun piece of hardware to play with (at least for me) and can do a lot of neat stuff (Quake and theres a Bloom demo around somewhere). Having never done anything with consoles before I've found it to be a great experience so far.

Just my 2c/experience so far. Hope it helps some.

Happy deving :)

Edit: It's also easy to setup in the IDE of your choice (I use Visual Studio) and the no$gba emulator has ran all of my apps perfectly so far.
Quote:Original post by nixius
is it worth me spending the time and effort programming for the DS.

The legality question aside, if you enjoy working on it, and you learn stuff from doing it, then those are two things on the plus side, are they not?

-- Tom Sloper -- sloperama.com

Thank you all for your replies, I appreciate it :).

Quote:If you enjoy working on it, and you learn stuff from doing it, then those are two things on the plus side, are they not? ~Tom Sloper


Yes, very true however, what I didn't mention though was that because I just graduated I am taking 2-3 months off relaxing a little whilst also improving some weak points in my coding and trying to make a couple of interview/profile pieces.

So, while after I get a job I may play around with the DS some (as you say, if it's fun and I learn) I was really indiciating if spending my 2-3 months on the DS would prove an effective way to make a good profile piece that would impress. This seems to have a mixed opinions.

I already bought a 2nd DS and an R4 so I have spent too much money not to code some >8^D (whether it's before or after I get a job) and from the begginings of the links that have been so graciousely provided it doesn't seem incredibly difficult!

Quote:Just my 2c/experience so far. Hope it helps some. ~ZeroSum


Yes that helps alot thanks :)

Quote:It also does cover the legality of it (although it could still be inaccurate.) ~gregrampage


That is actually the place that described homebrew as legal (but some people abuse it and use it for illegal reasons), it was some posts on this forum that seemed to go against what this tutorial said.

Thanks again for your comments, at the moment I am playing with some very small programs, I think I will infact look into DS programming after I have done with these with the aim of making something to show at an interview, unless of course a swarm of angry protests are follow this post.

Thanks again~
I think that as a hobby or as a learning experience doing DS homebrew is fine, but if you're looking to build a portfolio with the aim of getting a job I'd probably stay away from it. You don't want to have to leave things out of your portfolio or off your website because you're worried about legal consequences. Just make something for the PC: it's an open platform, and you could make the same exact game you'd make on the DS but for PC. Hell, if you wanted to you could have two screens in your game window and say that it's a prototype DS game!
As a designer working at a studio that does DS development, I can say that you applying here and having some experience on the DS, even if it is indie work, would be a huge bonus. The legality of the Pass Me cards and whatnot are certainly questionable, but a crap ton of DS developers and publishers use them anyways because they are so convenient.
laziness is the foundation of efficiency | www.AdrianWalker.info | Adventures in Game Production | @zer0wolf - Twitter

This topic is closed to new replies.

Advertisement