Here’s an interview with David Fox, the creator of “Ballblazer” and “Rescue on Fractalus.”
He talked about using the Lisp-based assembler. He said it was used successfully at least for Ballblazer, but its code production was so slow that they chose not to use it for their other games. It was a neat factoid to find out about this cross-assembler, though.
Another neat factoid is they used an Evans & Sutherland graphics system to do some of their beta testing for Ballblazer; I think he said using wireframe graphics.
The game was downloaded to an Atari 800 through a serial port connection for final testing.
Whenever I read stories about how system software for microcomputers was developed, I always read about the dev. team using this method of using a more powerful system to do it. It makes sense. While the hardware is being developed, you don’t want to be writing your system software on it. You want to use a more stable system for development, emulate the target platform on it, using cross-compilers and assemblers to generate your object code, and transfer it when the hardware is ready for testing.
It was more recently that I learned that it was common practice to do this with commercial application/game software, as well. When I learned 6502 assembly some years back, I read in the Atari Assembler manual that it was not written for development of professional-quality software. It said:
The Assembler Editor cartridge is designed to support intermediate-level assembly language software development. It is good enough in this function to be used by Atari’s own programmers for some system development.
The Assembler is powerful, and can do a great deal, but it is not a professional software development system. It is not well suited for development of large assembly language programs. A good rule of thumb is to take the amount of RAM you have in your system and divide by ten to find the largest amount of object code you can comfortably develop with this cartridge. Thus, an Atari personal computer system with 16K RAM can be used to develop object code programs up to about 1600 bytes in size.
This was due to the fact that you, of course, edited your source code in RAM, which took up a lot more space than the object code. Though, this assembler was capable of assembling from disk, so you didn’t have to load all the source code into memory, if you were just generating object code.