3 ms·
More or less yes, but it's more than one register. The video output as the scanlines go across is built up from a number of registers. Three registers encode a
by mjn 12y ago
More or less yes, but it's more than one register. The video output as the scanlines go across is built up from a number of registers. Three registers encode a 20-bit "playfield graphics" layout (blocky background graphics) for half of the current scanline; four registers are higher-res sprite-like things (2 "sprites", 1 "ball", and 1 "missile"), which also do other things like collision detection; etc. You typically do useful work rather than a NOP-loop, though, and just carefully arrange it with cycle-counting, since there aren't many cycles to spare.
An even more minimalist design where you just have one register, the next pixel to output, wouldn't work because the CPU isn't fast enough to update it: the electron beam outputs 3 pixels per CPU cycle, and of course many instructions take more than one cycle, too. Instead an auxiliary microprocessor, the TIA, is clocked 3x as fast as the main CPU and does the real-time compositing of these various registers into the one value to output.
All the details you could want are in the Stella Programmer's Guide, a 1979 guide/manual that resurfaced on the net: http://alienbill.com/2600/101/docs/stella.html http://alienbill.com/2600/101/docs/stella.html
There is also an interesting book looking at a few case studies (one per chapter) of how the Atari's weird hardware influenced the design of some of its games: http://mitpress.mit.edu/books/racing-beam http://mitpress.mit.edu/books/racing-beam