Proportional rewind speed is now always enabled - revert user-configurable setting.

Fix fast rewind with proportional rewind speed.
This commit is contained in:
jdpurcell 2015-01-12 15:09:27 +00:00
parent 9b5a5e69d4
commit e66fe70365
4 changed files with 42 additions and 53 deletions

View File

@ -155,7 +155,6 @@ namespace BizHawk.Client.Common
public int Rewind_BufferSize = 128; //in mb public int Rewind_BufferSize = 128; //in mb
public bool Rewind_OnDisk = false; public bool Rewind_OnDisk = false;
public bool Rewind_IsThreaded = false; public bool Rewind_IsThreaded = false;
public bool RewindSpeedProportional = false;
// Savestate settings // Savestate settings
public SaveStateTypeE SaveStateType = SaveStateTypeE.Default; public SaveStateTypeE SaveStateType = SaveStateTypeE.Default;

View File

@ -1659,7 +1659,14 @@ namespace BizHawk.Client.EmuHawk
var rewind = Global.Rewinder.RewindActive && (Global.ClientControls["Rewind"] || PressRewind); var rewind = Global.Rewinder.RewindActive && (Global.ClientControls["Rewind"] || PressRewind);
var fastforward = Global.ClientControls["Fast Forward"] || FastForward; var fastforward = Global.ClientControls["Fast Forward"] || FastForward;
var superfastforward = IsTurboing; var superfastforward = IsTurboing;
int speedPercent = fastforward ? Global.Config.SpeedPercentAlternate : Global.Config.SpeedPercent;
if (rewind)
{
speedPercent = Math.Max(speedPercent / Global.Rewinder.RewindFrequency, 5);
}
//zero 11-oct-2014 - i think this is more correct.. //zero 11-oct-2014 - i think this is more correct..
//Global.ForceNoThrottle = _unthrottled || fastforward; //Global.ForceNoThrottle = _unthrottled || fastforward;
Global.ForceNoThrottle = _unthrottled || fastforward || superfastforward; Global.ForceNoThrottle = _unthrottled || fastforward || superfastforward;
@ -1668,10 +1675,7 @@ namespace BizHawk.Client.EmuHawk
_throttle.SetCoreFps(Global.Emulator.CoreComm.VsyncRate); _throttle.SetCoreFps(Global.Emulator.CoreComm.VsyncRate);
_throttle.signal_paused = EmulatorPaused; _throttle.signal_paused = EmulatorPaused;
_throttle.signal_unthrottle = _unthrottled || superfastforward; _throttle.signal_unthrottle = _unthrottled || superfastforward;
_throttle.SetSpeedPercent( _throttle.SetSpeedPercent(speedPercent);
rewind && Global.Config.RewindSpeedProportional ? Math.Max(100 / Global.Rewinder.RewindFrequency, 5) :
fastforward ? Global.Config.SpeedPercentAlternate :
Global.Config.SpeedPercent);
} }
private void SetSpeedPercentAlternate(int value) private void SetSpeedPercentAlternate(int value)

View File

@ -62,8 +62,6 @@
this.MediumStateSizeLabel = new System.Windows.Forms.Label(); this.MediumStateSizeLabel = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label();
this.groupBox3 = new System.Windows.Forms.GroupBox(); this.groupBox3 = new System.Windows.Forms.GroupBox();
this.RewindSpeedProportionalCheckbox = new System.Windows.Forms.CheckBox();
this.label17 = new System.Windows.Forms.Label();
this.RewindIsThreadedCheckbox = new System.Windows.Forms.CheckBox(); this.RewindIsThreadedCheckbox = new System.Windows.Forms.CheckBox();
this.label4 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label();
this.BufferSizeUpDown = new System.Windows.Forms.NumericUpDown(); this.BufferSizeUpDown = new System.Windows.Forms.NumericUpDown();
@ -89,6 +87,7 @@
this.trackBarCompression = new System.Windows.Forms.TrackBar(); this.trackBarCompression = new System.Windows.Forms.TrackBar();
this.nudCompression = new System.Windows.Forms.NumericUpDown(); this.nudCompression = new System.Windows.Forms.NumericUpDown();
this.groupBox7 = new System.Windows.Forms.GroupBox(); this.groupBox7 = new System.Windows.Forms.GroupBox();
this.label12 = new System.Windows.Forms.Label();
this.KbLabel = new System.Windows.Forms.Label(); this.KbLabel = new System.Windows.Forms.Label();
this.BigScreenshotNumeric = new System.Windows.Forms.NumericUpDown(); this.BigScreenshotNumeric = new System.Windows.Forms.NumericUpDown();
this.SaveLargeScreenshotsCheckbox = new System.Windows.Forms.CheckBox(); this.SaveLargeScreenshotsCheckbox = new System.Windows.Forms.CheckBox();
@ -98,7 +97,7 @@
this.label15 = new System.Windows.Forms.Label(); this.label15 = new System.Windows.Forms.Label();
this.label16 = new System.Windows.Forms.Label(); this.label16 = new System.Windows.Forms.Label();
this.BackupSavestatesCheckbox = new System.Windows.Forms.CheckBox(); this.BackupSavestatesCheckbox = new System.Windows.Forms.CheckBox();
this.label12 = new System.Windows.Forms.Label(); this.label17 = new System.Windows.Forms.Label();
this.groupBox1.SuspendLayout(); this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.LargeSavestateNumeric)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.LargeSavestateNumeric)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.MediumSavestateNumeric)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.MediumSavestateNumeric)).BeginInit();
@ -121,7 +120,7 @@
// OK // OK
// //
this.OK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.OK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.OK.Location = new System.Drawing.Point(575, 462); this.OK.Location = new System.Drawing.Point(575, 437);
this.OK.Name = "OK"; this.OK.Name = "OK";
this.OK.Size = new System.Drawing.Size(75, 23); this.OK.Size = new System.Drawing.Size(75, 23);
this.OK.TabIndex = 0; this.OK.TabIndex = 0;
@ -133,7 +132,7 @@
// //
this.Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.Cancel.Location = new System.Drawing.Point(656, 462); this.Cancel.Location = new System.Drawing.Point(656, 437);
this.Cancel.Name = "Cancel"; this.Cancel.Name = "Cancel";
this.Cancel.Size = new System.Drawing.Size(75, 23); this.Cancel.Size = new System.Drawing.Size(75, 23);
this.Cancel.TabIndex = 1; this.Cancel.TabIndex = 1;
@ -361,7 +360,7 @@
// UseDeltaCompression // UseDeltaCompression
// //
this.UseDeltaCompression.AutoSize = true; this.UseDeltaCompression.AutoSize = true;
this.UseDeltaCompression.Location = new System.Drawing.Point(16, 82); this.UseDeltaCompression.Location = new System.Drawing.Point(16, 59);
this.UseDeltaCompression.Name = "UseDeltaCompression"; this.UseDeltaCompression.Name = "UseDeltaCompression";
this.UseDeltaCompression.Size = new System.Drawing.Size(332, 17); this.UseDeltaCompression.Size = new System.Drawing.Size(332, 17);
this.UseDeltaCompression.TabIndex = 4; this.UseDeltaCompression.TabIndex = 4;
@ -394,7 +393,7 @@
this.MediumStateTrackbar.Maximum = 4096; this.MediumStateTrackbar.Maximum = 4096;
this.MediumStateTrackbar.Minimum = 1; this.MediumStateTrackbar.Minimum = 1;
this.MediumStateTrackbar.Name = "MediumStateTrackbar"; this.MediumStateTrackbar.Name = "MediumStateTrackbar";
this.MediumStateTrackbar.Size = new System.Drawing.Size(186, 45); this.MediumStateTrackbar.Size = new System.Drawing.Size(186, 42);
this.MediumStateTrackbar.TabIndex = 7; this.MediumStateTrackbar.TabIndex = 7;
this.MediumStateTrackbar.TickFrequency = 256; this.MediumStateTrackbar.TickFrequency = 256;
this.MediumStateTrackbar.Value = 1; this.MediumStateTrackbar.Value = 1;
@ -410,7 +409,7 @@
this.groupBox2.Controls.Add(this.MediumStateSizeLabel); this.groupBox2.Controls.Add(this.MediumStateSizeLabel);
this.groupBox2.Controls.Add(this.label2); this.groupBox2.Controls.Add(this.label2);
this.groupBox2.Controls.Add(this.MediumStateTrackbar); this.groupBox2.Controls.Add(this.MediumStateTrackbar);
this.groupBox2.Location = new System.Drawing.Point(12, 378); this.groupBox2.Location = new System.Drawing.Point(12, 356);
this.groupBox2.Name = "groupBox2"; this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(371, 105); this.groupBox2.Size = new System.Drawing.Size(371, 105);
this.groupBox2.TabIndex = 8; this.groupBox2.TabIndex = 8;
@ -488,7 +487,7 @@
this.LargeStateTrackbar.Maximum = 16384; this.LargeStateTrackbar.Maximum = 16384;
this.LargeStateTrackbar.Minimum = 256; this.LargeStateTrackbar.Minimum = 256;
this.LargeStateTrackbar.Name = "LargeStateTrackbar"; this.LargeStateTrackbar.Name = "LargeStateTrackbar";
this.LargeStateTrackbar.Size = new System.Drawing.Size(186, 45); this.LargeStateTrackbar.Size = new System.Drawing.Size(186, 42);
this.LargeStateTrackbar.TabIndex = 10; this.LargeStateTrackbar.TabIndex = 10;
this.LargeStateTrackbar.TickFrequency = 1024; this.LargeStateTrackbar.TickFrequency = 1024;
this.LargeStateTrackbar.Value = 256; this.LargeStateTrackbar.Value = 256;
@ -514,7 +513,6 @@
// //
// groupBox3 // groupBox3
// //
this.groupBox3.Controls.Add(this.RewindSpeedProportionalCheckbox);
this.groupBox3.Controls.Add(this.label17); this.groupBox3.Controls.Add(this.label17);
this.groupBox3.Controls.Add(this.RewindIsThreadedCheckbox); this.groupBox3.Controls.Add(this.RewindIsThreadedCheckbox);
this.groupBox3.Controls.Add(this.label4); this.groupBox3.Controls.Add(this.label4);
@ -524,34 +522,15 @@
this.groupBox3.Controls.Add(this.UseDeltaCompression); this.groupBox3.Controls.Add(this.UseDeltaCompression);
this.groupBox3.Location = new System.Drawing.Point(12, 214); this.groupBox3.Location = new System.Drawing.Point(12, 214);
this.groupBox3.Name = "groupBox3"; this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(371, 158); this.groupBox3.Size = new System.Drawing.Size(371, 136);
this.groupBox3.TabIndex = 9; this.groupBox3.TabIndex = 9;
this.groupBox3.TabStop = false; this.groupBox3.TabStop = false;
this.groupBox3.Text = "Rewind Options"; this.groupBox3.Text = "Rewind Options";
// //
// RewindSpeedProportionalCheckbox
//
this.RewindSpeedProportionalCheckbox.AutoSize = true;
this.RewindSpeedProportionalCheckbox.Location = new System.Drawing.Point(16, 19);
this.RewindSpeedProportionalCheckbox.Name = "RewindSpeedProportionalCheckbox";
this.RewindSpeedProportionalCheckbox.Size = new System.Drawing.Size(258, 17);
this.RewindSpeedProportionalCheckbox.TabIndex = 3;
this.RewindSpeedProportionalCheckbox.Text = "Rewind speed is proportional to rewind frequency";
this.RewindSpeedProportionalCheckbox.UseVisualStyleBackColor = true;
//
// label17
//
this.label17.AutoSize = true;
this.label17.Location = new System.Drawing.Point(6, 40);
this.label17.Name = "label17";
this.label17.Size = new System.Drawing.Size(278, 13);
this.label17.TabIndex = 32;
this.label17.Text = "These options affect rewind performance in various ways:";
//
// RewindIsThreadedCheckbox // RewindIsThreadedCheckbox
// //
this.RewindIsThreadedCheckbox.AutoSize = true; this.RewindIsThreadedCheckbox.AutoSize = true;
this.RewindIsThreadedCheckbox.Location = new System.Drawing.Point(16, 104); this.RewindIsThreadedCheckbox.Location = new System.Drawing.Point(16, 82);
this.RewindIsThreadedCheckbox.Name = "RewindIsThreadedCheckbox"; this.RewindIsThreadedCheckbox.Name = "RewindIsThreadedCheckbox";
this.RewindIsThreadedCheckbox.Size = new System.Drawing.Size(151, 17); this.RewindIsThreadedCheckbox.Size = new System.Drawing.Size(151, 17);
this.RewindIsThreadedCheckbox.TabIndex = 17; this.RewindIsThreadedCheckbox.TabIndex = 17;
@ -562,7 +541,7 @@
// label4 // label4
// //
this.label4.AutoSize = true; this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(140, 129); this.label4.Location = new System.Drawing.Point(140, 106);
this.label4.Name = "label4"; this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(23, 13); this.label4.Size = new System.Drawing.Size(23, 13);
this.label4.TabIndex = 16; this.label4.TabIndex = 16;
@ -570,7 +549,7 @@
// //
// BufferSizeUpDown // BufferSizeUpDown
// //
this.BufferSizeUpDown.Location = new System.Drawing.Point(85, 125); this.BufferSizeUpDown.Location = new System.Drawing.Point(85, 102);
this.BufferSizeUpDown.Maximum = new decimal(new int[] { this.BufferSizeUpDown.Maximum = new decimal(new int[] {
32768, 32768,
0, 0,
@ -594,7 +573,7 @@
// label3 // label3
// //
this.label3.AutoSize = true; this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(6, 129); this.label3.Location = new System.Drawing.Point(6, 106);
this.label3.Name = "label3"; this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(81, 13); this.label3.Size = new System.Drawing.Size(81, 13);
this.label3.TabIndex = 6; this.label3.TabIndex = 6;
@ -603,7 +582,7 @@
// DiskBufferCheckbox // DiskBufferCheckbox
// //
this.DiskBufferCheckbox.AutoSize = true; this.DiskBufferCheckbox.AutoSize = true;
this.DiskBufferCheckbox.Location = new System.Drawing.Point(16, 60); this.DiskBufferCheckbox.Location = new System.Drawing.Point(16, 37);
this.DiskBufferCheckbox.Name = "DiskBufferCheckbox"; this.DiskBufferCheckbox.Name = "DiskBufferCheckbox";
this.DiskBufferCheckbox.Size = new System.Drawing.Size(188, 17); this.DiskBufferCheckbox.Size = new System.Drawing.Size(188, 17);
this.DiskBufferCheckbox.TabIndex = 5; this.DiskBufferCheckbox.TabIndex = 5;
@ -786,7 +765,7 @@
this.trackBarCompression.Location = new System.Drawing.Point(22, 37); this.trackBarCompression.Location = new System.Drawing.Point(22, 37);
this.trackBarCompression.Maximum = 9; this.trackBarCompression.Maximum = 9;
this.trackBarCompression.Name = "trackBarCompression"; this.trackBarCompression.Name = "trackBarCompression";
this.trackBarCompression.Size = new System.Drawing.Size(157, 45); this.trackBarCompression.Size = new System.Drawing.Size(157, 42);
this.trackBarCompression.TabIndex = 20; this.trackBarCompression.TabIndex = 20;
this.toolTip1.SetToolTip(this.trackBarCompression, "0 = None; 9 = Maximum"); this.toolTip1.SetToolTip(this.trackBarCompression, "0 = None; 9 = Maximum");
this.trackBarCompression.Value = 1; this.trackBarCompression.Value = 1;
@ -833,6 +812,15 @@
this.groupBox7.TabStop = false; this.groupBox7.TabStop = false;
this.groupBox7.Text = "Savestate Options"; this.groupBox7.Text = "Savestate Options";
// //
// label12
//
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(19, 21);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(96, 13);
this.label12.TabIndex = 24;
this.label12.Text = "Compression Level";
//
// KbLabel // KbLabel
// //
this.KbLabel.AutoSize = true; this.KbLabel.AutoSize = true;
@ -931,14 +919,14 @@
this.BackupSavestatesCheckbox.Text = "Backup Savestates"; this.BackupSavestatesCheckbox.Text = "Backup Savestates";
this.BackupSavestatesCheckbox.UseVisualStyleBackColor = true; this.BackupSavestatesCheckbox.UseVisualStyleBackColor = true;
// //
// label12 // label17
// //
this.label12.AutoSize = true; this.label17.AutoSize = true;
this.label12.Location = new System.Drawing.Point(19, 21); this.label17.Location = new System.Drawing.Point(6, 19);
this.label12.Name = "label12"; this.label17.Name = "label17";
this.label12.Size = new System.Drawing.Size(96, 13); this.label17.Size = new System.Drawing.Size(278, 13);
this.label12.TabIndex = 24; this.label17.TabIndex = 32;
this.label12.Text = "Compression Level"; this.label17.Text = "These options affect rewind performance in various ways:";
// //
// RewindConfig // RewindConfig
// //
@ -946,7 +934,7 @@
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.Cancel; this.CancelButton = this.Cancel;
this.ClientSize = new System.Drawing.Size(741, 497); this.ClientSize = new System.Drawing.Size(741, 472);
this.Controls.Add(this.groupBox7); this.Controls.Add(this.groupBox7);
this.Controls.Add(this.groupBox4); this.Controls.Add(this.groupBox4);
this.Controls.Add(this.groupBox3); this.Controls.Add(this.groupBox3);
@ -1059,6 +1047,5 @@
private System.Windows.Forms.Label label15; private System.Windows.Forms.Label label15;
private System.Windows.Forms.Label label16; private System.Windows.Forms.Label label16;
private System.Windows.Forms.CheckBox BackupSavestatesCheckbox; private System.Windows.Forms.CheckBox BackupSavestatesCheckbox;
private System.Windows.Forms.CheckBox RewindSpeedProportionalCheckbox;
} }
} }

View File

@ -32,7 +32,7 @@ namespace BizHawk.Client.EmuHawk
RewindFramesUsedLabel.Text = "N/A"; RewindFramesUsedLabel.Text = "N/A";
} }
RewindSpeedProportionalCheckbox.Checked = Global.Config.RewindSpeedProportional;
DiskBufferCheckbox.Checked = Global.Config.Rewind_OnDisk; DiskBufferCheckbox.Checked = Global.Config.Rewind_OnDisk;
RewindIsThreadedCheckbox.Checked = Global.Config.Rewind_IsThreaded; RewindIsThreadedCheckbox.Checked = Global.Config.Rewind_IsThreaded;
_stateSize = Global.Emulator.AsStatable().SaveStateBinary().Length; _stateSize = Global.Emulator.AsStatable().SaveStateBinary().Length;
@ -151,7 +151,6 @@ namespace BizHawk.Client.EmuHawk
Global.Config.Rewind_UseDelta = UseDeltaCompression.Checked; Global.Config.Rewind_UseDelta = UseDeltaCompression.Checked;
Global.Config.Rewind_MediumStateSize = (int)(MediumStateUpDown.Value * 1024); Global.Config.Rewind_MediumStateSize = (int)(MediumStateUpDown.Value * 1024);
Global.Config.Rewind_LargeStateSize = (int)(LargeStateUpDown.Value * 1024); Global.Config.Rewind_LargeStateSize = (int)(LargeStateUpDown.Value * 1024);
Global.Config.RewindSpeedProportional = RewindSpeedProportionalCheckbox.Checked;
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; Global.Config.SaveStateCompressionLevelNormal = (int)nudCompression.Value;