diff --git a/Source/Core/Core/Movie.cpp b/Source/Core/Core/Movie.cpp
index 34bc547d53..1fea00cc1d 100644
--- a/Source/Core/Core/Movie.cpp
+++ b/Source/Core/Core/Movie.cpp
@@ -10,6 +10,7 @@
 #include <mbedtls/md.h>
 #include <mutex>
 
+#include "Common/Assert.h"
 #include "Common/ChunkFile.h"
 #include "Common/CommonPaths.h"
 #include "Common/FileUtil.h"
@@ -1149,6 +1150,7 @@ void LoadInput(const std::string& filename)
       if (s_playMode != MODE_PLAYING)
       {
         s_playMode = MODE_PLAYING;
+        Core::UpdateWantDeterminism();
         Core::DisplayMessage("Switched to playback", 2000);
       }
     }
@@ -1157,6 +1159,7 @@ void LoadInput(const std::string& filename)
       if (s_playMode != MODE_RECORDING)
       {
         s_playMode = MODE_RECORDING;
+        Core::UpdateWantDeterminism();
         Core::DisplayMessage("Switched to recording", 2000);
       }
     }
@@ -1333,6 +1336,9 @@ void EndPlayInput(bool cont)
 {
   if (cont)
   {
+    // If !IsMovieActive(), changing s_playMode requires calling UpdateWantDeterminism
+    _assert_(IsMovieActive());
+
     s_playMode = MODE_RECORDING;
     Core::DisplayMessage("Reached movie end. Resuming recording.", 2000);
   }