For the picture display on the QL I had to dig out memories of 25 years ago when I was working on image processing software as a young developer.
Now, In fact, I'm a bit at a crossroads here:
The pictures in the MS games have been treated differently in different games, apparently. For older games, the quality of the colour-reduction from 16 (palettized, nearly true color RRR GGG BBB pictures) to 8 fixed QL MODE 8 colours apparently benefits from application of the Floyd-Steinberg algorithm (That spreads the error that one pixel is off by in colour values to neighboring pixels)
This is how Mr. Guru was supposed to look like by Magnetic Scrolls (Picture taken from Q68 version):
Guru with a simple "nearest colour display" (no dithering, QL MODE 8):
See how the background details (blue carpet and green(ish) wall vs. brown door) had to vanish because poor QL simply has no proper colour left to display them. (also see the slightly different aspect ratio of the QL display - Mr. Guru looks a bit more well-fed than in the original...)
And after being run through the algorithm by Misters Floyd and Steinberg (still QL MODE 8, obviously):
Obviously, the algorithm has created a lot of dithering artefacts (nothing is for free) but was able to pick up the more subtile background details, and at least displays them as patterns. Half-tones between colours are approximated by alternating pixels, Mr. Guru seems to be a lot less close to a heart attack than before. Also the wall vs. door contrast is visible, and even some of the blue carpet is back again. If you stand back far enough, the artifacts blur into each other and give a pretty good rendition of the original colours. Note the example pictures are magnified here. (I can simply remove my glasses for the same effect - There must be at least some benefit that comes with age...)
Unfortunately, in later games, the guys at Magnetic Scrolls apparently had the same idea. And one of the main traits of error diffusion algoriths is: "Don't do it twice, or you'll get a mess". See how this mess looks like in newer games:
(Bus scene from Jinxter, Floyd-Steinberg dithering, same code as above Guru)
Because the picture was already dithered, further error diffusion flattens everything to the average red, all details are lost.
And this is how the same picture looks in MODE 8 with a more straightforward (and much faster) nearest colour display:
Note these are just two examples of many, many pictures. Some look better with one algorithm, some benefit from the other.
I am leaning towards not applying any dithering at all at the moment, even if that means some details is lost. For reasons above, and because the dithering slows down the picture display quite a bit - implementing it would probably limit the program to SGC users.
Last edited by tofro
on Sun Nov 17, 2019 10:59 am, edited 6 times in total.
ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO