Emulator Issues #12666
openBink Video decodes incorrectly on some devices
0%
Description
What's the problem? Describe what went wrong.
Most games that use the Bink Video codec display incorrectly on Nvidia devices and with Mesa. This applies to both Bink 1 and Bink 2.
When lines appear, they are 1px wide regardless of the internal resolution (ignoring rescaling done by Dolphin to maintain the aspect ratio). The number of lines and positions of the lines are dependent on the internal resolution. Both of these differ from VP6 video (see #7193). An additional complication is that the lines are from other pixels in the video, so they may match the background and thus not be visible in some cases.
The presence of lines seems to be dependent on the resolution of the game compared to the resolution of the video. For instance, Shrek the Third's intro logo videos render perfectly fine, as the game runs at 640 by 480 and the video itself is 640 by 480 - there are no problems at any IR. On the other hand, the intro cutscene is 640 by 360, and that has lines at 1x IR. However, other videos (such as the Excite Truck video) render poorly despite the video being 640 by 448 and the game running at 640 by 448. In this case, at 1x IR the lines all are clumped near the center of the video at 1x IR, though they become spread out at higher IRs.
Usually, only horizontal lines are present. Some games have vertical lines, but this seems to be fairly rare; it seems like most use the right width and only change the video height.
Game Name?
A lot of games from a large number of publishers. Most games will indicate it on the box or on a splash screen. A list can be found on RAD Game Tools' website (HTTP-only, IA mirror), though this list isn't complete (despite how large it is).
Some examples:
- Rabbids Go Home (fifolog on #12559)
- Skylanders: Trap Team (uses Bink 2; fifolog on #12664, though this has other issues)
- Shrek the Third (for some videos only) (fifologs attached)
- DJ Hero (fifolog on #10632)
- Excite Truck (fifolog at https://fifo.ci/media/dff/ExciteTruckVid.dff)
What steps will reproduce the problem?
Simply load a game that uses Bink Video for a prerendered video on an Nvidia device.
What are your PC specifications?
- CPU: Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz, 2592 Mhz, 6 Core(s), 12 Logical Processor(s)
- GPU: NVIDIA GeForce GTX 1650 Ti
- Operating System: Windows 10.0.19042.1165
Mesa drivers are also affected (tested on my machine using lavapipe in WSL, but this can also be seen on fifoci), though the number of lines is much smaller. Intel UHD graphics are not affected.
Test cases
Since the Bink 1 encoder is publicly available for noncommercial use, I generated a large number of videos at different resolutions and have attached them to this issue. I also generated fifologs for the videos by replacing Shrek 3's movies/logos/dw_logo.bik
with the videos I generated. For instance, 640x473.dff generates a clump of lines similar to Excite truck, and 300x480.dff generates vertical lines but no horizontal lines.
Files