Posted: Mon Apr 06, 2009 7:18 pm
This book is a must-read for any old-school gamer/programmer style geeks interested in console history. It discusses in some detail the hardware design of the Atari 2600 and how that design effected the games developed for it. It addresses the topic in general, how these decisions effected the history of consoles in general, and then goes on to have six chapters devoted to six specific games.
I had no idea just how raw the system was. There's very little intermediary processing going on between the game code and the display on the screen. For all intents and purposes the game code is basically creating each pixel of the screen in time with the TV tube firing off the electron gun. Thus the title of the book, because there are no clock cycles to spare as the code has to keep up with calculating each scan line in time to get it written to the screen.
Plus the early cartridges only had 2k or 4k of code space. That's some efficient coding there to get the game to fit. Some of the tricks they used to get these games to work are quite interesting.
For example, take Yar's Revenge. You know, this game:

The neutral zone in the middle looks like random pixels, but it's not. There wasn't enough space left for good random number generation code, nor enough clock cycles between scan line to generate convincing random bytes. Another option would be to store a block of random bytes on the ROM and just display those, but that too would not fit on the cartridge. Instead, those "random" lines are actually the code of the game itself being called up for display, each address being selected as directed by the cycle counter that's running the game. I think that's brilliant.
I haven't gotten to the Pitfall chapter yet, but it's been mentioned that the layout of the 255 screens that make up the game were stored in just 55 bytes of space. That averages out to just under 1 3/4 bits of information for each screen. I look forward to reading about how that was accomplished.
I had no idea just how raw the system was. There's very little intermediary processing going on between the game code and the display on the screen. For all intents and purposes the game code is basically creating each pixel of the screen in time with the TV tube firing off the electron gun. Thus the title of the book, because there are no clock cycles to spare as the code has to keep up with calculating each scan line in time to get it written to the screen.
Plus the early cartridges only had 2k or 4k of code space. That's some efficient coding there to get the game to fit. Some of the tricks they used to get these games to work are quite interesting.
For example, take Yar's Revenge. You know, this game:

The neutral zone in the middle looks like random pixels, but it's not. There wasn't enough space left for good random number generation code, nor enough clock cycles between scan line to generate convincing random bytes. Another option would be to store a block of random bytes on the ROM and just display those, but that too would not fit on the cartridge. Instead, those "random" lines are actually the code of the game itself being called up for display, each address being selected as directed by the cycle counter that's running the game. I think that's brilliant.
I haven't gotten to the Pitfall chapter yet, but it's been mentioned that the layout of the 255 screens that make up the game were stored in just 55 bytes of space. That averages out to just under 1 3/4 bits of information for each screen. I look forward to reading about how that was accomplished.