Emulator Issues #13192open
Song of Passing Graphical Issue (The Legend of Zelda: The Wind Waker)
The Legend of Zelda: The Wind Waker
Game ID? (right click the game in the game list, Properties, Info tab)
MD5 Hash? (right click the game in the game list, Properties, Verify tab, Verify Integrity button)
What's the problem? Describe what went wrong.
The animation after playing the Song of Passing has a single incorrect frame.
What steps will reproduce the problem?
- Play the game until you obtain the Song of Passing (or use the provided save)
- Pull out the Wind Waker
- Play the Song of Passing (Right-Left-Down on the C-stick)
Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.
Is the issue present in the latest stable version?
If the issue isn't present in the latest stable version, which is the first broken version? (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)
The bisection tool is completely broken (https://github.com/Helios747/DolphinBisectTool/issues/27)
If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible. Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too. For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer
A screenshot and fifolog are attached below.
What are your PC specifications? (CPU, GPU, Operating System, more)
CPU: AMD Ryzen 7 3750H
GPU: NVIDIA GeForce GTX 1650
Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)
A save file is attached below as well.
Updated by pokechu22 27 days ago
- Description updated (diff)
Confirmed with fifolog. I'll need to test using the hardware fifoplayer to make sure that this doesn't also happen on real hardware. I can't see it on a video (https://youtu.be/1NyzuQAOrS4?t=70) but that video is in 30fps.
Updated by pokechu22 27 days ago
The game draws 4 quarter circles across the quarters of the screen, and changes the texture coordinates used for it each frame. Clamping is enabled, so out of bounds parts use the edge of the texture (black). On the first frame, the texture coordinates range from (-19, -15.4) to (1, 1), so for 320 by 240 pixels, the region from (0, 0) to (1, 1) (which has actual texture data) covers 1/20th of the space horizontally and 1/16.4 vertically (which comes out to 16 by 14.6). On the final frame, the texture coordinates are all (0, 0), so everything uses the same color (black).
On the broken frame, the texture coordinates range from (-1278263.125, -1049476.875) to (1, 1). This ends up producing extremely large texture coordinates, which overflow. More precisely, dolphin emulates the texture coordinates being 24-bit values and thus overflowing that way; disabling that fixes Wind Waker. I believe this 24-bit overflowing behavior was hardware tested, though; my guess is instead transform unit or the rasterization process ends up clamping the input texture coordinates to smaller values. More testing would be needed.
Updated by InfoManiac742 26 days ago
A quick update: I did some testing, and it appears that enabling "Exclusive Ubershaders" causes Dolphin to render correctly (confirmed on both the fifolog and playing the actual game).