FIX94 / Nintendont

A Wii Homebrew Project to play GC Games on Wii and vWii on Wii U
1.96k stars 326 forks source link

Wii U Aspect Ratio issue w/ Nintendon't. #1151

Open DragonWario opened 1 year ago

DragonWario commented 1 year ago

Hi, Basically I'm noticing that when I play GC games though Nintendon't, I'm having to turn on the "Wii U Widescreen" option or the console outputs the game in a crushed horizontal window. The 16:9 or 4:3 settings in system settings appear to have no effect, nor do the HD resolutions. The "Wii U Widescreen" option always does, however. As an example, when the console is set to display 480p/Wii U WS is on, Twilight Princess will display as a 665x448 which is just one pixel off from what is the external resolution recorded at https://gc-forever.com/wiki/index.php?title=Swiss/Forced_Progressive_Compatibility_List and my own testing with my personal GameCube / copy of TP. When Wii U Widescreen is set to off, then the display area is 551x448.

My Setup: -Nintendo Wii U on firmware 5.5.6 U -CFW is the latest Aroma environment w/ the evWii plugin for better image quality (v0.2) (set to TV viewport 720x480) -Nintendon't on version v6.501 (Wii VC) / Built: Aug 24 2023 / Firmware: 255.255.255 -Relevant Nintendon't settings: Video Width: Auto /Video Mode: Force NTSC (to remove deflicker) /Force Progressive Scan: On -GameCube games are launched through Wii Virtual Console Injects created via "TeconMoon's WiiVC Injector 3.0.17.0" -Autoboot is disabled so I can change Nintendon't settings on the fly

I have attached some examples of this below, in addition to how it appears on my GameCube w/ Prism adapter for HDMI output. Outputs have been integer scaled by my PC to 1440p for easier viewing on modern displays.

GameCube 480p mode / Display resolution: 666x448p Screenshot 2023-10-15 193100

Wii U 480p mode / Display Resolution: 541x448p / Wii U Widescreen OFF Screenshot 2023-10-15 191951

Wii U 480p mode / Display Resolution: 665x448 / Wii U Widescreen ON Screenshot 2023-10-15 194114

DragonWario commented 1 year ago

The reason why this may be an issue is that I suspect the Wii U is attempting to scale these GC games horizontally depending on whether the Wii U Widescreen function is active or not. When it is inactive, it seems to scale 666->541, or 720->585 (for the output frame). The expected behavior should be 666->666 when Wii U widescreen is Off, and 666-> 796. for when it is on. (after being scaled by an external scaler, just like Wii anamorphic widescreen 720->853)

I also notice that the Wii U output image is bit less sharp w/ Wii U WS but this shouldn't be the case since I am using DMCU patches to fix the scaling output issue that happens on stock, which indicates that some scaling may be happening when Wii U WS is ON.

DragonWario commented 1 year ago

Experimented with it and the sharpness seems to be affected by how you enter vWii. If entered via VC Inject w/ GamePad support or some other forwarders it will have less clarity / inaccurate colors. I suspect the Wii U may be doctoring the image to transmit it to the GamePad, changing the color space.

vWii entered via VC Inject (GamePad Support) Screenshot 2023-10-16 005146

vWii entered via USB Loader GX forwarder: (No GamePad support / better color and clarity) IPL off

mikesk8 commented 1 year ago

It is very interesting regarding the colour/clarity. I only use VC Injects, but Im curious if its still possible to improve it in this mode.

mikesk8 commented 11 months ago

@DragonWario - Have you maybe managed to do more tests? I would be curious to hear your results ;-) Is there really a big difference with VC Injects? I did not see anything on the net about it.

DragonWario commented 1 week ago

I have since deleted all my vWii VC versions due to the issue pointed out above, so I can't readily test that anymore but what I can say is that for the best image quality for Wii / GC games on Wii U, I use these settings alongside this USBLoaderGX version for Aroma (evWii set to 720x480p, Wii U in 480p output mode as set in system settings) (I have two options listed for 16:9 Wii mode, see below and use according to what hardware you have)

GameCube: Video Mode: Force NTSC480p Progressive Patch: ON Video Deflicker: OFF PAL50 Patch: OFF Force Widescreen: OFF WiiU Widescreen: ON Video Scale: Auto OR Manual (Adjust if you know the correct resolution width - for TP it is 666, so I would set it to 66) (Auto is usually very close to the correct width if you don't know, with TP it uses 665) Video Offset: either 1 or 2 (this helps correct some of the Wii U's chroma bleed) (Use 1 if the width is divisible by 2 when you half the width, and 2 if it is not) (Example: 666/2 = 333, so we would want to use a value of 2) Remove Read Speed: ON Skip IPL: ON (some say this reduces chroma bleed, too)

Wii "Pixel Perfect" 16:9 Mode (Manual external scaling is required for proper aspect ratio, but this option should be the best for those that have hardware that can do it) Video Mode: Force NTSC480p Dol Video Patch: ON 480p Pixel Fix Patch: ON Sneek Video Patch: ON VIDTV Patch: ON Deflicker Filter: OFF (Extended) Video Width: Framebuffer Aspect Ratio: Force 16:9 PC Setting - scale the width to 16:9 since the Wii U's output will be unscaled / squished) (Example - Xenoblade Chronicles outputs as 640x456 in this configuration, and must be scaled by a PC to 811x456 for the correct aspect ratio. This means a width multiplier of 1.26666666667x, which I choose to scale with the Mitchell-Netravali or Catmull-Rom upscalers)

Wii 16:9 Mode, aspect ratio scaling to be done by the Wii U (lower quality, but no external hardware is required): Set the Wii U to output in 1080p before launching vWii Video Mode: Force NTSC480p Dol Video Patch: ON 480p Pixel Fix Patch: ON Sneek Video Patch: ON VIDTV Patch: ON Deflicker Filter: OFF (Extended) Video Width: Auto Aspect Ratio: Force 16:9

Wii 4:3 Mode (same output as GC games) Video Mode: Force NTSC480p Dol Video Patch: ON 480p Pixel Fix Patch: ON Sneek Video Patch: ON VIDTV Patch: ON Deflicker Filter: OFF (Extended) Video Width: Framebuffer Aspect Ratio: Force 4:3 Note: Some scaling may be done by the framebuffer per game, and we disabled that here so there may be some issues in some games, but this results in the sharpest pixels so it's a trade off I'm willing to take - esp. in games where it makes no difference.

DragonWario commented 1 week ago

Image quality I get from my Wii U:

GameCube: Screenshot 2024-11-15 130614

Wii 16:9: Screenshot 2024-11-15 104950

Wii 4:3: Screenshot 2024-11-15 105434