Set inputdisplay correctly on LoadState (#3747)
* Set inputdisplay correctly on LoadState * Add explanatory comment for future generations
This commit is contained in:
parent
ebf1950873
commit
c57657bbd4
|
@ -154,7 +154,9 @@ namespace BizHawk.Client.Common
|
||||||
}
|
}
|
||||||
else if (Movie.IsPlayingOrFinished())
|
else if (Movie.IsPlayingOrFinished())
|
||||||
{
|
{
|
||||||
LatchInputToLog();
|
// set the controller state to the previous frame for input display purposes
|
||||||
|
int previousFrame = Movie.Emulator.Frame - 1;
|
||||||
|
Movie.Session.MovieController.SetFrom(Movie.GetInputState(previousFrame));
|
||||||
}
|
}
|
||||||
else if (Movie.IsFinished())
|
else if (Movie.IsFinished())
|
||||||
{
|
{
|
||||||
|
|
|
@ -92,10 +92,10 @@ namespace BizHawk.Client.Common
|
||||||
|
|
||||||
public IMovieController GetInputState(int frame)
|
public IMovieController GetInputState(int frame)
|
||||||
{
|
{
|
||||||
if (frame < FrameCount && frame >= 0)
|
if (frame < FrameCount && frame >= -1)
|
||||||
{
|
{
|
||||||
_adapter ??= new Bk2Controller(LogKey, Session.MovieController.Definition);
|
_adapter ??= new Bk2Controller(LogKey, Session.MovieController.Definition);
|
||||||
_adapter.SetFromMnemonic(Log[frame]);
|
_adapter.SetFromMnemonic(frame >= 0 ? Log[frame] : Session.Movie.LogGeneratorInstance(Session.MovieController).EmptyEntry);
|
||||||
return _adapter;
|
return _adapter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -219,6 +219,10 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
Movie.LoadBranch(branch);
|
Movie.LoadBranch(branch);
|
||||||
Tastudio.LoadState(new(branch.Frame, new MemoryStream(branch.CoreData, false)));
|
Tastudio.LoadState(new(branch.Frame, new MemoryStream(branch.CoreData, false)));
|
||||||
|
// set the controller state to the previous frame for input display purposes
|
||||||
|
int previousFrame = Movie.Emulator.Frame - 1;
|
||||||
|
Tastudio.MovieSession.MovieController.SetFrom(Movie.GetInputState(previousFrame));
|
||||||
|
|
||||||
Movie.TasStateManager.Capture(Tastudio.Emulator.Frame, Tastudio.Emulator.AsStatable());
|
Movie.TasStateManager.Capture(Tastudio.Emulator.Frame, Tastudio.Emulator.AsStatable());
|
||||||
QuickBmpFile.Copy(new BitmapBufferVideoProvider(branch.CoreFrameBuffer), Tastudio.VideoProvider);
|
QuickBmpFile.Copy(new BitmapBufferVideoProvider(branch.CoreFrameBuffer), Tastudio.VideoProvider);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue