Emulator Issues #6788
Xenoblade Missing Effects in OpenGL with Auto internal resolution
Xenoblade Chronicles (SX4E01) is missing various minor effects in OpenGL, apparently EFB related. I kind of feel bad about reporting this one, since D3D has various weird stuttering issues and OpenGL is the only one that gives good performance. Apparently this is why >_<. The effects known to be missing are:
*A desaturation effect (opening cinematic, monado visions)
*blur blast when using the monado buster weapon and possibly other uber moves
*blur blasts in the opening cinematic when the mechonis' and bionis' swords clash (seems fancier than the one in game)
*edge of the screen blurring during monado visions
I tried a bunch of different settings and I was unable to get the effects to appear in OpenGL. D3D (and the extinct D3D9) is able to render the effect, as well as software. Just to make sure I tried it on my wii: the effects are definitely supposed to be there.
Here is a Monado vision screenshot and fifo set. It combines blurring and desaturation, pretty much giving an all in one resource for this bug.
Direct3D (correct) - http://img713.imageshack.us/img713/6017/na9k.png
OpenGL (wrong) - http://img600.imageshack.us/img600/6554/2oll.png
Fifolog (5 frames) - http://www.mediafire.com/download/w6e5a1bfnbjk7ql/XenobladeMonadoFifo.7z
To reproduce, use the fifolog above, or make a new game and watch the opening cinematic. The opening cinematic battle between the Bionis and the Mechonis uses a desaturation effect throughout, so the Mechonis's (the dark one) eyes are supposed to be faded in the cinematic, but appear bright red in OpenGL. Furthermore, whenever the Mechonis and Bionis's swords hit, in D3D it sends a rippling blur effect out from the impact point which is missing from OpenGL.
Tested on revisions:
3.5 win64 - OpenGL broken, D3D fine
4.0-88 win64 - OpenGL broken, D3D fine
4.0-265 win64 - OpenGL broken, D3D fine
4.0-307 win64 - OpenGL broken, D3D fine
Tested on system:
Core i5 3570K @ 4.7ghz
Nvidia GTX 760
Windows 7 x64
#1 Updated by MayImilae about 8 years ago
- Status changed from New to Accepted
Garteal did some more testing, and confirmed it, but notice it was only with Auto (Window Size) and Auto (Multiple of 640x528). Just tested it myself and confirmed it his findings. Marking as accepted because of the confirmation.
To correct for the problem in OpenGL, the native resolution has to be set before the game is run to 1x Native, 1.5x Native, 2x Native, etc etc. Confirmed that fractional multiples (X.5x native) work fine.
#2 Updated by MayImilae about 8 years ago
In latest builds, the stutters occur when the effects are working properly. Not as bad as D3D at least.
But this only happened after Degasus's recent videocommon changes. Builds before that show the effects working properly and DO NOT STUTTER. This is just one of several D3D11 bugs that have entered OpenGL because of his changes.
#5 Updated by degasus about 8 years ago
XC seems to not write to Alpha at all, and as we don't copy the old efb content on efb resize, there is still the undefined content as on texture creation.
But I guess the issue isn't because we don't copy the efb content. More likely is that our efb2tex implemention copys alpha from the efb which doesn't have alpha at all.
#6 Updated by degasus about 8 years ago
I think the efb2tex_alpha branch fix this issue:
#7 Updated by MayImilae about 8 years ago
That indeed fixes it. There was a slight bit of increased stuttering after I first ran the build, but ever since I've been running it for hours and haven't gotten anything regardless of internal resolution settings. So shrug. I guess that's no regressions and fixes the issue in xenoblade. Not sure about other games though.