diff --git a/BizHawk.MultiClient/Input/ControllerBinding.cs b/BizHawk.MultiClient/Input/ControllerBinding.cs index e729646b7a..42db88fe53 100644 --- a/BizHawk.MultiClient/Input/ControllerBinding.cs +++ b/BizHawk.MultiClient/Input/ControllerBinding.cs @@ -186,7 +186,7 @@ namespace BizHawk.MultiClient input.Append("|"); for (int player = 1; player < 6; player++) { - if (!Global.MultiTrack.isActive) + if (!Global.MultiTrack.isActive || (Global.MultiTrack.CurrentPlayer == player) || Global.MultiTrack.RecordAll) { input.Append(IsPressed("P" + player.ToString() + " Up") ? "U" : "."); input.Append(IsPressed("P" + player.ToString() + " Down") ? "D" : "."); @@ -198,15 +198,21 @@ namespace BizHawk.MultiClient input.Append(IsPressed("P" + player.ToString() + " Select") ? "S" : "."); input.Append("|"); } - input.Append(IsPressed("P" + player.ToString() + " Up") ? "U" : "."); - input.Append(IsPressed("P" + player.ToString() + " Down") ? "D" : "."); - input.Append(IsPressed("P" + player.ToString() + " Left") ? "L" : "."); - input.Append(IsPressed("P" + player.ToString() + " Right") ? "R" : "."); - input.Append(IsPressed("P" + player.ToString() + " B1") ? "1" : "."); - input.Append(IsPressed("P" + player.ToString() + " B2") ? "2" : "."); - input.Append(IsPressed("P" + player.ToString() + " Run") ? "R" : "."); - input.Append(IsPressed("P" + player.ToString() + " Select") ? "S" : "."); - input.Append("|"); + else + { + if (Global.Emulator.Frame < MainForm.InputLog.Log.Length()) + { + //Use old frame + } + else + { + //Add blank frame + for (int buttoncount = 0; buttoncount < 8; buttoncount++); + input.Append("."); + input.Append("|"); + } + } + } return input.ToString(); } diff --git a/BizHawk.MultiClient/movie/Movie.cs b/BizHawk.MultiClient/movie/Movie.cs index ec9998af89..239a5e651e 100644 --- a/BizHawk.MultiClient/movie/Movie.cs +++ b/BizHawk.MultiClient/movie/Movie.cs @@ -10,7 +10,7 @@ namespace BizHawk.MultiClient public class Movie { private MovieHeader Header = new MovieHeader(); - private MovieLog Log = new MovieLog(); + public MovieLog Log = new MovieLog(); private bool IsText = true; private string Filename; @@ -80,8 +80,9 @@ namespace BizHawk.MultiClient public void GetMnemonic() { if (MovieMode == MOVIEMODE.RECORD) - { - if (Global.Emulator.Frame < Log.Length()) + { + //DON'T TRUNCATE! MESSES WITH MULTITRACK! + if (Global.Emulator.Frame < Log.Length()) { Log.Truncate(Global.Emulator.Frame); } diff --git a/BizHawk.MultiClient/movie/MultitrackRecording.cs b/BizHawk.MultiClient/movie/MultitrackRecording.cs index 9b4cd37a31..54aad1b17b 100644 --- a/BizHawk.MultiClient/movie/MultitrackRecording.cs +++ b/BizHawk.MultiClient/movie/MultitrackRecording.cs @@ -7,7 +7,8 @@ namespace BizHawk.MultiClient { public class MultitrackRecording { - public bool isActive; - public bool[] RecordingPlayer; + public bool isActive; + public int CurrentPlayer; + public bool RecordAll; } }