Tuesday 7 July 2015

Old Audio Part 4: Psygnosis before the Playstation

Part 3, "Amiga, career-maker" can be found here.

Storage at a premium

Before I joined Psygnosis as an employee, I did the music for Bill's Tomato Game on the Amiga. As usual, memory was highly restricted so I looked into using a music program I'd bought called Mugician. It had a very efficient synthesis technique and could produce very impressive sounding stuff in very little RAM, but Bill (the programmer) had trouble getting the binary playroutine to work (no source code was provided) so I went back to using Protracker. Although it was straight-forward because of Protracker, it was a lot of work. There were 10 areas with 2 tunes-per-area and a title tune, high score tune etc. The total was 27 pieces of music, 10 stingers and some sound effects. The music all had to be done in 3 channels so as to leave one channel free for sound effects and I had 40KB for samples.

One thing that is probably not realised these days is that it was not just RAM that was the problem. Disks on the Amiga were 880KB and if I'd used 40KB for every tune, that would have taken more space than one whole disk. To keep the disk space down, I really cut down everything as much as I possibly could. I managed to get the samples for the prehistoric levels down to only 5966 bytes. The sample banks were refreshed on each level load because I used a technique in Protracker to get pulse-width-modulation that left the modulating sample corrupted.

Soon after I'd finished everything, I got a full-time job at Psygnosis as a game evaluator; a glorified tester really. Bill's Tomato Game wasn't released for another few months, so I ended up doing loads of testing on it. For the final few release candidates, I was the only person who could play through the entire game in one go. I must have done 10 complete run-throughs from start to finish as the last bugs were fixed.

Is this what real jobs are like?

But this is how amazing and ridiculous my first days at Psygnosis were:
  • Day 1: Got my own desk, brand new Amiga and monitor, phone, unreleased games to play.
  • Day 2: The whole company (approximately 50 people) went go-karting. I got into the final of the tournament.
Lemmings Title Image
I started there in September 1992 and the next year was very productive for Psygnosis. As a result, although there was a large amount of game testing, I ended up doing all sorts of stuff: I designed levels for Hired Guns, got involved in design sessions for other games, drew the title screens for Lemmings on the Atari Lynx, evaluated new game submissions and, of course, did a whole bunch of audio.

Operation G2 in-game imageOne of the earlier audio jobs that came along was Operation G2. It was an adventure game and sort-of sequel to the game Obitus. It was never actually released, although a single-level demo did appear a long time after I'd finished working on it. There were a bunch of sound effects and some music to do. I first did a title tune that was tense and rhythmical but they wanted something more ambient, so I did a bunch of variations on a sci-fi-sounding tune that I'd recently started on my brand new Korg O1/Wfd (took me two years to pay off). There were no problems really, except for when they asked for the sound effects. I created them and sent them over only for them to ask "How do we play them?". Being far too proud to say "I don't know", I said that I'd sort out a player for them.

The impetus is strong in this one

My first real bit of programming.
I dug out a little 68000 assembler book that I'd got from somewhere and for the next two weeks, I sat on the train every morning with a pad working out the logic and writing assembler code. Although I'd had a go at messing with little example bits of assembler code written by Brian Postma, Amiga and assembler programming still never really sat right with me. That was until around the third day, when I was on the train and the metaphorical lightbulb switched on in my head. I literally exclaimed, "Oh!" and then it all suddenly made sense to me. I've read many reports of other people having the same sort of programming epiphany.

The player worked in the manner in which I thought was surely how everybody did it, but in my naivety I made something that was far more advanced. For my player I set priorities on each sound and roughly calculated the play position during playback.
A gobbledygook box
Whenever a new sound was played it would check the current channels to see if any were free and if not only play if the priority of the new sound was higher than all of the currently playing ones. It was only later that I realised that nobody did anything like that. Everything else either used a round-robin mechanism or just played on one channel, stopping the existing sound when the next one came in.

During this period, Martyn Chudley (founder of Bizarre Creations) was sitting in the corner programming Wiz'n'Liz on the Sega Megadrive (aka Genesis). That got me thinking, why don't I write a music player for the Megadrive? It uses the same 68000 processor as the Amiga so it should be pretty easy, no?

And so, flushed with confidence at my new-found programming ability I asked one of the producers to get me the Megadrive hardware reference manual so I could have a bash at it. When it arrived, I eagerly turned the pages and was presented with such gems as:
To write to Part I, write the 8 bit address to 4000 and the data to 4001. To write to Part II, write the 8-bit address to 4002 and the data to 4003.
CAUTION: Before writing, read from any address to determine if the YM-2612 I/O is still busy from the last write. Delay until bit 7 returns to 0.
CAUTION: in the case of registers that are “ganged together” to form a longer number, for example the 10-bit Timer A value or the 14-bit frequencies, write the high register first.
I had absolutely no idea whatsoever what I was looking at. All I really managed to understand was that there were 22 registers and to use them you had to decipher a load of gobbledygook. I sat there going through it for about 2 hours, prior confidence abandoning ship, and got absolutely nowhere. Defeated, I gave back the manual, explaining that it was too complex for me.

Next up: FMV, The FM Towns, Mega-CD and Super Nintendo.

No comments:

Post a Comment