From e1075d100664d5ebe6d991b04d10c4c86a5ab912 Mon Sep 17 00:00:00 2001 From: "J.D. Purcell" Date: Sun, 3 Nov 2019 13:55:34 -0500 Subject: [PATCH] Virtu: Make savestates smaller. --- ExternalCoreProjects/Virtu/Cpu.cs | 14 ++++++++++++-- ExternalCoreProjects/Virtu/CpuData.cs | 5 ++++- ExternalCoreProjects/Virtu/Memory.cs | 17 +++++++++++++++-- ExternalCoreProjects/Virtu/MemoryData.cs | 4 +++- References/Virtu.dll | Bin 155648 -> 156160 bytes 5 files changed, 34 insertions(+), 6 deletions(-) diff --git a/ExternalCoreProjects/Virtu/Cpu.cs b/ExternalCoreProjects/Virtu/Cpu.cs index 6443522422..fc25fc43eb 100644 --- a/ExternalCoreProjects/Virtu/Cpu.cs +++ b/ExternalCoreProjects/Virtu/Cpu.cs @@ -8,9 +8,18 @@ namespace Jellyfish.Virtu { public sealed partial class Cpu : MachineComponent { - public Cpu() { } + public Cpu() + { + InitializeOpCodeDelegates(); + } + public Cpu(Machine machine) : base(machine) + { + InitializeOpCodeDelegates(); + } + + private void InitializeOpCodeDelegates() { ExecuteOpCode65N02 = new Action[OpCodeCount] { @@ -3434,7 +3443,6 @@ namespace Jellyfish.Virtu } #endregion - [JsonIgnore] public bool Is65C02 { get { return _is65C02; } set { _is65C02 = value; _executeOpCode = _is65C02 ? ExecuteOpCode65C02 : ExecuteOpCode65N02; } } public bool IsThrottled { get; set; } public int Multiplier { get; set; } @@ -3452,7 +3460,9 @@ namespace Jellyfish.Virtu private Memory _memory; + [JsonIgnore] private bool _is65C02; + [JsonIgnore] private Action[] _executeOpCode; [JsonIgnore] diff --git a/ExternalCoreProjects/Virtu/CpuData.cs b/ExternalCoreProjects/Virtu/CpuData.cs index e21859092c..9fc4bdb615 100644 --- a/ExternalCoreProjects/Virtu/CpuData.cs +++ b/ExternalCoreProjects/Virtu/CpuData.cs @@ -1,4 +1,5 @@ -using System; +using Newtonsoft.Json; +using System; namespace Jellyfish.Virtu { @@ -6,7 +7,9 @@ namespace Jellyfish.Virtu { private const int OpCodeCount = 256; + [JsonIgnore] private Action[] ExecuteOpCode65N02; + [JsonIgnore] private Action[] ExecuteOpCode65C02; private const int PC = 0x01; diff --git a/ExternalCoreProjects/Virtu/Memory.cs b/ExternalCoreProjects/Virtu/Memory.cs index 13a299c799..737ea48af3 100644 --- a/ExternalCoreProjects/Virtu/Memory.cs +++ b/ExternalCoreProjects/Virtu/Memory.cs @@ -13,11 +13,20 @@ namespace Jellyfish.Virtu public sealed partial class Memory : MachineComponent { - public Memory() { } + public Memory() + { + InitializeWriteDelegates(); + } + public Memory(Machine machine, byte[] appleIIe) : base(machine) { _appleIIe = appleIIe; + InitializeWriteDelegates(); + } + + private void InitializeWriteDelegates() + { WriteRamModeBankRegion = new Action[Video.ModeCount][][]; for (int mode = 0; mode < Video.ModeCount; mode++) { @@ -26,7 +35,6 @@ namespace Jellyfish.Virtu new Action[RegionCount], new Action[RegionCount] }; } - WriteRamModeBankRegion[Video.Mode0][BankMain][Region0407] = WriteRamMode0MainRegion0407; WriteRamModeBankRegion[Video.Mode0][BankMain][Region080B] = WriteRamMode0MainRegion080B; WriteRamModeBankRegion[Video.Mode1][BankMain][Region0407] = WriteRamMode1MainRegion0407; @@ -2133,10 +2141,15 @@ namespace Jellyfish.Virtu public MonitorType Monitor { get; private set; } public int VideoMode { get { return StateVideoMode[_state & StateVideo]; } } + [JsonIgnore] private Action _writeIoRegionC0C0; + [JsonIgnore] private Action _writeIoRegionC1C7; + [JsonIgnore] private Action _writeIoRegionC3C3; + [JsonIgnore] private Action _writeIoRegionC8CF; + [JsonIgnore] private Action _writeRomRegionD0FF; [JsonIgnore] diff --git a/ExternalCoreProjects/Virtu/MemoryData.cs b/ExternalCoreProjects/Virtu/MemoryData.cs index 3de7adf037..e8148a563d 100644 --- a/ExternalCoreProjects/Virtu/MemoryData.cs +++ b/ExternalCoreProjects/Virtu/MemoryData.cs @@ -1,4 +1,5 @@ -using System; +using Newtonsoft.Json; +using System; namespace Jellyfish.Virtu { @@ -101,6 +102,7 @@ namespace Jellyfish.Virtu Video.ModeC, Video.ModeD, Video.Mode1, Video.Mode2, Video.ModeE, Video.ModeF, Video.Mode1, Video.Mode2 }; + [JsonIgnore] private Action[][][] WriteRamModeBankRegion; } } diff --git a/References/Virtu.dll b/References/Virtu.dll index b164b2dc13edfea3e69c0ab1f4fa3fde0cc834ec..3957bd6435827ad8ae8c71840b2df5469a3c2512 100644 GIT binary patch delta 57807 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