Nintendo DS Homebrew

February 8, 2006 on 1:01 pm | In Coding, Games, Geeky, Nintendo | No Comments

Fancied a bit of a change, so I began trying coding on the Nintendo DS. It’s a bit of an odd beast, living between the 8/16bit and 32bit worlds but the feature set is so dedicated to playing games it gives you a nice retro feeling. It’s the first machine I have programmed which has two different general purpose CPUs – an ARM7 and an ARM9. The ARM9 is the main DS CPU and would appear to be responsible for the bulk of processing and interaction with the graphics hardware. The ARM7 is used for Gameboy Advanced compatibility and also when in DS mode the ARM7 is responsible for talking to the sound and touch screen hardware – so in order to read the touch screen, the main ARM9 CPU gets data from the ARM7 via IPC.

To start off, I installed DevKitPro with libnds and began working on my first standard learning project using straight C. In this case I went for the Mandelbrot set viewer, it’s a good project for getting to grips with framebuffer mode (15bit color) and also gives a good indication of the floating point performance (which in the ARM9’s case isn’t great for obvious reasons). It didn’t take long to get it compiling and after copying the resulting NDS file to the CF card and slipping it into the M3 adapter it ran and I was pleased.

Documentation is quite scarce, but that is to be expected with everything having to be worked out by those luminaries of the DS homebrew scene (and I dare say a sneaky peek at the official DS SDK). It’s certainly enough to get some impressive stuff working as you can see by looking at some of the homebrew apps and demos which are out there. So my plan now is to add zooming using the touchpad, screen swapping so that the touch screen can be used to alter parameters and edit the palette and perhaps switch the code to using 3/29 integer calculations instead of floating point and try and get both CPUs to calculate in parallel. After that it’s straight into Mammary Manipulator DS…

Oh and because the M3 interface looked too un-DSish(sp?!) I made a skin to make it look more DSish!

NDS Skin Screenshot

No Comments yet

TrackBack URI

Sorry, the comment form is closed at this time.

Powered by WordPress with custom theme based on "Pool" by Borja Fernandez.
Entries and comments feeds. Valid XHTML and CSS. ^Top^

Bad Behavior has blocked 49 access attempts in the last 7 days.