07151129 / sh3proxy

BSD 3-Clause "New" or "Revised" License
29 stars 1 forks source link

Problems with 4K resolution #18

Open Zerobinary99 opened 7 years ago

Zerobinary99 commented 7 years ago

Setting the resolution to 3840 x 2160 in fullscreen mode results in a blank screen for me (game still running in the background). This might be due to the framerate being set to high. My monitor is running at 28Hz. Anything higher will cause this effect. With the widescreen fixes pack there's no such issue. Additionally, I can't get 2700x2160 to play properly as well. This one is supported by the game natively and runs properly when I use the game's setup. The issue doesn't occur when running the game in windowed mode.

My specs:

Windows 10 Enterprise Nvidia GTX 260 8GB RAM 3840x2160@28Hz sh3proxy 0.8.3

07151129 commented 7 years ago

Can you verify if it works with the attached build? Unfortunately, I can't reproduce the issue.

Judging by the code, the game should either use refresh rate 0 ("The run time chooses the presentation rate"), or D3DPRESENT_RATE_UNLIMITED ("The presentation rate runs as quickly as the hardware can deliver frames.").

d3d8.zip

Zerobinary99 commented 7 years ago

Sorry for the late reply. I didn't have access to the game and my 4k screen since I reported the issue. Your new build didn't just fix the aforementioned issues, but the game is running so well now, that I can run it without a jitter fix and thus avoid the issue I reported here. Thanks a lot :)

Is the fix based on version 0.8.3.? I take it that you haven't implemented it yet, because 0.9.2 is still suffering from above issues.

07151129 commented 7 years ago

@Zerobinary99 I am not exactly sure what's going wrong with video mode initialization; the process appears to be the same with and without my patches.

The build I provided in https://github.com/07151129/sh3proxy/issues/18#issuecomment-317719700 does not touch any synchronisation code at all, so I am surprised it improves anything performance-wise. Are you using v0.9.2 with the updated .ini, and do you have Enable=1 in FixJitter section?

07151129 commented 7 years ago

Now that I think of it, there's one more difference: that build also disables patching of refresh rate setting code. Can you test if this build based on v0.9.2 helps?

d3d8.dll.zip

Zerobinary99 commented 7 years ago

This new build of 0.9.2 does work in 4k fullscreen, now :)

Both builds still have the audio desynching issues that I reported here, when the jitter fix is activated, in both windowed and fullscreen mode.

Additionally, 0.9.2. introduced a new bug as it seems. Now, 2D-menu screens don't fade out as they did with 0.8.3, but are being squashed into the bottom left corner, leaving a strange vertical pattern behind until the 3D-rendering kicks in. It's similar to the issue described here.

I also have to modify my prior statement regarding the jittery-ness of the game. The 0.8.3. based build of comment #18 is still jittery, but it does seem to run a bit smoother than 0.9.2 without jitter fix.

07151129 commented 7 years ago

Thanks for testing.

Now, 2D-menu screens don't fade out as they did with 0.8.3, but are being squashed into the bottom left corner, leaving a strange vertical pattern behind until the 3D-rendering kicks in.

This must be caused by PixelationFix, although I can't really reproduce the bug :(

I also have to modify my prior statement regarding the jittery-ness of the game. The 0.8.3. based build of comment #18 is still jittery, but it does seem to run a bit smoother than 0.9.2 without jitter fix.

Are you sure there is any actual difference?

I'll have a look into FixJitter breaking the synchronisation. I'll close this issue, and reopen https://github.com/07151129/sh3proxy/issues/19.

Zerobinary99 commented 7 years ago

Thanks for testing.

My pleasure. It's the least I can do to show support for this awesome piece of software :)

This must be caused by PixelationFix, although I can't really reproduce the bug :(

I found out that this only occurs when the rendering resolution differs from the game's resolution. Furthermore, the strange effect changes from rendering resolution to rendering resolution. I prepared some samples for you so you can see the bug in action:

http://www.filedropper.com/sh3samples

Apologies for the low framerate which makes it hard to spot the effect sometimes. I also tested the effect with a rendering resolution of 4096x2048 while having the game run at 1920x1080. This caused an interesting "infinite mirror" effect in the upper left corner that was even visible during the carussel scene at the beginning of the game, but which vanished after the scene ended.

Are you sure there is any actual difference?

Probably not.After checking it out more closely, it was probably more the result of a placebo effect or wishful thinking.

AeroWidescreen commented 7 years ago

The problem with PixelationFix only occurs for me if I'm supersampling. If you're forcing anti-aliasing through your drivers, then I suggest you turn it off and downsample through the game instead. You can do this by using a multiple of your display resolution as your render resolution. If done correctly then the results should be about the same as supersampling, but without any defects. Or you could try multisampling instead.

That's all I can suggest because I'm not sure why it happens either.

Zerobinary99 commented 7 years ago

AA is set to be application controlled. Anyway, I don't see how this would cause the bugs above. As for your downsampling advice: I'm running the game on a 4K monitor on an 8 year old GPU. Trying an integer based downsampling from an 8K resolution would probably cause my card to melt down for an effect that would probably be barely visible. I don't have an issue with aliasing in that game in the first place.

AeroWidescreen commented 7 years ago

Like I said I don't know either, but enabling SSAA is the only way I'm able to reproduce this bug at 1080p or any resolution below that. The PixelationFix simply subtracts 0.5 from the render res, so unless the creator of sh3proxy implemented this feature differently than the widescreen fix (unlikely), then I'm out of ideas as to why this problem occurs for you.

Zerobinary99 commented 7 years ago

Ah I see. Well, knowing that it's being caused by not setting the rendering and display resolution to the same values is at least a way to circumvent the problem. I'm sure 07151129 will fix it eventually. I'm in the lucky position to still being busy with SH2, so I'm keeping my fingers crossed that SH3proxy will be fixed when I finally get to play SH3 for real. :)