Syphon Filter 3 - PAL version "glitchy" dither pattern

andshrew
Posts: 3
Joined: Sat Jan 21, 2023 1:01 pm
Has thanked: 2 times

Syphon Filter 3 - PAL version "glitchy" dither pattern

Unread post by andshrew »

I preface this post by saying this isn't an issue with the PSX core, rather I think an issue with the PAL version of the game. I thought I would ask this question here in the hope of finding someone knowledgeable on the subject of PSX dithering that may know what is going on.

With an emulated version of Syphon Filter 3 releasing on PS5 this week I was comparing the NTSC and PAL versions of the game to see how they differ. I noticed that the PAL version of the game had a visually very "noisy" image compared with the NTSC version. I initially thought perhaps this was an issue with Sony's emulator, but I compared with the PAL version running on Mister (and other emulators) and found the same defect.

I've tried to capture this from the Mister to demonstrate what I'm seeing

it seems that the dither pattern on the PAL version is very jumpy / glitchy / wobbly compared with the NTSC version which is static. This was captured with the stock settings on the PSX core.

Obviously I can disable dithering and enable 24bit rendering (or just play the NTSC version) and the issue goes away, but I'm curious as to what the actual issue is. Are there any other examples of PAL games having this problem with dithering?

Testing further with DuckStation I noticed you could mitigate the issue by using it's scaled dithering option (which "scales the dithering pattern to the resolution scale of the emulated GPU") - which makes me wonder if this is just another example of an issue introduced during the NTSC to PAL porting process (eg. they included the "wrong" dither pattern for the resolution which the PAL version would run at).

FPGAzumSpass
Core Developer
Posts: 380
Joined: Sat May 23, 2020 12:55 pm
Has thanked: 38 times
Been thanked: 383 times

Re: Syphon Filter 3 - PAL version "glitchy" dither pattern

Unread post by FPGAzumSpass »

The dither pattern is fixed for each x/y position on the screen, so the pattern itself is impossible to change.
This pattern has a size of 4x4 pixels and repeats itself.

The game does use 2 framebuffers to render the image and shows them alternating.
These framebuffer start at x=0, y=0 for the first and x=0, y=255 for the second.

Due to this y = 255 not being dividable by 4, already makes clear that both framebuffers will not apply the same dither pattern.
So what you see is a different dither pattern with the games framerate, e.g. 20fps at the spot i tested.

Now why is it only in the PAL version? The developers decided to let the PAL version have a higher vertical resolution.
The game runs with 254 vertical pixels in PAL, which is impossible in NTSC. I didn't try the NTSC version, but likely it's 240 pixels height with the second framebuffers starting at y=240

Now could this be fixed? yes! By removing 1 line of the game, it could run at 253 vertical pixels resolution , with the second framebuffer starting at y=256 instead.
Maybe a cheat would be enough to do that, maybe it needs a patch in the game itself.

I hope that little analysis was helpful :)

sp3PAL.png
sp3PAL.png (3.38 MiB) Viewed 1063 times
andshrew
Posts: 3
Joined: Sat Jan 21, 2023 1:01 pm
Has thanked: 2 times

Re: Syphon Filter 3 - PAL version "glitchy" dither pattern

Unread post by andshrew »

That's really insightful, thank you for taking the time to explain it.

Now that I know what to look for you're correct that the NTSC versions framebuffer is going from (x=0, y=0) to (x=0, y=240).

Interestingly the same issue appears to exist in Syphon Filter 2, but not in the original Syphon Filter. In SF1 the PAL version is going from (x=0, y=0) to (x=0, y=256) and as far as I can tell that game is using the same resolution / display mode as SF2 and SF3.

Would it be fair to describe this as just an oversight by the developer during the PAL porting process? Perhaps the issue wasn't as noticeable when played on a CRT TV.

FPGAzumSpass
Core Developer
Posts: 380
Joined: Sat May 23, 2020 12:55 pm
Has thanked: 38 times
Been thanked: 383 times

Re: Syphon Filter 3 - PAL version "glitchy" dither pattern

Unread post by FPGAzumSpass »

yes, probably not very visible on a CRT.

The reason why they likely put it to 255 and not 256 is the color lookup table you see in the last line (blue to yellow)
There is no space to do 2x256 height with this line and maybe making the framebuffer smaller was the "easy fix" and they didn't think about the issue it causes.

andshrew
Posts: 3
Joined: Sat Jan 21, 2023 1:01 pm
Has thanked: 2 times

Re: Syphon Filter 3 - PAL version "glitchy" dither pattern

Unread post by andshrew »

I see, that could explain it then.

Thank you again for taking the time to provide some insight into this.

Post Reply