Aktualności Forum Giełda Sprzęt Programy Strefa Gier Graffiti Publicystyka Teleport
  • Interview with Richard Costello - coder of "Mortal Kombat", "Primal Rage", "Terminator 2", "Golden Axe", "Gauntlet 2"

02.07.2011 13:55, autor: Benedykt Dziubałtowski
odsłon: 14980, wersja PDF

Hi, Richard! I was really happy to hear that you agreed to this interview. At the beginning I would like to ask you to say a few words about yourself.

Mortal Kombat I started programming computers when I was 15 at school. After college I worked at Loughborough University where I met a guy called Stuart Gregg who had a friend who wrote computer games. Stuart went to work for Gremlin Graphics and recommended me and I started there as an Atari ST development programmer. I went freelance in 1989 and am still "on my own". Using the computer games income I went motor racing as a driver (cars) and during that time became a motor racing instructor. Today I work as an instructor at Silverstone and many other circuits plus produce custom applications and websites, with a bit of graphic design too.

When did you have your first contact with computers?

I was part of the first generation (in the UK) to leave school at 16 with some computer experience. My Maths teacher had an after school club for programming in BASIC with a Tandy TRS80 and we used a local university main frame too. Within 2 years of me leaving school all schools in the UK had BBC Micro's and the IT revolution had started. I did A'level Computer Science and self taught myself 6502 machine code owning a Commodore Vic 20, then a BBC Micro Model B which I still own today.

Do you remember your first contact with Amiga?

Computer show in Birmingham - UK, I saw the bouncing ball demo on the A1000.

Mortal Kombat When did your interest in programming begin?

Immediately I started at 15, although it was at college (17/18) when I worked out I was a "natural". Because compared to the others in my class it all seemed obvious to me.

What programming languages do you know?

I am rusty now, but the list I have programmed in is:

6502 Assembler
6301 Assembler
6809 Assembler
68000 Assembler
BBC Basic
C
C++
Visual Basic
ASP
PHP
Javascript

I'm really impressed that the greatest Amiga hits came out of your hand. Here I mean "Mortal Kombat" series, "Golden Axe". Please, tell me how did this happen that you'd become these games' programmer?

Whilst at Gremlin Graphics I developed code for the Atari ST. Gremlin was owned by US Gold and when they needed "Gauntlet II" producing for ST and Amiga I created them in my spare time (whilst working on the unreleased "Ramrod" game for Gremlin during the day). At Gremlin I met Kev Bulmer (artist) and Bill Allen (coder), in 1989 we decided to go freelance and produced "Hotrod" for Activision then "Golden Axe" for Probe - both on ST/Amiga. We went on to produce "Terminator 2" but then we separated because Kev wanted to build a company and I was happy working alone. Because of my contact with Probe, they asked me to produce "Mortal Kombat", and "Mortal Kombat 2" then later "Primal Rage" which was the last game I coded. By then 3D had taken hold and the Playstation had appeared. I did start to work with the Playstation but by then my motor racing was more important so IT went onto the back burner until I got into web development. Although whilst racing I created a multi car hand held timing system on Psion Organiser II's. Which used to good effect and sold a few examples to teams.

Let me ask you some questions about "Mortal Kombat". What programming language was used to create both installments?

I only ever programmed Atari ST's and Amiga's in 100% 68000 Assembler.

Were these games somehow copy-protected?

Mortal Kombat Yes, Rob Northen disklock as I recall, the code checked for flaky sectors on the disc (sectors which return different numbers each time they were read) these could only be written by a duplication machine.

What was the biggest difficulty while programming "Mortal Kombat"?

Lack of memory.

Why neither "Mortal Kombat I" nor "MK2" can be installed on a hard disk?

Because nobody owned a HDD for an Amiga at that time. Well, there were a few - but development costs would not be covered by income. Also, to use the HDD I would have had to use the operating system and all my games used EVERY byte of the machine. Keeping the OS going would have increased the memory requirement which was already at the limit.

Mortal Kombat Why "Mortal Kombat" was not created on or for Amiga 1200 in context of usage of AGA chipset and faster CPU? There wasn't also Amiga CD32 version. The capacity of CD would be sufficient to convert the game from PC or arcade systems. Exactly the same issues can be raised and asked about "Primal Rage".

The A1200 didn't exist when "Mortal Kombat" was produced, and they had only just started to appear for "Mortal Kombat 2" as I recall. So nobody really had them - the main Amiga user had an A500 with 512K upgrade or an A600. CD32 had started to appear and there was talk of developing "Mortal Kombat 2" for them but by then the format was dying anyway. To give you an idea, "Mortal Kombat" sold about 50,000 copies, "Mortal Kombat 2" 125,000 copies, "Primal Rage" 9000 copies. When "Primal Rage" was released the Amiga was dead as a commercial platform.

The games did make use of the extra memory and CPU power however. "Mortal Kombat" pre-loaded files into the extra 1 MB if you had it to reduce loading times and all the games ran smoother on the faster machines. You need to remember that larger graphics or more colours = more memory, and more floppy discs. "Primal Rage" uses every bit of an A1200 2 MB of memory. To make the graphics more attractive would have required another 2 MB really. Nobody had a 3 MB A1200 back then. Memory was always the issue, plus it was commercial suicide to produce more than one version of the game for specific formats. So Amiga games were created for 0.5 MB of ChipRam and 1 MB total - or in the case of "Primal Rage" it had to be 2 MB (Probe wanted 1 MB, but I kept telling them it was physically impossible).

It was no use using the Fat Agnus to access all the first 1 MB on an A1200 either, because all the graphics had to be stored compressed and only the 680xx CPU could realtime decompress, which it did into ChipRAM buffers for the blitter to blit to the screen.

As I said above, it was always lack of memory which was the issue.

According to Amiga HOL website, beside your name there are also some other people working on "Mortal Kombat" series (1, 2). Please, tell us what was your responsibility, and what was theirs.

Mortal Kombat Me - All Amiga code (68k) with exception of below, plus some graphics
Dave Leitch - Converted the arcade game logic 68020 into 68000 for the Megadrive (Sega Genesis) versions and the Amiga version used this code. Which I modified because of things like Shang Tsung morphing etc as above.
Jason Green - I think he did the character graphic conversions, which were processed from the coin-op graphics then hand touched up.
Terry Ford - I think Terry did the backgrounds
Alistair Brimble - produced the music and sound effects plus sound player code
Anthony Putson - Hmmm not sure if he did anything... unless he helped Alistair

Names missing:
Nic Pelling - Compression/realtime de-compression code of graphic character sets
Rob Northen - Copy protection

How much time did it take to prepare conversion of "Mortal Kombat", "Mortal Kombat 2" and "Primal Rage" onto Amiga?

It was about 9-10 months per game.

Have you ever had contact with "Mortal Kombat" creators? Here I mean Ed Boon and John Tobias.

No.

Have you ever met actors that appeared in "Mortal Kombat" games?

No.

I assume you have already seen this movie. This error appears only on Amigas with 1 MB of RAM. When did you get to know about this error? Are you able to diagnose why is this happening?

The "Mortal Kombat" and "Mortal Kombat 2" arcade machines had 68020 processors in them. So the game logic was taken directly from the coinop (given the Amiga had a 68000) but the difference between the coinop and Amiga was that everything is in memory all the time on the coinop. So the coinop code had to be modified in places to allow for the Amiga having to disc load character sets into memory as required. I would imagine this bug was caused by something being overlooked in the transfer of code from arcade machine to Amiga. It will be a data table somewhere with a missing value. The new game is then wrong because the game will assume the character is still in memory to save on re-loading. I am surprised it doesn't crash sooner!

I always wondered if there is any way to play hidden characters in "Mortal Kombat"? I mean characters like Goro, Reptile and Shang Tsung from "Mortal Kombat" and Jade, Noob Saibot, Smoke, Kintaro from "Mortal Kombat 2".

No hidden characters were included as far as I can remember. It would have meant another disc, adding 30% to the production budget.

Mortal Kombat Similarly I'm interested in mythical fatality of Shang Tsung form "Mortal Kombat 2". Shang Tsung morphs into Kintaro and kills his opponent.

As I recall, Shang Tsung had a small character set because in the arcade game he mainly morphed into all other characters. So I combined Shang Tsung's character set with Kintaro's. So in the Amiga version Shang Tsung could be himself or morph into Kintaro OR his opponent (as that character set was also available in memory). Not sure about the fatality, that may have been switched off to stop bugs given that we had to modify the game logic from the arcade machine because of the character set limits.

Is it doable on Amiga?

See this movie

Is there any possibility to replace graphics in "Mortal Kombat" and "Mortal Kombat 2"? Nowadays it is really easy to get access to the data on diskettes. Samples and music can be browsed easily, but graphics are more challenging. Can you precisely describe the way "Mortal Kombat" stores graphics data? Is it possible to replace Amiga version's graphics with PC 256 colour version equivalents using amateurish methods?

Anything is possible, but I would not recommend trying. The whole game is designed to run in 1 MB - with a very specific memory map. The character sets must be less than 256K in size otherwise lots of the game code would need to be changed. That means that any increase in resolution or colour depth would increase file sizes too much.

Also the graphic storage is very complex, as I recall:

1) Each graphic file consists of a set of 16 pixel x 16 pixel tiles. Each tile is compressed. These tiles are all contained in a single file per player. There is then a second map file for each player frame which describes the width and height in tiles plus offset of tile data in the tile file.

2) Each frame is then built accessing the map file to real-time decompress each tile into a ChipRAM buffer, flipping the tile horizontally or vertically as required and also shifting it by up to 15 pixels (using the 68k).

3) Once a complete frame has been built into ChipRAM a blit is then triggered to cookie cut the image onto the screen. This blit generates the players mask and shadow which requires the data to formatted in a certain way (3 bits per pixel) and the 4th plane is generated to ensure the correct player palette is used. Hence the display routines, being heavily optimized, rely on the source data being a certain format (8 colour). If the colour depth was changed then the entire graphics engine would have to be re-written.

See what I mean...when I say not recommended.

I've discovered a really interesting effect in "Mortal Kombat". When the blood is turned off using cheats, some characters have totally different fatalities, eg. Johny Cage instead of decapitation is doing cyber kick that throws the opponent outside the screen. Or Kano - he's ripping out a diamond instead of a heart. Is this a censorship's side effect or a deliberate move?

Mortal Kombat I imagine it's deliberate censorship, no blood also = no horrible stuff. The main market where no blood was required was Germany, they are very heavy on it there. The Amiga version wasn't really restricted, they just wanted blood off as standard but then leaked the switch to turn it on with the launch of the game. I personally created the pulsating heart that Kano rips out in "Mortal Kombat", so the Amiga is the only version to have this. The graphic supplied from the artists which was processed from the arcade game came out looking like a brown purse. So I re-coloured to use the blood shades and did a 4 frame 0-1-2-1 standard loop frame animation to make it pulse. lol

Do you remember clear way how to start fighting against Smoke? Many people ask about it because it is not clear.

It will be buried in the arcade machine code (game logic) - I didn't really touch any of that.

Why characters' AI was so simplified on Amiga version of "Mortal Kombat 2"? Each opponent can be easily defeated even on the hardest difficulty level. Jumping back and pressing fire in the right moment is enough. It doesn't work in PC version and coin-up version. Was it the lack of power of 68000 processor?

No...the game logic came straight from the arcade machine because the arcade had a 68020 CPU. It was modified slightly because of changes to characters and 68020/68000 but effectively it's the same as the arcade. The PC version would have been a hybrid game logic written in C++ or 80x86 so not the same as the coin-op. A 68000 CPU was the best processor of its time, much better than 80x86 architecture. Motorola only gave up the 68k line because IBM selected Intel chips for the PC and the PC won as a platform because its architecture could be copied - not because it was better than anything else. Intel have spent the last 25 years trying to cope with the horrible architecture they are stuck with. PC's would be much better if they where an evolution of the 68k rather than 80x86.

If you could, what would you change in code and in design of "Mortal Kombat" and "Mortal Kombat 2"? You mentioned about modified Kano's fatality. Is there anything else or something you would like it to be? Or maybe you were given an option to do some changes but apart from Kano's modification you didn't take this opportunity?

Would have been nice to have the time to use copper splits to increase available colours for backgrounds, but apart from that I was pretty pleased with "Mortal Kombat" and especially "Mortal Kombat 2".

From the programmer's point of view, if you were given another chance to take part in creation of "Mortal Kombat" and "Primal Rage", would you rather convert the code or rather write everything from scratch?

Well ... Everything that I did was written from scratch, and that is always what I like doing the best.

Which character you liked playing the most? Which fatality you liked the most?

I didn't really play the games I created, no time during development and once complete I was sick of it :)...game testers used to play the games.

Mortal Kombat I sent you the scan of polish games magazine "Secret Service". The magazine published screenshot of not released version of "Mortal Kombat 2". As you can see, there are eight players fighting simultaneously. Is it simply a fraud or it was really possible?

They have created the picture by capturing a few games then overlaying them to create the full backdrop - it's just a pic for the magazine. 8 fighters could be possible on arcade machine, not on Amiga (not enough memory and too slow).

Take a look at the attached image one more time. In a top right corner you can see Jax fighting with Scorpion in DEAD POOL arena. "Secret Service" magazine announced a competition to finding the way to open the door shown on this image. Is it possible to open these doors or it was just a decoration?

In Amiga = decoration. In my opinion it was a decoration in the arcade machine too.

In "Mortal Kombat", when we throw defeated opponent from the bridge, he is falling on the spikes. In PC and Coin-Up version, besides the spikes, there are also bodies of killed people. What was the reason of removing those bodies from Amiga version? Was it lack of memory or censorship?

Artist probably ran out of time to draw them in - or just didn't bother and nobody noticed at the time. PC version was 256 colour so I imagine the background was just converted from arcade machine graphic (probably 64 colour). Because Amiga was 16 colour (actually 12 I think, because the score panel used some of the background palette colours) they had to be re-drawn.

Primal Rage In coin-Up version of "Mortal Kombat" a very interesting trick was possible. It was possible to shoot down the moon in The Pit arena. Was it removed from Amiga?

I imagine it was removed from the arcade game logic for the Megadrive version (by Dave Leitch) - I didn't remove it from Amiga, but it doesn't happen because the background is a static picture.

When "Mortal Kombat" was released on Amiga, 8-bit computers were doing well (at least in Poland). Here, I mean, C64 and Atari. Was there any plans for "Mortal Kombat" to be released on these platforms?

No. By then in the UK major titles were no longer being developed on 8-bit machines. The game would have been completely different on 8-bit, consider that the code alone was 4 times the size of a Commodore 64's memory... At the time of "Mortal Kombat" in the UK the games market was Amiga plus the consoles (Megadrive, SNES) etc.

Primal Rage It was possible for three players to play "Golden Axe" on coin-Up. On Amiga only two players could play. Was it the lack of memory?

Lack of memory, only 2 controllers (as standard) - but it could have been done (just).

What was the reason of the lack of "Mortal Kombat 3" Amiga version? Was it poor sales volume of "Primal Rage" or maybe some other reason?

Amiga was no longer a viable platform - commercially it had ceased to exist.

Have you ever heard rumors about creation of "Mortal Kombat 3" on Amiga? Was it even considered and you were considered as a coder?)

It was considered, and I would have been the one to create it. But as I said, the Amiga was dead as a commercial platform by then.

What were you doing after finishing work on "Primal Rage"? You mentioned about writing games on Playstation.

I spent 2 months reading up on and playing with Playstation development system, but the company I was working with (Dementia - Kev Bulmer who I left Gremlin with) changed what they were doing so I stopped working on the platform. At the same time I had started being a Motor Racing instructor and I would have needed to work hard on my 3D maths for the future of consoles. I also love writing code in assembler (I looked into MIPS R3000 for the PS1) - but all the development tools were designed around coding in C++ which I wasn't really interested in so I went motor racing instead. A few years later I went for a job at Rare (Nintendo) who were not far from where I lived - to program consoles but in the end I decided to stay freelance doing what I was already doing.

Are you in possession of any kind of material from games you worked on that you could share with the community and make it public?

Primal Rage I still have all the source code and development tools that I have ever used. I don't own the rights to the code though, and some of the code was written by other people. I have shared bits with a forum on the net. Having said that, I may sell my old Atari Mega4ST on eBay soon - and if I do I might accidentally leave all the source code on its hard drive ;)

Do you know, who is the owner of rights to games made by Probe? Is there any chance that "Golden Axe", "Mortal Kombat" and "Primal Rage" will be available on freeware license?

I doubt it. The rights to the code will be with the original creators and publishers. "Primal Rage" was an Atari coin-op and I think "Mortal Kombat" was Midway. Acclaim published the home versions. So they own the rights. There has been a lot of legal activity relating to arcade game source code in recent years. I think initially nobody was interested in old code. But now many realise the value of porting old games onto mobile phones etc ("Pacman" on iPhone) so I think they are being more careful now.

Do you still have Amiga? If yes - do you use it?

A600 with 1 MB of RAM. I get it out about one every couple of years to play old games I created - but now most of them are on YouTube so I can just watch those :) I also have a BBC Micro B and Atari Mega4 ST and the PC keyboard I used when creating "Mortal Kombat", "Mortal Kombat 2" and "Primal Rage".

Aren't you surprised by unabated popularity of "Mortal Kombat"? It's been 16 years since "Mortal Kombat 2" appeared and unexpectedly someone asks you for the interview.

Not really, all areas of interest include people who are interested in the past and memories. I like historic motor racing and old circuits. I also love old arcade games - 8 bit ones like "Space Invaders", "Tempest", "Pacman" etc they were all about when I was a kid.

What games have you made on Atari ST?

"Gauntlet II", "Ramrod (unreleased)", "Hotrod", "Golden Axe", "Terminator 2", "Motorhead" ...think thats it... ST was not powerful enough for "Mortal Kombat" or "Primal Rage" and by then Amiga was main format along with consoles (Megadrive and SNES).

Have you ever been to Poland?

No, nearest I have been is Lausizring in Germany (near Dresden). Plus, I have flown over on way to China I imagine :). One day I would like to tour Europe taking in all historical landmarks so maybe I will one day.

Is there anything you want to add at the end of this interview?

Been a pleasure, hope it's been interesting.

Podziękowania dla Mateusza Rynka za pomoc w tłumaczeniu pytań (Thanks to Mateusz Rynk for the questions translation

    
dodaj komentarz
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem