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