Demoscene, Developer Profiles, Interviews, Memories

Overdrive 2 – A Voyage to the Boundaries of 16-Bit (Part 1)

image7

Saturday 29th October 1988, a time when 8-bit was at its pinnacle, a time of the Famicom, a time of Mario – a time that was dominated by three awe-inspiring syllables, Nin-ten-do. Saturday 29th October 1988 – Super Mario Bros 3 was only seven days old, and a Nintendo console could be found in one in three Japanese homes. Saturday 29th October 1988 was the day that all of that would change – the day that saw the release of the Sega Mega Drive.

It would be two years before Nintendo would respond with the release of the Super Famicom – a machine that boasted a superior palette of 32,768 colors, advanced audio, increased RAM and pseudo-3D rotating graphics. On paper at least, the ensuing console war could arguably have turned into a one-horse race.

For years, the Sega Mega Drive simply had no viable (or at least affordable) response to the raw graphical capabilities of its Nintendo counterpart. Sure, hardware innovations such as the SVP chip, the Mega CD and 32X all brought advanced graphical capabilities to the humble Mega Drive base unit – but at a significant financial cost.

Little did we all know, that under the Mega Drive’s sleek exterior sat dormant hardware capabilities with the power of equaling, and possibly surpassing the SNES’s graphical wow factor. Even now, some 30 years after the console’s release, the Mega Drive is still revealing its true potential – all thanks to modern day programmers, coders, composers and artists such as the TiTAN demo group.

In 2014, Megabites reported on TiTAN’s incredible achievements  – an international group of demoscene enthusiasts with experience spanning not only the Mega Drive, but retro consoles including the SNES, Amiga, Atari ST, Gameboy Advance and Wonderswan. With their ‘Overdrive’ project, TiTAN took the Mega Drive’s Motorola 68000 processor beyond the realms of what was deemed possible – mind-blowing artwork, a deep and dynamic soundtrack, 3D graphics, pseudo Mode 7 effects – all there, all on the Sega Mega Drive.

But what to do when you’ve created a piece of software that pushes a console above and beyond the realm of its capabilities?

Naturally, TiTAN created a sequel…

Megabites caught up with TiTAN demo group members alien, alk, Jorge, Kabuto, Medo and oerg866 to get the inside story on their latest graphical showcase.

Our tale begins when Kabuto discovered a remarkable feature on the Sega Mega Drive that, to current knowledge, is unique among all retrogaming platforms.

Story to the sequel

alk: After Overdrive 1, I thought we would never make another full demo on the Mega Drive; it was a huge undertaking and we were quite satisfied with the first demo. However, I knew that in the period following that release, Kabuto had been researching the Mega Drive’s ($C0001C) debug register. The register was known on Mega Drive development forums and tech documents, but all previous research had concluded that it had no useful purpose – just causing garbage to appear on the screen. Kabuto told me he had made a discovery about the register but I initially didn’t think too much about it.

A few months after the release of the original Overdrive, we were enjoying a TiTAN group get-together, spending a week away at an airbnb in Holland. When Kabuto arrived, he set up his computer system and told me he had created a graphical effect using the ($C0001C) debug register. He asked me to take a look.

My jaw dropped. He’d achieved multi-layer, full screen, full framerate scaling and rotation on the Mega Drive! It was incredible, an effect that absolutely could not have been achieved on the system previously!

(Technical rundown) Kabuto: The ($C0001C) debug register is an undocumented register left over in the Mega Drive’s video chip for testing during chip development. Its bits allow parts of the chip’s logic to be forcibly enabled or disabled, which allows chip developers to test it more easily. Most of this is useless for demo purposes, except for 3 bits that can force either of 3 planes (2 scrolling planes or sprites) to be permanently active even when hidden behind another plane. This causes the video chip to perform a logical AND of both planes.

Note: For reference, Kabuto has kindly provided a document covering all technical details of the Overdrive 2 demo and ($C0001C) debug register.

alk: I knew that it would be another big undertaking but there was only one choice to make – in that moment I decided to support Kabuto in making another demo to showcase this newly discovered graphical feature, which had been hidden within the Mega Drive hardware for 25 years.

Unlocking the Sega secret

With Kabuto’s discovery on-board, a new world of possibilities had been unlocked within the Mega Drive hardware. TiTAN set upon a period of experimentation. New research was conducted and new effect sequences were created, at which point it became apparent – a sequel to Overdrive would be imminent.

At the pace the group was working, it was anticipated that Overdrive 2 would be finished in a few months. Little did they know that their latest Mega Drive voyage would unfold over three years.

Kabuto: During development, Overdrive 2 was just a placeholder name for the project, as no one was sure what to name it.

alien: We battled with various names and variations like ‘ThunderDrive’, ‘Underdrive’ and my favourite:

image4

And so TiTAN pushed forward, bringing in new recruits Jorge and psidum.

oerg866: My old friend Jorge joined the team as an engineer. He helped research technical details, helped me during construction of our development kit and made the circuit board and design for a flash cartridge that became the board that the demo ran on.

We also recruited an Australian scener, ‘psidum’, a programmer who demonstrated amazing skills in his SEGA Master System demo ‘Be No Sqr’.

A three dimensional storyline

For those familiar with Overdrive 1, one of the most noticeable differences in its sequel (graphics and effects aside) is the presence of a storyline, which unfolds as so…

Kabuto: A group of aliens enters our Solar System and scans it for technologies that might be more advanced than theirs. They discover a Mega Drive down on Earth and one alien heads out to retrieve it. However, once down there, the poor alien gets lost in a demoscene jungle…

oerg866: Of course, the aliens only possess SNES-level technology!

Kabuto: …I’m not sure. Maybe be pre-Atari-2600.

alien: …And they like melons.

Watermelon

As with the original Overdrive project, Overdrive 2 replicated many graphical effects thought possible only on the SNES – in the 16-bit era at least – including impressive Super FX-like and Mode 7-esque 3D sequences, as Kabuto describes.

Kabuto: To create the illusion of a 3D effect, we drew two layers of more or less perpendicular stripes. Plane masking was used to interweave them. A custom palette was utilised to colour the resulting quads as intended. This is just a quick explanation, a more in-depth description of effects will follow at some point.

G_X1gtC2ClKB99R58ZNaajn1-BixXO805Ype30yrpZAZKGTZVSDDK5WxjBVPbVHk_GMArjf6w2c7g3eT6nlynuiRi6rtk38W5C3pqirCvFfVz8WyPpOOAPnNoGc1u8GM_DsGIiuj

Kabuto: In Overdrive 2’s 3D scenes, the core idea was to pre-render the 3D scene into images and then convert them losslessly into vector graphics – all of this while considering tile boundaries to optimise for fast rendering on the Mega Drive. This is a sample of one of Jix’s renders:

y_MSJegujWqfziVlRzCp-0lm7uLniRwCl_V4GC3vSqHDs1SLCDuuCIpCZjyHe9RIPS4UpSQWFWNSyc4BpXTTKsYJwGM91hbz0mSq8ScpBKiBpGVyBtzOi6TI2uzBoF4uxeAvnR66

Though TiTAN were seemingly able to create graphics on par with the SNES, elevating the Mega Drive to the graphical levels of its 16-bit counterpart was certainly not without its challenges. Being the creator of a SNES demoscene sequence in the past, alien knew only too well of the differences between Sega and Nintendo’s 16-bit behemoths.

alien: Gaining the ability to almost not worry about technical limitations is one of the joys of being a pixeler and designer. Some parts of the demo I created for the SNES are actually left-over graphics from OverDrive 2, complete with 9-bit palette and all.

Kabuto: Although I’ve never done any coding for the SNES, I’ve read the specs. Hardware-wise it seems totally different, it’s like Sega and Nintendo chose opposite ends with all their possible design choices. The SNES is more powerful regarding everything but its CPU, however its hardware doesn’t seem as nice to code as that of the Mega Drive. This might explain the small number of SNES demos… I might be biased.

Working around the limitations

Though Overdrive 2’s graphics are something to behold, ensuring each sequence ran smoothly did not come without its hurdles.

Kabuto: Depending on the particular effect, I’d often hit a bottleneck. This was due either to the CPU speed, the DMA capacity (the amount of graphics data that could be transferred to video memory per frame) or the amount of available main RAM or video RAM. The complexity of the resulting code was sometimes a struggle to manage.

Working around the Mega Drive’s CPU speed meant I had to redesign, use unrolled loops, jump-table-driven code or more precomputed data, which in-turn increased the demo’s size and its complexity.

Another of Overdrive 2’s standout features is its stunning soundtrack, composed by TiTAN member Strobe using Deflemask, a freeware chiptune tracker.

Kabuto: I wanted to use the highest realistically possible sample rate of 26 kHz with near zero sample jitter. But the Mega Drive’s music hardware is a mess! There’s neither audio hardware acceleration nor audio/timer interrupts and fetching samples from ROM is not possible during DMA (transfer of graphics data).

To work around all these issues I wrote a custom player that runs only on the Mega Drive’s (secondary) Z80 CPU with buffering, cycle counting and a handshake protocol to indicate whether or not it’s safe to fetch data from ROM.

Since cycle counting is cumbersome I also wrote a custom assembler that analyses control flow and shows a warning when predefined timing constraints are not met.

In the end, the biggest limitation was ROM space since all the samples (which TiTAN member, Strobe, mostly used for drum loops) took a lot of space at such a high sample rate. When we finished the demo there was around 80 KB left for Strobe to squeeze in 3 seconds of samples for a proper demo ending.

Hardware limitations and continuity editing meant for a number of sequences that ultimately didn’t make the final cut, as alien and Kabuto reveal.

alien: There was an infinite earth to space zoomer planned, which was felt didn’t fit into the storyline anymore. But we kept concept pictures of it:

oerg866: There were a few sequences that we cut. We had a bitmap zoomer that was going to zoom from space, down to Earth and into Saarbrücken, Germany – the location of the demo party where we were set to showcase the finished Overdrive 2 demo. We planned to begin this sequence with a fractal zoomer, which was then adapted to zoom in on Earth in a Google Earth-type setup. I have a version with this intact somewhere, though I’ve since lost it, so you’ll have to take my word for it!

The first version of the intro also involved the ship flying by in 3D using our renderer. It was changed to a 2D version and the storyline was altered accordingly. It would have been a waste to use one of the best technical features of the demo so early on in its timeline.

At the end of the demo sequence, we hadn’t planned for an intact ship to take off. As such, we had a different approach whereby the ship’s cockpit was shattered into pieces, revealing the Overdrive 2 logo. It looked amazing and I felt very sad that it had to be taken out to fit the storyline.

alien: Throughout the demo there’s many hidden (and not so hidden) references to other great demos. Overdrive 2’s arcade machine scene features many great demos on its monitors.

image8

Kabuto: The arcade scene was meant to feature in the ‘greetings’ segment of the demo with text on the arcade screens. But due to the fact that the text was hard to read, we decided to re-purpose it.

Delivering to deadline

As is the case for all bona fide demosceners, TiTAN’s aim was to showcase their finished sequence before a live audience. With Overdrive 1 having won first place in the ‘Alternative Demo’ category at the Evoke 2013 (one of Germany’s largest demoscene competitions) the pressure was on to replicate this success at the upcoming Evoke 2016 (Cologne, Germany).

Yet, with the competition on the near horizon, Overdrive 2 was still only 60% complete. With the remainder of the sequence not fitting the central theme or storyline, many in the TiTAN demogroup felt the demo wasn’t quite up to par, paling in comparison to Overdrive 1 in pacing and coherence. To ready Overdrive 2 for Evoke, alien worked 24/7, even giving up holidays to finish the demo.

Timing was of the essence. Could the group deliver to deadline?

Stay posted to MegaBites for part two to find out.

Coming soon!

Advertisements

2 thoughts on “Overdrive 2 – A Voyage to the Boundaries of 16-Bit (Part 1)”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s