Emulator Issues #9681
UpdateWantDeterminism() isn't called when entering movie recording/playback by loading a savestate
What's the problem? Describe what went wrong.
When loading a savestate that has an associated DTM file (for instance, a savestate named a.sav with a DTM named a.sav.dtm), Dolphin enters movie recording or playback. However, Core::UpdateWantDeterminism() doesn't get called, meaning g_want_determinism will stay false, so parts of Dolphin can behave non-deterministically. This is the line of code where it happens: https://github.com/dolphin-emu/dolphin/blob/3570c7f03a2aa90aa634f96c0af1969af610f14d/Source/Core/Core/State.cpp#L576
What steps will reproduce the problem?
First, to create the needed files:
- Choose any game and use Movie > Start Recording Input to start recording a movie.
- When the game is running, make a savestate and save it somewhere. Dolphin will automatically create an associated DTM file.
Once you have the needed files, you can reproduce the issue:
- Start the game again, but this time without movie recording or playback. Just start it the normal way.
- Load the savestate that has an associated DTM file.
- If you have a breakpoint in Core::UpdateWantDeterminism(), you will now notice it doesn't trigger even though Dolphin has entered movie recording or playback.
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?
Tested on 5.0-124. I'm assuming the issue was introduced by 3a2048ea570b428ea34adbfea6b71280e1ae5cc0 since g_want_determinism didn't exist until then, but I haven't confirmed it.
#4 Updated by JosJuice over 2 years ago
- Status changed from Fix pending to Fixed
- Fixed in set to 5.0-1223