Finally is a WonderSwan Color demo released at the Evoke 2012 Demoparty where it won the 2nd place in the alternative platform category. It was released by the demo group Titan and I worked on it as the main coder.
When I started working on this demo it was already in development for three or four years. I started writing a polygon renderer for a 3D engine.1 Later I took over as main coder.
Developing for the WonderSwan was quite difficult. There was little documentation, especially on timing, and emulators were far from accurate. We managed to acquire flash cart, but testing code on real hardware still took minutes.
The CPU in the WonderSwan is a 8086 clone from NEC. Unexpectedly finding a suitable assembler was also difficult. While many x86 assemblers still do support the 8086, i.e. 16-bit real mode, they generally have little support for helping with segmented addressing. We first tried to work around this by using some macros, but when we later needed to move around code and data to free some continuous ROM space it turned into a huge problem. This was part of the reason we didn’t manage to release in 2011. I solved this by patching yasm to have better support for segmented addressing.
You can download the ROM file from pouët or watch a recording on YouTube below. There is also a writeup of the development which gives a nice overview of what went into making this demo.
The Overdrive 2 polygon renderer is based on ideas I first developed here.↩︎