I'm currently emulating a VGA graphics card by plotting a pixel in 3 stages (pixel collection from graphics/text mode, attribute controller processing, dac rendering), taking about 15 microseconds (b/w operations) to 25 microseconds (256 color operations (using graphics mode, no attribute controller processing and simple 2-value (RGB(0x000000) and RGB(0xFFFFFF)) DAC).
The pixel are currently processed one at the time, row by row until the end of the screen, where it is resized and rendered to the display (takes about 50-75ms per frame).
Is there a better way to do this (which is faster)?
Most non-dynamic (pixel coordinates independant calculated) values are already precalculated when written to by the CPU.
I can't seem to find any guide on the internet that has at least some information about how the emulated screen is handled. Anyone got some links or info?