Emulator Issues #13119
openKirby Air Ride texture behavior does not match original hardware
0%
Description
Game Name?
Kirby Air Ride
Game ID? (right click the game in the game list, Properties, Info tab)
GKYE01
MD5 Hash? (right click the game in the game list, Properties, Verify tab, Verify Integrity button)
bd936616ba7f998d8d0a1eb3f553b634
What's the problem? Describe what went wrong.
There are certain textures in Kirby Air Ride that will change depending on how the camera is positioned. This seems to not work on Dolphin and nothing on the wiki page talks about needing any specific settings enabled to run properly.
I captured footage of the game running on my GameCube vs running on Dolphin to show the visual effect I am talking about in a few different areas. Look at the walls and floor near Kirby and see how they change when the camera rotates on original hardware. On Dolphin the textures will stay the same.
Video showing the effect on GC vs Dolphin:
https://youtu.be/ApgM9UN1FJA
What steps will reproduce the problem?
Go to one of the locations that uses this effect and rotate the camera. On original hardware the textures will change appearance and on Dolphin they will stay the same. The locations I used in the video are from city trial, on top of the green building, underground forest, and underground volcano.
Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.
yes, latest is 5.0-18008
Is the issue present in the latest stable version?
yes
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.)
[First broken version number here (if applicable)]
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
[Attach any fifologs if possible, write a description of fifologs and screenshots here to assist people unfamiliar with the game.]
What are your PC specifications? (CPU, GPU, Operating System, more)
Windows 10 x64
Intel i5 8600k
Nvidia GTX 1070
16GB RAM
Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)
yes, video is linked above comparing original hardware behavior to Dolphin.
Files
Updated by pokechu22 about 2 years ago
- Description updated (diff)
Can you record 3 fifologs of the ice scene at https://youtu.be/ApgM9UN1FJA?t=20, one looking towards the ice, one looking towards the wall, and one looking away from the ice, and then attach them to this report? (Use 7-zip if they're too big to attach directly.)
Updated by Landfill7377 about 2 years ago
- File kirby fifo logs.7z kirby fifo logs.7z added
FIFO logs
Updated by pokechu22 about 2 years ago
- Status changed from New to Accepted
Thanks. I can confirm that those render differently on real hardware compared to dolphin. As far as I can tell, the game isn't trying to do anything special here, though. They render one section that's all ice, and then touching it is one section that's all ground. Then, later on in the frame, they render a partially transparent object over the ice section using the ground texture, where alpha (transparency) is set to 0 for vertices on the ice side and 1 for vertices on the ground side, which produces the fade between the two textures. (They could have used a single object that fades between the two textures separately, but I guess they already had everything set up for transparent objects and both methods work.)
However, there's something weird about how vertex colors get interpolated for triangles that go off screen. I'm not exactly sure how it works, but it seems like the colors get changed if the triangle is behind the camera (and perhaps also off the screen to the side). I was linked to an example of this happening on a homebrew game a long time ago, but I can't find that anymore; it was somewhat similar to the example on the roof though where you can see one of the the triangles changing colors. I also feel like I've seen something similar in Super Mario 64, though I'm not sure if that's related or not.
It would be neat to handle this case correctly since the effect actually looks quite nice in the tunnels (and it would be nice for accuracy in general). However, it probably won't be a high priority.
Updated by pokechu22 over 1 year ago
Probably related: https://web.archive.org/web/20160304190627/https://www.opengl.org/archives/resources/faq/technical/clipping.htm section "10.040 When an OpenGL primitive moves placing one vertex outside the window, suddenly the color or texture mapping is incorrect. What's going on?"