Updated: Apr 8, 2022
As I am working on my VGA card build, the next step for me is to improve the accuracy of the color output -- well, as accurate as I can get it with 8 bits for color.
I added support to my 65816 assembly to fill regions of the screen. I also added support for a 5x7 fixed-width font. From there, I created a dynamic test pattern. In the video below, I am running the test pattern in both my 65816 emulator and also on the actual 65816 and VGA hardware. Ideally, the actual output would better match what is seen in the emulator.
I took a stab at initial values for the VGA output resistors (RRRGGGBB), and I see that some tweaking is needed. After I get 1.1 revisions of my 65816 motherboard and VGA memory daughter cards, I will see what I can do about the stray pixel (likely caused by reading from a dual-port SRAM address at the same time that address is being written to). I am also hoping to increase the speed with my 1.1 PCB updates (~8 MHz seems to be the limit for my VGA at the moment).
I also plan to implement a video frame buffer in extended RAM, where I can render content (e.g., the test pattern screen) to the buffer in RAM, then use the 65816's MVN operation to copy the buffer to the video card memory.
My initial resistor configuration used in the video above:
A few quick experiments...
Updated resistor configuration:
The blues are still a bit hot. After adjusting the blues:
In the photos above, ignore the moiré effect; one picture is taken from an elevated angle to reduce that effect. Also, the LCD seems to have a filter on it that assumes the viewer is slightly above the LCD, so it looks a bit better from a slightly elevated position. Same output, captured from my Nikon:
Capturing quality photos of an old LCD screen is easier said than done! 😐
With some moving content: VGA for 65816: First Run at Moving Content.