Porco Rosso

A Homebrew Game for Nintendo DS

A Brief Apology

I feel really guilty about this project dying. Owen produced some of the best low polygon artwork that I've ever seen, and it was a perfect genre for the DS. Unfortunately, it was just too ambitious for two people to manage. We needed a second programmer, I couldn't find a volunteer, and we couldn't take donations to pay anyone because we were using Studio Ghibli's intellectual property. After the initial successes I got bogged down creating the tools required for collision detection and level export, Owen was producing artwork that required features my homemade importer couldn't handle, and eventually we both ended up at new jobs with heavy time commitments. Oh well, "A pig that doesn't fly is just a pig."

The Idea

In 2006 I had burned out on my game programming job and moved on to the relatively sedate world of educational software. I was spending a lot of time in the Nintendo DS homebrew community and thought it would be fun to find a project to work on (although my previous company did lots of handheld work I personally worked on Mac/Windows, so it was a nice change of pace.) I came across an amazing low polygon image of the hideout from one of my favorite movies, Porco Rosso that had been posted to an art forum.
Porco Rosso's Hideout
I contacted the artist, Owen Shepherd, and we agreed to work together on a Porco Rosso flight simulator and dogfighting game for the DS.

The Art

A collection of the available planes, at the highest level of detail.

Porco Rosso Planes

Renderings at DS resolution of gameplay. These have better anti-aliasing and cloud rendering than I ever managed on the actual DS hardware.

DS Sized Porco Screenshots

The Hotel Adriano.

Hotel Adriano

The Code

There are a few pieces of interesting (well, if you like retro coding with limited resources) code from this project. A plugin for Misfit Model 3D that will read and write models to the compiled display list format of the DS. A heavily optimized (and bug fixed) version of the flight code from David Bourg's Physics for Game Developers, converted to use fixed point math. And a fixed point version of atan2() written in ARM assembly (which was actually done for an earlier GBA project I had been playing with.)