Banz99 / Final-Fantasy-Type-0-Hd-Unlocker

Asi plugin that inject custom resolutions and framerate into the game.
43 stars 3 forks source link

Wrong aspect ratio with multi-screen setup #17

Open J-64 opened 7 months ago

J-64 commented 7 months ago

I have two screens connected to my PC, an ultrawide monitor (3440x1440) and a 4K TV (3840x2160). If I tell Windows to only display to the TV, the game works fine when using the mod. However, if I tell Windows to extend my display to use both screens, it seems like it's trying to use the monitor's aspect ratio even though it's displaying on the TV, resulting in a lot of blank space on the left, and the right side of the image going off screen.

Type0MultiMonBug

This issue doesn't occur when I don't have the mod installed. It also only seems to happen at full 4K resolution. The default 2560x1440 displays as expected.

These are my config file settings when the issue occurs:

[OverrideRes]
ResX = 3840
ResY = 2160

[OverrideFramerate]
FpsCap = 60

[FOV]
FOVPercentage = 100
KeepCutsceneFOV = 1
Banz99 commented 7 months ago

This is an odd behaviour indeed. Do you have a rescaling factor applied for the tv but not for the monitor? Does this problem still happen if you set your ultrawide monitor to 2560x1440 making it 16:9? Can you try any kind of overlay (steam fps counter, rtss, whatever else) that prints stuff to the screen to see if it starts in the black area or in the game frame?

J-64 commented 7 months ago

Thanks for the suggestions, looks like it was a scaling issue. I had it set to 150% for both screens, and changing it to 100% fixed the problem. (I tried the other suggestions just to see what would happen. Setting the monitor to 16:9 didn't fix it, and the Steam FPS counter shows in the blank space.)

Unfortunately, I noticed another issue. Even though I set the resolution to 3840x2160, it looks like it's still rendering at 1920x1080 and scaling it up. Got some really noticeable jagged edges, particularly around the light post and the high contrast area between the grass and the short stone wall. This is with anti-aliasing turned off, so any softening is the result of the image being scaled up.

Type0-4KJaggies

I set Windows' scaling to 100% and restarted the computer, but it still gives me the same result with jagged edges. Is that just how it works, or is there something else I can try to get a proper 4K output?

Banz99 commented 7 months ago

Unfortunately, there seems to be some post process shader that aliases/blur the source image before showing it to the screen. You can see the difference here where I took just the albedo render view with Special K. image image My guess is that there might be a leftover pass of TAA even when selecting the no antialiasing option from the menu. It's mostly working as expected with TAA on though, and gpu usage increase is a sign of the resolution bump. Will there be a solution for the no AA option? Maybe, but that's kind of a niche scenario.

Banz99 commented 6 months ago

Thanks for the suggestions, looks like it was a scaling issue. I had it set to 150% for both screens, and changing it to 100% fixed the problem. (I tried the other suggestions just to see what would happen. Setting the monitor to 16:9 didn't fix it, and the Steam FPS counter shows in the blank space.)

Unfortunately, I noticed another issue. Even though I set the resolution to 3840x2160, it looks like it's still rendering at 1920x1080 and scaling it up. Got some really noticeable jagged edges, particularly around the light post and the high contrast area between the grass and the short stone wall. This is with anti-aliasing turned off, so any softening is the result of the image being scaled up.

Type0-4KJaggies

I set Windows' scaling to 100% and restarted the computer, but it still gives me the same result with jagged edges. Is that just how it works, or is there something else I can try to get a proper 4K output?

Ok, so this whole thing made me go through a rabbit hole that made me realize just how hardcoded this game was for 1080p rendering. I'm attaching a debug build I made that should allow you to run the game with the cleanest output possible, and I have also implemented a fix for ultrawide videos and menus (the former always applied and the latter configurable via the new KeepUIAspectRatio option, as there can be weird things drawn outside the intended view that the user might find distracting). My monitor is only 1440p so the only ultrawide resolution I could fake was 2560*1080, can you try it and see if it works? Test.zip

J-64 commented 6 months ago

Thanks for the update, that really cleaned things up! I do still have to reset Windows' scaling to 100% but I can deal with that.

I tried it on my ultrawide monitor as well. It keeps the correct aspect ratio, but yeah, I find the unintended stuff on the sides to be rather distracting. I'll be sticking to 16:9 resolutions.