http://neil.franklin.ch/Projects/SoftVGA/FAQ author Neil Franklin, last modification 2008.10.05 Frequently* Asked Questions (FAQ) for the SoftVGA video generator * not really frequent, but that is what such files are called Q: Why are you making this program? A: Desire to play around with video generation in software. Because it can be done, and is a non-trivial hack. Q: Why VGA, why not on an TV like other video games? A: Black&White TV is boring and uncool. Colour TV (NTSC or PAL) requires too much processor power for the available processors. Q: Why are you not using an FPGA (or CPLD)? A: Because while FPGA chips are an absolutely great idea, the unavoidable programming tools for these are equally absolutely awfull, and the vendors even more so, offering no publically available descriptions of the bitfiles needed, and so giving no possibility of writing decent tools, let alone tools that can run on the computer system built from FPGAs. Programming languages that can not compile their own compiler can not really be taken seriously, dito operating systems that can not compile their own code, the same applies to FPGA systems that can not compile their own definitions. For further insights look at my (for above reasons) abandoned FPGA projects: http://neil.franklin.ch/Projects/PDP-10 http://neil.franklin.ch/Projects/VirtexTools Q: Why not simply write an emulator for such an system? A: Elumators are boring, just software running on an PC, with PC screen and PC input devices. Also they never will give that real look&feel of an small and lean self-made board full of electronic components. Nor does an large noisy energy guzzling PC box have any elegance. Q: Why does this run on some funny small processor, not on an PC? A: Appart from above PC problems, PCs may be way faster, but they have an irregular and nonpredictable operation speed, due to caches. This program requires single clock cycle precise timing, so that the VGA monitor will not mess up the pixel arrangement. Q: Why an AVR, why not ? A: Because the AVR is fairly fast (up to 20MIPS), has many direct accessable registers for storing multiple colour patterns in, is nice and friendly to program, and I do not need 32bit controllers complexity. Q: Do I need any special hardware or software for this to work? A: You will obviously need an AVR prototyping board to execute this software, and an PIO to VGA HD15 adaptor for it to convert the signals. See the Photo at http://neil.franklin.ch/Projects/SoftVGA/Photos/IMG_1193.JPG for mine. You will also require an flashing adaptor supported by it, and software for that. I use an STK200 compatible PC parallel port device of own design, and the avrdude flashing software. You will also need an assembler that can assemble the source here. I use the avra assembler. Q: Where can I get code? A: The current (read: in edit, sometimes not functional) from: http://neil.franklin.ch/Projects/SoftVGA/ or: http://neil.franklin.ch/Projects/SoftVGA.tar.gz or