turn Rewind Config into Rewind & Savestate config and allow control of normal savestate compression level

This commit is contained in:
zeromus 2014-07-12 20:20:08 +00:00
parent d4c8fc5165
commit 7a63d5fe7b
7 changed files with 804 additions and 708 deletions

View File

@ -245,7 +245,7 @@ namespace BizHawk.Client.Common
IsStreamOwner = false, IsStreamOwner = false,
UseZip64 = UseZip64.Off UseZip64 = UseZip64.Off
}; };
_zip.SetLevel(5); _zip.SetLevel(Global.Config.SaveStateCompressionLevelNormal);
if (stateVersionTag) if (stateVersionTag)
{ {
@ -256,7 +256,10 @@ namespace BizHawk.Client.Common
public void PutLump(BinaryStateLump lump, Action<Stream> callback) public void PutLump(BinaryStateLump lump, Action<Stream> callback)
{ {
var name = BinaryStateFileNames.Get(lump); var name = BinaryStateFileNames.Get(lump);
var e = new ZipEntry(name) {CompressionMethod = CompressionMethod.Deflated}; var e = new ZipEntry(name);
if (Global.Config.SaveStateCompressionLevelNormal == 0)
e.CompressionMethod = CompressionMethod.Stored;
else e.CompressionMethod = CompressionMethod.Deflated;
_zip.PutNextEntry(e); _zip.PutNextEntry(e);
callback(_zip); callback(_zip);
_zip.CloseEntry(); _zip.CloseEntry();

View File

@ -97,7 +97,6 @@ namespace BizHawk.Client.Common
public bool FirstBoot = true; public bool FirstBoot = true;
public enum SaveStateTypeE { Default, Binary, Text }; public enum SaveStateTypeE { Default, Binary, Text };
public SaveStateTypeE SaveStateType = SaveStateTypeE.Default;
// N64 // N64
public bool N64UseCircularAnalogConstraint = true; public bool N64UseCircularAnalogConstraint = true;
@ -125,6 +124,13 @@ namespace BizHawk.Client.Common
public bool Rewind_OnDisk = false; public bool Rewind_OnDisk = false;
public bool Rewind_IsThreaded = false; public bool Rewind_IsThreaded = false;
// Savestate settings
public SaveStateTypeE SaveStateType = SaveStateTypeE.Default;
public const int DefaultSaveStateCompressionLevelNormal = 5;
public int SaveStateCompressionLevelNormal = DefaultSaveStateCompressionLevelNormal;
public const int DefaultSaveStateCompressionLevelRewind = 0;//this isnt actually used yet
public int SaveStateCompressionLevelRewind = DefaultSaveStateCompressionLevelRewind;//this isnt actually used yet
/// <summary>use vsync. if VSyncThrottle = false, this will try to use vsync without throttling to it</summary> /// <summary>use vsync. if VSyncThrottle = false, this will try to use vsync without throttling to it</summary>
public bool VSync = false; public bool VSync = false;

View File

@ -167,10 +167,6 @@
this.BothHkAndControllerMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.BothHkAndControllerMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.InputOverHkMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.InputOverHkMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.HkOverInputMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.HkOverInputMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SavestateTypeSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.SavestateTypeDefaultMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SavestateBinaryMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SavestateTextMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.CoresSubMenu = new System.Windows.Forms.ToolStripMenuItem(); this.CoresSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.GBInSGBMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.GBInSGBMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.NesInQuickNESMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.NesInQuickNESMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -1261,7 +1257,6 @@
this.toolStripSeparator9, this.toolStripSeparator9,
this.SpeedSkipSubMenu, this.SpeedSkipSubMenu,
this.KeyPrioritySubMenu, this.KeyPrioritySubMenu,
this.SavestateTypeSubMenu,
this.CoresSubMenu, this.CoresSubMenu,
this.toolStripSeparator10, this.toolStripSeparator10,
this.SaveConfigMenuItem, this.SaveConfigMenuItem,
@ -1339,8 +1334,8 @@
// //
this.RewindOptionsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Previous; this.RewindOptionsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Previous;
this.RewindOptionsMenuItem.Name = "RewindOptionsMenuItem"; this.RewindOptionsMenuItem.Name = "RewindOptionsMenuItem";
this.RewindOptionsMenuItem.Size = new System.Drawing.Size(159, 22); this.RewindOptionsMenuItem.Size = new System.Drawing.Size(165, 22);
this.RewindOptionsMenuItem.Text = "&Rewind..."; this.RewindOptionsMenuItem.Text = "&Rewind && States...";
this.RewindOptionsMenuItem.Click += new System.EventHandler(this.RewindOptionsMenuItem_Click); this.RewindOptionsMenuItem.Click += new System.EventHandler(this.RewindOptionsMenuItem_Click);
// //
// extensionsToolStripMenuItem // extensionsToolStripMenuItem
@ -1587,38 +1582,6 @@
this.HkOverInputMenuItem.Text = "Hotkeys override Input"; this.HkOverInputMenuItem.Text = "Hotkeys override Input";
this.HkOverInputMenuItem.Click += new System.EventHandler(this.HkOverInputMenuItem_Click); this.HkOverInputMenuItem.Click += new System.EventHandler(this.HkOverInputMenuItem_Click);
// //
// SavestateTypeSubMenu
//
this.SavestateTypeSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.SavestateTypeDefaultMenuItem,
this.SavestateBinaryMenuItem,
this.SavestateTextMenuItem});
this.SavestateTypeSubMenu.Name = "SavestateTypeSubMenu";
this.SavestateTypeSubMenu.Size = new System.Drawing.Size(159, 22);
this.SavestateTypeSubMenu.Text = "Savestate Type";
this.SavestateTypeSubMenu.DropDownOpened += new System.EventHandler(this.SavestateTypeMenuItem_DropDownOpened);
//
// SavestateTypeDefaultMenuItem
//
this.SavestateTypeDefaultMenuItem.Name = "SavestateTypeDefaultMenuItem";
this.SavestateTypeDefaultMenuItem.Size = new System.Drawing.Size(112, 22);
this.SavestateTypeDefaultMenuItem.Text = "Default";
this.SavestateTypeDefaultMenuItem.Click += new System.EventHandler(this.SavestateTypeDefaultMenuItem_Click);
//
// SavestateBinaryMenuItem
//
this.SavestateBinaryMenuItem.Name = "SavestateBinaryMenuItem";
this.SavestateBinaryMenuItem.Size = new System.Drawing.Size(112, 22);
this.SavestateBinaryMenuItem.Text = "Binary";
this.SavestateBinaryMenuItem.Click += new System.EventHandler(this.SavestateBinaryMenuItem_Click);
//
// SavestateTextMenuItem
//
this.SavestateTextMenuItem.Name = "SavestateTextMenuItem";
this.SavestateTextMenuItem.Size = new System.Drawing.Size(112, 22);
this.SavestateTextMenuItem.Text = "Text";
this.SavestateTextMenuItem.Click += new System.EventHandler(this.SavestateTextMenuItem_Click);
//
// CoresSubMenu // CoresSubMenu
// //
this.CoresSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.CoresSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -3099,27 +3062,6 @@
this.SavestateTypeContextSubMenu.Text = "Savestate Type"; this.SavestateTypeContextSubMenu.Text = "Savestate Type";
this.SavestateTypeContextSubMenu.DropDownOpened += new System.EventHandler(this.SavestateTypeContextSubMenu_DropDownOpened); this.SavestateTypeContextSubMenu.DropDownOpened += new System.EventHandler(this.SavestateTypeContextSubMenu_DropDownOpened);
// //
// SavestateTypeDefaultContextMenuItem
//
this.SavestateTypeDefaultContextMenuItem.Name = "SavestateTypeDefaultContextMenuItem";
this.SavestateTypeDefaultContextMenuItem.Size = new System.Drawing.Size(112, 22);
this.SavestateTypeDefaultContextMenuItem.Text = "Default";
this.SavestateTypeDefaultContextMenuItem.Click += new System.EventHandler(this.SavestateTypeDefaultMenuItem_Click);
//
// SavestateBinaryContextMenuItem
//
this.SavestateBinaryContextMenuItem.Name = "SavestateBinaryContextMenuItem";
this.SavestateBinaryContextMenuItem.Size = new System.Drawing.Size(112, 22);
this.SavestateBinaryContextMenuItem.Text = "Binary";
this.SavestateBinaryContextMenuItem.Click += new System.EventHandler(this.SavestateBinaryMenuItem_Click);
//
// SavestateTextContextMenuItem
//
this.SavestateTextContextMenuItem.Name = "SavestateTextContextMenuItem";
this.SavestateTextContextMenuItem.Size = new System.Drawing.Size(112, 22);
this.SavestateTextContextMenuItem.Text = "Text";
this.SavestateTextContextMenuItem.Click += new System.EventHandler(this.SavestateTextMenuItem_Click);
//
// CoreSelectionContextSubMenu // CoreSelectionContextSubMenu
// //
this.CoreSelectionContextSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.CoreSelectionContextSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -3491,10 +3433,6 @@
private System.Windows.Forms.ToolStripMenuItem CreateDualGbXmlMenuItem; private System.Windows.Forms.ToolStripMenuItem CreateDualGbXmlMenuItem;
private System.Windows.Forms.ToolStripMenuItem N64SubMenu; private System.Windows.Forms.ToolStripMenuItem N64SubMenu;
private System.Windows.Forms.ToolStripMenuItem N64PluginSettingsMenuItem; private System.Windows.Forms.ToolStripMenuItem N64PluginSettingsMenuItem;
private System.Windows.Forms.ToolStripMenuItem SavestateTypeSubMenu;
private System.Windows.Forms.ToolStripMenuItem SavestateTypeDefaultMenuItem;
private System.Windows.Forms.ToolStripMenuItem SavestateBinaryMenuItem;
private System.Windows.Forms.ToolStripMenuItem SavestateTextMenuItem;
private System.Windows.Forms.ToolStripMenuItem SaturnSubMenu; private System.Windows.Forms.ToolStripMenuItem SaturnSubMenu;
private System.Windows.Forms.ToolStripMenuItem SaturnPreferencesMenuItem; private System.Windows.Forms.ToolStripMenuItem SaturnPreferencesMenuItem;
private System.Windows.Forms.ToolStripMenuItem ConfigContextMenuItem; private System.Windows.Forms.ToolStripMenuItem ConfigContextMenuItem;

View File

@ -801,19 +801,6 @@ namespace BizHawk.Client.EmuHawk
} }
} }
private void SavestateTypeMenuItem_DropDownOpened(object sender, EventArgs e)
{
SavestateTypeDefaultMenuItem.Checked = false;
SavestateBinaryMenuItem.Checked = false;
SavestateTextMenuItem.Checked = false;
switch (Global.Config.SaveStateType)
{
case Config.SaveStateTypeE.Binary: SavestateBinaryMenuItem.Checked = true; break;
case Config.SaveStateTypeE.Text: SavestateTextMenuItem.Checked = true; break;
case Config.SaveStateTypeE.Default: SavestateTypeDefaultMenuItem.Checked = true; break;
}
}
private void CoresSubMenu_DropDownOpened(object sender, EventArgs e) private void CoresSubMenu_DropDownOpened(object sender, EventArgs e)
{ {
GBInSGBMenuItem.Checked = Global.Config.GB_AsSGB; GBInSGBMenuItem.Checked = Global.Config.GB_AsSGB;
@ -987,21 +974,6 @@ namespace BizHawk.Client.EmuHawk
UpdateKeyPriorityIcon(); UpdateKeyPriorityIcon();
} }
private void SavestateTypeDefaultMenuItem_Click(object sender, EventArgs e)
{
Global.Config.SaveStateType = Config.SaveStateTypeE.Default;
}
private void SavestateBinaryMenuItem_Click(object sender, EventArgs e)
{
Global.Config.SaveStateType = Config.SaveStateTypeE.Binary;
}
private void SavestateTextMenuItem_Click(object sender, EventArgs e)
{
Global.Config.SaveStateType = Config.SaveStateTypeE.Text;
}
private void GBInSGBMenuItem_Click(object sender, EventArgs e) private void GBInSGBMenuItem_Click(object sender, EventArgs e)
{ {
Global.Config.GB_AsSGB ^= true; Global.Config.GB_AsSGB ^= true;

File diff suppressed because it is too large Load Diff

View File

@ -62,6 +62,12 @@ namespace BizHawk.Client.EmuHawk
MediumStateUpDown.Value = medium_state_size_kb; MediumStateUpDown.Value = medium_state_size_kb;
LargeStateTrackbar.Value = large_state_size_kb; LargeStateTrackbar.Value = large_state_size_kb;
LargeStateUpDown.Value = large_state_size_kb; LargeStateUpDown.Value = large_state_size_kb;
nudCompression.Value = Global.Config.SaveStateCompressionLevelNormal;
rbStatesDefault.Checked = Global.Config.SaveStateType == Config.SaveStateTypeE.Default;
rbStatesBinary.Checked = Global.Config.SaveStateType == Config.SaveStateTypeE.Binary;
rbStatesText.Checked = Global.Config.SaveStateType == Config.SaveStateTypeE.Text;
} }
private void SetStateSize() private void SetStateSize()
@ -132,6 +138,12 @@ namespace BizHawk.Client.EmuHawk
Global.Config.Rewind_LargeStateSize = (int)(LargeStateUpDown.Value * 1024); Global.Config.Rewind_LargeStateSize = (int)(LargeStateUpDown.Value * 1024);
Global.Config.Rewind_OnDisk = DiskBufferCheckbox.Checked; Global.Config.Rewind_OnDisk = DiskBufferCheckbox.Checked;
Global.Config.Rewind_BufferSize = (int)BufferSizeUpDown.Value; Global.Config.Rewind_BufferSize = (int)BufferSizeUpDown.Value;
Global.Config.SaveStateCompressionLevelNormal = (int)nudCompression.Value;
if (rbStatesDefault.Checked) Global.Config.SaveStateType = Config.SaveStateTypeE.Default;
if (rbStatesBinary.Checked) Global.Config.SaveStateType = Config.SaveStateTypeE.Binary;
if (rbStatesText.Checked) Global.Config.SaveStateType = Config.SaveStateTypeE.Text;
if (Global.Config.Rewind_IsThreaded != RewindIsThreadedCheckbox.Checked) if (Global.Config.Rewind_IsThreaded != RewindIsThreadedCheckbox.Checked)
{ {
GlobalWin.MainForm.FlagNeedsReboot(); GlobalWin.MainForm.FlagNeedsReboot();
@ -322,5 +334,28 @@ namespace BizHawk.Client.EmuHawk
{ {
CalculateEstimates(); CalculateEstimates();
} }
private void trackBar1_ValueChanged(object sender, EventArgs e)
{
}
private void nudCompression_ValueChanged(object sender, EventArgs e)
{
trackBarCompression.Value = (int)(sender as NumericUpDown).Value;
}
private void trackBarCompression_ValueChanged(object sender, EventArgs e)
{
//TODO - make a UserControl which is trackbar and NUD combined
nudCompression.Value = (sender as TrackBar).Value;
}
private void btnResetCompression_Click(object sender, EventArgs e)
{
nudCompression.Value = Config.DefaultSaveStateCompressionLevelNormal;
}
} }
} }

View File

@ -117,6 +117,9 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>