diff --git a/BizHawk.MultiClient/Config.cs b/BizHawk.MultiClient/Config.cs index 2b246998a4..d20d900970 100644 --- a/BizHawk.MultiClient/Config.cs +++ b/BizHawk.MultiClient/Config.cs @@ -101,6 +101,7 @@ public bool SingleInstanceMode = false; public bool AllowUD_LR = false; public bool ShowContextMenu = true; + public bool EnableBackupMovies = true; // Run-Control settings public int FrameProgressDelayMs = 500; //how long until a frame advance hold turns into a frame progress? diff --git a/BizHawk.MultiClient/MainForm.Designer.cs b/BizHawk.MultiClient/MainForm.Designer.cs index 711660b694..dcc90821a6 100644 --- a/BizHawk.MultiClient/MainForm.Designer.cs +++ b/BizHawk.MultiClient/MainForm.Designer.cs @@ -212,6 +212,7 @@ this.toolStripSeparator20 = new System.Windows.Forms.ToolStripSeparator(); this.screenshotToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); this.closeROMToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.automaticallyBackupMoviesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.menuStrip1.SuspendLayout(); this.statusStrip1.SuspendLayout(); this.contextMenuStrip1.SuspendLayout(); @@ -231,7 +232,7 @@ this.menuStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow; this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(470, 21); + this.menuStrip1.Size = new System.Drawing.Size(470, 23); this.menuStrip1.TabIndex = 0; this.menuStrip1.Text = "menuStrip1"; this.menuStrip1.MenuDeactivate += new System.EventHandler(this.menuStrip1_MenuDeactivate); @@ -260,7 +261,7 @@ // openROMToolStripMenuItem // this.openROMToolStripMenuItem.Name = "openROMToolStripMenuItem"; - this.openROMToolStripMenuItem.Size = new System.Drawing.Size(145, 22); + this.openROMToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.openROMToolStripMenuItem.Text = "Open ROM"; this.openROMToolStripMenuItem.Click += new System.EventHandler(this.openROMToolStripMenuItem_Click); // @@ -272,7 +273,7 @@ this.clearToolStripMenuItem, this.autoloadMostRecentToolStripMenuItem}); this.recentROMToolStripMenuItem.Name = "recentROMToolStripMenuItem"; - this.recentROMToolStripMenuItem.Size = new System.Drawing.Size(145, 22); + this.recentROMToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.recentROMToolStripMenuItem.Text = "Recent ROM"; this.recentROMToolStripMenuItem.DropDownOpened += new System.EventHandler(this.recentROMToolStripMenuItem_DropDownOpened); // @@ -304,14 +305,14 @@ // closeROMToolStripMenuItem // this.closeROMToolStripMenuItem.Name = "closeROMToolStripMenuItem"; - this.closeROMToolStripMenuItem.Size = new System.Drawing.Size(145, 22); + this.closeROMToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.closeROMToolStripMenuItem.Text = "&Close ROM"; this.closeROMToolStripMenuItem.Click += new System.EventHandler(this.closeROMToolStripMenuItem_Click); // // toolStripMenuItem1 // this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(142, 6); + this.toolStripMenuItem1.Size = new System.Drawing.Size(149, 6); // // saveStateToolStripMenuItem // @@ -329,7 +330,7 @@ this.toolStripSeparator6, this.saveNamedStateToolStripMenuItem}); this.saveStateToolStripMenuItem.Name = "saveStateToolStripMenuItem"; - this.saveStateToolStripMenuItem.Size = new System.Drawing.Size(145, 22); + this.saveStateToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.saveStateToolStripMenuItem.Text = "Save State"; this.saveStateToolStripMenuItem.DropDownOpened += new System.EventHandler(this.saveStateToolStripMenuItem_DropDownOpened); // @@ -431,7 +432,7 @@ this.toolStripSeparator7, this.loadNamedStateToolStripMenuItem}); this.loadStateToolStripMenuItem.Name = "loadStateToolStripMenuItem"; - this.loadStateToolStripMenuItem.Size = new System.Drawing.Size(145, 22); + this.loadStateToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.loadStateToolStripMenuItem.Text = "Load State"; this.loadStateToolStripMenuItem.DropDownOpened += new System.EventHandler(this.loadStateToolStripMenuItem_DropDownOpened); // @@ -536,7 +537,7 @@ this.saveToCurrentSlotToolStripMenuItem, this.loadCurrentSlotToolStripMenuItem}); this.saveSlotToolStripMenuItem.Name = "saveSlotToolStripMenuItem"; - this.saveSlotToolStripMenuItem.Size = new System.Drawing.Size(145, 22); + this.saveSlotToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.saveSlotToolStripMenuItem.Text = "SaveSlot"; this.saveSlotToolStripMenuItem.DropDownOpened += new System.EventHandler(this.saveSlotToolStripMenuItem_DropDownOpened); // @@ -646,7 +647,7 @@ // toolStripMenuItem2 // this.toolStripMenuItem2.Name = "toolStripMenuItem2"; - this.toolStripMenuItem2.Size = new System.Drawing.Size(142, 6); + this.toolStripMenuItem2.Size = new System.Drawing.Size(149, 6); // // movieToolStripMenuItem // @@ -659,23 +660,24 @@ this.stopMovieToolStripMenuItem, this.playFromBeginningToolStripMenuItem, this.toolStripSeparator14, - this.bindSavestatesToMoviesToolStripMenuItem}); + this.bindSavestatesToMoviesToolStripMenuItem, + this.automaticallyBackupMoviesToolStripMenuItem}); this.movieToolStripMenuItem.Name = "movieToolStripMenuItem"; - this.movieToolStripMenuItem.Size = new System.Drawing.Size(145, 22); + this.movieToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.movieToolStripMenuItem.Text = "Movie"; this.movieToolStripMenuItem.DropDownOpened += new System.EventHandler(this.movieToolStripMenuItem_DropDownOpened); // // readonlyToolStripMenuItem // this.readonlyToolStripMenuItem.Name = "readonlyToolStripMenuItem"; - this.readonlyToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.readonlyToolStripMenuItem.Size = new System.Drawing.Size(222, 22); this.readonlyToolStripMenuItem.Text = "Read-only"; this.readonlyToolStripMenuItem.Click += new System.EventHandler(this.readonlyToolStripMenuItem_Click); // // toolStripSeparator15 // this.toolStripSeparator15.Name = "toolStripSeparator15"; - this.toolStripSeparator15.Size = new System.Drawing.Size(208, 6); + this.toolStripSeparator15.Size = new System.Drawing.Size(219, 6); // // recentToolStripMenuItem // @@ -685,7 +687,7 @@ this.clearToolStripMenuItem1, this.autoloadMostRecentToolStripMenuItem1}); this.recentToolStripMenuItem.Name = "recentToolStripMenuItem"; - this.recentToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.recentToolStripMenuItem.Size = new System.Drawing.Size(222, 22); this.recentToolStripMenuItem.Text = "Recent"; this.recentToolStripMenuItem.DropDownOpened += new System.EventHandler(this.recentToolStripMenuItem_DropDownOpened); // @@ -715,40 +717,40 @@ // recordMovieToolStripMenuItem // this.recordMovieToolStripMenuItem.Name = "recordMovieToolStripMenuItem"; - this.recordMovieToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.recordMovieToolStripMenuItem.Size = new System.Drawing.Size(222, 22); this.recordMovieToolStripMenuItem.Text = "&Record Movie..."; this.recordMovieToolStripMenuItem.Click += new System.EventHandler(this.recordMovieToolStripMenuItem_Click); // // playMovieToolStripMenuItem // this.playMovieToolStripMenuItem.Name = "playMovieToolStripMenuItem"; - this.playMovieToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.playMovieToolStripMenuItem.Size = new System.Drawing.Size(222, 22); this.playMovieToolStripMenuItem.Text = "&Play Movie..."; this.playMovieToolStripMenuItem.Click += new System.EventHandler(this.playMovieToolStripMenuItem_Click); // // stopMovieToolStripMenuItem // this.stopMovieToolStripMenuItem.Name = "stopMovieToolStripMenuItem"; - this.stopMovieToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.stopMovieToolStripMenuItem.Size = new System.Drawing.Size(222, 22); this.stopMovieToolStripMenuItem.Text = "Stop Movie"; this.stopMovieToolStripMenuItem.Click += new System.EventHandler(this.stopMovieToolStripMenuItem_Click); // // playFromBeginningToolStripMenuItem // this.playFromBeginningToolStripMenuItem.Name = "playFromBeginningToolStripMenuItem"; - this.playFromBeginningToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.playFromBeginningToolStripMenuItem.Size = new System.Drawing.Size(222, 22); this.playFromBeginningToolStripMenuItem.Text = "Play from Beginning"; this.playFromBeginningToolStripMenuItem.Click += new System.EventHandler(this.playFromBeginningToolStripMenuItem_Click); // // toolStripSeparator14 // this.toolStripSeparator14.Name = "toolStripSeparator14"; - this.toolStripSeparator14.Size = new System.Drawing.Size(208, 6); + this.toolStripSeparator14.Size = new System.Drawing.Size(219, 6); // // bindSavestatesToMoviesToolStripMenuItem // this.bindSavestatesToMoviesToolStripMenuItem.Name = "bindSavestatesToMoviesToolStripMenuItem"; - this.bindSavestatesToMoviesToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.bindSavestatesToMoviesToolStripMenuItem.Size = new System.Drawing.Size(222, 22); this.bindSavestatesToMoviesToolStripMenuItem.Text = "Bind Savestates to Movies"; this.bindSavestatesToMoviesToolStripMenuItem.Click += new System.EventHandler(this.bindSavestatesToMoviesToolStripMenuItem_Click); // @@ -758,7 +760,7 @@ this.screenshotF12ToolStripMenuItem, this.screenshotAsToolStripMenuItem}); this.screenshotToolStripMenuItem.Name = "screenshotToolStripMenuItem"; - this.screenshotToolStripMenuItem.Size = new System.Drawing.Size(145, 22); + this.screenshotToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.screenshotToolStripMenuItem.Text = "Screenshot"; // // screenshotF12ToolStripMenuItem @@ -778,13 +780,13 @@ // toolStripSeparator4 // this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(142, 6); + this.toolStripSeparator4.Size = new System.Drawing.Size(149, 6); // // exitToolStripMenuItem // this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; this.exitToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4))); - this.exitToolStripMenuItem.Size = new System.Drawing.Size(145, 22); + this.exitToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.exitToolStripMenuItem.Text = "Exit"; this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); // @@ -1552,7 +1554,7 @@ this.screenshotToolStripMenuItem1, this.closeROMToolStripMenuItem1}); this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(179, 264); + this.contextMenuStrip1.Size = new System.Drawing.Size(179, 242); this.contextMenuStrip1.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStrip1_Opening); // // openRomToolStripMenuItem1 @@ -1640,6 +1642,13 @@ this.closeROMToolStripMenuItem1.Text = "Close ROM"; this.closeROMToolStripMenuItem1.Click += new System.EventHandler(this.closeROMToolStripMenuItem1_Click); // + // automaticallyBackupMoviesToolStripMenuItem + // + this.automaticallyBackupMoviesToolStripMenuItem.Name = "automaticallyBackupMoviesToolStripMenuItem"; + this.automaticallyBackupMoviesToolStripMenuItem.Size = new System.Drawing.Size(222, 22); + this.automaticallyBackupMoviesToolStripMenuItem.Text = "Automatically Backup Movies"; + this.automaticallyBackupMoviesToolStripMenuItem.Click += new System.EventHandler(this.automaticallyBackupMoviesToolStripMenuItem_Click); + // // MainForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 14F); @@ -1853,6 +1862,7 @@ private System.Windows.Forms.ToolStripMenuItem screenshotToolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem closeROMToolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem makeMovieBackupToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem automaticallyBackupMoviesToolStripMenuItem; } } diff --git a/BizHawk.MultiClient/MainForm.MenuItems.cs b/BizHawk.MultiClient/MainForm.MenuItems.cs index 4ffdfd0664..7b6ffb9613 100644 --- a/BizHawk.MultiClient/MainForm.MenuItems.cs +++ b/BizHawk.MultiClient/MainForm.MenuItems.cs @@ -825,6 +825,11 @@ namespace BizHawk.MultiClient private void makeMovieBackupToolStripMenuItem_Click(object sender, EventArgs e) { UserMovie.WriteBackup(); - } + } + + private void automaticallyBackupMoviesToolStripMenuItem_Click(object sender, EventArgs e) + { + Global.Config.EnableBackupMovies ^= true; + } } } \ No newline at end of file diff --git a/BizHawk.MultiClient/MainForm.cs b/BizHawk.MultiClient/MainForm.cs index 9d6a613dea..331081c956 100644 --- a/BizHawk.MultiClient/MainForm.cs +++ b/BizHawk.MultiClient/MainForm.cs @@ -2086,6 +2086,7 @@ namespace BizHawk.MultiClient readonlyToolStripMenuItem.Checked = ReadOnly; bindSavestatesToMoviesToolStripMenuItem.Checked = Global.Config.BindSavestatesToMovies; + automaticallyBackupMoviesToolStripMenuItem.Checked = Global.Config.EnableBackupMovies; readonlyToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.ReadOnlyToggleBinding; recordMovieToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.RecordMovieBinding; diff --git a/BizHawk.MultiClient/movie/Movie.cs b/BizHawk.MultiClient/movie/Movie.cs index bd71dde6c8..61ce5dade1 100644 --- a/BizHawk.MultiClient/movie/Movie.cs +++ b/BizHawk.MultiClient/movie/Movie.cs @@ -14,6 +14,7 @@ namespace BizHawk.MultiClient private bool IsText = true; private string Filename; + public bool MakeBackup = true; //Flag for making backup before altering movie private MOVIEMODE MovieMode = new MOVIEMODE(); @@ -68,6 +69,11 @@ namespace BizHawk.MultiClient public void StartNewRecording() { MovieMode = MOVIEMODE.RECORD; + if (Global.Config.EnableBackupMovies && MakeBackup && Log.Length() > 0) + { + WriteBackup(); + MakeBackup = false; + } Log.Clear(); Header = new MovieHeader(MainForm.EMUVERSION, MovieHeader.MovieVersion, Global.Emulator.SystemId, Global.Game.Name, "", 0); } @@ -103,9 +109,6 @@ namespace BizHawk.MultiClient { Log.Truncate(Global.Emulator.Frame); } - // if (Global.MainForm.TAStudio1.Engaged) - // Log.AddFrame(Global.MainForm.TAStudio1.GetMnemonic()); - // else Log.AddFrame(Global.ActiveController.GetControllersAsMnemonic()); } } @@ -363,7 +366,12 @@ namespace BizHawk.MultiClient //We are in record mode so replace the movie log with the one from the savestate if (!MultiTrack.isActive) { - Log.Clear(); + if (Global.Config.EnableBackupMovies && MakeBackup && Log.Length() > 0) + { + WriteBackup(); + MakeBackup = false; + } + Log.Clear(); while (true) { string line = reader.ReadLine();