What I’ve been up to

See? I told you this thing was alive.

Besides work, where I’m probably tackling the most challenging task of my career (sorry, can’t give any details), I’ve started investigating the DS homebrew scene. A few years ago I got myself a DS Phat mostly because it was a fun toy to hack on and, truth be told, I never got around to do it. There was a reason, though: Most DS emulators sucked and copying stuff to the flashcart every freaking time was tiring and cumbersome. Moreover, writing DS code at work and home was a bit too much. Oh, most DS emulators still suck balls.

But since I’m working on a different platform now (and a fairly tricky one, by the way) I started messing with my DS again. For those not in touch with it, let me tell you that the DS homebrew is a very healthy one, probably because flashcarts are dirt cheap right now, it doesn’t require any kind of hardware modding and the development tools are in fairly good shape.

The compiler (devkitARM) and the low level library (libnds) are quite good, but if you don’t feel like writing your own high level library there is pretty much only one option: PAlib. And here is where things get messy. It’s very easy to use (that’s why it’s so popular among the sceners), but it’s huge, messy and poorly mantained. Looking at their community forums, it looks like a few coders stepped up to clean it up, but it doesn’t look like it’s getting much better.

To make a long story short, I ended up using another, much smaller and tidy library: libellen by LiraNuna. It only handled sprites and backgrounds, but it was a much saner start point than PAlib. Eventually, I grew tired of the little project I had started (yet another top-down shooter, nothing fancy) and decided to re-implement another nice toy I coded a few months ago (a Wolf3D-style raycaster). Unfortunately, implementing such a thing using palettized tiles is kinda tricky so I decided to add direct framebuffer drawing routines to libellen. LiraNuna was kind enough to give me commit permission to his SVN repository and I’m now commiting the first bits to my own libellen branch.

I went as far as actually implementing a very basic, brute-forced raycaster, but it’s not ready for public consumption yet. I need to sort out some fixed-point math stuff first. Also, I need to add double-buffering to libellen. I’m a little short on time, as always, so please bear with me. Yes, the random image links are back :)

Leave a Reply