Emulator Issues #9577
closedPikmin [New Play Control!] the camera cannot be properly set into 3/4 view.
0%
Description
Game Name?
Pikmin: New Play Control!
Game ID? (right click the game in the game list, properties, info tab)
R9IE01
MD5 Hash? (right click the game in the game list, properties, info tab, MD5 Hash: Compute)
d1c99f749dd70b2d9150d28c44a61ce0
What's the problem? Describe what went wrong.
When you play Pikmin, there are supposed to be two options, 3/4 zoom, and top-down zoom. In the recent versions of the emulator, the 3/4 zoom malfunctions and becomes basically a slightly zoomed out top-down view. The images describe it better than words.
What steps will reproduce the problem?
Open the game, and select any area. The camera should start in the 3/4 view. Pressing Up on the Pad will switch between the views. If there is not much of a difference. This is the problem.
It should be noted that Pikmin 2 (the gamecube version) does not suffer from the same bug, that means that it is either exclusive to the Wii versions, or it is exclusive to Pikmin 1.
Which versions of Dolphin did you test on? Does using an older version of Dolphin solve your issue? If yes, which versions of Dolphin used to work?
I generally use the latest versions. I'm going to test a few more versions. The versions I tested that had the issue are: 4.0-9177, 4.0-9418.
I also tested 4.0-8506, which worked correctly. In the mean time I will try to test a few more versions.
What are your PC specifications? (CPU, GPU, Operating System, more)
CPU: Intel(R) Core(TM) i5-3317U CPU @ 1.70GHz
GPU: AMD Radeon HD 7600M Series
OS: Windows 8.1 x64
Is there any other relevant information? (e.g. logs, screenshots,
configuration files)
4.0-9418 default (failed 3/4 view): http://imgur.com/kbiwIVj
4.0-9418 after pressing up on the pad (top-down, for some reason it's zoomed pretty far): http://imgur.com/CEneDbq
4.0-8506 default (correct 3/4 view): http://imgur.com/aXT4A8M
4.0-8506 after pressing up on the pad (correct top-down) http://imgur.com/kAYMLWY
Updated by Fog over 8 years ago
Can you use this bisect tool to find the exact version where this breaks?
Updated by Megadardery over 8 years ago
Fog wrote:
Can you use this bisect tool to find the exact version where this breaks?
According to the program, the exact version where this breaks is 4.0-8612. Thanks for the link, I didn't know that such a tool existed.
Updated by Megadardery over 8 years ago
I did few more testing, and apparently the app made a mistake. Here is the actual version that started the issue: https://dolphin-emu.org/download/dev/master/4.0-8610/
In short, 4.0-8608 works, 4.0-8610 doesn't.
Updated by Megadardery over 8 years ago
Never mind. It turns out that the skip EFB Access from CPU is responsible for this issue. If it's on, the issue exists. I'm going to add this to the wiki.
Updated by Megadardery over 8 years ago
I seriously wish that you can actually edit posts. Anyway, allowing EFB Access from CPU causes massive slow-down. That should be checked before the issue is closed.
Updated by JMC4789 over 8 years ago
EFB Access being a massive slowdown is expected: it requires syncing between CPU/GPU
Updated by Fog over 8 years ago
- Status changed from New to Fix pending
- Milestone set to Current
Fixed in PR 3875: https://github.com/dolphin-emu/dolphin/pull/3875/
This fix simply adds that setting to the INI for Pikmin Wii.
Updated by Megadardery over 8 years ago
I'm a bit curious though to know why this game specifically needs EFB access, while Pikmin 2 (at least GCN) doesn't.
Updated by JMC4789 over 8 years ago
A lot of Wii games use EFB Access to tell things about the Wiimote IR and what its hovering over.
Updated by Megadardery over 8 years ago
Yeah, but this game doesn't. The wiimote works perfectly with and without EFB access. The camera just refuses to be behind Olimar when EFB access is skipped for some obscure reasons.
It should be noted that in the game properties, the option synchronize GPU and CPU doesn't affect the issue. I really hope that there is an alternative way to deal with this issue, the EFB access causes really noticeable slow-downs compared to other games. Super Mario Galaxy doesn't suffer from such issues. Why? Maybe there is a specific part of the EFB that is important, in that case, It could be added as a hack instead or something.
Updated by Megadardery over 8 years ago
Last thing I would like to mention is that the slow-down is not consistent and very odd.
So, while EFB access is skipped. Above land, or in water (in the distant spring, for example), my fps reaches 100-108. That value doesn't change when the camera 'angle' is changed. But when zoomed out, the fps naturally decreases to around 85-90. Which is understandable.
However when EFB access is not skipped. The fps goes down to ~20 during the top-down view (which is the only available option when EFB is skipped) going in water decreases the fps to ~14 fps.
When the 3/4 view is activated. The fps reaches ~45 no matter the zoom (in other words, 3/4 view, even when showing more stuff than the top-down view gives out less slow-down). However going to the water actually decreases fps back to ~14 fps. Now that's really odd.
Bottom line, something really fishy is going with the EFB, if it is skipped. The emulator follows the common sense in that the fps kinda decreases when more stuff is shown. And water does not do anything weird. However with EFB access enabled, the amount of stuff shown does not matter. The angle of the camera does however make a big difference. Also water causes slowdowns.
Can someone please investigate further in the situation? It's not the matter of the wiimote anymore.
Updated by JMC4789 over 8 years ago
The game is looking for stuff on the screen.
Updated by JosJuice over 8 years ago
It doesn't sound like anything is really fishy, it just sounds like the game is using the hardware differently in different situations.
Updated by Megadardery over 8 years ago
Can you explain a bit further, what does that have to do with camera angles, and what are those stuff. Is it looking for them using the EFB? if that's the case then why? The game works fine when EFB is skipped. Why does the game refuse to go in 3/4 view when it can't find those stuff or something?
Updated by JMC4789 over 8 years ago
It's probably using EFB Access to see various things on screen, perhaps Olimar, the number of pikmin, etc.
EFB Access to CPU basically means "I'm looking for something on the screen" and it gets that information and uses it for something. Super Mario Sunshine uses EFB Access to determine the turning radius of Mario based on if he's on screen or not, for instance. So, this is really just typical Nintendo game shenanigans.
Updated by Megadardery over 8 years ago
So the game is trying to access something "urgent". And because it failed it prevents the 3/4 camera angle (even though it doesn't make much difference). Then in Pikmin 2, the developers decided, nah we don't need that?
Updated by JosJuice over 8 years ago
Your speculation is not making much sense.
Updated by JMC4789 over 8 years ago
What I'm thinking is, based on playing the game. When Skip EFB Access is enabled, it's outright failing check, and thus falling back to whatever the default is.
Updated by Megadardery over 8 years ago
I'm still a bit curious to what it is actually testing and if there is an alternative way to do this. You tested the game? Did you notice slowdowns?
Interestingly, the gamecube version doesn't seem to suffer that much, or at least the bug is not there: https://www.youtube.com/watch?v=W8U9H-lFDIY
now if someone has Pikmin 2 Wii, it's time to test this.
Updated by Fog over 8 years ago
Updated by JMC4789 over 8 years ago
Fixed by 4.0-9426 -> https://dolphin-emu.org/download/dev/a9931e609fa3c4ca0abaf58d395a7555114ab4a4/
Feel free to keep investigating the behavior. I'm guessing that in the Wii port there were a lot of changes to the code to account for the fact that the Wiimote InfraRed now was used for the control scheme. In doing so, they had to make sure that stuff wasn't blocking the screen; if it was, you wouldn't be able to select/use Pikmin.
It could be something else, but EFB Access to CPU is an integral feature of the GameCube/Wii. Skipping it could cause all kinds of weird behaviors, from missing distortions, missing Bloom, various bits of the game not working (Pull Stars in Super Mario Galaxy 1/2), etc.
If you're looking for a way to fix it without the option, that probably won't happen. Sometimes the games do stuff that are costly to emulate.
Updated by Megadardery over 8 years ago
Yeah, sadly I think this is the current only way to do it. The only other idea is to force the camera using action replay, a skilled hacker could do it, and in that case, I think adding that as a patch to the wiki would be the best solution.