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", "pause",
"unpause", "unpause",
"togglepause", "togglepause",
//"speedmode", "speedmode",
"framecount", "framecount",
"lagcount", "lagcount",
"islagged", "islagged",
"getsystemid", "getsystemid",
"setrenderplanes", "setrenderplanes",
"frameskip",
}; };
public static string[] MemoryFunctions = new string[] public static string[] MemoryFunctions = new string[]
@ -822,6 +823,49 @@ namespace BizHawk.MultiClient
return Global.Emulator.SystemId; 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. // For now, it accepts arguments up to 5.
public void emu_setrenderplanes( public void emu_setrenderplanes(
object lua_p0, object lua_p1 = null, object lua_p2 = null, object lua_p0, object lua_p1 = null, object lua_p2 = null,

View File

@ -66,18 +66,23 @@ namespace BizHawk.MultiClient
Global.Config.AutoMinimizeSkipping ^= true; Global.Config.AutoMinimizeSkipping ^= true;
} }
private void miFrameskip0_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 0; } 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; } 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; } 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; } 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; } 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; } 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; } 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; } 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; } 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; } 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); if ((Control.ModifierKeys & Keys.Control) != 0) SetSpeedPercentAlternate(num);
else SetSpeedPercent(num); else SetSpeedPercent(num);