Emulator Issues #13223
openGoldenEye: 007 (Wii) - Bloom lighting effect is stronger than on console
0%
Description
Game Name?
GoldenEye: 007 (NTSC-U)
Game ID? (right click the game in the game list, Properties, Info tab)
SJBE52
MD5 Hash? (right click the game in the game list, Properties, Verify tab, Verify Integrity button)
e9a863892fcc96cb407c9e9143722af7
What's the problem? Describe what went wrong.
Bloom effects on lights are stronger than the real hardware.
I've attached 5 screenshots. The first two are on real hardware. Please excuse the image quality since they're just screengrabs from YouTube videos.
The next 3 screenshots are from the latest beta, although this problem goes back at least 2 years based on the couple of Dolphin versions I've tested this with.
At default settings, the bloom effect is exaggerated. However, enabling "store EFB copies to texture only" causes the bloom effect to stop working on the bottom half of the screen.
Setting the texture cache accuracy to "safe" helps a little, but it's still too strong.
As mentioned in this issue (https://bugs.dolphin-emu.org/issues/12576), the software renderer seems to be more accurate, but it's still not right.
Also, as mentioned in this issue (https://bugs.dolphin-emu.org/issues/12660), having higher internal resolutions causes weird line patters to show up in the bloom effect. I understand the effect doesn't scale well, but I just wanted to point this out.
I repeated these tests with different graphics backends, different resolutions, and different versions of Dolphin up to a little over 2 years ago. The same issues apply to both of them, with one exception...
The issue where the bloom effect gets cut off at the bottom half of the screen only seems to happen in recent versions of Dolphin. I'll check later to see which exact version affected it and I'll report back.
Files
Updated by pokechu22 over 1 year ago
Please record a fifolog (tools -> fifo player, then click record while ingame, then save it) and then upload it to this issue. If the file is too big, compress it with 7-zip. The fifolog will let me check what the game is doing to render the scene and also play it the exact same scene on real hardware to compare results.
The "store EFB copies to texture only" behavior is a bit odd, as that setting doesn't normally impact games using an EFB copy as a texture later on, but perhaps for memory reasons the game does the bloom effect in two halves and moves the texture on the CPU side to elsewhere in memory? If so it might interact poorly with the fifoplayer, but the easiest way to find out would be to test it. 5.0-15294 is a possible version where that behavior changed for what it's worth (and the version before that is 5.0-15289).
Updated by FitterSpace over 1 year ago
- File goldeneye_bloom.7z goldeneye_bloom.7z added
- File goldeneye_efb_to_texture_only.7z goldeneye_efb_to_texture_only.7z added
- File 5.0-15289 bloom.7z 5.0-15289 bloom.7z added
Thank you! You were right, that 5.0-15289 doesn't have that issue with the bloom cutting off on the bottom half of the screen.
I've attached a few different fifo logs for you. I don't know if changing Dolphin's settings affects it, so I just included them anyway.
Updated by pokechu22 over 1 year ago
- File real_hardware.png real_hardware.png added
- File hw_fifoplayer_screenshots.7z hw_fifoplayer_screenshots.7z added
- Status changed from New to Accepted
Changing dolphin settings sometimes can be baked into the fifolog, but it seems like that isn't the case here, which is nice because it means I can try out different configurations easily.
I've used goldeneye_efb_to_texture_only for everything as it has a good angle. I also used the hardware fifoplayer to take screenshots (both on real hardware and on dolphin for consistency), and tried out a mix of settings (Nvidia GPU+Vulkan, Intel GPU+OpenGL+framebuffer fetch, and the software renderer; and also toggling Manual Texture Sampling, store EFB copies to texture only, and safe/medium texture cache). All of these are attached.
My main observation is that manual texture sampling mostly improves things, and the fbfetch path (which is not finished) also helps a lot, but even with that it's still a bit too strong. The software render is also brighter than it should be (across the whole image).
Additionally, the texture cache setting only affects things when "store EFB copies to texture only" is enabled (i.e. it only matters when bloom is drawn over only half of the screen). The "safe" version in this case is different from what's drawn in every other case, and also doesn't seem to match real hardware. It's odd that "safe" gives less accurate results, but I'm guessing it's some kind of weird texture cache issue.
One other oddity is that "VideoCommon\BPStructs.cpp:274 W[Video]: Oversized EFB copy: 160x112 (offset 0,448 stride 2560)" is repeatedly logged. This means that the game's trying to make an EFB copy from y=448 to 560 when the EFB itself is from y=0 to y=528. This is out of bounds, but not down the middle of the screen. I also notice that the game draws the bloom effect in the region from t=448 to y=528 (but it actually splits it into two sections in some cases, though not all, and it also seems to be doing trickery to merge the two textures together where they're just located after each other in memory; that's probably what's breaking the store to texture only path).
Updated by pokechu22 over 1 year ago
- Related to Emulator Issues #12576: Skyward Sword: Software Renderer produces a more accurate video than any other backend added
Updated by pokechu22 over 1 year ago
- Related to Emulator Issues #13128: Xenoblade Chronicles bloom on title screen is much stronger than console added