Wednesday, December 30, 2009

Unofficial 2009 in Review


Shortly we will be entering the Space Year 2010, so here is my unofficial review of this last year from the point of view of a DS fan and part-time homebrew coder. Please don't feel offended if I've left out your game or application. There's been a lot to get through.

This roundup was partly done from my recollections of homebrew in the last 12 months, and partly from trawling through my Google Reader feeds. I haven't been able to try out all of the releases this year so let me know in the comments if you feel particularly hard done by.

While creating this post, PDRoms has been very useful. This site does a really great job of keeping the whole scene ticking over. Kojote has consistently posted interesting stuff, especially when you consider that he also covers a load of other portable platforms. Keep up the good work dude!

Other sites of note are Drunken Coders and NintendoMax (That's their DS RSS feed). Writing your own DS programs seems to be all the rage in France and NintendoMax's site has had the scoop on the latest news most of the year. We Hack DSi has also been an interesting read, though their posts are rather less frequent and tend to mix in some of the less salubrious aspects of the scene.

I've tried to link to the latest release for each game or application where I can. This way you don't end up downloading an initial, buggier release if there is a newer one available. This does mean that the text of the link ("Version 0.9" or whatever) doesn't always match up with the latest release on the target page, so keep that in mind if you are a history weeny.


DSi image The year began with news reports on the latest revision of the DS hardware, the DSi, which was already out in Japan. With 2 cameras and better wifi, it promised to be an interesting (if rather conservative) upgrade and everyone was looking forward to the releases in Europe and the US.

The homebrew scene started the year off with the arrival of the deadline for the Winter 2008 Compo. Nyarla's Snowride shoot 'em up came in first place, with the judges being particularly impressed by its graphics, music and Christmassy theme. It is a great game too, definitely download it if you haven't had the change to play it yet. Damn those penguins! It has the added advantage of being seasonal if you play it now. Bonus.

Around the middle of January Okiwi was officially abandoned, marking the end of the DS browser wars. Writing a web browser for a console with just 4MB of memory and a TCP library that is not as battle hardened as its big-brother PC counterparts is an exercise in frustration, so I know exactly where Pedro was coming from. I've abandoned Bunjalloo several times already, but keep coming back for more punishment.

Towards the end of the month the moonbooks project resurfaced after having the website hacked the previous year. In a strange homage to Geocities (perhaps) it still shows "under construction".

There were lots of homebrew releases in January. Some that stood out for me were:

  • Powder 110 - Jeff continued to improve his fantastic rogue-like throughout 2009, albeit at a slower rate than in previous years.

  • Moonshell 2.0 - several beta releases marked the return of the ubiquitous menu/launcher/mp3/video player

  • AemioDA - vector graphics emulator with an unpronouncable name, but it lets you play classics like Tempest, Asteroids and Lunar Lander. Lunar Lander sadly seems to ignore all my attempts to control the craft. Bummer.

  • Brix - ace physics game where you have to make towers topple over while carefully balanced sticks of dynamite land in the right place. Plays much better than my description, luckily.

  • maketens - mathsy fun with the numbers 1 to 5. An original puzzler that is fully playable, but lacks that last little bit of polish to make it a real classic. Still good though.


I did want to say DS1942 at this point too, which is an emulator for the arcade classic 1942. I have been completely unable to get this to run though, with the emulator complaining about a missing "srb-03.m3" despite it being right there. Ho hum. You might have more luck. It did mark the start of a 2009 trend; stand alone emulators for individual arcade games, or sets of games. More later.


No hardware news for February, but the NDS homebrew scene was in full swing. Several of the games released in January got more updates.


I have fond memories of playing through Tetrominout, which is an amusing cross between Tetris and Breakout. Certainly it was a surprising twist on the usual "hello world" titles that new game coders often cut their teeth on. Also out this month was a new version of the devkitARM toolchain and libraries.

Other homebrew of note in February were:

  • And's PDF reader, which bent the laws of computer science to squeeze the rather bloated PDF format onto the DS.

  • Glubies Planet. We don't often see 3D homebrew games on the DS, so this one stood out from the crowd. The puzzley gameplay isn't bad either.


March was a slow month, with only a few updates to already released programs including And's PDF reader.

QuirkDS wasn't really new but it did get a big update right at the end of March. It's a remake of the old Game Boy title Kwirk and plays a bit like Sokoban (a bit, not really much). I'm completely hopeless at it, so good job it has a level skip. If anyone knows how you're supposed to move the yellow blocks that appear from about level 3 onwards, then please let me know in the comments.

News began to trickle through of a great looking remake of the Commodore 64 shooter Warhawk.


The big news as we entered the second quarter of the year was the launch of the Nintendo DSi in Europe and the US. Almost right away we received confirmation of our worst fears: the current generation of flash devices didn't work on the new console!

It wasn't really that much of a shock of course, as Nintendo had threatened this already. In Japan there had already been confirmation of the bad news too. Still, it hit home when the console was finally out over here.

The Acekard had a working flash card that they had not-so-secretly been developing since the Japanese launch. Soon after this, R4 and EZ Flash released new flash cards that bypassed the DSi's stricter security. Homebrew was back on the cards.

Sadly all of these devices only gave (and still give) access only to the DS hardware, not the new DSi features. Although there would later be exploits to get small programs running in DSi mode, at the end of the year we are still in the dark when it comes to details about the DSi hardware from an unofficial developer's point of view. This means that there is still no solution for connecting to the net with the DSi's faster network hardware, nor can we use secure WPA Wifi connections, nor can we slurp out all those photos and all that data that is stored on the built in RAM.


Homebrew out this month included an update to @gentakojima's DSTwitter app. Pretty cool, even if the jury is still out on the usefulness of Twitter. You should follow me on twitter here, if that's your bag. I don't say much though, mostly just complain about Dr Who. Don't try and visit gentakojima's old Acdrtux site though, you just get Rick Roll'd.

DSPack added to the growing list of arcade emulators released this year, this time emulating Pac-Man and derivatives from the MAME collection. Finding ROMS for these emulators proved to be a bit trickier - not everyone has the, er, technical know-how to back up the collection of arcade games that they keep in their spare room. Yes. Ahem.

The emulation is excellent. That just leaves the limitations of the DS screen to contend with. It would've been nice if there had been an option to keep the sceen fixed in one spot, losing the top banner that takes up about a third of the top screen. As it is, not all of the screen fits on at once, and the play area scrolls to show Pac on the bottom screen at all times. I suppose a fixed screen would have meant the yellow one traversing the area in the middle of the 2 screens, which could have been quite confusing. Oh well. Good games, great emulator, worth checking out.


In May we got another update to devkitARM and its support libraries. There were no major additions this time round, but it was a solid maintenance release.

Powder had its Nelson release in May. And I suppose it was quite unlucky for us Powder fans; we wouldn't get another update until well into November.


After more than 6 months of silence, Wee Basic made a come back. This novel application lets you code in BASIC directly on your DS. Perhaps it is about as far from the cutting edge of computer science as you can get, but I found it a nostalgic amusement. You know what would make something like this even cooler? Auto-completion and some online help. You should see my .vim directory though, so perhaps my expectations are a bit far fetched.


Atmos was another cool-looking DS puzzle game that came out in June. The initial releases were multiplayer only, but the idea seemed original. The game could be described as a cross between othello and one of those colour matching games like Columns. Sadly the only record of its existence now is that page on PDRoms. Let this be a lesson for would-be coders: whatever you do, don't just post your game exclusively to some random forum! Especially if it requires log-in to download the title. You have probably spent a great deal of time writing your game, the least you can do is to take a few more minutes to create a more permanent home for your work on Google Sites or some other free web hosting service (yeah, like Geocities. Ha.)

Speaking of downloads, GameUp looks like a really great way to keep up to date with the latest DS homebrew. I've only discovered it recently, and it hasn't been updated since July, but the idea is a winner. It's a front end to a web site where you can download and rate homebrew titles, so no need to faff around with flash cards and swapping them between the PC and the DS. A bit like an unofficial "AppStore" application, I suppose. The only real problem is that it depends on the GameUp website being active and people updating the database with new homebrew. Sadly it seems that new programs have not been posted for quite some time.


The first rumours of DSi homebrew started to appear this month. It would be a while before more details were released, and all we got to see at this point was a video. Skeptics everywhere battled wits on the YouTube comments thread.


If we want to talking about games we could actually play, then the amazingly good Warhawk was finally released in July. Based on the C64 classic and coded entirely in ARM assembly, it was one of the best pieces of homebrew to come out all year. In fact for my money it was only topped by the group's second release later in the year...

Line Wars

The release of Line Wars DS added to the underrepresented 3D space game genre on the DS. Its author, Patrick Aalto, ported the game from the original x86 assembly code to C for the DS. He cheated by having the original source code, I bet ;-) The fact that he wrote that original code is not to be sneezed at, of course. Line Wars runs at a really smooth frame rate, making use of the DS's hardware 3D and lighting effects. Unlike Elite, in LW you take part in single "missions" that get progressively more difficult, with the focus here being on the action, the shootin' and the blastin'. Well worth the download either way.


facebook DSi

One of the highlights of the month of August, at least for us DSi owners, was the release of a new system menu. This upgrade, version 1.4, added Facebook support to the built in camera program. By connecting to a local Wifi network and then entering your Facebook account details to the DSi, you could upload any of the really terrible quality photos you'd taken. The DSi browser was also updated to a new minor version. Though details on the exact changes are non-existent, I suspect one of the changes was to make logging in on web-sites a lot more difficult; the updated browser seems to forget cookies almost instantly.

However, this was not the most dramatic feature of System Menu 1.4. Oh no. What really caught the eye was the new "blocks all DSi flash cards" feature that nobody asked for. And so began the next step in the cat-and-mouse game that card manufacturers and Nintendo were playing. Thanks to good design and forethought most of these next-gen flash cards had a way to update the firmware. They managed to patch their way out of the 1.4 straight jacket within a few days, but it did look pretty bleak for a while back there.

Other news in August came from WinterMute, who released his hack for DSi Classic Word Games. This hack allows a small amount of assembly code to run on the DSi in actual DSi mode. It exploits an error in the save game handling of a commercial title, which means that its viability for running DSi code in a more mainstream way is a tad limited - you have to own Classic Word Games and the hardware to upload save games to the cartridge to make use of the exploit. Cool nonetheless.

Regular DS homebrew releases continued in August. There were quite a few demos and unfinished early releases of games, but also updates to some old favourites, including DronDS. DronDS is a Tron light-cycles game that takes place in full 3D (on a 2D plane of course, you can't start riding up the walls). In the latest releases you can even play online against other Dronners. I've never coincided with anyone, but then I'm antisocial. If you have friends on IRC or even on Twitter (hey look, a use for Twitter!) then maybe you could gather a posse and have a game.


From the makers of Warhawk, a sneak preview video of another remake "Manic Miner - The Lost Levels" had us pining for its release back in September.

Nano Lua caused a flurry of activity as well this month. Lua is a great little language (even if it does have its warts. 1-indexed arrays, I am looking at you) and Nano Lua enabled people to write games for their DSes without getting their hand dirty with C or C++. I've not had chance to check Nano Lua out in detail - it seems to be a bit lacking on documentation, natch - but people have released more things with it than with the previous DS-Lua efforts, so it must be doing something right.


Blockman Gets Screenshot

The floodgates opened again in October. Blockman Gets, a pacman/puzzle game, combined 2 genres (classic arcade and puzzle) to produce an infuriatingly difficult mind bender. No ghosts on the first level, and yet it's more difficult than the original!

For novelty value, Mario Bros Lemmings DS was pretty hard to beat. These are Mario themed levels for Lemmings DS, complete with Koopers, Goombas, Bowser, and Mario, all rendered in their full 8-bit NES glory. I suspect some sort of automatic process was used, as the levels don't really stand out as brilliant Lemmings puzzles (too many ∞ abilities, some levels cause the game to hang, unbalanced requirements), but the amusement factor is high and all the SMB1 levels seem to be in there.

Now I'm not a big fan of Pang, but Pang DS does a good job of emulating the arcade game. Once more, make sure you only use carefully created backups of those Pang bootleg arcade boards you have next to the washing machine. Don't just Google "Pang MAME ROMs" or anything, okay?

GBA veteran coder FluBBa ported his SEGA Master System/Game Gear emulator over to the DS. It's called S8DS and is very good, as you might expect. The DS has a large enough screen that the squashed graphics from the GBA version are a thing of the past. S8DS uses the usual DLDI/libFAT features, so there's no need to inject the MS/GG games into the NDS ROM - you can just read them from your flash card. There are loads of great MS games out there, which of course you er, back up from the original cartridges you own (this is getting silly). I spent many a happy hour wasting batteries playing Fantastic Dizzy on the Game Gear.

Red gameplay

I didn't see many people mention Red when it came out in October, but it is really good. Although it is a quasi-official conversion of a Flash game, it feels at home on the DS. Using the stylus, you control the defences of a base at the bottom of the screen. This base appears to be some sort of last stand against an onslaught of meteors on a red planet somewhere. Story be damned! The base is armed with a cannon, and by shooting balls that look like a deadly paper/spit combination at the oncoming rocks, you can deflect them away from the base. By charging up the cannon, you can shoot bigger wads at the meteors, giving you a better chance of deflecting them. There are some power-ups in there as well to mix things up a bit. It plays like a faster, more physicsy version of Missile Command. You have no excuses, go and play this one.

Manic Miner in the Lost Level Bouncy-Bouncy

Last, but by no means least, is the epic Manic Miner in the Lost Levels. Created by the same chaps that created Warhawk earlier in the year, together with input from Amiga Power's Stuart Campbell, MMLL gathers all the best bits from the myriad of Manic Miner ports and packages it up with all the pazzazz of a first-party Nintendo game. You get first class graphics and sound, snazzy menus, unlockable bonuses, hidden levels, high scores, time attacks, historical notes, insider jokes, 80s film references, sly digs at the C64... it's all there. It is impossible to imagine how they could have done more justice to good ol' miner Willy. And I'm not even especially fond of the original Manic Miner! (ducks the pick-axe thrown from the back row), but the way it is presented here, with its skippable levels and modern day graphics make it much more accessible. All this without compromising the classic pixel-perfect, difficulty-turned-up-to-11 gameplay. In a word: "stunning".


Woopsi 0.43

Woopsi had many updates throughout the year, and it's good to see Ant updating his GUI library. I still haven't completely ruled out a port to the Woopsi library for Bunjalloo - maybe in 2010? For me all it's really lacking is some way to support UTF-8, which is a tricky problem when you don't want to support STL collections.

Another teaser was released from the team behind the Manic Miner remake in November. This time they are were going to have a crack at The Detective. I'll admit now that I had not heard of the game before, and that despite being an ex-Commodore 64 owner. Still, with their pedigree even if the original was pants I'm looking forward to this one.

Munky Blocks screenshot

From the creator of retro-platform/puzzler Platdude, Munky Blocks also came out in November. I would describe the gameplay as somewhere between Sokoban and Columns, with a bit of Yoshi thrown in. Though the gameplay is simple to grasp and has only a few concepts, the levels start to get fiendish quite quickly. Viewed in side-on 2D, you control a Monkey/Cat thing that can swallow blocks and climb up platforms. The idea is to place like-coloured blocks next to one another in groups of 3 or more so that they disappear. When you have swallowed a block, you can then walk around with it in your gut, but you can only climb up a single floor level when you're this full. After regurgitating the block you can move freely again. Later levels mix things up with switches that open doors, keys you can collect to unlock other doors, and so on. A very good game, and strangely claustrophobic I found.

In other, non-playable news, the first DSi-mode game was announced, although it is only in video form. Perhaps 2010 will see this taken to the next level? Let's hope so.

A new emulator was announced by Patrick Aalto (of Line Wars fame) back at the start of November. This time the emulation target was the x86! Specifically, the 80286 with MCGA graphics and SoundBlaster audio. Quite an achievement. Full details of DSx86 are on Patrick's site. The current tech demo includes the DOS version of Line Wars, though his blog also shows screenshots of other programs and games running, including SYSINFO and Paratrooper. Hopefully 2010 will see more improvements and news.


I'm writing this in December. Past tense confusion overload.

Another great puzzle game appeared at the start of December, called Cogito. This has nothing to do with version control, but is a tricky sliding block puzzle game. It is somewhere between a Rubik's cube and those plastic sliding block puzzles. You have to align rows of coloured blocks on the bottom screen in the way that they are shown on the top screen. The trick is that you can only move entire rows at once. It is simple, but much more complicated to do than you first expect. Another great game.

Red Temple probably came out at the end of November, but it got renamed and had a new release right at the start of December too, so here it is. Besides, it's my blog so I'll put it where I like :-) Now I really quite liked Red Temple. The game starts off with a few effects on the start screen, then you are taken away to the world overview screen to select your start level. Once chosen, the game proper starts off. It is a straight forward collect-'em-up where you play a snake/worm thing that goes around eating a load of fruit. As snakes and worms often do, I imagine.

The art work is a colourful enough tile-based 2D affair (described rather unfairly as "crap" by the author, they aren't that bad! At least they are original, which counts for a lot IMO), and the sounds are made up of some quality coder-generated-sounds and grunts. At least that's what it sounded like - the "level win" and "you're dead" sounds being especially amusing. It has a nice Amiga PD game feel to it, the sounds reminding me of the credits files that occasionally described how the authors went about making each sound ("falling in water - dropping an orange in a mug of coffee", that sort of thing). Not bad, not bad at all. There are a few videos on youtube if you don't fancy downloading the game to try it. But you should.

Ripholes in Rubbish

The great-looking Ripholes in Rubbish was a surprise release. It came out of nowhere pretty much completed. The game is a simple platform game, with an added twist that on some screens you can interact with the background. The "rip" in the name comes from this idea - you can rip holes in the background and go through to the other side. The later levels use this technique as part of the puzzles to get past otherwise impossible sections. Other puzzles involve capturing and moving clouds. The graphics use a distinctive hand-drawn look and the sound is varied and original. Sadly the game has a few bugs that cause it to either hang or do strange things, such as all objects on levels disappearing suddenly. Still, there have been further updates improving the stability, and as it is the game is a playable work of art.

The Detective Game

The last big release of the year was headsoft's The Detective Game. I'd not even heard of the original game, so this was something of an unknown. The graphics are great (Cook's bouncing chest aside) and the game is classic 8-bit "WTF do I have to do?!". It is an admirable remake. Sadly without the heritage of Manic Miner it doesn't have that elusive wow-factor, as they say on TV. I must say that Ben (AKA headcaze) has been great in fixing a few glitches that made the game unplayable on the EZ Flash cartridges, so extra kudos there.


Barring any last minute surprises, my game of the year award would go to Manic Miner in the Lost Levels. Not an easy choice, there have been a lot of fine chunks of code running on my DS this year.

I hope the 2010 has as good a crop of games as this year has had. I know a lot of DS coders bemoan the death of the system, saying that everyone has moved on to smart phones, but I'm sure the ol' DS still has a few years left in her yet. Happy holidays, and happy homebrewing!

Wednesday, December 23, 2009

Bunjalloo release v0.8

I've just uploaded a new release of Bunjalloo. This contains all the performance improvements I've been working on recently as well as a few other changes. Full details are in the changelog.

One of the changes is a fix to the updater. Sadly I broke it in the last release. This means you will have to update manually by downloading the zip file and unpacking it to your flash card. I've added some automated tests during this release to make sure I don't mess it up again.

You can download the latest version here.