Hacker News new | ask | show | jobs
by T-hawk 4650 days ago
The Atari can't control the color of the beam with much precision. The CPU doesn't directly control the beam. It writes to the TIA chip's graphics registers, which are things like the 8 monochrome bits of a sprite or 8 bits worth of playfield background. The TIA then produces the beam, still limited to its natural resources of a one-dimensional single-scanline world containing the 40 monochrome playfield pixels and two hardware sprites.

All this method could do is continually feed the 6507 a stream of instructions to write those registers. It would be like if you had enough ROM space to unroll every possible loop and inline every lookup. The cartridge still couldn't write to the TIA any faster than the 6507 CPU can. It couldn't hit a register any more often than every 18 pixels, which is how long it takes for a basic load/store pair of instructions.

The SNES Starfox chip works by drawing polygons into its own RAM then using DMA to copy them to the console's video memory. The Atari 2600 has no video memory beyond the TIA's registers, and no DMA to hit them any faster.

Unless... I don't know enough about the electrical side, but is it possible for a cartridge to disable or halt the 6507 CPU and directly drive the bus to the TIA? Then you could at least write to the TIA every cycle, yielding resolution of every three pixels. The Atari cartridge slot pinout is pretty plain though, just the 13 address and 8 data lines. Nothing fancy like a CPU halt or reset line or even a clock, and actually not even a read/write line that would be necessary to write to the TIA. It would require some motherboard hardware hacking, and by that point you're pretty much implementing an entirely new game console with an arbitrary CPU coupled to the 2600's TIA graphics chip.

(TIA is Television Interface Adaptor: http://en.wikipedia.org/wiki/Television_Interface_Adaptor )