Project

General

Profile

Actions

Emulator Issues #6300

closed

Beyond Good and Evil - No Ocean Reflections and Pixel Shader Errors

Added by MayImilae almost 11 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
Yes
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Appears related to issue 4727. Beyond Good and Evil (GGEE41) hangs during the first transition into Hillys, after you board the boat and leave the lighthouse for the first time. It throws up a "Failed to compile shader" error.

Here is a screenshot of the spot it stops at, and the error it shows - http://img38.imageshack.us/img38/7096/beyondgoodandevilwarnin.png

This is the bad_ps_0000.txt file it generates, taken in D3D11 - http://pastebin.com/pdN7zexz

I've tried D3D9, OpenGL, and D3D11, and it occurs on all of them. Can't reproduce in software cause the boat bounces up and down like a trampoline shrug. I also tried single core, external frame buffer (virtual and real), EFB to Ram, HLE/LLE, clearing the shadercache, the whole shebang. Nothing changed it. Even tried Interpreter, but the game doesn't appear to work with it (fps 0 vps 6, stayed that way for 5 minutes). I even checked the dump, and the md5 hash (2142ae6ee5f2ab49583b193d521aec07) matches up with redump.org and gametdb.com.

To reproduce, load the GCI file below. Simple walk out of the room, run down the ramp, and jump in the boat; then take the boat out of the tunnel. It should hang during the "Hillys" transition screen.

Beyond Good and Evil GCI - https://dl.dropboxusercontent.com/u/519564/GGEE_JADEFILE.7z

Honestly, this makes no sense. I'm using a GTX275, which has full support in Dolphin. I tested on 3.5 and 3.0 even, and it was still there! Other people have played this game, so something is definitely weird. So I have no idea what is going on. I just hope someone can reproduce it or figure it out from the error messages.

Tested on revisions:
3.0 win64 - Hangs
3.5 win64 - Hangs
3.5-1324 win64 - Hangs
3.5-1335 win64 - Hangs

System Specs:
Core i5 3570K @ 4.7ghz
nVidia Geforce GTX 275 (Nvidia driver version 314.07)
Windows 7 x64

Actions #1

Updated by MayImilae almost 11 years ago

The errors and bad_ps_0000 files are different between the backends. Not a whole lot but, might have some new information, so I should include it. The ones above are for D3D11, so here's OpenGL and D3D9. OpenGL appears to have the most information (actually talks about an error in it).

OpenGL
Error - http://img823.imageshack.us/img823/6541/opengl.png
bad_ps_0000.txt - http://pastebin.com/8aaZRVh5

D3D9
Error - http://img542.imageshack.us/img542/3576/d3d9.png
bad_ps_0000.txt - http://pastebin.com/yk5VmsWD

Actions #2

Updated by tommyhl2.SS almost 11 years ago

  • Status changed from New to Accepted
  • Category set to gfx
  • Issue type set to Bug
  • Relates to usability set to Yes

Reproduced with all video backends.

http://i.imgur.com/fOaSaj9.jpg

http://pastebin.com/eYCV5yve

Asus Laptop: K53TA
OS: Windows 7 Home Premium, 64-Bit - SP1
CPU: AMD Llano A6-3400M, Quad-Core, 1.4GHz-2.6GHz (Overclocked)
GPU: AMD Radeon HD6650M, 1GB GDDR3 (Catalyst 13.1)
RAM: Samsung 4GB DDR3-1333

Actions #3

Updated by OMEGA345 almost 11 years ago

there are problems with FPS in this game and the sound studders. It goes up to 120fps :P I play the PC version now.

Actions #4

Updated by seroneilol almost 11 years ago

Using the 32 bit version of Dolphin(3.5) and it still crashes at the same spot.

Vastly different hardware as well (6950 2gb, Intel 2500k)

Actions #5

Updated by MayImilae over 10 years ago

This bug happened to a PAL user on the forum. - https://forums.dolphin-emu.org/Thread-gc-beyond-good-evil--26920?pid=285708#pid285708

It appears it happens regardless of version. How some people were able to get past this point to reach Dark Island (read wiki test reports) remains a mystery.

Actions #6

Updated by nigel.harris.uk over 10 years ago

I'm happy to report that the game can now pass the 'Hilly's screen and work fine with both the OpenGL and D3D11 backends. However only the OpenGL backend runs the game at 100% speed pass the Hilly's area. Just to be clear the D3D11 backend is 100% speed but runs extreamly slowl;y after the Hilly's screen.

please see images:
OpenGL: http://imgur.com/I7baBqm,wuxeDTQ,dfKKuFd,VeczPF9
D3D11: http://imgur.com/I7baBqm,wuxeDTQ,dfKKuFd,VeczPF9#3

Settings used: http://imgur.com/I7baBqm,wuxeDTQ,dfKKuFd,VeczPF9#1
http://imgur.com/I7baBqm,wuxeDTQ,dfKKuFd,VeczPF9#2

Actions #7

Updated by kostamarino over 10 years ago

Here it still happens:
http://www.mediafire.com/view/e4picgt45agyt5g/bad_ps_0000(2).txt
If you disable panic handles though the game will continue fine.

Actions #8

Updated by NeoBrainX over 10 years ago

Can you record a fifo log over the place where the shader compile error shows up? I guess it should be able to pass that scene by disabling panic handlers (if it's reproducible enough).

You can record over many seconds and just re-record the fifo log on playback if that makes things any easier.

Actions #9

Updated by MayImilae almost 10 years ago

Here's a fifolog. As kosta said, you can get past it now (I couldn't when I first made this report), so I recorded it as I went through it. You can now see the errors yourself in this handy fifolog!

http://www.mediafire.com/download/tzedi36ts7746ze/beyondgoodandevilfifolog.7z

Actions #10

Updated by NeoBrainX almost 10 years ago

  • Category deleted (gfx)

Pixel shader errors like that hint towards CPU emulation bugs, not GPU emulation stuff. Removing Component-GFX label until we know where the issue lies.

Actions #11

Updated by MayImilae almost 10 years ago

  • Relates to usability changed from Yes to No

It doesn't stop emulation anymore, so losing the Usability tag.

Actions #12

Updated by MayImilae almost 10 years ago

I did a comparison of the area where the errors appear.

Dolphin - http://i.imgur.com/Z2KSOn8.jpg
Console - http://i.imgur.com/eGefIpT.jpg

Compared in 4.0-1516 win64. I knew something was fishy about the water. As you can see... no reflections in Dolphin. Apparently that's what the errors are fussing about.

Actions #13

Updated by MayImilae almost 10 years ago

More testing. 4.0-1535 win64 this time.

D3D slows WAY down on the ocean. In 4.0-1516 it would speed up randomly in certain places, like when being hauled away by Mamagos. But 4.0-1535 doesn't do that, it's always slow throughout. Weird. Of course, reflections are not present the entire time, and internal resolution as no effect on the speed. And there are very slight visual difference between the backends when the camera angles down though. Oh, and black isle leads to the slowdown getting so bad the game hangs. Weird. OpenGL has fullspeed in those same areas and doesn't hang.

Also, it should be noted that in D3D you can't skip past the bad_PS error warnings by just clicking (they respawn infinitely), but in OpenGL you can just click through them. Disabling panic handlers works fine in both backends.

Interpreter still doesn't boot. However, I used the savestate trick to get around it. The game hangs when going into the transition where the bad_ps errors show up, and sits there forever. Loading a savestate in interpreter out on the open water does not make the reflections appear. JITIL behaves identically to JIT.

Real XFB doesn't fix the reflections. EFB to Ram, per-pixel lighting, on and on, all have no effect.

Software shows the reflections... sort of. Has to be in single core to get around the bobbing ship thing (see above). - http://i.imgur.com/ey2CY8s.jpg

Actions #14

Updated by MayImilae almost 10 years ago

Interesting, something that looks like reflections appears at low angles, such as when you go into the first person view on the boat (Y). You can also see it on Black Isle. Both of these shots were taken in OpenGL.

First Person Boat - http://i.imgur.com/EY5oUFb.jpg
Black Isle - http://i.imgur.com/LOjcbXI.jpg

And here's a fifolog of Black Isle that shows the reflections sort of working - http://www.mediafire.com/download/r1d0ctx3hh9u0pv/Beyondgoodandevilfifolog2.7z

Actions #15

Updated by MayImilae almost 10 years ago

  • Regression set to Yes

OOOOOMG. The reflection works in 3.5 OGL! http://i.imgur.com/KCOhUZk.jpg

Yet D3D9 and D3D11 behave identically to how D3D behaves now, with the broken reflections and infinite pixel shader errors. Hmm. Did some revision testing.

3.5 win64 - OGL reflections work, D3D9/D3D11 reflections broken
3.5-644 win64 - OGL reflections work, D3D9/D3D11 reflections broken
3.5-663 win64 - OGL reflections work, D3D9/D3D11 reflections broken
3.5-1025 win64 - All backends do not render the water
3.5-1026 win64 - All backends do not render the water
4.0 win 64 - All backends do not render the water
4.0-1535 - All backends do not render the water, pixel shader errors

3.5-663 is the last revision before the GLSL merger in 3.5-1025. This is a GLSL regression. The shader errors occur regardless, so that may be a separate issue. Still, both occur when the ocean effect is present, so they seem related.

Here's a fifolog, recorded in 3.5-644 OGL with Virtual XFB Off. In revisions before the GLSL merger, it shows the water reflections in OGL. In revisions after the GLSL merger, it doesn't show the reflection. - http://www.mediafire.com/download/kls61bjig5yt095/Beyondgoodandevil-Oceanfifolog3.5-644.7z

Actions #17

Updated by degasus almost 10 years ago

The very old OGL backend didn't changed the shader to the broken one, the new one and the D3D backend just doesn't render anything.
I've hacked in the old behavoir and the rendering seems fixed, so I think it is because of the ERROR9 msg in the shaders.

IMO it's wrose to continue rendering with the wrong shader, so I don't like this hack.

Actions #18

Updated by degasus almost 10 years ago

MaJoR confirmed that this issue is also valid on Interpreter.

Actions #19

Updated by magumagu9 almost 10 years ago

This should be fixed as of 4.0-1577, if I understand the issue correctly. I don't have the game, so I can't verify it myself, though.

Actions #20

Updated by loganstromberg almost 10 years ago

I just gave it a try in 4.0-1761. It...."technically" did render the reflection (no shader compile issue appeared, with panic handlers enabled), but the entire scene was completely janky, slow and unplayable. The water would flicker, all geometry would disappear randomly, rendering would clip out of bounds, etc.

http://i.imgur.com/nyWHdqk.jpg

Actions #21

Updated by loganstromberg almost 10 years ago

Ignore my last comment. I was dumb and had dumb things like frameskipping turned on. Here it is on 4.0-1761:

D3D: http://i.imgur.com/Xvb3LbU.jpg
OGL: http://i.imgur.com/j92k1h4.jpg

The scene runs about 50-60% of the speed of normal gameplay, but it does seem to be rendering correctly.

Actions #22

Updated by drhycodan over 9 years ago

What are the specs of your PC, logan?

Actions #23

Updated by degasus over 9 years ago

  • Status changed from Accepted to Fixed

This issue report doesn't affect performance issues, so I'll mark it as fixed. thx @magumagu

Actions #24

Updated by MayImilae over 9 years ago

Tested and confirmed that the water is working.

Actions #25

Updated by degasus over 9 years ago

" degasus: feel like giving any sort of context of why you marked that issue as fixed?"

This issue was no regression, it just has worked by accident. The older GL code did continue with the last successful compiled shader, the current code (both d3d and ogl) skip the drawing with broken rendering. So the issue was all the time the "ERROR9" message of the shader compilation (why are panicAlerts non-fatal atm?)

magumagu did some HW tests to verify the undocumentated behavior of this ERROR9 issue, and merged his changes in 4.0-1577, which fixes the issue. It was tested by myself iirc + loganstromberg in June 1st (see his correct screenshots in #22), but it seems I haven't resolved this issue report.

Actions

Also available in: Atom PDF