Restart Rom when Tastudio is engaged, resorted to ugly hacks that will be rethought when things are more stable
This commit is contained in:
parent
bc3208ec89
commit
35c3fcca16
|
@ -12,10 +12,10 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
partial class MainForm
|
partial class MainForm
|
||||||
{
|
{
|
||||||
public void StartNewMovie(IMovie movie, bool record)
|
public void StartNewMovie(IMovie movie, bool record, bool fromTastudio = false) //TasStudio flag is a hack for now
|
||||||
{
|
{
|
||||||
//If a movie is already loaded, save it before starting a new movie
|
//If a movie is already loaded, save it before starting a new movie
|
||||||
if (Global.MovieSession.Movie.IsActive)
|
if (!fromTastudio && Global.MovieSession.Movie.IsActive)
|
||||||
{
|
{
|
||||||
Global.MovieSession.Movie.Save();
|
Global.MovieSession.Movie.Save();
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,11 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
LoadRom(GlobalWin.MainForm.CurrentlyOpenRom, true, !record);
|
LoadRom(GlobalWin.MainForm.CurrentlyOpenRom, true, !record);
|
||||||
|
|
||||||
Global.Config.RecentMovies.Add(movie.Filename);
|
if (!fromTastudio)
|
||||||
|
{
|
||||||
|
Global.Config.RecentMovies.Add(movie.Filename);
|
||||||
|
}
|
||||||
|
|
||||||
if (Global.MovieSession.Movie.Header.StartsFromSavestate)
|
if (Global.MovieSession.Movie.Header.StartsFromSavestate)
|
||||||
{
|
{
|
||||||
LoadStateFile(Global.MovieSession.Movie.Filename, Path.GetFileName(Global.MovieSession.Movie.Filename));
|
LoadStateFile(Global.MovieSession.Movie.Filename, Path.GetFileName(Global.MovieSession.Movie.Filename));
|
||||||
|
@ -55,7 +59,12 @@ namespace BizHawk.Client.EmuHawk
|
||||||
}
|
}
|
||||||
|
|
||||||
SetMainformMovieInfo();
|
SetMainformMovieInfo();
|
||||||
GlobalWin.Tools.Restart<TAStudio>();
|
|
||||||
|
if (!fromTastudio)
|
||||||
|
{
|
||||||
|
GlobalWin.Tools.Restart<TAStudio>();
|
||||||
|
}
|
||||||
|
|
||||||
GlobalWin.Tools.Restart<VirtualPadForm>();
|
GlobalWin.Tools.Restart<VirtualPadForm>();
|
||||||
GlobalWin.DisplayManager.NeedsToPaint = true;
|
GlobalWin.DisplayManager.NeedsToPaint = true;
|
||||||
}
|
}
|
||||||
|
@ -133,7 +142,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
}
|
}
|
||||||
|
|
||||||
//On movie load, these need to be set based on the contents of the movie file
|
//On movie load, these need to be set based on the contents of the movie file
|
||||||
private void SetSyncDependentSettings()
|
public void SetSyncDependentSettings()
|
||||||
{
|
{
|
||||||
switch (Global.Emulator.SystemId)
|
switch (Global.Emulator.SystemId)
|
||||||
{
|
{
|
||||||
|
|
|
@ -3561,7 +3561,14 @@ namespace BizHawk.Client.EmuHawk
|
||||||
Global.Emulator = new NullEmulator(Global.CoreComm);
|
Global.Emulator = new NullEmulator(Global.CoreComm);
|
||||||
Global.ActiveController = Global.NullControls;
|
Global.ActiveController = Global.NullControls;
|
||||||
Global.AutoFireController = Global.AutofireNullControls;
|
Global.AutoFireController = Global.AutofireNullControls;
|
||||||
Global.MovieSession.Movie.Stop();
|
|
||||||
|
// adelikat: TODO: Ugly hack! But I don't know a way around this yet.
|
||||||
|
if (!(Global.MovieSession.Movie is TasMovie))
|
||||||
|
{
|
||||||
|
Global.MovieSession.Movie.Stop();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
RebootStatusBarIcon.Visible = false;
|
RebootStatusBarIcon.Visible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -135,12 +135,9 @@ namespace BizHawk.Client.EmuHawk
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GlobalWin.OSD.AddMessage("TAStudio engaged");
|
|
||||||
EngageTasStudio();
|
EngageTasStudio();
|
||||||
|
|
||||||
LoadConfigSettings();
|
LoadConfigSettings();
|
||||||
|
_tas.ActivePlayers = new List<string> { "Player 1" };
|
||||||
_tas.ActivePlayers = new List<string> { "Player 1", "Player 2" };
|
|
||||||
SetUpColumns();
|
SetUpColumns();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -148,9 +145,20 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
GlobalWin.OSD.AddMessage("TAStudio engaged");
|
GlobalWin.OSD.AddMessage("TAStudio engaged");
|
||||||
Global.MovieSession.Movie = new TasMovie();
|
Global.MovieSession.Movie = new TasMovie();
|
||||||
|
|
||||||
_tas = Global.MovieSession.Movie as TasMovie;
|
_tas = Global.MovieSession.Movie as TasMovie;
|
||||||
_tas.StartNewRecording();
|
_tas.StartNewRecording();
|
||||||
_tas.OnChanged += OnMovieChanged;
|
_tas.OnChanged += OnMovieChanged;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
GlobalWin.MainForm.StartNewMovie(_tas, true, true);
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
MessageBox.Show(e.Message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void StartNewSession()
|
private void StartNewSession()
|
||||||
|
@ -164,12 +172,6 @@ namespace BizHawk.Client.EmuHawk
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnMovieChanged(object sender, MovieRecord.InputEventArgs e)
|
|
||||||
{
|
|
||||||
//TODO: move logic needs to go here
|
|
||||||
TASView.ItemCount = _tas.InputLogLength;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SetUpColumns()
|
private void SetUpColumns()
|
||||||
{
|
{
|
||||||
TASView.Columns.Clear();
|
TASView.Columns.Clear();
|
||||||
|
@ -347,6 +349,12 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
#region TASView Events
|
#region TASView Events
|
||||||
|
|
||||||
|
private void OnMovieChanged(object sender, MovieRecord.InputEventArgs e)
|
||||||
|
{
|
||||||
|
//TODO: move logic needs to go here
|
||||||
|
TASView.ItemCount = _tas.InputLogLength;
|
||||||
|
}
|
||||||
|
|
||||||
private void TASView_MouseDown(object sender, MouseEventArgs e)
|
private void TASView_MouseDown(object sender, MouseEventArgs e)
|
||||||
{
|
{
|
||||||
if (TASView.PointedCell.Row.HasValue && !String.IsNullOrEmpty(TASView.PointedCell.Column))
|
if (TASView.PointedCell.Row.HasValue && !String.IsNullOrEmpty(TASView.PointedCell.Column))
|
||||||
|
|
Loading…
Reference in New Issue