diff --git a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj index 436419eb24..e75cd84231 100644 --- a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj +++ b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj @@ -628,6 +628,12 @@ + + Form + + + AutoHawk.cs + Form @@ -1283,6 +1289,9 @@ RomStatusPicker.cs + + AutoHawk.cs + BatchRun.cs diff --git a/BizHawk.Client.EmuHawk/MainForm.Designer.cs b/BizHawk.Client.EmuHawk/MainForm.Designer.cs index 10acc0a934..e46564f81f 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Designer.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Designer.cs @@ -179,6 +179,7 @@ this.GBInSGBMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.NesInQuickNESMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.SnesWithSnes9xMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.gBAWithMGBAToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator(); this.N64VideoPluginSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator(); @@ -195,6 +196,7 @@ this.TAStudioMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.MacroToolMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.VirtualPadMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.AutoHawkMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator(); this.CheatsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.LuaConsoleMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -393,7 +395,6 @@ this.ClearSRAMContextMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ShowMenuContextMenuSeparator = new System.Windows.Forms.ToolStripSeparator(); this.ShowMenuContextMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.gBAWithMGBAToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.MainformMenu.SuspendLayout(); this.MainStatusBar.SuspendLayout(); this.MainFormContextMenu.SuspendLayout(); @@ -1722,6 +1723,13 @@ this.SnesWithSnes9xMenuItem.Text = "SNES with Snes9x"; this.SnesWithSnes9xMenuItem.Click += new System.EventHandler(this.SnesWithSnes9xMenuItem_Click); // + // gBAWithMGBAToolStripMenuItem + // + this.gBAWithMGBAToolStripMenuItem.Name = "gBAWithMGBAToolStripMenuItem"; + this.gBAWithMGBAToolStripMenuItem.Size = new System.Drawing.Size(210, 22); + this.gBAWithMGBAToolStripMenuItem.Text = "GBA with mGBA"; + this.gBAWithMGBAToolStripMenuItem.Click += new System.EventHandler(this.gBAWithMGBAToolStripMenuItem_Click); + // // toolStripSeparator8 // this.toolStripSeparator8.Name = "toolStripSeparator8"; @@ -1769,6 +1777,7 @@ this.TAStudioMenuItem, this.MacroToolMenuItem, this.VirtualPadMenuItem, + this.AutoHawkMenuItem, this.toolStripSeparator11, this.CheatsMenuItem, this.LuaConsoleMenuItem, @@ -1856,6 +1865,13 @@ this.VirtualPadMenuItem.Text = "Virtual Pad"; this.VirtualPadMenuItem.Click += new System.EventHandler(this.VirtualPadMenuItem_Click); // + // AutoHawkMenuItem + // + this.AutoHawkMenuItem.Name = "AutoHawkMenuItem"; + this.AutoHawkMenuItem.Size = new System.Drawing.Size(172, 22); + this.AutoHawkMenuItem.Text = "AutoHawk"; + this.AutoHawkMenuItem.Click += new System.EventHandler(this.AutoHawkMenuItem_Click); + // // toolStripSeparator11 // this.toolStripSeparator11.Name = "toolStripSeparator11"; @@ -3472,13 +3488,6 @@ this.ShowMenuContextMenuItem.Text = "Show Menu"; this.ShowMenuContextMenuItem.Click += new System.EventHandler(this.ShowMenuContextMenuItem_Click); // - // gBAWithMGBAToolStripMenuItem - // - this.gBAWithMGBAToolStripMenuItem.Name = "gBAWithMGBAToolStripMenuItem"; - this.gBAWithMGBAToolStripMenuItem.Size = new System.Drawing.Size(210, 22); - this.gBAWithMGBAToolStripMenuItem.Text = "GBA with mGBA"; - this.gBAWithMGBAToolStripMenuItem.Click += new System.EventHandler(this.gBAWithMGBAToolStripMenuItem_Click); - // // MainForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -3883,6 +3892,7 @@ private System.Windows.Forms.ToolStripMenuItem GBAmGBAMenuItem; private System.Windows.Forms.ToolStripMenuItem GBAVBANextMenuItem; private System.Windows.Forms.ToolStripMenuItem gBAWithMGBAToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem AutoHawkMenuItem; } } diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index 6bc1c7d565..b4543fdf3b 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -1117,6 +1117,9 @@ namespace BizHawk.Client.EmuHawk DebuggerMenuItem.Enabled = GlobalWin.Tools.IsAvailable(); batchRunnerToolStripMenuItem.Visible = VersionInfo.DeveloperBuild; + + AutoHawkMenuItem.Enabled = GlobalWin.Tools.IsAvailable(); + AutoHawkMenuItem.Visible = VersionInfo.DeveloperBuild; } private void ToolBoxMenuItem_Click(object sender, EventArgs e) diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index ae41939cb9..6fdf0a07eb 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -3772,5 +3772,10 @@ namespace BizHawk.Client.EmuHawk Global.Config.GBA_UsemGBA ^= true; FlagNeedsReboot(); } + + private void AutoHawkMenuItem_Click(object sender, EventArgs e) + { + GlobalWin.Tools.Load(); + } } } diff --git a/BizHawk.Client.EmuHawk/tools/AutoHawk.Designer.cs b/BizHawk.Client.EmuHawk/tools/AutoHawk.Designer.cs new file mode 100644 index 0000000000..5054e0208c --- /dev/null +++ b/BizHawk.Client.EmuHawk/tools/AutoHawk.Designer.cs @@ -0,0 +1,86 @@ +namespace BizHawk.Client.EmuHawk +{ + partial class AutoHawk + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.AutoMenu = new System.Windows.Forms.MenuStrip(); + this.FileSubMenu = new System.Windows.Forms.ToolStripMenuItem(); + this.ExitMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.AutoMenu.SuspendLayout(); + this.SuspendLayout(); + // + // AutoMenu + // + this.AutoMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.FileSubMenu}); + this.AutoMenu.Location = new System.Drawing.Point(0, 0); + this.AutoMenu.Name = "AutoMenu"; + this.AutoMenu.Size = new System.Drawing.Size(508, 24); + this.AutoMenu.TabIndex = 2; + this.AutoMenu.Text = "menuStrip1"; + // + // FileSubMenu + // + this.FileSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.ExitMenuItem}); + this.FileSubMenu.Name = "FileSubMenu"; + this.FileSubMenu.Size = new System.Drawing.Size(37, 20); + this.FileSubMenu.Text = "&File"; + // + // ExitMenuItem + // + this.ExitMenuItem.Name = "ExitMenuItem"; + this.ExitMenuItem.Size = new System.Drawing.Size(152, 22); + this.ExitMenuItem.Text = "E&xit"; + this.ExitMenuItem.Click += new System.EventHandler(this.ExitMenuItem_Click); + // + // AutoHawk + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(508, 444); + this.Controls.Add(this.AutoMenu); + this.MainMenuStrip = this.AutoMenu; + this.Name = "AutoHawk"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "AutoHawk"; + this.Load += new System.EventHandler(this.AutoHawk_Load); + this.AutoMenu.ResumeLayout(false); + this.AutoMenu.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.MenuStrip AutoMenu; + private System.Windows.Forms.ToolStripMenuItem FileSubMenu; + private System.Windows.Forms.ToolStripMenuItem ExitMenuItem; + } +} \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/tools/AutoHawk.cs b/BizHawk.Client.EmuHawk/tools/AutoHawk.cs new file mode 100644 index 0000000000..632a2f1198 --- /dev/null +++ b/BizHawk.Client.EmuHawk/tools/AutoHawk.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +using BizHawk.Emulation.Common; + +namespace BizHawk.Client.EmuHawk +{ + [ToolAttributes(released: false)] + public partial class AutoHawk : Form, IToolFormAutoConfig + { + public AutoHawk() + { + InitializeComponent(); + } + + private void AutoHawk_Load(object sender, EventArgs e) + { + + } + + [RequiredService] + public IMemoryDomains MemoryDomains { get; set; } + + [RequiredService] + public IStatable StatableCore { get; set; } + + [ConfigPersist] + public ConfigVariables Config { get; set; } + + public class ConfigVariables + { + // anything that needs to be saved in config.ini should go here + } + + #region IToolForm Implementation + + public void UpdateValues() + { + // TODO: per frame stuff goes here + } + + public void FastUpdate() + { + // TODO: when the user is turboing this will be called, slow things like updating graphics should be avoided, but critical operations must still be done here + } + + public void Restart() + { + // When the user changes to a new ROM, closes a ROM, starts a movie, etc, this will be called + } + + public bool UpdateBefore { get { return true; } } + + public bool AskSaveChanges() + { + return true; + } + + #endregion + + private void ExitMenuItem_Click(object sender, EventArgs e) + { + Close(); + } + } +} diff --git a/BizHawk.Client.EmuHawk/tools/AutoHawk.resx b/BizHawk.Client.EmuHawk/tools/AutoHawk.resx new file mode 100644 index 0000000000..435c368278 --- /dev/null +++ b/BizHawk.Client.EmuHawk/tools/AutoHawk.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file