-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a toggle to preserve fullscreen aspect ratio in "Display Layout & effects" #18693
Comments
I assume you're referring to how we automatically cut off one original-sized pixel from the bottom and top to turn 1920x1088 into 1920x1080 to fit? Is it really an issue to lose one row of pixels from the top and one from the bottom to achieve a perfect fit? We could for sure add a toggle though, although every setting has a cost in terms of translation, screen space, confusion etc. I have been leaning more towards the side of adding actually useful settings rather than keeping it to a minimum like I tried before, though... |
Maybe he's using stretching. The issue description doesn't really match removing 1 line from top and the bottom which was always default and pretty much by everyone considered best in standard HD/uhd resolutions. In non standard res what he wants was also happening by default. Not sure if anything changed. |
I'm not really sure about the exact technical details, but what you're describing here sounds more akin to a crop (aspect ratio is preserved, but the top and bottom are hidden behind the monitor's bezels). This is already what PPSSPP does if you're say, integer scaling to a 1080p/2160p monitor and bumping up the internal resolution (272p*4=1088p, chop off the top and bottom pixels to fit 1080p). Now, this works fine, however, it's not like PSP games exhibit overscan or visual padding, so you're losing visual information here and prematurely cutting off the visuals. However, what PPSSPP is currently doing by default is more akin to a stretch, because it distorts the aspect ratio to fit the image on to a 16:9 screen, even though the PSP's original output DAR at 1:1 PAR doesn't perfectly fit 16:9. This menu screen demonstrates what I'm talking about pretty well because the logo has a symbol with even lengths, and there's text that reaches all the way to the bottom line. Current default behavior4x Scaling with integer scaling enabledAspect ratio preserved (I just took a screenshot with RetroArch and added black padding on the sides in GIMP for demonstration purposes)The difference is subtle, but as you can see, PPSSPP by default will squish the image and distort the aspect ratio.
This is your own personal project and you're free to add/not add what features you want obviously, but from my own anecdotal experience I would say that the current status quo adds more confusion. PPSSPP stretches the output by default, but it can't be turned off with the already available "Stretch" option in the menu, so the behavior is hardcoded. The menu also claims that the aspect ratio is set at 1.00, but again, this isn't actually the case, it's closer to ~0.993 when taking the stretching into consideration. And like I said, there's already visual discontinuity between fullscreen and windowed mode, since windowed mode preserves the aspect ratio but fullscreen doesn't. If adding a new toggle isn't possible, then perhaps have the "Stretch" option in the menu control this behavior instead? That would avoid the development burden of adding a new menu item, and toggling the Stretch option would work as intuitively expected. |
Hm, I'm confused right now. The intention is that the default should look like your retroarch example above, unless the 1-pixel crop activates, but if it doesn't (which I haven't even noticed, maybe because I run in a small window 99% of the time since it's easier to debug that way), it's a bug indeed. Will look into it. |
Yup, I made a mistake in the last refactoring and implemented the auto-crop wrong, resulting in this poor result. Will fix soon so it will have the exact correct aspect ratio but cropped in this case, which will lead to the best pixel-mapping. Then the question is if we should add the option to turn it off, which will result in your retroarch image, but with an inexact pixel scale, making the image a little fuzzy. |
My mistake then, I assumed that the current behavior was intentional and not a regression, since it happened on git master and stable. |
Not much of a mistake from your side then, you found a bug that I caused :) Never assume that the current behavior is intentional, even if on stable :D The testing surface of this thing is huge, very easy to miss things like this. |
… top and bottom I seem to have switched to a stretch at some point, which isn't ideal and can be achieved anyway with the stretch option. A two-line crop (1 at top, 1 at bottom) is generally the better option. There's now also a hidden ini setting to turn it off. I might be convinced to add it as a real setting once I figure out a good name for it. The setting: ```ini [Graphics] DisplayCrop16x9 = True ``` Fixes #18693
Hm, seems I did an intentional switch at some point which I had forgotten. I prefer the crop solution anyway, so switching back to it and adding a hidden setting to turn it off, but I don't recommend that. See #18704. |
What should happen
With PPSSPP's current default behavior, the PSP's 30:17 DAR (1:1 PAR) gets squashed to 16:9 DAR from the top and bottom bezels of the screen when in fullscreen mode. There should be a toggle to disable this behavior and draw black bars instead.
Who would this benefit
Technically this is already possible by using the Resize feature, but having to slowly move the mouse until you get it just right for each game is somewhat tedious, since the size of the black bars required to preserve the original DAR on a 16:9 display are very small to begin with. Having this relegated to a toggle would benefit users who also want to preserve the original PSP aspect ratio without wasting any screen real estate.
In windowed mode, PPSSPP already preserves the 30:17 DAR, so having it get squashed when switching to fullscreen mode causes a bit of visual discontinuity. Integer scaling also preserves the 30:17 DAR (obviously), but it results in cropping.
The only "downside" I can think of is that unlike with integer scaling, drawing black bars will result in some blurring since the output has to get downscaled to fit the screen. However this isn't much of a difference from the current status quo since squashing the image already results in blurring.
Platform (if relevant)
None
Games this would be useful in
Any
Other emulators or software with a similar feature
At a cursory glance, the libretro core for PPSSPP seems to default to preserving the aspect ratio when using the "Core Provided" aspect ratio option.
Checklist
The text was updated successfully, but these errors were encountered: