Tuesday, February 02, 2010

C Compilers for 68000

Reading The Making of Gauntlet, I was interested to read the following comment:

With the switchover from the 6502 to the more capable 68000 microprocessor, the development environment at Atari had changed considerably. “We were actually entering our own code at this point. Our development tools changed, too. We were now programming in C instead of assembly language,” says Logg.

Was the game really programmed in C, as opposed to assembler, back in 1985 or is Ed Logg remembering this wrongly? Firstly, the Gauntlet hardware consisted of a 68010 CPU (not the 68000), with a 6502 for sound. Secondly, C compilers in the mid-80s weren't as robust and optimised as today. I can envisage a front-end or name entry screen being programmed in C. But I would expect the majority of the game engine to be assembler for performance reasons. Especially when the article mentions that optimisation was required to ensure the game ran acceptably with so many characters on-screen.

Does anyone have any thoughts on this?

1 comment:

Laurent Giroud said...

I can think of several ways of using even a weak C compiler in the context of arcade game development:

1- to more rapidly develop and validate a prototype of the game before conversion to assembly.
2- to build in-game debugging tools which will be removed for retail builds
3- to code the skeleton of the program and high level routines for which optimization is not necessary

It's always simpler to optimize something which is generic than to make generic something which is heavily optimize so going from C to assembler only when performance requires is very sensible.