diff --git a/src/BizHawk.Client.Common/movie/MovieService.cs b/src/BizHawk.Client.Common/movie/MovieService.cs
index cadd22bd4a..b283cb0715 100644
--- a/src/BizHawk.Client.Common/movie/MovieService.cs
+++ b/src/BizHawk.Client.Common/movie/MovieService.cs
@@ -18,11 +18,11 @@ namespace BizHawk.Client.Common
}
///
- /// Creates a instance
+ /// Creates a instance
///
- public static ITasMovie CreateTas(bool startsFromSavestate = false)
+ public static ITasMovie CreateTas(string filename, bool startsFromSavestate = false)
{
- return new TasMovie(startsFromSavestate: startsFromSavestate);
+ return new TasMovie(filename, startsFromSavestate);
}
public static string StandardMovieExtension => Bk2Movie.Extension;
diff --git a/src/BizHawk.Client.Common/movie/bk2/Bk2Movie.cs b/src/BizHawk.Client.Common/movie/bk2/Bk2Movie.cs
index 9dc75a90f8..72ac0ad08a 100644
--- a/src/BizHawk.Client.Common/movie/bk2/Bk2Movie.cs
+++ b/src/BizHawk.Client.Common/movie/bk2/Bk2Movie.cs
@@ -8,9 +8,14 @@ namespace BizHawk.Client.Common
{
private Bk2Controller _adapter;
- internal Bk2Movie(string filename = null)
+ internal Bk2Movie(string filename)
{
- Filename = filename ?? string.Empty;
+ if (string.IsNullOrWhiteSpace(filename))
+ {
+ throw new ArgumentNullException($"{nameof(filename)} can not be null.");
+ }
+
+ Filename = filename;
Header[HeaderKeys.MovieVersion] = "BizHawk v2.0.0";
}
diff --git a/src/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs b/src/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs
index e000a3a5bb..e800ee7294 100644
--- a/src/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs
+++ b/src/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs
@@ -230,7 +230,7 @@ namespace BizHawk.Client.Common.MovieConversionExtensions
}
}
- var tas = new TasMovie(newFilename, true) { SaveRam = saveRam };
+ var tas = new TasMovie(newFilename) { SaveRam = saveRam };
tas.TasStateManager.Clear();
tas.LagLog.Clear();
diff --git a/src/BizHawk.Client.Common/movie/tasproj/TasMovie.cs b/src/BizHawk.Client.Common/movie/tasproj/TasMovie.cs
index 8ad5afcc6a..f64bc583fa 100644
--- a/src/BizHawk.Client.Common/movie/tasproj/TasMovie.cs
+++ b/src/BizHawk.Client.Common/movie/tasproj/TasMovie.cs
@@ -13,7 +13,7 @@ namespace BizHawk.Client.Common
public new const string Extension = "tasproj";
/// loaded core does not implement
- internal TasMovie(string path = null, bool startsFromSavestate = false) : base(path)
+ internal TasMovie(string path, bool startsFromSavestate = false) : base(path)
{
if (!Global.Emulator.HasSavestates())
{
diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs
index 97ce3595c5..c9abcd1715 100644
--- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs
+++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs
@@ -623,8 +623,7 @@ namespace BizHawk.Client.EmuHawk
return false;
}
- var newMovie = MovieService.CreateTas(startsFromSavestate: startsFromSavestate);
- newMovie.Filename = file.FullName;
+ var newMovie = MovieService.CreateTas(file.FullName, startsFromSavestate);
newMovie.BindMarkersToInput = Settings.BindMarkersToInput;
newMovie.TasStateManager.InvalidateCallback = GreenzoneInvalidated;
@@ -678,9 +677,10 @@ namespace BizHawk.Client.EmuHawk
return;
}
- var tasMovie = MovieService.CreateTas();
+ var filename = DefaultTasProjName(); // TODO don't do this, take over any mainform actions that can crash without a filename
+ var tasMovie = MovieService.CreateTas(filename);
tasMovie.BindMarkersToInput = Settings.BindMarkersToInput;
- tasMovie.Filename = DefaultTasProjName(); // TODO don't do this, take over any mainform actions that can crash without a filename
+
tasMovie.TasStateManager.InvalidateCallback = GreenzoneInvalidated;
tasMovie.PropertyChanged += TasMovie_OnPropertyChanged;