Introduction to Nintendo DS Programming
109 points
1 day ago
| 15 comments
| patater.com
| HN
poffdeluxe
2 minutes ago
[-]
Howdy to all the people from #dsdev back in the day!
reply
cunidev
15 minutes ago
[-]
The Nintendo DS is the platform that taught me programming around 2010, via devkitPro, and it really let me understand a lot about how computers work. It was a rough ecosystem back in the day, but a very exciting one. We had no internet connection at home but I had the docs downloaded and it was surprisingly satisfying to compile on.
reply
spicyjpeg
2 hours ago
[-]
In case anybody here is interested, a few years ago I put together a similar (albeit far less comprehensive) resource on original PlayStation programming [1], exploring the GPU, geometry coprocessor and serial I/O hardware step-by-step with plain C examples. I'm planning to extend it with more examples covering audio and CD-ROM access next, but haven't yet had the chance to do so.

[1]: https://github.com/spicyjpeg/ps1-bare-metal

reply
msk-lywenn
3 hours ago
[-]
Great resource! But a lot of it is very old. I recently discovered this open source ds cart[1] and an alternative SDK[2] to devkitPro. Both were used in the development of a demo[3] released at Revision this year.

[1]: https://www.lnh-team.org/

[2]: https://blocksds.skylyrac.net/

[3]: https://www.pouet.net/prod.php?which=105928

reply
corysama
2 hours ago
[-]
I’d bet the DS is the most advanced game console where it is still possible for a person to productively program it entirely via the bare metal memory map. As in: using an “SDK” that’s just a C header full of struct and array definitions at magic fixed addresses and no functions at all. Set values and the hardware does stuff.
reply
gjsman-1000
1 hour ago
[-]
Probably? Everything else onward relies on libraries...

Though there were some fits and starts there. The N64 for example is, from what I've heard, heavily library dependent and absolutely brutal to program bare metal (GPU "microcode" that was almost like programmable shaders v0.1); even the GameCube is a significant improvement for that kind of thing.

reply
kerochord
1 hour ago
[-]
I will always be grateful that my CS Operative Systems course 'lab classes' introduced assembly and computer architecture with assignments around writing programs for the NDS. It was fun to see our childhood consoles run low-level programs written by us.

were about writing a program for the NDS

reply
jdwithit
4 minutes ago
[-]
That sounds really cool! My CS curriculum had one class where we had to read and write assembly (targeting an emulator for some Motorola chip I don't recall). It was fine but writing something that ran on an actual game console would have REALLY hooked me I'm sure. Instead we got that one little taste of low level development and then went back to writing sort algorithms in Java. This was in the early 2000s fwiw.
reply
shmolyneaux
2 hours ago
[-]
If you want an architectural overview of the DS, this is a fantastic overview: https://www.copetti.org/writings/consoles/nintendo-ds/
reply
Gigachad
4 hours ago
[-]
I had a go at setting up the devkitpro stuff and building a demo that I run on my DS. It’s surprisingly easy to do and kinda neat.
reply
stratts
3 hours ago
[-]
Making homebrew for the Nintendo DS was how I got into programming in the first place. Devkitpro was too confusing for me back then, so I used something called PALib, essentially a pretty hacky library built on top to make it "easy".

Nice community at the time though, I made a pong clone where the main selling point was that you could switch between different "themes", and a bunch of people contributed some really nice custom ones to be included.

reply
crims0n
1 hour ago
[-]
Man this brings back memories. The homebrew scene around the DS and PSP was so lively circa 2005/2006, and it solidified my burgeoning interest in programming.
reply
voidUpdate
2 hours ago
[-]
This is exactly what I've been looking for recently. Me and my partner have gotten into reshelling and jailbreaking old handhelds, and we both have DSis that we enjoy, and I've been thinking of homebrewing some stuff for us
reply
SilentEditor
2 hours ago
[-]
Damn this is some legit information. I've looked around for some more recent information regarding modding and shelling, any tips other than the ones listed below?

Thx

reply
Jiro
1 hour ago
[-]
This should have a (2008) on it.

There is no reason to use a slot 2 cart nowadays and the state of the art for a slot 1 cart is the DSPico at https://gbatemp.net/threads/dspico-an-open-source-flashcart-... .

reply
medbar
51 minutes ago
[-]
Despite the timestamp, I originally uploaded this a day ago and can no longer edit the title. My bad! I didn’t notice how dated the page was until it was too late. Thanks for the link, I’ve been mulling over getting a DSPico to tinker on my old DS.
reply
supliminal
2 hours ago
[-]
Next up: getting cheetah running. DS X. Lets go
reply
HelloUsername
3 hours ago
[-]
(2008)
reply