Wii U/vWii: Improve how widescreen is handled#1295
Conversation
1a6a588 to
3c3d471
Compare
|
Here's a test build if you want to try these changes out: |
3c3d471 to
10d0b6e
Compare
|
New Test Build with the fixed value: |
35787b2 to
862c474
Compare
|
Now that I think about it, do we need to do this check more than once? Otherwise I'm thinking this could work just the same: |
|
I think it's better to keep it the way I wrote it, since that makes it clear you're supposed to target the previous version and bump it up to the current one, just like in all the earlier commits by nastys, FIX94, and sailormoon. If you do it the way you wrote it above, then |
|
Cool, I'll keep it as-is then. |
|
A quirk I noticed, for brand new configs, this new setting does not appear to do anything. But next time Nintendont boots up, the setting works as expected. The solution would be to move this setting update code to another place where it will always run, but I'm not sure which place would be best (probably somewhere near the |
|
I had a little free time, so I looked into this more. My version requires no config edits, so it maintains compatibility with USB loaders too. And I kept the old logic when exiting a game, since that's cleaner. |
|
That's way better than what I came up with, cool. You want to make your own PR? |
|
I could do that with reference to this PR, since I wouldn't have bothered looking into this issue if you hadn't put in the initial effort. I also haven't tested my version much yet, but I assume it's working correctly. |
|
In a few hours I'll be home and I can try this out, but looking at the code, the only oddity I think I could find is that sometimes with the old exit code, the vWii image remained pillarboxed (specifically if the vWii is set to 4:3 and I think with Wii U Widescreen off). Other than that this looks good. |
I can't replicate that, since no matter how I launch a game through Nintendont it always disables pillarboxing correctly when I exit. Unless someone has created a bad launcher that forces 4:3 by enabling vWii pillarboxing, it should be impossible for |
|
Finally was able to sit down and test. Everything works correctly including restoring the aspect ratio, so I'm just confused about why I saw that error before (it was with Nintendont by itself, no loaders). Either way let me know if you open a PR to close this one. |
Credit to @wiidev for this improved fix.
862c474 to
b294e39
Compare
|
New Test Build: Test Build.zip |
Sorry, I've been really busy with a few other things. But it seems a bit pointless for me to create a PR now that you've copied my commit verbatim. The Nintendont maintainer usually waits until there are a few pull requests queued up before merging anything, so this might sit in limbo for a while. But I'm sure it'll get merged eventually. |
|
Thanks again for your help, it was truly appreciated. I'll leave this open in the meantime. |
Nintendont was originally coded with the reasonable assumption every Wii U user was going to run in 16:9. To use 4:3 you had to manually set the Wii U to 480p anyway, so when we are running on the vWii and the Wii U Widescreen setting is disabled, Nintendont has to manually squish the image to keep the 4:3 look of most of the GameCube's library. However, one edge case was ignored: what if the user did use 480p 4:3? This results in a squished image inside an already smaller 4:3 canvas.
To fix this, the loader saves the console's widescreen setting into a memory address, which the kernel then can use to determine if the console is on 16:9 or 4:3, and scale accordingly. Combined with the existing Wii U Widescreen setting you get the following combinations:
For the last two cases, you would need to change your TV's aspect ratio setting to get the look you want, while on the first two the Wii U does this step for you.
Credit goes to @wiidev for improving my original, more "hacky" approach.
Fixes #1177