MiSTer-devel / PSX_MiSTer

PSX for MiSTer
GNU General Public License v2.0
211 stars 51 forks source link

Worms Pinball (Europe) video drop out. #226

Closed ghost closed 1 year ago

ghost commented 1 year ago

Worms Pinball video will drop out when you tilt the table with square. It loses sync on weave deinterlacing and goes black on bob

Video: https://streamable.com/6lwmfb

With regards to interlaced modes are there any thoughts or proposed solutions for games that are entirely 2D? For example Worms Pinball looks pretty bad with Bob deinterlacing and of course Weave looks better until there is motion which results in objects like the pinball and other small moving items becoming difficult to see.

Toryalai1 commented 1 year ago

I cannot reproduce it. I tried the same settings as you and cannot lose sync. What vsync_adjust do you have set for the psx core? Do you have vrr enabled? Elaborate on what settings you have on the mister

ghost commented 1 year ago

I cannot reproduce it. I tried the same settings as you and cannot lose sync. What vsync_adjust do you have set for the psx core? Do you have vrr enabled? Elaborate on what settings you have on the mister

I have it set to vsync_adjust=2 no freesync enabled. Although I don't think the image shouldn't lose sync from shaking the table regardless of sync setting.

Kuba-J commented 1 year ago

I cannot reproduce it. I tried the same settings as you and cannot lose sync. What vsync_adjust do you have set for the psx core? Do you have vrr enabled? Elaborate on what settings you have on the mister

I have it set to vsync_adjust=2 no freesync enabled. Although I don't think the image shouldn't lose sync from shaking the table regardless of sync setting.

"Fixed Hblank as well as Fixed Vblank can help delivering correct aspect rations and keeping the screen in sync with e.g. shaking animations. "

ghost commented 1 year ago

I cannot reproduce it. I tried the same settings as you and cannot lose sync. What vsync_adjust do you have set for the psx core? Do you have vrr enabled? Elaborate on what settings you have on the mister

I have it set to vsync_adjust=2 no freesync enabled. Although I don't think the image shouldn't lose sync from shaking the table regardless of sync setting.

"Fixed Hblank as well as Fixed Vblank can help delivering correct aspect rations and keeping the screen in sync with e.g. shaking animations. "

Yes, That does stop the image from losing sync however this results in other options having to be altered to fix the image aspect ratio or pixel ratio which don't play well with other games. Also the 480p hack option which is really the only option I enable; disables the fixed h+vblank options so the issue still occurs.

I'm trying to avoid changing as many options as possible and leave things mostly as default, I'm not a fan of building a mental list in my head of games that require special options to be enabled on a per game basis to look good or even work correctly. I feel like that takes away from the console experience and takes you back into emulator territory.

For Worms Pinball I think it is probably best for me to wait until I get a CRT, especially for 2D interlaced games. At present there isn't really a good solution for them that gives you a good image unless some other hack or compromise can be made to draw it out progressively.

Kuba-J commented 1 year ago

Unfortunately, this will not change, which is why there are additional options to fix things like loss of synchronisation. This has been said from almost the very beginning. Unfortunately it is not possible to make everyone happy. 480p is just a hack and doesn't have to work for every game, you can't have everything. By not using fixed vblank and hblank you will probably encounter more bugs, but there is no point in reporting it. This is how it works.

ghost commented 1 year ago

The blanking options are off by default presumably because that is the most compatible setting? but you are suggesting they should be on by default?

Kuba-J commented 1 year ago

This is not an option from an Unsfae position, so it is safe to use, in order to eliminate such things. So it's all down to your preferences, I've been using these options since the very beginning when they appeared.

Kuba-J commented 1 year ago

Using some of the options also eliminates the artefacts in the right or top of the screen that are normally invisible on a CRT, but then the screen is reduced in size because of the black bars, a choice I leave to you.

This is also described here in the readme https://github.com/MiSTer-devel/PSX_MiSTer#video-output

ghost commented 1 year ago

Just for reference these pinball games also lose image sync when you tilt the table Pro Pinball - Timeshock! (Europe) (En,Fr,De,Es,It) Pro Pinball - Fantastic Journey (Europe) (En,Fr,De,Es) Pro Pinball - Big Race USA (Europe) (En,Fr,De,Es)

This game does not Pro Pinball - The Web (Europe).chd Does not lose sync when you tilt.

If I'm just retreading old problems then I'll stop.

Kuba-J commented 1 year ago

I assume that after using the fixed vblank option the problem does not occur in these games as well ?

ghost commented 1 year ago

I assume that after using the fixed vblank option the problem does not occur in these games as well ?

No I didn't test the VBlank option after Worms Pinball, I just changed the vsync_adjust to 1 which will result in a little more latency; the screen still goes black but the image doesn't lose sync.

The results of using fixed VBlank gives me a much smaller image than I'm used too. I'd rather not have that in all the games I play or have to turn it on for specific use cases. I'll just go with a solution that somewhat fits all games even if it is means the screen going black.

Kuba-J commented 1 year ago

Ok only I don't understand why you are still considering this in the context of an issue in the core , when it is precisely the use of fixed vblank that is supposed to prevent this. The problem is known , the solution for such games exists. I'm not going to explain it further because I don't think there's any point.

I would just like to add that the author of core did not decide to implement this solution permanently, precisely because of the reduced display area, he wanted to give a choice

ghost commented 1 year ago

I'm not sure I'm following what you are trying to say, You first indicate "you are still considering this in the context of an issue in the core" Then you say "The problem is known" followed by "the author of core did not decide to implement this solution permanently, precisely because of the reduced display area, he wanted to give a choice"

So it seems like you acknowledge that it is a problem with a compromised solution but you want to make some kind of further point? I already said I settled for a solution as previously mentioned. The solution for me is going to be different for someone else. I went for the one that comes closer to a real PS1 (avoiding changing options), which is to say avoiding an emulator like experience of switches and toggles to make stuff work.

I mean ultimately isn't that partly what the MiSTer FPGA experience is about? to offer a valid replacement/replica of the original hardware experience and not a just replacement for an emulator.

Anyway I'm not here to debate and only to offer reports.

Kuba-J commented 1 year ago

I have written that the solution to this problem is fixed vblank , what else don't you understand? If these cases were not known there would be no solution, and as you can see the solution exists. Let's not debase ourselves with word games , and neither do I intend to debate with you.

birdybro commented 1 year ago

Not to completely argue, but the original hardware experience didn't entail HDMI video output or having a scaler at all, and the PS1Digital certainly has some method similar to this to account for this behavior, as a result.

The fixed blanks options are there precisely because there are differences to account for with the conversion of the analog video to digital video.

RobertPeip commented 1 year ago

Fixed h/vblank is the accurate solution, but as you mentioned can lead to black bars, therefore it's not a default.

However, as long as you don't use vsync adjust 0, you will get sync drop without them on, because of the video timing being altered by the game to create the shake effect.

There is nothing the core can do: either give the game "room" to work with(black bars) or not support shake without sync loss.