sithlord2 wrote on 2020-02-27, 20:46:
I'm just confused why the images don't look stretched if they doubled the vertical resolution during the dithering process.
Nonsquare pixels are tricky.
Here's a 600x413 original image,
Here's how that would dither (and stretch, which is incidental because the original is not 640x400) to a 640x200 16-color (in this case, GIMP generated a 16-color optimal palette) image.
Zooming in, we can see what has happened to make this fit the same (ish, original is not 16:10) aspect ratio:
Each pixel is now the height of 2 640x400 pixels and the width of 1. In short, it has double the pixels per line of 320x200, but each is halved in width.
Each 1 VGA pixel at 320x200 can be translated to two 640x200 EGA 16-color pixels, as they both fit in the same space. The driver likely picks a 2-pixel combination that, when at a squint, the averages of the colors will most closely resemble the one VGA pixel.
After extreme blur in this picture, the conversion of full-power magenta (100% red, 100% blue, 0% green) to 2 pixels (one 100% red, the other 100% blue) can produce a purple again, though it's darkened by the black box I drew around it in the first place.
Using good dithering, this process can be even more convincing.
You can't accurately represent every single color in 256c 320x200 VGA using 640x200 EGA in this way but you can give it a good try, which is why the driver exists.
I hope I'm not talking out my rear. If I'm mistaken in some way please correct me.