libretro / dolphin

Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.
https://dolphin-emu.org/
GNU General Public License v2.0
86 stars 67 forks source link

[Bug Report] Kirby Air Ride loads black textures on the Xbox Series X #250

Open Maltherim opened 2 years ago

Maltherim commented 2 years ago

Kirby Air Ride seems to load black textures where there should be normal ones in both City Trial and Air Ride modes. This error occurs on retroarch 1.9.14 with dolphin-emu (e79ade4). This issue is not present on the dolphin-emu (1fbd599) build for the Series X, though the textures are dimmed. This does not occur on the retroarch Win-64 build of dolphin-emu (48066c8), and I've been unable to test if this occurs on the UWP build on windows as well. This issue seems to be persistent across .rvz and .iso file formats and changing the settings one by one hasn't resulted in any improvement of the glitch. Raising the internal resolution and loading custom textures do need fix it as well. Enabling the widescreen hack for this leads to normal graphics being rendered on the sides, but the original 4:3 aspect ratio of the image still has rendering issues.

Picture of the game working as intended (Win64 Retroarch 48066c8) working kirby air ride

Picture of the glitch (Xbox Series X Retroarch 1.9.14 e79ade4) not working kirby air ride

bslenul commented 2 years ago

What about 48066c8 on Xbox? e79ade4 is from my repo, it's not an "official" build, maybe I didn't configure the GitHub actions properly and it's somehow broken on Xbox (works fine on Windows 10 but unfortunately I don't have a Xbox to test).

Maltherim commented 2 years ago

I grabbed the 48066c8 core from my PC and put it on my xbox. The glitch is still there, so it's not from a change made in e79ade4. I believe the glitch happened when retroarch 1.9.6 was released sometime in july 2021, though I can't say for certain what core version it was. I do know version 13ad7dd has the bug though I'm not sure if that's the earliest build with it, and that this exact same glitch occurs on some android builds of dolphin when I looked at other posts around the internet.

bslenul commented 2 years ago

Mind testing this one I've just compiled?: dolphin_libretro.zip

It's e79ade4 with the changes mentioned in that Dolphin issue reverted: https://bugs.dolphin-emu.org/issues/12247 It's an Android issue but still curious if the cause could be the same 🤔

Maltherim commented 2 years ago

That works! It effectively behaves the same as the 1fbd599 in regard to how kirby air ride's textures are dimmed, but it's still playable.

Forgive me for the poor quality, I haven't quite figured out how to take screenshots in Xbox's dev mode yet. kirby air ride fixed

EDIT: I found the update that bug report is referring to. It seems to only change how logic ops is rendered in unsupported devices. Ironic, since it broke some devices that did support it already. Link to it - https://dolphin-emu.org/download/dev/7de6b57c13235a56ddda024ae46f76e88170522f/ EDIT 2: I also found the specific dolphin progress update for this update. It mentions how approximating logic ops with blending fixed some errors within star fox adventures and mario kart wii. I'll test these two with the core you provided to see if there are any errors. Link to it - https://dolphin-emu.org/blog/2019/08/04/dolphin-progress-report-june-and-july-2019/

bslenul commented 2 years ago

Yeah that's the commit I reverted in the core I've just posted, thanks for testing. No idea why this is happening however 😅

edit: Thanks for the progress report link! Does it happen with OpenGL too? If that's even available on Xbox of course.

Maltherim commented 2 years ago

OpenGL (or GL? Probably same thing) is available on xbox, but dolphin runs terribly with it. DirectX 12 is also available, but retroarch crashes whenever a core is loaded with that. DirectX 11 appears to be the only option regarding dolphin.

Edit - Shoot! I forgot I actually did test it with openGL. It runs, but at approximately 0.5 frames per second. On modern cores with the glitch, it still occurs even under openGL.

Maltherim commented 2 years ago

The results with Star Fox Adventures are fascinating. It seems that on dolphin-emu 12586, it was already glitched. I saw the specific bug pointed out in the progress report. However, with the dirty core, there are only very minor issues with shadows.

With dolphin-emu 12586 (Fox's shadow is a ship, exactly as seen in the progress report) IMG_5396

With dolphin-emu 12593-dirty IMG_5393

Minor shadow errors seen in dolphin-emu 12593-dirty IMG_5392

Maltherim commented 2 years ago

Unfortunetely, it seems that in the core you provided, Mario kart Wii suffers the same glitch seem in the progress report. This isn't present in the unaltered builds.

Screenshot from Mario Kart Wii 5.0-12593 mario kart wii broken

EDIT - I found a fix for this, but it requires installing third party programs. Nonetheless, it is possible. See the link - http://wiki.tockdom.com/wiki/Black_Box_Fixer

bslenul commented 2 years ago

Can you try this one please? dolphin_libretro.zip I'm basically forcing the core to think logical ops are supported when using D3D11, I wonder if it'll change anything...

Maltherim commented 2 years ago

With the core provided, kirby air ride's glitch reappears. Star fox adventure's shadows also glitch heavily similar to the unaltered core. I'm having trouble testing mario kart wii, it's being... uncooperative. I'll post what I have now and edit it once it stops crashing. By the way, it's not crashing because of any changes in the core. It's just like this with all the cores.

EDIT - The black box glitch dissapears with mario kart wii. Do you think there's any way to edit the game options file so that logicops thinks it's working on specific games and not on others?

bslenul commented 2 years ago

Last one to test if you don't mind: dolphin_libretro.zip

Again thanks you for testing! A core option would be possible to add yeah, but it'd be much better to have a real fix for this instead, if possible.

Maltherim commented 2 years ago

With the core provided, kirby air ride and star fox adventure's glitches stop, however the black box reappears on mario kart wii. EDIT - I managed to test out a patched mario kart wii file, and the black box glitch is gone with the core provided, therefore it is possible to have all three games fully playable compared to the current builds, where kirby air ride is not playable.

bslenul commented 2 years ago

OK thanks, and Kirby's textures are still dimmed I'd imagine? :/

Maltherim commented 2 years ago

Yep, still dimmed. Fully playable though.