tweak multitrack logic

This commit is contained in:
zeromus 2011-08-21 04:44:40 +00:00
parent 9418dff3b2
commit 8c08bc84cb
2 changed files with 10 additions and 7 deletions

View File

@ -33,7 +33,7 @@ namespace BizHawk.MultiClient
//the movie will be spliced inbetween these if it is present
public static CopyControllerAdapter MovieInputSourceAdapter = new CopyControllerAdapter();
public static CopyControllerAdapter MovieOutputAdapter = new CopyControllerAdapter();
public static CopyControllerAdapter MovieOutputHardpoint = new CopyControllerAdapter();
/// <summary>
/// the global MovieSession can use this to deal with multitrack player remapping (should this be here? maybe it should be in MovieSession)

View File

@ -881,16 +881,17 @@ namespace BizHawk.MultiClient
Global.MultitrackRewiringControllerAdapter.Source = Global.StickyXORAdapter;
Global.MovieInputSourceAdapter.Source = Global.MultitrackRewiringControllerAdapter;
Global.ControllerOutput.Source = Global.MovieOutputAdapter;
Global.ControllerOutput.Source = Global.MovieOutputHardpoint;
Global.Emulator.Controller = Global.ControllerOutput;
Global.MovieSession.MovieControllerAdapter.Type = Global.MovieInputSourceAdapter.Type;
//splice the movie session before MovieOutputAdapter if it is doing anything
//connect the movie session before MovieOutputHardpoint if it is doing anything
//otherwise connect the MovieInputSourceAdapter to it, effectively bypassing the movie session
if (Global.MovieSession.Movie != null)
Global.MovieOutputAdapter.Source = Global.MovieSession.MovieControllerAdapter;
Global.MovieOutputHardpoint.Source = Global.MovieSession.MovieControllerAdapter;
else
Global.MovieOutputAdapter.Source = Global.MovieInputSourceAdapter;
Global.MovieOutputHardpoint.Source = Global.MovieInputSourceAdapter;
}
public bool LoadRom(string path)
@ -1558,7 +1559,6 @@ namespace BizHawk.MultiClient
string fps_string = runloop_last_fps + " fps";
if (ff) fps_string += " >>";
Global.RenderPanel.FPS = fps_string;
Console.WriteLine(fps_string);
}
if (!suppressCaptureRewind && Global.Config.RewindEnabled) CaptureRewindState();
@ -1583,7 +1583,10 @@ namespace BizHawk.MultiClient
{
session.LatchInputFromPlayer(Global.MovieInputSourceAdapter);
}
session.Movie.CommitFrame(Global.Emulator.Frame, Global.MovieInputSourceAdapter);
//the movie session makes sure that the correct input has been read and merged to its MovieControllerAdapter;
//this has been wired to Global.MovieOutputHardpoint in RewireInputChain
session.Movie.CommitFrame(Global.Emulator.Frame, Global.MovieOutputHardpoint);
}
if (UserMovie.Mode == MOVIEMODE.INACTIVE || UserMovie.Mode == MOVIEMODE.FINISHED)