Possible dithering issue - PSX owner needed!
Posted: Thu Jan 20, 2022 6:52 pm
While playing with PSX core, as one does, I notices something strange in module called gpu_pixelpipeline. In table used for dithering pattern when I summed all values in any given column gave -2, -2, -2 and -2 respectively and when summed values in rows I got -6, -2, -6, -2. If SONY engineers wanted to utilize blur caused by composite video output to make dither patterns less visible they would rather make adjacent columns of pixel have biggest color difference and keep sum of the values in rows the same so that each scanline has the same brightness. Compared to how it is now implemented in PSX core they would rotate this table and make sure each line was the same brightness overall.
And sure enough when I made test build it gave better results. On first glance dither patterns look pretty much the same. There is however much less false-scanlines, especially when using some form of blending. To me it looks like a PSX core bug and dither pattern table should be rotated. Unfortunately I do not have real PSX at hand to test my hypothesis.
Images on internet are inconclusive and besides often people use emulation which is no good for comparison. Also is it true that different PSX models used different dithering patterns? If that is true then perhaps we should have option for dithering pattern?
And here some random Silent Hill on PSX photo I found. Not sure if from real hardware but I guess that yes.
I made build with such option and four choices. Last one is my 'Genesis' dithering simulation. It is actually better for the smart blend feature I am developing. When blended it gives pretty much the same image as imho original pattern except for some edge cases where it has less artifacts. In any way it is cool to see "what might have been" if SONY used different dithering pattern. On composite it would look pretty much the same even if they did and on RGB it would look more like Genesis on RGB. I actually like it more than checkerboard with diamonds that SONY used
ps. values for rotated table
ps2. @PSX owners
Which version of the pattern, current in PSX core or rotated (called "PSX?" in my build) looks like real hardware?
And sure enough when I made test build it gave better results. On first glance dither patterns look pretty much the same. There is however much less false-scanlines, especially when using some form of blending. To me it looks like a PSX core bug and dither pattern table should be rotated. Unfortunately I do not have real PSX at hand to test my hypothesis.
Images on internet are inconclusive and besides often people use emulation which is no good for comparison. Also is it true that different PSX models used different dithering patterns? If that is true then perhaps we should have option for dithering pattern?
And here some random Silent Hill on PSX photo I found. Not sure if from real hardware but I guess that yes.
I made build with such option and four choices. Last one is my 'Genesis' dithering simulation. It is actually better for the smart blend feature I am developing. When blended it gives pretty much the same image as imho original pattern except for some edge cases where it has less artifacts. In any way it is cool to see "what might have been" if SONY used different dithering pattern. On composite it would look pretty much the same even if they did and on RGB it would look more like Genesis on RGB. I actually like it more than checkerboard with diamonds that SONY used
ps. values for rotated table
Code: Select all
(-4, +2, -3, +3),
(+0, -2, +1, -1),
(-3, +3, -4, +2),
(+1, -1, +0, -2)
Which version of the pattern, current in PSX core or rotated (called "PSX?" in my build) looks like real hardware?