diff --git a/BizHawk.Client.EmuHawk/config/PathConfig.cs b/BizHawk.Client.EmuHawk/config/PathConfig.cs index 5aa83e44b3..65dfb317f3 100644 --- a/BizHawk.Client.EmuHawk/config/PathConfig.cs +++ b/BizHawk.Client.EmuHawk/config/PathConfig.cs @@ -23,7 +23,7 @@ namespace BizHawk.Client.EmuHawk return; } - string[] coresToHide = { "VEC", "GB4x", "O2", "ChannelF", "AmstradCPC" }; + string[] coresToHide = { "GB4x", "O2", "ChannelF", "AmstradCPC" }; foreach (var core in coresToHide) { diff --git a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Tastudio.cs b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Tastudio.cs index b94febcffc..dd3d97ea8d 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Tastudio.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Tastudio.cs @@ -301,6 +301,7 @@ namespace BizHawk.Client.EmuHawk } } _changeList.Clear(); + Tastudio.Refresh(); Tastudio.JumpToGreenzone(); Tastudio.DoAutoRestore(); } diff --git a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.cs b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.cs index cb25e3a481..c88e2dd838 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.cs @@ -73,7 +73,7 @@ namespace BizHawk.Client.EmuHawk emuHawkLibrary.MainForm = _mainForm; } - ApiHawkContainerInstance ??= InitApiHawkContainerInstance(serviceProvider, ConsoleLuaLibrary.LogOutput); + ApiHawkContainerInstance = InitApiHawkContainerInstance(serviceProvider, ConsoleLuaLibrary.LogOutput); if (instance is DelegatingLuaLibraryEmu dlgInstanceEmu) dlgInstanceEmu.APIs = ApiHawkContainerInstance; // this is necessary as the property has the `new` modifier else if (instance is DelegatingLuaLibrary dlgInstance) dlgInstance.APIs = ApiHawkContainerInstance; diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs index c40e52060f..418f0b9b28 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs @@ -24,6 +24,7 @@ namespace BizHawk.Client.EmuHawk private bool _selectionDragState; private bool _suppressContextMenu; private int _startRow; + private int _paintingMinFrame = -1; // Editing analog input private string _floatEditColumn = ""; @@ -546,6 +547,7 @@ namespace BizHawk.Client.EmuHawk if (e.Button == MouseButtons.Left) { _leftButtonHeld = true; + _paintingMinFrame = frame; // SuuperW: Exit float editing mode, or re-enter mouse editing if (FloatEditingMode) @@ -785,6 +787,7 @@ namespace BizHawk.Client.EmuHawk _startSelectionDrag = false; _startBoolDrawColumn = ""; _startFloatDrawColumn = ""; + _paintingMinFrame = -1; TasView.ReleaseCurrentCell(); // Exit float editing if value was changed with cursor @@ -839,7 +842,7 @@ namespace BizHawk.Client.EmuHawk // So now we have to ensure that all the edited frames are invalidated if (CurrentTasMovie.LastEditedFrame < Emulator.Frame) { - GoToFrame(CurrentTasMovie.LastEditedFrame); + GoToFrame(_paintingMinFrame); } } @@ -948,6 +951,11 @@ namespace BizHawk.Client.EmuHawk return; } + if (_paintingMinFrame >= 0) + { + _paintingMinFrame = Math.Min(_paintingMinFrame, e.NewCell?.RowIndex ?? 0); + } + // skip rerecord counting on drawing entirely, mouse down is enough // avoid introducing another global bool wasCountingRerecords = CurrentTasMovie.IsCountingRerecords; diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs index 1d2e1ca1c8..ef00859d77 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs @@ -736,11 +736,12 @@ namespace BizHawk.Client.EmuHawk if (TasView.AnyRowsSelected) { var framesToInsert = TasView.SelectedRows; - var insertionFrame = Math.Min(TasView.LastSelectedIndex ?? 0 + 1, CurrentTasMovie.InputLogLength); + var insertionFrame = Math.Min((TasView.LastSelectedIndex ?? 0) + 1, CurrentTasMovie.InputLogLength); var needsToRollback = TasView.FirstSelectedIndex < Emulator.Frame; var inputLog = framesToInsert - .Select(frame => CurrentTasMovie.GetInputLogEntry(frame)); + .Select(frame => CurrentTasMovie.GetInputLogEntry(frame)) + .ToList(); CurrentTasMovie.InsertInput(insertionFrame, inputLog); diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index 9dfacf5a23..4361a727ee 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -462,6 +462,11 @@ namespace BizHawk.Client.EmuHawk TasView.AllColumns.ColumnsChanged(); + SetupBoolPatterns(); + } + + private void SetupBoolPatterns() + { // Patterns int bStart = 0; int fStart = 0; @@ -529,6 +534,7 @@ namespace BizHawk.Client.EmuHawk MainForm.SetMainformMovieInfo(); Global.MovieSession.ReadOnly = true; SetSplicer(); + SetupBoolPatterns(); } #endregion diff --git a/Version/VersionInfo.cs b/Version/VersionInfo.cs index 8ac9cfc88f..f34606d2fb 100644 --- a/Version/VersionInfo.cs +++ b/Version/VersionInfo.cs @@ -3,8 +3,8 @@ using System.IO; internal static class VersionInfo { // keep this updated at every major release - public const string Mainversion = "2.3.3"; // Use numbers only or the new version notification won't work - public static readonly string RELEASEDATE = "January 12, 2019"; + public const string Mainversion = "2.4.0"; // Use numbers only or the new version notification won't work + public static readonly string RELEASEDATE = "January 18, 2020"; public static readonly bool DeveloperBuild = true; public static readonly string HomePage = "http://tasvideos.org/BizHawk.html";