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);