TAStudio - fix updating of nes control pad, add menu item "Update Pads on Movie Playback", different color for control pad button background when pressed

This commit is contained in:
andres.delikat 2011-07-30 17:59:18 +00:00
parent e4ba668d31
commit e121498c4c
6 changed files with 89 additions and 39 deletions

View File

@ -281,6 +281,7 @@
public int TASWndy = -1; public int TASWndy = -1;
public int TASWidth = -1; public int TASWidth = -1;
public int TASHeight = -1; public int TASHeight = -1;
public bool TASUpdatePads = true;
// NES Game Genie Encoder/Decoder // NES Game Genie Encoder/Decoder
public bool NESGGAutoload = false; public bool NESGGAutoload = false;

View File

@ -947,6 +947,7 @@ namespace BizHawk.MultiClient
NESNameTableViewer1.Restart(); NESNameTableViewer1.Restart();
NESDebug1.Restart(); NESDebug1.Restart();
TI83KeyPad1.Restart(); TI83KeyPad1.Restart();
TAStudio1.Restart();
if (Global.Config.LoadCheatFileByGame) if (Global.Config.LoadCheatFileByGame)
{ {
if (Cheats1.AttemptLoadCheatFile()) if (Cheats1.AttemptLoadCheatFile())

View File

@ -48,8 +48,8 @@
this.insertFrameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.insertFrameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveWindowPositionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.saveWindowPositionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.restoreWindowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.autoloadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.autoloadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.restoreWindowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStrip1 = new ToolStripEx(); this.toolStrip1 = new ToolStripEx();
this.RewindToBeginning = new System.Windows.Forms.ToolStripButton(); this.RewindToBeginning = new System.Windows.Forms.ToolStripButton();
this.RewindButton = new System.Windows.Forms.ToolStripButton(); this.RewindButton = new System.Windows.Forms.ToolStripButton();
@ -68,6 +68,8 @@
this.TASView = new BizHawk.VirtualListView(); this.TASView = new BizHawk.VirtualListView();
this.Frame = new System.Windows.Forms.ColumnHeader(); this.Frame = new System.Windows.Forms.ColumnHeader();
this.Log = new System.Windows.Forms.ColumnHeader(); this.Log = new System.Windows.Forms.ColumnHeader();
this.updatePadsOnMovePlaybackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
this.menuStrip1.SuspendLayout(); this.menuStrip1.SuspendLayout();
this.toolStrip1.SuspendLayout(); this.toolStrip1.SuspendLayout();
this.contextMenuStrip1.SuspendLayout(); this.contextMenuStrip1.SuspendLayout();
@ -201,6 +203,8 @@
this.settingsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.settingsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.saveWindowPositionToolStripMenuItem, this.saveWindowPositionToolStripMenuItem,
this.autoloadToolStripMenuItem, this.autoloadToolStripMenuItem,
this.updatePadsOnMovePlaybackToolStripMenuItem,
this.toolStripSeparator4,
this.restoreWindowToolStripMenuItem}); this.restoreWindowToolStripMenuItem});
this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
this.settingsToolStripMenuItem.Size = new System.Drawing.Size(58, 20); this.settingsToolStripMenuItem.Size = new System.Drawing.Size(58, 20);
@ -210,24 +214,24 @@
// saveWindowPositionToolStripMenuItem // saveWindowPositionToolStripMenuItem
// //
this.saveWindowPositionToolStripMenuItem.Name = "saveWindowPositionToolStripMenuItem"; this.saveWindowPositionToolStripMenuItem.Name = "saveWindowPositionToolStripMenuItem";
this.saveWindowPositionToolStripMenuItem.Size = new System.Drawing.Size(203, 22); this.saveWindowPositionToolStripMenuItem.Size = new System.Drawing.Size(235, 22);
this.saveWindowPositionToolStripMenuItem.Text = "Save Window Position"; this.saveWindowPositionToolStripMenuItem.Text = "Save Window Position";
this.saveWindowPositionToolStripMenuItem.Click += new System.EventHandler(this.saveWindowPositionToolStripMenuItem_Click); this.saveWindowPositionToolStripMenuItem.Click += new System.EventHandler(this.saveWindowPositionToolStripMenuItem_Click);
// //
// restoreWindowToolStripMenuItem
//
this.restoreWindowToolStripMenuItem.Name = "restoreWindowToolStripMenuItem";
this.restoreWindowToolStripMenuItem.Size = new System.Drawing.Size(203, 22);
this.restoreWindowToolStripMenuItem.Text = "Restore Default Settings";
this.restoreWindowToolStripMenuItem.Click += new System.EventHandler(this.restoreWindowToolStripMenuItem_Click);
//
// autoloadToolStripMenuItem // autoloadToolStripMenuItem
// //
this.autoloadToolStripMenuItem.Name = "autoloadToolStripMenuItem"; this.autoloadToolStripMenuItem.Name = "autoloadToolStripMenuItem";
this.autoloadToolStripMenuItem.Size = new System.Drawing.Size(203, 22); this.autoloadToolStripMenuItem.Size = new System.Drawing.Size(235, 22);
this.autoloadToolStripMenuItem.Text = "Autoload"; this.autoloadToolStripMenuItem.Text = "Autoload";
this.autoloadToolStripMenuItem.Click += new System.EventHandler(this.autoloadToolStripMenuItem_Click); this.autoloadToolStripMenuItem.Click += new System.EventHandler(this.autoloadToolStripMenuItem_Click);
// //
// restoreWindowToolStripMenuItem
//
this.restoreWindowToolStripMenuItem.Name = "restoreWindowToolStripMenuItem";
this.restoreWindowToolStripMenuItem.Size = new System.Drawing.Size(235, 22);
this.restoreWindowToolStripMenuItem.Text = "Restore Default Settings";
this.restoreWindowToolStripMenuItem.Click += new System.EventHandler(this.restoreWindowToolStripMenuItem_Click);
//
// toolStrip1 // toolStrip1
// //
this.toolStrip1.ClickThrough = true; this.toolStrip1.ClickThrough = true;
@ -395,6 +399,18 @@
this.Log.Text = "Log"; this.Log.Text = "Log";
this.Log.Width = 201; this.Log.Width = 201;
// //
// updatePadsOnMovePlaybackToolStripMenuItem
//
this.updatePadsOnMovePlaybackToolStripMenuItem.Name = "updatePadsOnMovePlaybackToolStripMenuItem";
this.updatePadsOnMovePlaybackToolStripMenuItem.Size = new System.Drawing.Size(235, 22);
this.updatePadsOnMovePlaybackToolStripMenuItem.Text = "Update Pads on Move playback";
this.updatePadsOnMovePlaybackToolStripMenuItem.Click += new System.EventHandler(this.updatePadsOnMovePlaybackToolStripMenuItem_Click);
//
// toolStripSeparator4
//
this.toolStripSeparator4.Name = "toolStripSeparator4";
this.toolStripSeparator4.Size = new System.Drawing.Size(232, 6);
//
// TAStudio // TAStudio
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -460,5 +476,7 @@
private System.Windows.Forms.GroupBox ControllerBox; private System.Windows.Forms.GroupBox ControllerBox;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator6; private System.Windows.Forms.ToolStripSeparator toolStripSeparator6;
private System.Windows.Forms.ToolStripButton StopButton; private System.Windows.Forms.ToolStripButton StopButton;
private System.Windows.Forms.ToolStripMenuItem updatePadsOnMovePlaybackToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
} }
} }

View File

@ -55,33 +55,33 @@ namespace BizHawk.MultiClient
if (Global.MainForm.UserMovie.Mode == MOVIEMODE.PLAY) if (Global.MainForm.UserMovie.Mode == MOVIEMODE.PLAY)
{ {
string str = Global.MainForm.UserMovie.GetInputFrame(Global.Emulator.Frame); string str = Global.MainForm.UserMovie.GetInputFrame(Global.Emulator.Frame);
if (Global.Config.TASUpdatePads)
switch (Global.Emulator.SystemId)
{ {
case "NES": switch (Global.Emulator.SystemId)
Pads[0].SetButtons(str.Substring(3, 8)); {
Pads[1].SetButtons(str.Substring(12, 8)); case "NES":
Pads[2].SetButtons(str[1].ToString()); Pads[0].SetButtons(str.Substring(3, 8));
break; Pads[1].SetButtons(str.Substring(12, 8));
case "SMS": Pads[2].SetButtons(str[1].ToString());
case "GG": break;
case "SG": case "SMS":
Pads[0].SetButtons(str.Substring(0, 6)); case "GG":
Pads[1].SetButtons(str.Substring(7, 6)); case "SG":
Pads[2].SetButtons(str.Substring(14, 2)); Pads[0].SetButtons(str.Substring(0, 6));
break; Pads[1].SetButtons(str.Substring(7, 6));
case "PCE": Pads[2].SetButtons(str.Substring(14, 2));
case "SGX": break;
Pads[0].SetButtons(str.Substring(3, 8)); case "PCE":
Pads[1].SetButtons(str.Substring(12, 8)); case "SGX":
Pads[2].SetButtons(str.Substring(21, 8)); Pads[0].SetButtons(str.Substring(3, 8));
Pads[3].SetButtons(str.Substring(30, 8)); Pads[1].SetButtons(str.Substring(12, 8));
break; Pads[2].SetButtons(str.Substring(21, 8));
default: Pads[3].SetButtons(str.Substring(30, 8));
break; break;
default:
break;
}
} }
} }
} }
@ -119,7 +119,7 @@ namespace BizHawk.MultiClient
TASView.ensureVisible(Global.Emulator.Frame); TASView.ensureVisible(Global.Emulator.Frame);
} }
private void TAStudio_Load(object sender, EventArgs e) public void LoadTAStudio()
{ {
//TODO: don't engage until new/open project //TODO: don't engage until new/open project
// //
@ -195,6 +195,11 @@ namespace BizHawk.MultiClient
} }
} }
private void TAStudio_Load(object sender, EventArgs e)
{
LoadTAStudio();
}
private void LoadConfigSettings() private void LoadConfigSettings()
{ {
defaultWidth = Size.Width; //Save these first so that the user can restore to its original size defaultWidth = Size.Width; //Save these first so that the user can restore to its original size
@ -229,9 +234,10 @@ namespace BizHawk.MultiClient
public void Restart() public void Restart()
{ {
TASView.Clear(); TASView.Clear();
TASView.Update(); ControllerBox.Controls.Clear();
ClearPads(); ClearPads();
DisplayList(); Pads.Clear();
LoadTAStudio();
} }
private void exitToolStripMenuItem_Click(object sender, EventArgs e) private void exitToolStripMenuItem_Click(object sender, EventArgs e)
@ -243,6 +249,7 @@ namespace BizHawk.MultiClient
{ {
saveWindowPositionToolStripMenuItem.Checked = Global.Config.TAStudioSaveWindowPosition; saveWindowPositionToolStripMenuItem.Checked = Global.Config.TAStudioSaveWindowPosition;
autoloadToolStripMenuItem.Checked = Global.Config.AutoloadTAStudio; autoloadToolStripMenuItem.Checked = Global.Config.AutoloadTAStudio;
updatePadsOnMovePlaybackToolStripMenuItem.Checked = Global.Config.TASUpdatePads;
} }
private void saveWindowPositionToolStripMenuItem_Click(object sender, EventArgs e) private void saveWindowPositionToolStripMenuItem_Click(object sender, EventArgs e)
@ -330,5 +337,10 @@ namespace BizHawk.MultiClient
if (Global.MainForm.ReadOnly) if (Global.MainForm.ReadOnly)
return; return;
} }
private void updatePadsOnMovePlaybackToolStripMenuItem_Click(object sender, EventArgs e)
{
Global.Config.TASUpdatePads ^= true;
}
} }
} }

View File

@ -96,14 +96,20 @@ namespace BizHawk.MultiClient
public override void SetButtons(string buttons) public override void SetButtons(string buttons)
{ {
if (buttons.Length < 1) return; if (buttons.Length < 1) return;
if (buttons[0] == '.') B2.Checked = false; else B2.Checked = true; if (buttons[0] == '.' || buttons[0] == '0') B2.Checked = false; else B2.Checked = true;
} }
private void Buttons_CheckedChanged(object sender, EventArgs e) private void Buttons_CheckedChanged(object sender, EventArgs e)
{ {
if (Global.Emulator.SystemId != "NES") return; if (Global.Emulator.SystemId != "NES") return;
else if (sender == B2) else if (sender == B2)
{
Global.StickyXORAdapter.SetSticky("Reset", B2.Checked); Global.StickyXORAdapter.SetSticky("Reset", B2.Checked);
if (B2.Checked == true)
B2.BackColor = Color.Pink;
else
B2.BackColor = SystemColors.Control;
}
} }
public override void Clear() public override void Clear()

View File

@ -104,9 +104,21 @@ namespace BizHawk.MultiClient
{ {
if (Global.Emulator.SystemId != "SMS") return; if (Global.Emulator.SystemId != "SMS") return;
else if (sender == B1) else if (sender == B1)
{
Global.StickyXORAdapter.SetSticky("Pause", B1.Checked); Global.StickyXORAdapter.SetSticky("Pause", B1.Checked);
if (B1.Checked == true)
B1.BackColor = Color.Pink;
else
B1.BackColor = SystemColors.Control;
}
else if (sender == B2) else if (sender == B2)
{
Global.StickyXORAdapter.SetSticky("Reset", B2.Checked); Global.StickyXORAdapter.SetSticky("Reset", B2.Checked);
if (B2.Checked == true)
B2.BackColor = Color.Pink;
else
B2.BackColor = SystemColors.Control;
}
} }
public override void Clear() public override void Clear()