BigEd wrote:
People might find
this build by Sérgio Vieira interesting - it's a Z80 machine, with one extra microcontroller performing video output and another performing video drawing, using a pair of frame buffers. (It's a detailed blog post but I think there are no public sources or documentation.)
The result is a machine with sprites and tile-based graphics, capable of the usual kind of 8 bit games but maybe also a bit more. There's a Basic too.
I saw that recently too. It's fascinating. It actually has 2 microcontrollers making up the video generator.
From what I've gathered - it's a composite video output in RGB format suitable for a normal TV SCART input. (Much easier than generating PAL) There is some fine-tuned AVR assembler reading data from an external RAM chip, throwing it into a simple 3-chanel R,2R "DAC", then out. This is enhanced though in that there are 2 video RAM banks and a 2nd ATmega which is the one doing the "pixel poking".
So the video generator ATmega (VPU) reads from one Video RAM chip, sends it to the display, and at the same time, the Picture Processing Unit (the 2nd ATmega) updates the other video RAM chip, then at the end of the frame, the 2 video memorys are swapped over, the VPU ATmega caries on generating the video and the PPU ATmega pokes the video RAM with a new frame of data.
I think the sprites and tiles are all done in software.
The resolution is relatively low - 224x192, but not that different from some colour composite video output devices on the early 80's.
The entire video unit connects to the processor via a dual-port shared RAM buffer memory mapped into the Z80's address space, although I couldn't work out how (video ram needs about 44KB)
Anyway, it's quite a nice little system - and a very novel approach to get 8-bit colour sprites & tiles at a resolution an 8-bit micro can handle.
-Gordon
_________________
--
Gordon Henderson.
See my
Ruby 6502 and 65816 SBC projects here:
https://projects.drogon.net/ruby/