VOGONS


First post, by sithlord2

User metadata
Rank Newbie
Rank
Newbie

Hi,

Some Sierra games like Space Quest 5 came with both a VGA driver (which I assume is just regular 320x200 mode 13h) and an EGA driver than ran in 640x200 resolution. This EGA driver "dithered" the game graphics to 16 colors.

My question is, EGA also has a 320x200 16-color resolution. Why did the Sierra driver ran in 640x200? Did the driver do vertical interlacing? Line doubling? And if so, why?

I'm just confused why the images don't look stretched if they doubled the vertical resolution during the dithering process.

Reply 1 of 9, by Error 0x7CF

User metadata
Rank Member
Rank
Member
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,
file.php?mode=view&id=77809

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.
file.php?mode=view&id=77810

Zooming in, we can see what has happened to make this fit the same (ish, original is not 16:10) aspect ratio:
file.php?mode=view&id=77811

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.
file.php?mode=view&id=77813
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.

Attachments

Old precedes antique.

Reply 2 of 9, by Anonymous Coward

User metadata
Rank l33t
Rank
l33t

EGA640.DRV produced some pretty amazing results. Just imagine what it could have done if the entire 64 colour palette could have been made available.

"Will the highways on the internets become more few?" -Gee Dubya
V'Ger XT|Upgraded AT|Ultimate 386|Super VL/EISA 486|SMP VL/EISA Pentium

Reply 3 of 9, by rmay635703

User metadata
Rank Oldbie
Rank
Oldbie
Anonymous Coward wrote on 2020-03-01, 11:07:

EGA640.DRV produced some pretty amazing results. Just imagine what it could have done if the entire 64 colour palette could have been made available.

Probably figured it was too slow, would have also lost 25 vertical pixels of resolution to single rows which would have looked strange

Reply 4 of 9, by sithlord2

User metadata
Rank Newbie
Rank
Newbie

I still don't understand it completely. So in mode 13h, pixels were non-square, and they appeared to be "higher". However 640x00 EGA mode doubles the width, not the height, so I don't see how the technique you described works in this scenario. What am I missing?

Reply 5 of 9, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie
sithlord2 wrote on 2020-03-01, 16:07:

I still don't understand it completely. So in mode 13h, pixels were non-square, and they appeared to be "higher". However 640x00 EGA mode doubles the width, not the height, so I don't see how the technique you described works in this scenario. What am I missing?

640x200 doubles the width of the picture, not the width of the pixels. The pixels are only half as wide, which lets them look twice as high.

EDIT: I described a very similar technique, albeit for 640x200x16 Tandy mode, in this post. It illustrates the palette you can fake with the dithering process.

Last edited by Benedikt on 2020-03-01, 17:23. Edited 1 time in total.

Reply 6 of 9, by digger

User metadata
Rank Oldbie
Rank
Oldbie

Apparently, someone made a 640x200x16 Sierra driver for Tandy 1000 computers as well:

Reply 7 of 9, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Thanks for the information! This was an really interresting read! 😀
Speaking of 640x200 modes, the PC1512 one, too. Only a few games used it, though.
http://www.seasip.info/AmstradXT/pc1512disp.html

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 9 of 9, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie
digger wrote on 2020-03-02, 17:32:

Apparently the ATI Graphics Solution supports a 640x200x16 graphics mode as well. Re: Video Emulation on VGA?

Yes, it does. And that mode has the most awkward memory layout I have ever seen:
It has a red/green page and a blue/intensity page, just like Plantronics mode, and 4x interleaving, just like medium-resolution Tandy mode or Hercules mode.
The two pages are basically the two Hercules pages, i.e. one at b000h and the other at b800h.