Saturday, September 17, 2011

Space Football

Back when the Nintendo SNES was brand new, I developed some sound utilities and software for Space Football.

This was my introduction to coding in my bedroom through the night...

Head Related Transfer Function (HRTF)

After Space Football, I was asked to join Argonaut Software, initially to carry out research into 3-D sound in tandem with work Argonaut were doing with Nintendo into a Virtual Reality headset.

This research involved running the Head Related Transfer Function (HRTF) software on dedicated Digital Signal Processing cards in the PC. I learnt a lot about how our ears and brains (may) perceive sounds and the direction they are coming from.

As every person's ear has a different shape, in the ideal case, each person has their own HRTF measured.

This was achieved by putting small microphones in a persons ears and then recording the response of this microphone to real clicks (impulses) generated around the subject from different locations in space.

This then creates a 3-D impulse response map.

To use the HRTF to position a sound in 3-D via headphones you modify your source sound by the measured impulse response from that location in space.

Of interest was that the HRTF maps we had were of other people (we did not have our own taken), and initially this meant that initially people were not very good at pointing to where a sound was being placed by the software. Over time users "learnt" the other peoples HRTF's and became better at pointing to the intended location of the sound.

The first King Arthur, and Dolby Surround

After doing the work on the Head Related Transfer Function, I was moved to writing the software and utilities for the newly formed sound department at Argonaut.

The first game I worked on was a SNES game called King Arthur's World.

Towards completion date, Jez San (Argonaut founder) asked us to try and make space for Dolby Surround encoded samples.

Instead I spotted a hack that effectively meant that by controlling the volume registers on the SNES's dedicated sound chip, the game software software could control a sounds position in 3-D.

This was of virtually no use in King Arthurs World as it was a 2-D scrolling game, but the weather sound effects game from all around you, and the opening chords spin round the room...

We then had Dolby come and visit us, and in the end King Arthur was the first game to carry the official Dolby Surround Sound Licence.

This resulted in Dolby promoting the game for us, and I was interviewed for Home Entertainment magazine Autumn 1993 edition.

Ren and Stimpy SNES

Perhaps not the world's best game... unlike most other TV/Film spin out games... Sounds OK however :)

FX Fighter

FX Fighter was the showcase for what was at the time a cutting edge 3-D graphics engine developed at Argonaut that went on to be used in several other successful games.

The main new feature this had in the sound drivers was real time sound decompression algorithms that meant that the sound drivers actually used less CPU power than playing un-compressed 16-bit samples. This was mainly because the decompression routines (assembly language, of course) took virtually no time, yet each sample was ~4 bits of data rather than 16, so ~1/4 less data was being shifted, and as we all know, memory access can be a bigger bottle neck to code execution than the instructions themselves.

Creature Shock

Creature Shock was in part the result of Silicon Graphics machines, some very talented graphics artists, coders and sound designers, and the CD ROM revolution. It was computer graphics like we had not really seen before. We rather cruelly came to refer to the game style this spawned as the "Watch 'em up" :)

It was my baptism into developing sound drivers, interrupt handlers and optimised assembly language coding on the PC, and was therefore pretty much a nightmare.

It also involved having to write separate drivers for what was beginning to be an explosion  of sound cards to compete with the Sound Blaster.

In fact, it was worse than this, as it was just at the beginning of 32-bit protected mode days (wow, imagine, being able to allocate a whole 1 Meg of memory, in one chunk, unheard of!), which made the main game code a lot easier.

However, if you were writing interrupt handlers in assembly language (that was me then), you had to write 16 and 32 bit code, and it was a nightmare, leading to too many all nighters, including one on the phone to Intel to try and figure out why some of their chips in certain machines went bang when we were switching modes...


Ah, Vortex, finally a 3-D SNES game that could properly use my Dolby Surround hack.

Justin's sound track has to be one of the best ever on the SNES