Tuesday, January 8, 2008

How Are You Doing It?

I forgot to mention the tools needed to get this "homebrew," project up and running. Again, those familiar with DS homebrewing already know this, these initial postings aren't for you. However, perhaps *when* I get my tiling/scrolling engine up and running some may be interested, because I've noticed that quite a few get stuck at that point in their quest to do games on the DS, and thus stick to static screen games.

Anyway, since I don't have 8-10K to plunk down for an official development kit, and if I did I would have to be a licensed developer with Nintendo to acquire one, I am relying on the diligent hackers that have already provided tools to do development on the DS.

Here's what I'm using and how much it costs...

DevkitPro's DevkitARM / FREE - Is a tool chain based on the gnu compiler with additional scripts, makefiles and libraries to aid compiling and building C/C++ code for the ARM (Advance Risc Machine) 32-bit embedded processor. (I'll have to do another posting explaining the DS hardware, it uses two ARM processors (ARM7 and ARM9)).

Visual Studio 2005 / (Already own it, so say its FREE, but you can download Visual Express freely and use it) - I develop the code using MSVC 2005, only using the IDE (intergrated development enviornment) and intellisense to write the code quickly since I am already familiar with IDE. DevkitARM has a script that you can hook into MSVC that allows you to build GNU C/C++ from it. Currently there is no way to debug the DS from MSVC, since mimicking the DS on the PC means you need to have an emulator that behaves like it is the DS hardware. Which leads to the next tool...

NO$GBA / $15 - This is an emulator/debugger by Martin Korth, one can compile/build DS and take the executable and load it into Korth's emulator/debugger and see DS code run on their PC. The $15 version of the debugger gives you everything you need to debug for the DS, except source code (c/c++), you see the ARM7/9 machine instructions. The source level debugger costs $1750. You do get to set breakpoints, watch variables, see all the hardware registers the DS has that you have to control to do things like hardware scroll, sprite movements, sound, touchpad, etc..., code, data, stack windows, I/O, and VRAM windows, background maps and palette windows, a cornucopia of stuff. :)

*check out these screen shots of the emulator/debugger*
http://nocash.emubase.de/gbapics.htm

GBATools Level Mapper and Sprite Grabber / FREE - Allows you to construct levels from tiles and build sprites. It has occurred to me that again some folks who may be reading my blog may not know what a *sprite* is...it is the animated character (space ship, pacman, missles, etc...) you see in 2D games that is moving around on your screen.

The above tools and cost is $15 to be able to create DS games without even owning a DS, just run everything on your PC with an emulator. However, you want to be able to take your creation and show it off so you will need...

Nintendo DS / (Anywhere from $99 - $150, depending on where you buy it) - Even if you quit homebrewing you still have a neat little game system to play on.

Storage devices which the DS can access and tools to instruct the DS to run your game, I haven't actually tried out these yet so can't report on them, I'll just list them...

GBAMP (Gameboy Advanced Movie Player) available from Lik-Sang.com / $25 plus shipping) and uses Compact Flash giving you unlimited storage.

XPORT from http://www.charmedlabs.com / $140 - $200


Taken from the Novoto's NDS tutorial...
The other tool you need is one which tricks the DS into running your game even though it is not an official DS game. The Passme type devices are quite common.


There's also a technique that uses the DS's Wifi capability that allows you to download your DS executable from your computer directly to the DS. I'll be trying this out in months and will get back to you on how that is done.

What else is needed...

Perseverance / cost: sweat and tears

Imagination / cost: priceless


Finally, you may have noticed that a few of the tools have "GBA" (Gameboy Advance) in their titles, that's because these tools were first created for the GBA and have been expanded to work on the DS.

I am working on the tiling engine, I have given myself a 3 week deadline to get it done...ahh...yes, 3 weeks, remember I do have a day job, and work on this stuff in the little free time I have. "Well, stop talkin' about it, and be about it!" OKAY! OKAY! *My conscience loves to give me a hard time*

No comments: