Lua - Implement emu.speedmode and emu.frameskip

This commit is contained in:
andres.delikat 2012-07-12 18:39:24 +00:00
parent 45227b1b11
commit 858f133f9e
2 changed files with 61 additions and 12 deletions

View File

@ -281,12 +281,13 @@ namespace BizHawk.MultiClient
"pause",
"unpause",
"togglepause",
//"speedmode",
"speedmode",
"framecount",
"lagcount",
"islagged",
"getsystemid",
"setrenderplanes",
"frameskip",
};
public static string[] MemoryFunctions = new string[]
@ -822,6 +823,49 @@ namespace BizHawk.MultiClient
return Global.Emulator.SystemId;
}
public void emu_speedmode(object percent)
{
try
{
string temp = percent.ToString();
int speed = Convert.ToInt32(temp);
if (speed > 0 && speed < 1000) //arbituarily capping it at 1000%
{
Global.MainForm.ClickSpeedItem(speed);
}
else
{
console_log("Invalid speed value");
}
}
catch
{
console_log("Invalid speed value");
}
}
public void emu_frameskip(object num_frames)
{
try
{
string temp = num_frames.ToString();
int frames = Convert.ToInt32(temp);
if (frames > 0)
{
Global.Config.FrameSkip = frames;
Global.MainForm.FrameSkipMessage();
}
else
{
console_log("Invalid frame skip value");
}
}
catch
{
console_log("Invalid frame skip value");
}
}
// For now, it accepts arguments up to 5.
public void emu_setrenderplanes(
object lua_p0, object lua_p1 = null, object lua_p2 = null,

View File

@ -66,18 +66,23 @@ namespace BizHawk.MultiClient
Global.Config.AutoMinimizeSkipping ^= true;
}
private void miFrameskip0_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 0; }
private void miFrameskip1_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 1; }
private void miFrameskip2_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 2; }
private void miFrameskip3_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 3; }
private void miFrameskip4_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 4; }
private void miFrameskip5_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 5; }
private void miFrameskip6_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 6; }
private void miFrameskip7_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 7; }
private void miFrameskip8_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 8; }
private void miFrameskip9_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 9; }
private void miFrameskip0_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 0; FrameSkipMessage(); }
private void miFrameskip1_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 1; FrameSkipMessage(); }
private void miFrameskip2_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 2; FrameSkipMessage(); }
private void miFrameskip3_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 3; FrameSkipMessage(); }
private void miFrameskip4_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 4; FrameSkipMessage(); }
private void miFrameskip5_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 5; FrameSkipMessage(); }
private void miFrameskip6_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 6; FrameSkipMessage(); }
private void miFrameskip7_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 7; FrameSkipMessage(); }
private void miFrameskip8_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 8; FrameSkipMessage(); }
private void miFrameskip9_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 9; FrameSkipMessage(); }
void ClickSpeedItem(int num)
public void FrameSkipMessage()
{
Global.OSD.AddMessage("Frameskipping set to " + Global.Config.FrameSkip.ToString());
}
public void ClickSpeedItem(int num)
{
if ((Control.ModifierKeys & Keys.Control) != 0) SetSpeedPercentAlternate(num);
else SetSpeedPercent(num);