Emulator Issues #11642
Real Wiimote not always working after loading a save state with recent change also slowing down responsiveness after loading a savestate
Super Mario Galaxy 2, Xenoblade Chronicles but applies to all games.
Game ID? (right click the game in the game list, properties, info tab)
MD5 Hash? (right click the game in the game list, properties, info tab, MD5 Hash: Compute)
What's the problem? Describe what went wrong.
When loading save states when using a Real Wiimote (motion plus, official Nintendo) the controls do not always work after loading.
What steps will reproduce the problem?
- Start a new instance of Dolphin.
- Load Super Mario Galaxy 2 and load a save game using the Wii loading system, not a save state.
- Save your game using a save state.
- Quit Dolphin.
- Start Dolphin and Super Mario Galaxy 2 and load your previous save state.
- Play a bit and save a new save state.
- Load that new save state as soon as you save it.
- Sometimes the controls will not be working after the disconnect/reconnect of the Wiimote that was added in build 5.0-9808
Holding down a button on the Wiimote or a direction on the Nunchuck seems to make the failure more likely.
A secondary problem with the 9808 solution is that time taken to do the disconnect/reconnect is sufficient to make save states less useful in timed or dangerous situations because you dont have control for 1-2 seconds.
Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.
Yes. Latest tested version is 9808.
Is the issue present in the latest stable version?
No because the disconnect/reconnect was not implemented there. There are other issues with this in stable.
If the issue isn't present in the latest stable version, which is the first broken version? (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)
- But again a different issue across Dolphin instances existed before hence the fix in 9808.
If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible. Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too. For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer
[Attach any fifologs if possible, write a description of fifologs and screenshots here to assist people unfamiliar with the game.]
What are your PC specifications? (CPU, GPU, Operating System, more)
Core i7 4770K, Nvidia 1080TI, Windows 10
Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)
No data I can supply will be useful here I think. Ideally the disconnect/reconnect would only happen when required - i.e not within a single session of Dolphin. It may also be useful to have a config option that we could apply to switch this on and off on a game config level. Ideally this could be changed when the game is running without having to restart.
Note that in Step 7 in What steps will reproduce the problem? it should be possible to just keep loading the save state and getting different results. I have seen the same save state work, mess up the controls like an input is held down, start with seemingly no controls available and make Dolphin say the WiiRemote has been disconnected. In all cases using the menu Disconnect/reconnect seems to fix the problem until the save state is next loaded.
After more testing it seems I have misreported this - it is consistent but not ideal.
If I dont touch the Nunchuck at all during the disconnect/reconnect everything works.
The 1-2 second delay is still annoying and could be removed by only doing the reset when required if such a test is possible, but the controls work if I dont touch the Nunchuck.
If I am holding a direction or button on the Nunchuck when the disconnect/reconnect happens the controls always break.
I cannot now repeat the issue with the Wiimote becoming disconnected and displaying the "press A to reconnect" method on loading a save, but I do know that it happened once. Maybe a timing issue.
This is the expected behavior considering what we're doing. If you were to connect a Wii Remote on the Wii while holding the joystick it'd end up broken too.
The question become is there a way to make this better without the problems the old system had (which were sometimes permanent issues with controls after saving a state.)
#6 Updated by Billiard26 10 months ago
Things that need to be watched to check if a reconnection is "required".
Reporting mode -> Could be synced instead of reconnecting (This is all that was synced before)
Extension initialization/encryption state -> Possible to sync
Speaker state -> Not really understood enough to properly sync
IR Camera State -> Potentially possible to sync
Motion plus initialization state -> Could not be synced but we could hack in our own responses now that M+ is fully understood.
Any ongoing read requests -> Would be a pain to sync
Probably more I'm forgetting...
Basically, it would be a ton of code and would be super hacky.
A better solution would be adding Wiimote support to controller interface (in progress).
Users wanting to make regular use of savestates with physical wiimotes can simply re-map all wiimote controls to a fully emulated wiimote.
Savestates would then work perfectly without adding state tracking and hackery.