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,
UseZip64 = UseZip64.Off
};
_zip.SetLevel(5);
_zip.SetLevel(Global.Config.SaveStateCompressionLevelNormal);
if (stateVersionTag)
{
@ -256,7 +256,10 @@ namespace BizHawk.Client.Common
public void PutLump(BinaryStateLump lump, Action<Stream> callback)
{
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);
callback(_zip);
_zip.CloseEntry();

View File

@ -97,7 +97,6 @@ namespace BizHawk.Client.Common
public bool FirstBoot = true;
public enum SaveStateTypeE { Default, Binary, Text };
public SaveStateTypeE SaveStateType = SaveStateTypeE.Default;
// N64
public bool N64UseCircularAnalogConstraint = true;
@ -125,6 +124,13 @@ namespace BizHawk.Client.Common
public bool Rewind_OnDisk = 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>
public bool VSync = false;

View File

@ -167,10 +167,6 @@
this.BothHkAndControllerMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.InputOverHkMenuItem = 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.GBInSGBMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.NesInQuickNESMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -1261,7 +1257,6 @@
this.toolStripSeparator9,
this.SpeedSkipSubMenu,
this.KeyPrioritySubMenu,
this.SavestateTypeSubMenu,
this.CoresSubMenu,
this.toolStripSeparator10,
this.SaveConfigMenuItem,
@ -1339,8 +1334,8 @@
//
this.RewindOptionsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Previous;
this.RewindOptionsMenuItem.Name = "RewindOptionsMenuItem";
this.RewindOptionsMenuItem.Size = new System.Drawing.Size(159, 22);
this.RewindOptionsMenuItem.Text = "&Rewind...";
this.RewindOptionsMenuItem.Size = new System.Drawing.Size(165, 22);
this.RewindOptionsMenuItem.Text = "&Rewind && States...";
this.RewindOptionsMenuItem.Click += new System.EventHandler(this.RewindOptionsMenuItem_Click);
//
// extensionsToolStripMenuItem
@ -1587,38 +1582,6 @@
this.HkOverInputMenuItem.Text = "Hotkeys override Input";
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
//
this.CoresSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -3099,27 +3062,6 @@
this.SavestateTypeContextSubMenu.Text = "Savestate Type";
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
//
this.CoreSelectionContextSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -3491,10 +3433,6 @@
private System.Windows.Forms.ToolStripMenuItem CreateDualGbXmlMenuItem;
private System.Windows.Forms.ToolStripMenuItem N64SubMenu;
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 SaturnPreferencesMenuItem;
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)
{
GBInSGBMenuItem.Checked = Global.Config.GB_AsSGB;
@ -987,21 +974,6 @@ namespace BizHawk.Client.EmuHawk
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)
{
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;
LargeStateTrackbar.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()
@ -132,6 +138,12 @@ namespace BizHawk.Client.EmuHawk
Global.Config.Rewind_LargeStateSize = (int)(LargeStateUpDown.Value * 1024);
Global.Config.Rewind_OnDisk = DiskBufferCheckbox.Checked;
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)
{
GlobalWin.MainForm.FlagNeedsReboot();
@ -322,5 +334,28 @@ namespace BizHawk.Client.EmuHawk
{
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">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</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" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>