Emulator Issues #3325
closed[OSX] Lighting bug on Super Smash Bros Melee
Added by oakleafs about 14 years ago.
0%
Description
What steps will reproduce the problem?
- Launch Dolphin
- Play Super Smash Bros Melee
What is the expected output? What do you see instead?
The light is buggy on the characters. Everything else is fine. See screenshot attached, on DK's feet and face.
Dolphin version with the problem? Other Dolphin version without the
problem?
Tested on Dolphin R6263. Snow Leopard build with SDL.
32-bit or 64-bit and any other build parameters?
64-bit.
OS version and versions of tools/libraries used?
Snow Leopard 10.6.4.
Please provide any additional information below.
I tried to play on the settings, but nothing seems to affect this lighting issue.
Updated by oakleafs about 14 years ago
The problem is still there with Dolphin R6279.
Updated by skidau about 14 years ago
This bug occurs only on OSX. We suspect it is a problem with the OSX OpenGL driver. Will keep this issue open in case a work-around can be devised.
Updated by oakleafs about 14 years ago
@skidau: it's great to see some love for the OSX community. Thank you!
Updated by NeoBrainX almost 14 years ago
- Category set to gfx
- Operating system OS X added
Updated by gpantalos almost 14 years ago
This bug also occurs when playing Donkey Kong Country Returns on latest Snow Leopard on a macbook with C2D 2+ GHz and nvidia 9400 vga card.
Updated by laurence120591 over 13 years ago
Can confirm this on Nvidia GeForce GT 120 under 10.6.6.
Problem occurs on:
Legend of Zelda: The Windwaker - http://img26.imageshack.us/i/gzle011.png/
Super Smash Bros. Brawl - http://img819.imageshack.us/i/rsbe012.png/
Updated by adubblesk over 13 years ago
this is happening while playing Resident Evil 0 as well. If I disable lighting its fixes it
rebecca is bright but since i disabled lighting effects there are now shadows cast on her. If i leave lighting effects enabled, the shadows are messed up and her clothing textures are affected.
Updated by Hero.of.Fire over 13 years ago
I can also confirm this issue occurs with Twilight Princess, to the point where some of the textures on character models appear incorrectly. Any assistance would be greatly appreciated.
Updated by mitrovichsarcos about 13 years ago
There is another issue with the same problem and they wont reply! this is so annoying
Updated by Sonicadvance1 almost 13 years ago
Issue 3892 has been merged into this issue.
Updated by Sonicadvance1 almost 13 years ago
Could anyone effected try this with the GLSL-master branch and make sure in the video settings configuration file to change the "UseGLSL" variable to true?
Updated by jroseff almost 13 years ago
The GLSL-master branch doesn't build on 10.7.2.
/Developer/usr/bin/llvm-gcc -o Build/Darwin-x86_64-release/Externals/GLew/glewinfo -arch x86_64 -arch i386 -mmacosx-version-min=10.5.4 -Wl,-dead_strip,-dead_strip_dylibs -Wl,-pagezero_size,0x1000 -Wl,-syslibroot,/Developer/SDKs/MacOSX10.6.sdk -Xarch_i386 -Wl,-read_only_relocs,suppress Build/Darwin-x86_64-release/Externals/GLew/src/glewinfo.o Build/Darwin-x86_64-release/Externals/GLew/libGLEW.a -FExternals/Cg -framework AGL -framework OpenGL -Wl,-lazy_framework,Cg -Wl,-weak_framework,OpenCL -Wl,-weak_framework,QuickTime -Wl,-no_arch_warnings
Undefined symbols for architecture x86_64:
"OGL::UniformNames", referenced from:
OGL::SetMultiGLSLVSConstant3fv(unsigned int, unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetMultiGLSLVSConstant4fv(unsigned int, unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetGLSLVSConstant4fv(unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetGLSLVSConstant4f(unsigned int, float, float, float, float)in libvideoogl.a(VertexShaderCache.o)
OGL::SetMultiGLSLPSConstant4fv(unsigned int, unsigned int, float const*)in libvideoogl.a(PixelShaderCache.o)
OGL::SetGLSLPSConstant4fv(unsigned int, float const*)in libvideoogl.a(PixelShaderCache.o)
OGL::SetGLSLPSConstant4f(unsigned int, float, float, float, float)in libvideoogl.a(PixelShaderCache.o)
...
"OGL::ProgramShaderCache::Shutdown()", referenced from:
OGL::VideoBackend::Shutdown() in libvideoogl.a(main.o)
"OGL::ProgramShaderCache::GetShaderProgram()", referenced from:
OGL::SetMultiGLSLVSConstant3fv(unsigned int, unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetMultiGLSLVSConstant4fv(unsigned int, unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetGLSLVSConstant4fv(unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetGLSLVSConstant4f(unsigned int, float, float, float, float)in libvideoogl.a(VertexShaderCache.o)
OGL::SetMultiGLSLPSConstant4fv(unsigned int, unsigned int, float const*)in libvideoogl.a(PixelShaderCache.o)
OGL::SetGLSLPSConstant4fv(unsigned int, float const*)in libvideoogl.a(PixelShaderCache.o)
OGL::SetGLSLPSConstant4f(unsigned int, float, float, float, float)in libvideoogl.a(PixelShaderCache.o)
...
"OGL::ProgramShaderCache::SetBothShaders(unsigned int, unsigned int)", referenced from:
OGL::Renderer::RestoreAPIState() in libvideoogl.a(Render.o)
OGL::Renderer::ResetAPIState() in libvideoogl.a(Render.o)
OGL::TextureConverter::DecodeToTexture(unsigned int, int, int, unsigned int)in libvideoogl.a(TextureConverter.o)
OGL::TextureConverter::EncodeToRamYUYV(unsigned int, TargetRectangle const&, unsigned char*, int, int)in libvideoogl.a(TextureConverter.o)
OGL::TextureConverter::EncodeToRamFromTexture(unsigned int, unsigned int, bool, bool, unsigned int, int, MathUtil::Rectangle const&)in libvideoogl.a(TextureConverter.o)
OGL::TextureCache::TCacheEntry::FromRenderTarget(unsigned int, unsigned int, unsigned int, MathUtil::Rectangle const&, bool, bool, unsigned int, float const*)in libvideoogl.a(TextureCache.o)
OGL::VertexManager::vFlush() in libvideoogl.a(VertexManager.o)
...
"OGL::ProgramShaderCache::SetMultiPSConstant4fv(unsigned int, float const*, unsigned int)", referenced from:
OGL::SetMultiGLSLPSConstant4fv(unsigned int, unsigned int, float const*)in libvideoogl.a(PixelShaderCache.o)
OGL::SetGLSLPSConstant4fv(unsigned int, float const*)in libvideoogl.a(PixelShaderCache.o)
OGL::SetGLSLPSConstant4f(unsigned int, float, float, float, float)in libvideoogl.a(PixelShaderCache.o)
"OGL::ProgramShaderCache::SetMultiVSConstant4fv(unsigned int, float const*, unsigned int)", referenced from:
OGL::SetMultiGLSLVSConstant3fv(unsigned int, unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetMultiGLSLVSConstant4fv(unsigned int, unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetGLSLVSConstant4fv(unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetGLSLVSConstant4f(unsigned int, float, float, float, float)in libvideoogl.a(VertexShaderCache.o)
"OGL::ProgramShaderCache::Init()", referenced from:
OGL::VideoBackend::Video_Prepare() in libvideoogl.a(main.o)
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
Undefined symbols for architecture i386:
"OGL::UniformNames", referenced from:
OGL::SetMultiGLSLVSConstant3fv(unsigned int, unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetMultiGLSLVSConstant4fv(unsigned int, unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetGLSLVSConstant4fv(unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetGLSLVSConstant4f(unsigned int, float, float, float, float)in libvideoogl.a(VertexShaderCache.o)
OGL::SetMultiGLSLPSConstant4fv(unsigned int, unsigned int, float const*)in libvideoogl.a(PixelShaderCache.o)
OGL::SetGLSLPSConstant4fv(unsigned int, float const*)in libvideoogl.a(PixelShaderCache.o)
OGL::SetGLSLPSConstant4f(unsigned int, float, float, float, float)in libvideoogl.a(PixelShaderCache.o)
...
"OGL::ProgramShaderCache::Shutdown()", referenced from:
OGL::VideoBackend::Shutdown() in libvideoogl.a(main.o)
"OGL::ProgramShaderCache::GetShaderProgram()", referenced from:
OGL::SetMultiGLSLVSConstant3fv(unsigned int, unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetMultiGLSLVSConstant4fv(unsigned int, unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetGLSLVSConstant4fv(unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetGLSLVSConstant4f(unsigned int, float, float, float, float)in libvideoogl.a(VertexShaderCache.o)
OGL::SetMultiGLSLPSConstant4fv(unsigned int, unsigned int, float const*)in libvideoogl.a(PixelShaderCache.o)
OGL::SetGLSLPSConstant4fv(unsigned int, float const*)in libvideoogl.a(PixelShaderCache.o)
OGL::SetGLSLPSConstant4f(unsigned int, float, float, float, float)in libvideoogl.a(PixelShaderCache.o)
...
"OGL::ProgramShaderCache::SetBothShaders(unsigned int, unsigned int)", referenced from:
OGL::Renderer::RestoreAPIState() in libvideoogl.a(Render.o)
OGL::Renderer::ResetAPIState() in libvideoogl.a(Render.o)
OGL::TextureConverter::DecodeToTexture(unsigned int, int, int, unsigned int)in libvideoogl.a(TextureConverter.o)
OGL::TextureConverter::EncodeToRamYUYV(unsigned int, TargetRectangle const&, unsigned char*, int, int)in libvideoogl.a(TextureConverter.o)
OGL::TextureConverter::EncodeToRamFromTexture(unsigned int, unsigned int, bool, bool, unsigned int, int, MathUtil::Rectangle const&)in libvideoogl.a(TextureConverter.o)
OGL::VertexManager::vFlush() in libvideoogl.a(VertexManager.o)
OGL::TextureCache::TCacheEntry::FromRenderTarget(unsigned int, unsigned int, unsigned int, MathUtil::Rectangle const&, bool, bool, unsigned int, float const*)in libvideoogl.a(TextureCache.o)
...
"OGL::ProgramShaderCache::SetMultiPSConstant4fv(unsigned int, float const*, unsigned int)", referenced from:
OGL::SetMultiGLSLPSConstant4fv(unsigned int, unsigned int, float const*)in libvideoogl.a(PixelShaderCache.o)
OGL::SetGLSLPSConstant4fv(unsigned int, float const*)in libvideoogl.a(PixelShaderCache.o)
OGL::SetGLSLPSConstant4f(unsigned int, float, float, float, float)in libvideoogl.a(PixelShaderCache.o)
"OGL::ProgramShaderCache::SetMultiVSConstant4fv(unsigned int, float const*, unsigned int)", referenced from:
OGL::SetMultiGLSLVSConstant3fv(unsigned int, unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetMultiGLSLVSConstant4fv(unsigned int, unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetGLSLVSConstant4fv(unsigned int, float const*)in libvideoogl.a(VertexShaderCache.o)
OGL::SetGLSLVSConstant4f(unsigned int, float, float, float, float)in libvideoogl.a(VertexShaderCache.o)
"OGL::ProgramShaderCache::Init()", referenced from:
OGL::VideoBackend::Video_Prepare() in libvideoogl.a(main.o)
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
lipo: can't open input file: /var/folders/pk/pbn900jj76xcxw_zmntjcyfm0000gn/T//ccWc9dOo.out (No such file or directory)
scons: *** [Binary/Darwin-x86_64/Dolphin.app/Contents/MacOS/Dolphin] Error 1
scons: building terminated because of errors.
Updated by Sonicadvance1 almost 13 years ago
oh, the Programshadercache file needs to be added to scons.
I added it to HEAD, should compile now.
Updated by jroseff almost 13 years ago
Thanks, it compiles now, but trying to start a game crashes it. I've attached a crash log for that, and also one for Dolphin in 32-bit mode – it actually doesn't run in 32-bit mode at all.
For the 32-bit crash I can try switching compilers I guess, the LLVM ones that ship with Xcode 4 aren't known to be particularly good at compiling things with loads of dependencies, but the GLSL crash seems to be directly related to GLSL (check the VM region summary).
Updated by jroseff almost 13 years ago
Also, with GLSL disabled (obviously), Twilight Princess seems to have a new issue.
Updated by Sonicadvance1 almost 13 years ago
Not entirely sure if the crashes directly relate to GLSL.
If GLSL doesn't fix the lighting problem, then I'm not sure if anything can get around this driver error.
Updated by Sonicadvance1 almost 13 years ago
Also, that new error was introduced because I failed a bit. Fixed in head there.
Updated by jroseff almost 13 years ago
Well, I pulled the latest revision (265) and switched to using plain old GCC instead of LLVM-GCC, tried loading TP, and two interesting things happened: one, the GLSL renderer actually works now to the point of showing the health and safety warnings (and says "using GLSL"), but then crashes; two, 32-bit mode also works but doesn't get any farther than 64-bit.
Then I tried SSSB, and the ESRB notice was blue; the menu system didn't show up though, and instead just showed what's in the attached screenshot. SMG did something similar.
Updated by jroseff almost 13 years ago
Also, I just noticed two text files showed up in the binary's directory, dunno if they'll be helpful or not so here they are.
Updated by Sonicadvance1 almost 13 years ago
yea, those two text files aren't too helpful without the debug text that is supposed to show up in terminal as they appear.
Updated by jroseff almost 13 years ago
Oh, sorry about that, compiled a debug build and ran Twilight Princess. This is what shows up (other than the PPC/HLE/BT stuff):
36:24:703 Source/Plugins/Plugin_VideoOGL/Src/Render.cpp:271 I[Video]: Supported OpenGL Extensions:
36:24:703 Source/Plugins/Plugin_VideoOGL/Src/Render.cpp:272 I[Video]: GL_ARB_color_buffer_float GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_instanced_arrays GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_provoking_vertex GL_ARB_shader_objects GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shadow GL_ARB_sync GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_mirrored_repeat GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_transpose_matrix GL_ARB_vertex_arr
36:24:703 Source/Plugins/Plugin_VideoOGL/Src/Render.cpp:273 I[Video]:
36:24:713 Source/Plugins/Plugin_VideoOGL/Src/Render.cpp:448 I[Video]: Max buffer sizes: 65536 65536
36:24:713 Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp:118 I[Video]: pixel max_alu=16384, max_inst=16384, max_attrib=16
Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp:641 E[Video]: Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp:221: (vFlush) OpenGL error 0x502 - invalid operation
36:51:631 Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp:407 E[Video]: Shader compilation failed; see info log
36:51:631 Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp:416 W[Video]: PS Shader info log:
ERROR: 0:38: Incompatible types in initialization (and no available implicit conversion)
ERROR: 0:39: Incompatible types in initialization (and no available implicit conversion)
ERROR: 0:40: Incompatible types in initialization (and no available implicit conversion)
ERROR: 0:41: Incompatible types in initialization (and no available implicit conversion)
ERROR: 0:42: Incompatible types in initialization (and no available implicit conversion)
ERROR: 0:43: Incompatible types in initialization (and no available implicit conversion)
ERROR: 0:44: Incompatible types in initialization (and no available implicit conversion)
ERROR: 0:45: Incompatible types in initialization (and no available implicit conversion)
ERROR: 0:57: Use of undeclared identifier 'uv2'
ERROR: 0:57: Use of undeclared identifier 'uv3'
ERROR: 0:58: Use of undeclared identifier 'uv0'
ERROR: 0:58: Use of undeclared identifier 'uv0'
ERROR: 0:59: Use of undeclared identifier 'uv1'
ERROR: 0:59: Use of undeclared identifier 'uv1'
ERR
grep says the part about OpenGL error 0x502 - invalid operation shows up 1,073 times; after this BT disconnects and, presumably, Dolphin crashes. It also spit out a file identical to ps_115.txt above.
Updated by Sonicadvance1 almost 13 years ago
Fancy, that is an unexpected error. I fixed it in head.
Updated by Sonicadvance1 almost 13 years ago
- Status changed from New to Accepted
Updated by jroseff almost 13 years ago
Well, it starts the game now, but it looks a little strange. Logging info showed the same thing (except for the errors), and under debug it was mostly the same, except for this repeated ~11,000 times:
44:33:318 Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp:101 D[Video]: frame0:
44:33:318 Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp:106 D[Video]: colchan0: matsrc=0, light=0xff, ambsrc=0, diffunc=2, attfunc=3
44:33:318 Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp:108 D[Video]: alpchan0: matsrc=0, light=0x0, ambsrc=0, diffunc=2, attfunc=3
44:33:318 Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp:119 D[Video]: txgen0: proj=0, input=0, gentype=0, srcrow=5, embsrc=0, emblght=0, postmtx=61, postnorm=0
44:33:318 Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp:123 D[Video]: pixel: tev=1, ind=0, texgen=1, dstalpha=0, alphafunc=0x1c
44:33:319 Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp:641 E[Video]: Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp:221: (vFlush) OpenGL error 0x502 - invalid operation
44:33:319 Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp:641 E[Video]: Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp:287: (vFlush) OpenGL error 0x502 - invalid operation
no ps_*.txt's this time though. Is there anything else I should be looking for in the log? I'll try some other games too, but as far as I know this is the only one I have other than Wind Waker that's affected by the lighting bug.
Updated by jroseff almost 13 years ago
DKCR has some new stuff show up in the log:
23:39:607 Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp:641 E[Video]: Source/Plugins/Plugin_VideoOGL/Src/Render.cpp:1036: (Swap) OpenGL error 0x500 - invalid enumerant
23:39:636 Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp:641 E[Video]: Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp:126: (vFlush) OpenGL error 0x500 - invalid enumerant
Updated by Sonicadvance1 almost 13 years ago
Actually, may have just fixed this. Try latest head if you want.
Updated by jroseff almost 13 years ago
Everything's still broken in the same places as before, and logs the same errors. Regular Cg Twilight Princess is still all orangey, too.
Updated by Sonicadvance1 almost 13 years ago
Issue 5091 has been merged into this issue.
Updated by NeoBrainX almost 12 years ago
Issue 5772 has been merged into this issue.
Updated by NeoBrainX almost 12 years ago
Issue 5772 has been merged into this issue.
Updated by Sonicadvance1 almost 12 years ago
Issue 5556 has been merged into this issue.
Updated by pauldacheez almost 12 years ago
There's nothing you can do. delroth tried to figure out how to fix it, but progress is stalled on that.
Updated by pauldacheez almost 12 years ago
Also, don't post files on here. There's a really strict limit on space.
Updated by mongerelo94 almost 12 years ago
ok thanks for the response ill delete after comments have been viewed
Updated by jroseff almost 12 years ago
Thanks to a new (unfinished, experimental) Quartz backend in Wine, Dolphin can actually run under Wine on OS X. If Direct3D9 is selected as the backend, this bug disappears, although it's still present under OpenGL. I realize this isn't exactly a practical solution, but it does show that the bug can be worked around.
Updated by jroseff almost 12 years ago
For reference, here's a few screenshots.
OS X native: http://dl.dropbox.com/u/8706979/Screen%20Shot%202012-12-19%20at%208.58.51%20PM.png
Wine OGL: http://dl.dropbox.com/u/8706979/Screen%20Shot%202012-12-19%20at%209.04.45%20PM.png
Wine D3D9: http://dl.dropbox.com/u/8706979/Screen%20Shot%202012-12-19%20at%209.08.51%20PM.png
Obviously there's some other bugs when running D3D9 under wine (part of the bridge is missing), but at least the lighting bug seems to be fixed.
Updated by parlane almost 12 years ago
Issue 5936 has been merged into this issue.
Updated by Sonicadvance1 over 11 years ago
- Status changed from Accepted to Fixed
This bug is fixed with the GLSL merge.
Updated by objecttothis over 11 years ago
When should we expect to see the GLSL merge in the developer release for Windows 64-bit?
Updated by pauldacheez over 11 years ago
We've already merged it. http://dolphin-emu.org/download/