diff --git a/BizHawk.Client.Common/BizHawk.Client.Common.csproj b/BizHawk.Client.Common/BizHawk.Client.Common.csproj
index 6264689e71..21f5f4518b 100644
--- a/BizHawk.Client.Common/BizHawk.Client.Common.csproj
+++ b/BizHawk.Client.Common/BizHawk.Client.Common.csproj
@@ -104,6 +104,7 @@
+
Code
diff --git a/BizHawk.Client.Common/ExceptionClasses.cs b/BizHawk.Client.Common/ExceptionClasses.cs
new file mode 100644
index 0000000000..0ab10d959d
--- /dev/null
+++ b/BizHawk.Client.Common/ExceptionClasses.cs
@@ -0,0 +1,12 @@
+using System;
+
+namespace BizHawk.Client.Common
+{
+ public class MoviePlatformMismatchException : InvalidOperationException
+ {
+ public MoviePlatformMismatchException(string message) : base(message)
+ {
+
+ }
+ }
+}
diff --git a/BizHawk.Client.Common/movie/MovieSession.cs b/BizHawk.Client.Common/movie/MovieSession.cs
index 2eee27d1c9..354dfbe751 100644
--- a/BizHawk.Client.Common/movie/MovieSession.cs
+++ b/BizHawk.Client.Common/movie/MovieSession.cs
@@ -443,7 +443,11 @@ namespace BizHawk.Client.Common
movie.Load();
if (movie.SystemID != Global.Emulator.SystemId)
{
- throw new InvalidOperationException("Movie does not match the currently loaded system, unable to load");
+ throw new MoviePlatformMismatchException(
+ string.Format(
+ "Movie system Id ({0}) does not match the currently loaded platform ({1}), unable to load",
+ movie.SystemID,
+ Global.Emulator.SystemId));
}
}
diff --git a/BizHawk.Client.EmuHawk/MainForm.Movie.cs b/BizHawk.Client.EmuHawk/MainForm.Movie.cs
index e1a7697d9f..d6ca3e4add 100644
--- a/BizHawk.Client.EmuHawk/MainForm.Movie.cs
+++ b/BizHawk.Client.EmuHawk/MainForm.Movie.cs
@@ -1,5 +1,6 @@
using System;
using System.IO;
+using System.Windows.Forms;
using BizHawk.Client.Common;
using BizHawk.Emulation.Common;
@@ -14,7 +15,15 @@ namespace BizHawk.Client.EmuHawk
{
public void StartNewMovie(IMovie movie, bool record)
{
- Global.MovieSession.QueueNewMovie(movie, record);
+ try
+ {
+ Global.MovieSession.QueueNewMovie(movie, record);
+ }
+ catch (MoviePlatformMismatchException ex)
+ {
+ MessageBox.Show(this, ex.Message, "Movie/Platform Mismatch", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
LoadRom(GlobalWin.MainForm.CurrentlyOpenRom);