Start a NES Debugger, just dressing suff, basic dialog, virtuallistview, window position settings, and other little things

This commit is contained in:
andres.delikat 2011-03-28 15:47:33 +00:00
parent 2c75645a1f
commit d36fb7e9cb
13 changed files with 1568 additions and 1087 deletions

View File

@ -3,7 +3,7 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{DD448B37-BA3F-4544-9754-5406E8094723}</ProjectGuid>
<OutputType>Exe</OutputType>
@ -132,6 +132,12 @@
<Compile Include="NEStools\NameTableViewer.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="NEStools\NESDebugger.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="NEStools\NESDebugger.Designer.cs">
<DependentUpon>NESDebugger.cs</DependentUpon>
</Compile>
<Compile Include="NEStools\NESGameGenie.cs">
<SubType>Form</SubType>
</Compile>
@ -307,6 +313,10 @@
<EmbeddedResource Include="images\BuilderDialog_moveup.bmp" />
<EmbeddedResource Include="images\InserSeparator.bmp" />
<EmbeddedResource Include="images\search.ico" />
<EmbeddedResource Include="NEStools\NESDebugger.resx">
<DependentUpon>NESDebugger.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="NEStools\NESGameGenie.resx">
<DependentUpon>NESGameGenie.cs</DependentUpon>
<SubType>Designer</SubType>
@ -394,6 +404,7 @@
<Content Include="config\ControllerImages\NESController.PNG" />
<None Include="images\cheat.png" />
<None Include="images\Cheats.ico" />
<None Include="images\Debugger.png" />
<Content Include="output\gamedb.txt" />
<Content Include="output\gamedb_neshomebrew.txt" />
<None Include="images\Refresh.bmp" />

View File

@ -93,12 +93,20 @@
public int HexEditorWidth = -1;
public int HexEditorHeight = -1;
// NESPPU Setings
// NESPPU Settings
public bool AutoLoadNESPPU = false;
public bool NESPPUSaveWindowPosition = true;
public int NESPPUWndx = -1;
public int NESPPUWndy = -1;
// NESDebuger Settings
public bool AutoLoadNESDebugger = false;
public bool NESDebuggerSaveWindowPosition = true;
public int NESDebuggerWndx = -1;
public int NESDebuggerWndy = -1;
public int NESDebuggerWidth = -1;
public int NESDebuggerHeight = -1;
// Cheats Dialog
public bool AutoLoadCheats = false;
public bool CheatsSaveWindowPosition = true;

File diff suppressed because it is too large Load Diff

View File

@ -254,6 +254,7 @@ namespace BizHawk.MultiClient
RamSearch1.Restart();
HexEditor1.Restart();
NESPPU1.Restart();
NESDebug1.Restart();
Cheats1.Restart();
Text = "BizHawk";
HandlePlatformMenus();
@ -426,5 +427,10 @@ namespace BizHawk.MultiClient
SyncPresentationMode();
}
private void debuggerToolStripMenuItem_Click(object sender, EventArgs e)
{
LoadNESDebugger();
}
}
}

View File

@ -48,6 +48,7 @@ namespace BizHawk.MultiClient
public RamSearch RamSearch1 = new RamSearch();
public HexEditor HexEditor1 = new HexEditor();
public NESPPU NESPPU1 = new NESPPU();
public NESDebugger NESDebug1 = new NESDebugger();
public Cheats Cheats1 = new Cheats();
public MainForm(string[] args)
@ -134,6 +135,8 @@ namespace BizHawk.MultiClient
LoadCheatsWindow();
if (Global.Config.AutoLoadNESPPU && Global.Emulator is NES)
LoadNESPPU();
if (Global.Config.AutoLoadNESDebugger && Global.Emulator is NES)
LoadNESDebugger();
if (Global.Config.NESGGAutoload && Global.Emulator is NES)
LoadGameGenieEC();
@ -557,6 +560,7 @@ namespace BizHawk.MultiClient
RamSearch1.Restart();
HexEditor1.Restart();
NESPPU1.Restart();
NESDebug1.Restart();
if (Global.Config.LoadCheatFileByGame)
{
if (Cheats1.AttemptLoadCheatFile())
@ -1070,6 +1074,17 @@ namespace BizHawk.MultiClient
NESPPU1.Focus();
}
public void LoadNESDebugger()
{
if (!NESDebug1.IsHandleCreated || NESDebug1.IsDisposed)
{
NESDebug1 = new NESDebugger();
NESDebug1.Show();
}
else
NESDebug1.Focus();
}
public void LoadCheatsWindow()
{
if (!Cheats1.IsHandleCreated || Cheats1.IsDisposed)
@ -1304,7 +1319,5 @@ namespace BizHawk.MultiClient
loadstate0toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.LoadSlot9;
//loadNamedStateToolStripMenuItem //eh?
}
}
}

View File

@ -0,0 +1,181 @@
namespace BizHawk.MultiClient
{
partial class NESDebugger
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(NESDebugger));
this.DebugView = new BizHawk.VirtualListView();
this.Address = new System.Windows.Forms.ColumnHeader();
this.Instruction = new System.Windows.Forms.ColumnHeader();
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.debugToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.autoloadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveWindowPositionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.restoreOriginalSizeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout();
this.SuspendLayout();
//
// DebugView
//
this.DebugView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.DebugView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.Address,
this.Instruction});
this.DebugView.GridLines = true;
this.DebugView.ItemCount = 0;
this.DebugView.Location = new System.Drawing.Point(12, 40);
this.DebugView.Name = "DebugView";
this.DebugView.selectedItem = -1;
this.DebugView.Size = new System.Drawing.Size(241, 351);
this.DebugView.TabIndex = 0;
this.DebugView.UseCompatibleStateImageBehavior = false;
this.DebugView.View = System.Windows.Forms.View.Details;
//
// Address
//
this.Address.Text = "Address";
this.Address.Width = 94;
//
// Instruction
//
this.Instruction.Text = "Instruction";
this.Instruction.Width = 143;
//
// menuStrip1
//
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem,
this.debugToolStripMenuItem,
this.optionsToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(470, 24);
this.menuStrip1.TabIndex = 1;
this.menuStrip1.Text = "menuStrip1";
//
// fileToolStripMenuItem
//
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.exitToolStripMenuItem});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(35, 20);
this.fileToolStripMenuItem.Text = "&File";
//
// exitToolStripMenuItem
//
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
this.exitToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4)));
this.exitToolStripMenuItem.Size = new System.Drawing.Size(143, 22);
this.exitToolStripMenuItem.Text = "E&xit";
this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
//
// debugToolStripMenuItem
//
this.debugToolStripMenuItem.Name = "debugToolStripMenuItem";
this.debugToolStripMenuItem.Size = new System.Drawing.Size(50, 20);
this.debugToolStripMenuItem.Text = "&Debug";
//
// optionsToolStripMenuItem
//
this.optionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.autoloadToolStripMenuItem,
this.saveWindowPositionToolStripMenuItem,
this.toolStripSeparator1,
this.restoreOriginalSizeToolStripMenuItem});
this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
this.optionsToolStripMenuItem.Size = new System.Drawing.Size(56, 20);
this.optionsToolStripMenuItem.Text = "&Options";
this.optionsToolStripMenuItem.DropDownOpened += new System.EventHandler(this.optionsToolStripMenuItem_DropDownOpened);
//
// autoloadToolStripMenuItem
//
this.autoloadToolStripMenuItem.Name = "autoloadToolStripMenuItem";
this.autoloadToolStripMenuItem.Size = new System.Drawing.Size(188, 22);
this.autoloadToolStripMenuItem.Text = "Auto-load";
this.autoloadToolStripMenuItem.Click += new System.EventHandler(this.autoloadToolStripMenuItem_Click);
//
// saveWindowPositionToolStripMenuItem
//
this.saveWindowPositionToolStripMenuItem.Name = "saveWindowPositionToolStripMenuItem";
this.saveWindowPositionToolStripMenuItem.Size = new System.Drawing.Size(188, 22);
this.saveWindowPositionToolStripMenuItem.Text = "Save window position";
this.saveWindowPositionToolStripMenuItem.Click += new System.EventHandler(this.saveWindowPositionToolStripMenuItem_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(185, 6);
//
// restoreOriginalSizeToolStripMenuItem
//
this.restoreOriginalSizeToolStripMenuItem.Name = "restoreOriginalSizeToolStripMenuItem";
this.restoreOriginalSizeToolStripMenuItem.Size = new System.Drawing.Size(188, 22);
this.restoreOriginalSizeToolStripMenuItem.Text = "Restore Window Size";
this.restoreOriginalSizeToolStripMenuItem.Click += new System.EventHandler(this.restoreOriginalSizeToolStripMenuItem_Click);
//
// NESDebugger
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(470, 403);
this.Controls.Add(this.DebugView);
this.Controls.Add(this.menuStrip1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MainMenuStrip = this.menuStrip1;
this.Name = "NESDebugger";
this.Text = "NESDebugger";
this.Load += new System.EventHandler(this.NESDebugger_Load);
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private VirtualListView DebugView;
private System.Windows.Forms.ColumnHeader Address;
private System.Windows.Forms.ColumnHeader Instruction;
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem debugToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem optionsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem autoloadToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem saveWindowPositionToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripMenuItem restoreOriginalSizeToolStripMenuItem;
}
}

View File

@ -0,0 +1,94 @@
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;
namespace BizHawk.MultiClient
{
public partial class NESDebugger : Form
{
int defaultWidth; //For saving the default size of the dialog, so the user can restore if desired
int defaultHeight;
public NESDebugger()
{
InitializeComponent();
DebugView.QueryItemText += new QueryItemTextHandler(DebugView_QueryItemText);
DebugView.QueryItemBkColor += new QueryItemBkColorHandler(DebugView_QueryItemBkColor);
DebugView.VirtualMode = true;
Closing += (o, e) => SaveConfigSettings();
}
public void Restart()
{
}
private void NESDebugger_Load(object sender, EventArgs e)
{
LoadConfigSettings();
}
private void LoadConfigSettings()
{
defaultWidth = this.Size.Width; //Save these first so that the user can restore to its original size
defaultHeight = this.Size.Height;
if (Global.Config.NESDebuggerSaveWindowPosition && Global.Config.NESDebuggerWndx >= 0 && Global.Config.NESDebuggerWndy >= 0)
this.Location = new Point(Global.Config.NESDebuggerWndx, Global.Config.NESDebuggerWndy);
if (Global.Config.NESDebuggerWidth >= 0 && Global.Config.NESDebuggerHeight >= 0)
{
this.Size = new System.Drawing.Size(Global.Config.NESDebuggerWidth, Global.Config.NESDebuggerHeight);
}
}
public void SaveConfigSettings()
{
Global.Config.NESDebuggerWndx = this.Location.X;
Global.Config.NESDebuggerWndy = this.Location.Y;
Global.Config.NESDebuggerWidth = this.Right - this.Left;
Global.Config.NESDebuggerHeight = this.Bottom - this.Top;
}
private void DebugView_QueryItemBkColor(int index, int column, ref Color color)
{
}
void DebugView_QueryItemText(int index, int column, out string text)
{
text = "";
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void autoloadToolStripMenuItem_Click(object sender, EventArgs e)
{
Global.Config.AutoLoadNESDebugger ^= true;
}
private void saveWindowPositionToolStripMenuItem_Click(object sender, EventArgs e)
{
Global.Config.NESDebuggerSaveWindowPosition ^= true;
}
private void optionsToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
{
autoloadToolStripMenuItem.Checked = Global.Config.AutoLoadNESDebugger;
saveWindowPositionToolStripMenuItem.Checked = Global.Config.NESDebuggerSaveWindowPosition;
}
private void restoreOriginalSizeToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Size = new System.Drawing.Size(defaultWidth, defaultHeight);
}
}
}

View File

@ -0,0 +1,148 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAMQOAADEDgAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4rHL/X5dW/2OWW/9omWD/Vo5M/1SRS/8AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSiX/9BiTv/usi18ePf4v/p5Or/5OHl/9jY2P/Fy8Xldp9x/zuF
Nv8AAAAAAAAAAAAAAAAAAAAAAAAAAHKsbv9UlU//9e70///0///a49r/4Obg/+/r7//o5ej/5+Hn//Hj
8v+6wrfpPIM3/wAAAAAAAAAAAAAAAIq5hv9MlEb//fr8///9////+///ert6/0ulS//Q59D//fr9/+3t
7f/d4N7/8+Tz/6q8p/NFjUH/AAAAAAAAAABAjTr/2+nW/////////v///////3S5dP8AcgD/Pp8+/9ju
2P///P//8PHw/+Hh3//r4e3/X5ld/wAAAACPvIv/ZKJd//////////////////////9+v37/BXkF/wB0
AP9Lp0v/2O7Y//78/v/r6+r/6+Tr/7LBsO9Nkkb/aKVi/8vhx////////v3+////////////fb59/wZ6
Bv8AegD/AHkA/0mlSf/Y7Nj/+PT4/+fk6P/b1tn/X5pW/1eaUP/w9+////////39/f///////////329
ff8FfAX/AH4A/wB2AP8AegD/pdOl//v5+//o5+j/6uDr/3Siaf9cnVX/4u7h///////9/f3/////////
//99vn3/BnwG/wB0AP8Oew7/fLx8/+327f/49/j/6+rs/+Tf4/9emlf/hLN9/4Czff///////v7+////
////////fL18/wByAP8MdQz/gcCB//r++v//////8vTy//Pu9P/J0cbpQY4+/wAAAABFjD//9frz////
/////v///////260bv8Kdgr/fbt9//n9+f///////f39//Ly8v//9P//b6Np/wAAAAAAAAAAYJ5a/1iZ
Uv/////////////+//+ayZr/h8GH//L58v///////f39//3+/f///f//2NzV5VmbVP8AAAAAAAAAAAAA
AABYmVL/4vTg8f//////////8vjy//7//v//////////////////////4Ord61GVTP8AAAAAAAAAAAAA
AAAAAAAAAAAAAEuQRv+kzZ7/9//1///////////////////////w9ez/m8GV/1GVS/8AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAm8KX/2CeW/9fnVr/aqVk/2qkZv9WllD/dqtx/466i/8AAAAAAAAAAAAA
AAAAAAAA//8AAPgfAADgBwAAwAMAAIABAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAAgAEAAMAD
AADgBwAA8A8AAA==
</value>
</data>
</root>

View File

@ -45,7 +45,7 @@ namespace BizHawk.MultiClient
AddCheat.Enabled = false;
if (Global.Config.NESGGWndx >= 0 && Global.Config.NESGGWndy >= 0)
if (Global.Config.NESGGSaveWindowPosition && Global.Config.NESGGWndx >= 0 && Global.Config.NESGGWndy >= 0)
Location = new Point(Global.Config.NESGGWndx, Global.Config.NESGGWndy);
}

View File

@ -95,6 +95,13 @@ namespace BizHawk.MultiClient.Properties {
}
}
internal static System.Drawing.Bitmap Debugger {
get {
object obj = ResourceManager.GetObject("Debugger", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap FindHS {
get {
object obj = ResourceManager.GetObject("FindHS", resourceCulture);

View File

@ -603,4 +603,7 @@
<data name="Cheats" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\images\Cheats.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Debugger" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\images\Debugger.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB