Cymric wrote:
Please, do add more information on crude hardware hacks: always nice to hear how people circumvented technical limitations of the machine.
1) Horizontal Rasters
I think most people know this first one, but might as well refresh the memories:
The easiest way to produce a "horizontal raster bars" effect (like Turrican 2 let's say) on the VGA was to use a 256 color video mode and assuming you use a 200 line high video mode, you would put thick lines (2 pixels high) with color values from 0 to 100 (200/2=100 thick lines) in the background and then use palette cycling to cycle the colors from 0 to 100, so as to keep the "sky" fixed. This didn't take as much CPU time as "copying" the "sky" into place, so it was preferable. If you had a vertically scrolling playfield, then you would use more colors/lines, because as the playfield scrolled up and down, a larger area was "exposed". Of course you had to trade off the number of "raster colors" with the colors you'd use for sprites and such. Of course if you came from an Amiga/Atari background, you KNEW that you could pretty much kick major ass with just 16 colors (Bitmap Brothers anyone?), so you had almost 200 colors at your disposal for raster effects
2) Vertical Rasters
This was a much more restrictive effect, due to the stupid VGA. Basically, you would set the VGA so as to repeat "reading" from the same memory address for each scanline, therefore whatever you wrote on memory address 0 to 320 (for a 320 pixel screen), would be repeated until line 200 (in a 320x200 screen). By changing what you wrote in these first 320 bytes, you could create vertical raster bars. If you wanted more performance, you'd drop down to 16 color mode, and draw much more (scrollers!!), but your raster bars would be very crude, color-wise (up to 16 colors). Of course there are tricks: if you used a Copper-like system and syncing with the horizontal retrace signal, you could do a lot more. You could also combine palette cycling and add an animated background. I had a very nice (unfinished) intro screen that did this stuff once.
3) Dual Hardware Scrolling Playfields
Only Amiga makes it possible! But there's a crude way to force the VGA to do something close to that. Now, I'm not talking about the top playfield and the "split screen" playfield at the bottom. That split screen thing only moves up and down. I'm talking about 4 directions. This was an uber rare effect. I think the only others who have done it in a production were the Future Crew, but not 100% sure (I never bothered to disassemble their awesome Panic demo). Anyways, you would use the starting address offset register of the VGA to do the normal playfield (very much like an Amiga actually, except no DMA and such elegance, but direct CPU PIO, programmed IO). To do a second playfield, you would actually use the line size register (I forget the exact names...), and force the VGA to have super long lines, so as to cause it to start drawing from a different part of memory, as soon as the first rasterline was on screen, you would flip the size back to the normal (320 for example), and the VGA would read the "playfield data" normally. Then at the end, you'd force it again to some weird value (low? I'm forgetting at the moment), to cause it to "reset" back to the proper memory address. Needless to say some VGAs wouldn't function properly with this trick, partially because they were never meant to!!!! (you normally change the scan line pitch once, when setting up the video mode, not per horizontal scan line, during display enable!!!)
Anyways, if I remember anything else I'll try to add.
Ah, if only all the PC freaks had Amigas at that time...