Emulator Issues #9506
closedMore Metroid Prime 3 savestate issues
0%
Description
Game Name?
Metroid Prime 3: Corruption
Game ID? (right click the game in the game list, properties, info tab)
RM3E01
MD5 Hash? (right click the game in the game list, properties, info tab, MD5 Hash: Compute)
84f9cfd24681390997a31f871278e8f3
What's the problem? Describe what went wrong.
Recently I logged Issue #9496 regarding an issue with savestates in Metroid Prime 3. I just tried out the latest Dolphin build that contains the fix for that issue (4.0-9267 at the time I logged this). Unfortunately, I am still noticing some problems. See reproduction steps below.
What steps will reproduce the problem?
The instructions for each of these problems are quick to follow and seem to consistently reproduce the problems.
Problem 1¶
With this series of steps, the game will hang and play a continuous tone, or display a series of dialogs and crash.
- Start dolphin, and start Metroid Prime 3. Move past the title screen and start the game either from the very beginning or from one of the games built-in native saves (not a Dolphin savestate).
- Create a save state
- Restore the save state
- Try to play the game. Within a minute or so, one of two things seems to reliably happen:
- the game locks up and plays a continuous tone
- a series of dialogs are displayed, followed by a crash. Here is an example of what I get when this happens:
When I click no, the game crashes
Problem 2¶
This problem is best observed at a point in the game where you are able to walk around. (Assuming you are starting the game from the very beginning, play for about 2 minutes until you get off the ship and are able to walk around). In this series of steps, restoring the savestate causes Samus to move by herself even if you aren't pressing any buttons.
- Start dolphin, and start Metroid Prime 3. Move past the title screen, start the game, and make sure you are at a point where you can walk around.
- Create a savestate
- Close the emulation window. (It doesn't matter if you also completely close down Dolphin).
- Start Metroid Prime 3 again and restore the savestate. Samus begins moving by herself. Oddly enough, Dolphin does not seem to crash, but the game is unplayable. In case it's relevant, I am using a real wiimote connected via a MayFlash DolphinBar.
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 tested on 4.0-9267 (the latest dev build at the time I logged this issue). Also, as I mentioned on Issue #9496, the last version of Dolphin where savestates seemed to work reliably was appeared to be 4.0-6965, and they appear to have worked with no version since 4.0-6970. Even when save states were working, I could only reliably use them within a single session of playing. (If you stop and start the game from one of the game's native save points and then restore a savestate taken during a previous session of playing, Samus moves around by herself like a button is stuck on the nunchuck).
What are your PC specifications? (CPU, GPU, Operating System, more)
- Windows 10 Pro 64 bit
- Intel Core i7-2600K CPU @ 3.4 GHz
- 16GB RAM
- nvidia GeForce GTX 770 with 2GB RAM
- real wiimote connected via a MayFlash DolphinBar
Is there any other relevant information? (e.g. logs, screenshots,
configuration files)
I will provide any other data that is needed.
Files
Updated by phire over 8 years ago
I like your bug reports, plenty of detail.
Are either of these regressions from when savestates were (kind of) working in 4.0-6965 ?
Updated by locutus over 8 years ago
Thanks!
I think the crash/freeze problem is possibly a regression, not only since 4.0-6965, but also since as recently as 4.0-9237. I just double checked, and in version 4.0-9237, restoring a savestate appears to only cause a crash after I stop the game and then attempt to restart it (without completely closing Dolphin). As long as I 1) start from one of the game's built-in saves, 2) make sure to only restore savestates I've taken during that session, and 3) don't attempt to restart the game without completely closing Dolphin first, I seem to get no crashes and no erratic movement. In the current version (4.0.9267) I can't even do that. Shortly after I restore a savestate, I get the freeze-with-tone or crash as described on this issue.
I believe the automatic movement issue has been around for a long time. I observed it as far back as 4.0-3870 (which is the farthest back I've tested so far).
Updated by JMC4789 over 8 years ago
The automatic movement is from the Wiimote getting disconnected.
It's not a bug in savestates per-se, we just don't handle it at all.
Updated by locutus over 8 years ago
The note about the automatic movement being due to the wiimote getting disconnected made me think to try something. I went back to 4.0-6965 (the last version where savestates seemed to reliably work) and did the following:
- Started up Dolphin and Metroid Prime 3
- Created a savestate
- Stopped the emulation and restarted it
- Restored the savestate. (The automatic movement started as usual)
- Disconnected my DolphinBar from the USB port. This caused a message in the game about the wiimote being disconnected
- Reconnected the DolphinBar to the USB port. At this point, the wiimote reconnected, the automatic movement stopped, and it appeared that I could actually play the game using the last savestate I had made. (You have to make sure to make a new savestate so you have a clean one for the current session if you don't want more automatic movement during the current session when you restore).
I also tried the disconnect/reconnect trick of the DolphinBar on 4.0-9267, and it actually stopped the automatic movement there as well. Unfortunately, you still run into the freeze/crash problem described on this issue.
Updated by JMC4789 almost 8 years ago
- Status changed from New to Fixed
Another of the savestate issues were fixed with HLE audio initialization. Wii Remotes + Savestates aren't particular to any game, so, I'm going to close this. the Metroid Prime 3 specific stuff was fixed.