Recently found an old message from 1989 where Dave Theurer talks about I, Robot. I don't recall where I originally got this from, usenet RGVAC maybe?
I was the programmer/game designer/artist/sound person on it, and Dave Sherman was the hardware designer/microcode programmer. It's hard to remember much about the game since we finished it way back in 1984 and have done several others since then.
6809 processor: game program, sounds, slave processor feeding and control, passing of hierarchical 3D object descriptions to math box, control of "camera" (viewpoint) and light sources, object clipping, sorting (pseudo z- buffering) and collision, double buffer management, memory management, sound creation (with the help of Atari 800 pokey chips), etc.
"math box" processor: 2901 based microcode for transformations and low level display list creation. Also handled creation of display list for terrain. Does matrix multiply in 50 microseconds.
Video processor: TTL based; converted low level display list (points, vectors, and polygons) to video.
Alphanumeric stamps overlay.
256 wide x 240 height x 6 bits deep (64 colors)
However, due to a hardware trick, effective horizontal resolution was increased to 512.
Color registers: 4 bits each for red, green, blue and luminance (16 total).
It took about 2 years from start to production. It started out as a 3D driving game (like our new game Hard Drivin') where you drove down the road, stopped at shops alongside the road, and went in. Sometimes in the shops there'd be a video game which you could play. But this whole concept required too much time and storage, so we redesigned it as I, Robot. Doodle City was added to entice video game haters (girlfriends) to put in their money but I doubt that many ever even knew of its existence, and I've never seen anybody who got good at all the powerful 3D functions offered on the Doodle City menu screen.
Written in 6809 assembly code, using structured macros (begin/endloop, if/then/else/endif, for/endfor, etc).
I don't remember how much memory it took for the program and for working RAM. It seems to me it was around 48K for the program, about 1K for working RAM, ??K for the display list buffers, and ??K for the graphics files.
The math box did the matrix calculations. The 6809 did all the other math. The 6809 would decide the objects to be contained in each scene, or frame, then build a sorted list of the objects to pass to the math box. It would also set up the viewpoint parameters and other miscellaneous parameters. It would then call the math box, which would build a lower level display list of points, vectors and polygons. When it was done, it would tell the 6809 so. The 6809 would then see if the video processor was ready for action. When it was ready, it would tell it to get to work on the new display list. Everything was double buffered, so none of the processors spent much time sitting around idle. The 6809 had quite a job directing traffic, trying to keep everybody fully occupied, and handling frame overruns. The frame rate was flexible, but was usually around 18 frames per second.
An old email from 1997 I recently found where Owen Rubin talks a bit about I, Robot. Excerpts recorded here for posterity.
> > It started, if I recall, as a driving game in 3-D, but didn't work well.
> Wow, interesting!
Was actually quite interesting. There was a car and a hilly terrain made out of the polygons. There were some problems making the car 'clip' over the hills, and of course, if your driving that car, you want to be able to see it at all times. Then of course, what game do you play? The hardware could NEVER do something like SF Rush or the like, so it would have to be simple. On the other hand, it was REAL 3D, not the quasi-3D done in today's driving games. This was real polygons being translated and projected in real time. Was quite cool.
> 1) IR prototypes/test versions
I do not recall, I do not think it ever went out as anything other than IR. However, the doodle mode was added late in the development, so games without that are prototypes. Also, it was moved into the Major Havoc cabinet late (because Mark C and I did not meet our release deadline on MH, and IR needed a cabinet, and there it was sitting in the lab we shared! *SIGH*
> 2) vector prototypes/test versions (since Owen worked on MH)
IR was never done as a vector game, at least as far as I recall. Dave S was working on the hardware, which we all called Mondo Condo because the RAM chips on the development board were stacked upwards about 10 high and wired that way. The prototype boards looked like they had little apartment or condo buildings on them. Somewhere back in development, the game board was so large, they started calling all his designs 'Mondo". Then, the ram stacks added the "Condo". Designs after IR were called Super Mondo Condo and the like!
> Another Dave Sherman "crazy, mondo" hardware design.
It took a long time.