2011-07-22 01:14:13 +00:00
|
|
|
|
using System;
|
|
|
|
|
using System.IO;
|
|
|
|
|
|
2013-10-25 00:57:23 +00:00
|
|
|
|
using BizHawk.Client.Common;
|
2014-04-22 01:16:11 +00:00
|
|
|
|
using BizHawk.Emulation.Common;
|
|
|
|
|
using BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES;
|
2014-05-18 16:28:56 +00:00
|
|
|
|
using BizHawk.Emulation.Cores.Nintendo.NES;
|
2014-07-29 02:15:48 +00:00
|
|
|
|
using BizHawk.Emulation.Cores.Nintendo.SNES9X;
|
|
|
|
|
using BizHawk.Emulation.Cores.Nintendo.SNES;
|
2014-05-18 15:54:56 +00:00
|
|
|
|
|
2013-11-03 03:54:37 +00:00
|
|
|
|
namespace BizHawk.Client.EmuHawk
|
2011-07-22 01:14:13 +00:00
|
|
|
|
{
|
|
|
|
|
partial class MainForm
|
|
|
|
|
{
|
2014-07-07 19:48:58 +00:00
|
|
|
|
public void StartNewMovie(IMovie movie, bool record)
|
2011-07-22 01:14:13 +00:00
|
|
|
|
{
|
2014-08-02 15:32:48 +00:00
|
|
|
|
Global.MovieSession.QueueNewMovie(movie, record);
|
2014-06-01 00:40:13 +00:00
|
|
|
|
|
2014-08-02 15:32:48 +00:00
|
|
|
|
LoadRom(GlobalWin.MainForm.CurrentlyOpenRom);
|
2012-11-22 03:47:18 +00:00
|
|
|
|
|
2014-07-07 19:48:58 +00:00
|
|
|
|
Global.Config.RecentMovies.Add(movie.Filename);
|
2013-12-14 06:58:09 +00:00
|
|
|
|
|
2014-08-16 15:01:53 +00:00
|
|
|
|
if (movie.StartsFromSavestate)
|
2011-07-30 20:49:36 +00:00
|
|
|
|
{
|
2014-08-16 15:01:53 +00:00
|
|
|
|
if (movie.TextSavestate != null)
|
2014-08-02 15:32:48 +00:00
|
|
|
|
{
|
2014-08-16 15:01:53 +00:00
|
|
|
|
Global.Emulator.LoadStateText(new StringReader(movie.TextSavestate));
|
2014-08-02 15:32:48 +00:00
|
|
|
|
}
|
2014-06-20 00:39:46 +00:00
|
|
|
|
else
|
2014-08-02 15:32:48 +00:00
|
|
|
|
{
|
2014-08-16 15:01:53 +00:00
|
|
|
|
Global.Emulator.LoadStateBinary(new BinaryReader(new MemoryStream(movie.BinarySavestate, false)));
|
2014-08-02 15:32:48 +00:00
|
|
|
|
}
|
2014-08-01 01:53:22 +00:00
|
|
|
|
|
|
|
|
|
Global.Emulator.ResetCounters();
|
2011-07-30 20:49:36 +00:00
|
|
|
|
}
|
2013-12-03 18:08:45 +00:00
|
|
|
|
|
2014-08-02 15:32:48 +00:00
|
|
|
|
Global.MovieSession.RunQueuedMovie(record);
|
2013-12-14 06:58:09 +00:00
|
|
|
|
|
2014-07-07 19:48:58 +00:00
|
|
|
|
SetMainformMovieInfo();
|
2014-07-21 00:52:11 +00:00
|
|
|
|
UpdateStatusSlots();
|
2014-07-07 19:48:58 +00:00
|
|
|
|
|
2014-06-22 13:57:23 +00:00
|
|
|
|
GlobalWin.Tools.Restart<VirtualpadTool>();
|
2013-11-03 16:07:58 +00:00
|
|
|
|
GlobalWin.DisplayManager.NeedsToPaint = true;
|
2011-07-22 01:14:13 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void SetMainformMovieInfo()
|
|
|
|
|
{
|
2013-10-24 22:26:28 +00:00
|
|
|
|
if (Global.MovieSession.Movie.IsPlaying)
|
2011-07-22 01:14:13 +00:00
|
|
|
|
{
|
2013-10-27 15:53:37 +00:00
|
|
|
|
PlayRecordStatusButton.Image = Properties.Resources.Play;
|
|
|
|
|
PlayRecordStatusButton.ToolTipText = "Movie is in playback mode";
|
|
|
|
|
PlayRecordStatusButton.Visible = true;
|
2011-07-22 01:14:13 +00:00
|
|
|
|
}
|
2013-10-24 22:26:28 +00:00
|
|
|
|
else if (Global.MovieSession.Movie.IsRecording)
|
2011-07-22 01:14:13 +00:00
|
|
|
|
{
|
2013-10-27 15:53:37 +00:00
|
|
|
|
PlayRecordStatusButton.Image = Properties.Resources.RecordHS;
|
|
|
|
|
PlayRecordStatusButton.ToolTipText = "Movie is in record mode";
|
|
|
|
|
PlayRecordStatusButton.Visible = true;
|
2011-07-22 01:14:13 +00:00
|
|
|
|
}
|
2013-10-24 22:26:28 +00:00
|
|
|
|
else if (!Global.MovieSession.Movie.IsActive)
|
2011-07-22 01:14:13 +00:00
|
|
|
|
{
|
2013-10-27 15:53:37 +00:00
|
|
|
|
PlayRecordStatusButton.Image = Properties.Resources.Blank;
|
|
|
|
|
PlayRecordStatusButton.ToolTipText = "No movie is active";
|
|
|
|
|
PlayRecordStatusButton.Visible = false;
|
2011-07-22 01:14:13 +00:00
|
|
|
|
}
|
2014-07-21 20:34:53 +00:00
|
|
|
|
|
|
|
|
|
SetWindowText();
|
2011-07-22 01:14:13 +00:00
|
|
|
|
}
|
|
|
|
|
|
2013-11-01 18:52:26 +00:00
|
|
|
|
public void RestartMovie()
|
2011-07-22 01:14:13 +00:00
|
|
|
|
{
|
2013-10-24 22:26:28 +00:00
|
|
|
|
if (Global.MovieSession.Movie.IsActive)
|
2011-07-22 01:14:13 +00:00
|
|
|
|
{
|
2014-08-02 19:29:40 +00:00
|
|
|
|
GlobalWin.MainForm.StartNewMovie(Global.MovieSession.Movie, true);
|
2013-11-03 16:07:58 +00:00
|
|
|
|
GlobalWin.OSD.AddMessage("Replaying movie file in read-only mode");
|
2011-07-22 01:14:13 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2011-07-22 01:34:21 +00:00
|
|
|
|
|
2013-11-23 18:18:58 +00:00
|
|
|
|
public void StopMovie(bool saveChanges = true)
|
2011-07-22 01:34:21 +00:00
|
|
|
|
{
|
2014-07-10 19:51:36 +00:00
|
|
|
|
if (IsSlave && _master.WantsToCOntrolStopMovie)
|
|
|
|
|
{
|
|
|
|
|
_master.StopMovie();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Global.MovieSession.StopMovie(saveChanges);
|
|
|
|
|
SetMainformMovieInfo();
|
2014-07-21 00:52:11 +00:00
|
|
|
|
UpdateStatusSlots();
|
2014-07-10 19:51:36 +00:00
|
|
|
|
}
|
2013-10-25 00:57:23 +00:00
|
|
|
|
}
|
2011-07-22 01:14:13 +00:00
|
|
|
|
}
|
|
|
|
|
}
|