Future Video ideas

In general, these future ideas move into a dual-microcontroller concept. I've realized that running everything from one microcontroller will quickly become more complex than I'd like. By separating responsibilities, each piece becomes nice and well-defined. Same as software design! (c:

Many of the diagrams will be conceptual, so don't look for a lot of accuracy. Actually, if I scanned the original sketch, you would find that they were done while coloring with my son and are colorfully done with magic markers. Gotta grab time when I can!

Dual RAM video buffer

Block diagram Switch to two RAM video buffers, one video buffer is displayed while the other is updated. Note that the "bus switch" is not a discrete component (that I know of), so don't go running off to buy one!

(Sorry, the bullets are broken if an image is left-aligned. Go figure!)

On the positive side:

  • - Updates are trivial since no timing issues exist.
  • - Improved resolution. If the address counter is driven at ~25MHz, 640 horizontal pixels could be achieved. The limiting factor becomes RAM.
  • - Conceptually, sprites would be simpler. However, tracking the background as separate from the sprites might require three video buffers. Background resides in one buffer and both the update buffer is initially loaded from the background prior to drawing the sprites. This resolves the replication issue, but adds complexity in multiplexing between three different sets of RAM. And, they do need to be different pieces of RAM - the active buffer will be continuously read while the update buffer is read and written to.

On the negative side:

  • Need to replicate the video buffers before swapping the active with the update buffer.
  • Probably addes quite a bit of wiring/circuitry to support an A/B (or A/B/C) "switch".

Single RAM video buffer

In essence, this uses a single video RAM buffer. Control is managed by the video timer as to how the buffer is being used. When the screen is being painted, the graphics controller must wait and needs to queue up commands.

No pictures (yet). I need to find my sketches and make a diagram.