diff --git a/BizHawk.Client.Common/lua/EmuLuaLibrary.Movie.cs b/BizHawk.Client.Common/lua/EmuLuaLibrary.Movie.cs index 1849d9f923..f9549a4e06 100644 --- a/BizHawk.Client.Common/lua/EmuLuaLibrary.Movie.cs +++ b/BizHawk.Client.Common/lua/EmuLuaLibrary.Movie.cs @@ -51,9 +51,11 @@ namespace BizHawk.Client.Common )] public string GetInputAsMnemonic(int frame) { - if (frame < Global.MovieSession.Movie.InputLogLength) + if (Global.MovieSession.Movie.IsActive && frame < Global.MovieSession.Movie.InputLogLength) { - return Global.MovieSession.Movie.GetInput(frame); + var lg = Global.MovieSession.LogGeneratorInstance(); + lg.SetSource(Global.MovieSession.Movie.GetInputState(frame)); + return lg.GenerateLogEntry(); } return string.Empty; diff --git a/BizHawk.Client.EmuHawk/DisplayManager/OSDManager.cs b/BizHawk.Client.EmuHawk/DisplayManager/OSDManager.cs index 3baa119ac9..a0578a8e3f 100644 --- a/BizHawk.Client.EmuHawk/DisplayManager/OSDManager.cs +++ b/BizHawk.Client.EmuHawk/DisplayManager/OSDManager.cs @@ -255,13 +255,9 @@ namespace BizHawk.Client.EmuHawk public string InputStrOrAll() { - var m = Global.MovieSession.MovieControllerInstance(); - - if (Global.MovieSession.Movie.IsActive) - { - m.SetControllersAsMnemonic( - Global.MovieSession.Movie.GetInput(Global.Emulator.Frame - 1)); - } + var m = Global.MovieSession.Movie.IsActive && !Global.MovieSession.Movie.IsFinished ? + Global.MovieSession.Movie.GetInputState(Global.Emulator.Frame - 1) : + Global.MovieSession.MovieControllerInstance(); var orAdaptor = new ORAdapter() { @@ -291,9 +287,9 @@ namespace BizHawk.Client.EmuHawk { if (Global.MovieSession.Movie.IsActive) { - var m = Global.MovieSession.MovieControllerInstance(); - m.SetControllersAsMnemonic( - Global.MovieSession.Movie.GetInput(Global.Emulator.Frame - 1)); + var m = Global.MovieSession.Movie.IsActive && !Global.MovieSession.Movie.IsFinished ? + Global.MovieSession.Movie.GetInputState(Global.Emulator.Frame - 1) : + Global.MovieSession.MovieControllerInstance(); var andAdaptor = new AndAdapter {