The VGA software generation from a chip is quite simple as well as quite tricky to achieve.
Simply said, to output a vga signal, you should think of it as a
Cathod Ray tube, scanning from top left to bottom right in lines, and
being shut during getting back to left or back up to first position, as a
Z pattern (let’s thing progressive scan here).
Then, to output a VGA signal, you need to generate three varying red,
green, and blue signals (as 0-0.7 volts, 0 meaning black and 0.7 full
color), as well as H sync (to tell the tube to go left) and V sync (to
tell the tube to go to top right info)
Nice tutorials are available, so instead of copying and paraphrasing
them here, I’ll just link to them. Great links for VGA and Video signal
generation are :
- and finally a GREAT tutorial for video generation : http://www.lucidscience.com/pro-vga%20video%20generator-1.aspx
- A search engine using “VGA signal timings” terms by example
Composite is a little trickier with separate luma+chroma
The principle is very simple, what can be tricky is having the timing
perfectly done (or not too badly done) because you’re trying to
generate three 20MHz signals on a microcontroller … as well as
(hopefully) running a simple game !