Ram Watch/Search/Poke - use Watch objects internal domain value, this commit doesn't add functionatility yet (may have even broke something), but will lead to eventually being able to watch multiple domains at once, and some ram search optimizations
This commit is contained in:
parent
0cc6bf072e
commit
2de8e3c346
|
@ -653,6 +653,7 @@ namespace BizHawk.MultiClient
|
|||
w.Value = MakeValue(p);
|
||||
w.BigEndian = BigEndian;
|
||||
w.Signed = Watch.DISPTYPE.HEX;
|
||||
w.Domain = Domain;
|
||||
|
||||
switch (DataSize)
|
||||
{
|
||||
|
@ -669,7 +670,7 @@ namespace BizHawk.MultiClient
|
|||
}
|
||||
|
||||
RamPoke poke = new RamPoke();
|
||||
poke.SetWatchObject(w, Domain);
|
||||
poke.SetWatchObject(w);
|
||||
poke.location = GetAddressCoordinates(p);
|
||||
Global.Sound.StopSound();
|
||||
poke.ShowDialog();
|
||||
|
|
|
@ -23,11 +23,11 @@ namespace BizHawk.MultiClient
|
|||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void SetWatchObject(Watch w, MemoryDomain d)
|
||||
public void SetWatchObject(Watch w)
|
||||
{
|
||||
PopulateMemoryDomainComboBox();
|
||||
watch = new Watch(w);
|
||||
domain = d;
|
||||
domain = w.Domain;
|
||||
}
|
||||
|
||||
private void RamPoke_Load(object sender, EventArgs e)
|
||||
|
@ -189,8 +189,8 @@ namespace BizHawk.MultiClient
|
|||
{
|
||||
watch.Value = int.Parse(ValueBox.Text);
|
||||
}
|
||||
|
||||
watch.PokeAddress(domain);
|
||||
watch.Domain = domain;
|
||||
watch.PokeAddress();
|
||||
|
||||
string value;
|
||||
if (HexRadio.Checked)
|
||||
|
|
|
@ -81,7 +81,7 @@ namespace BizHawk.MultiClient
|
|||
|
||||
for (int x = Searches.Count - 1; x >= 0; x--)
|
||||
{
|
||||
Searches[x].PeekAddress(Domain);
|
||||
Searches[x].PeekAddress();
|
||||
}
|
||||
if (AutoSearchCheckBox.Checked)
|
||||
{
|
||||
|
@ -395,7 +395,6 @@ namespace BizHawk.MultiClient
|
|||
{
|
||||
ClearUndo();
|
||||
ClearRedo();
|
||||
//weededList.Clear();
|
||||
IsAWeededList = false;
|
||||
Searches.Clear();
|
||||
SetPlatformAndMemoryDomainLabel();
|
||||
|
@ -422,7 +421,8 @@ namespace BizHawk.MultiClient
|
|||
Searches[x].Type = GetDataSize();
|
||||
Searches[x].BigEndian = GetBigEndian();
|
||||
Searches[x].Signed = GetDataType();
|
||||
Searches[x].PeekAddress(Domain);
|
||||
Searches[x].Domain = Domain;
|
||||
Searches[x].PeekAddress();
|
||||
Searches[x].Prev = Searches[x].Value;
|
||||
Searches[x].Original = Searches[x].Value;
|
||||
Searches[x].LastChange = Searches[x].Value;
|
||||
|
@ -493,7 +493,9 @@ namespace BizHawk.MultiClient
|
|||
int x = indexes[0];
|
||||
Watch bob = Searches[indexes[0]];
|
||||
if (indexes.Count > 0)
|
||||
p.SetWatchObject(Searches[indexes[0]], Domain);
|
||||
{
|
||||
p.SetWatchObject(Searches[indexes[0]]);
|
||||
}
|
||||
p.location = GetPromptPoint();
|
||||
p.ShowDialog();
|
||||
UpdateValues();
|
||||
|
@ -1566,7 +1568,7 @@ namespace BizHawk.MultiClient
|
|||
int changes = list[x].Changecount;
|
||||
list[x].Type = s;
|
||||
list[x].BigEndian = GetBigEndian();
|
||||
list[x].PeekAddress(Domain);
|
||||
list[x].PeekAddress();
|
||||
list[x].Prev = list[x].Value;
|
||||
list[x].Original = list[x].Value;
|
||||
list[x].LastChange = list[x].Value;
|
||||
|
|
|
@ -63,8 +63,9 @@ namespace BizHawk.MultiClient
|
|||
{
|
||||
List<Watch> w = new List<Watch>();
|
||||
for (int x = 0; x < Watches.Count; x++)
|
||||
{
|
||||
w.Add(new Watch(Watches[x]));
|
||||
|
||||
}
|
||||
return w;
|
||||
}
|
||||
|
||||
|
@ -82,7 +83,7 @@ namespace BizHawk.MultiClient
|
|||
|
||||
for (int x = 0; x < Watches.Count; x++)
|
||||
{
|
||||
Watches[x].PeekAddress(Domain);
|
||||
Watches[x].PeekAddress();
|
||||
}
|
||||
|
||||
if (Global.Config.DisplayRamWatch)
|
||||
|
@ -397,7 +398,8 @@ namespace BizHawk.MultiClient
|
|||
|
||||
private void InitializeAddress(Watch w)
|
||||
{
|
||||
w.PeekAddress(Domain);
|
||||
w.Domain = Domain;
|
||||
w.PeekAddress();
|
||||
w.Prev = w.Value;
|
||||
w.Original = w.Value;
|
||||
w.LastChange = w.Value;
|
||||
|
@ -500,12 +502,15 @@ namespace BizHawk.MultiClient
|
|||
}
|
||||
List<int> i = new List<int>();
|
||||
for (int z = 0; z < indexes.Count; z++)
|
||||
{
|
||||
i.Add(indexes[z] - 1);
|
||||
}
|
||||
|
||||
WatchListView.SelectedIndices.Clear();
|
||||
for (int z = 0; z < i.Count; z++)
|
||||
{
|
||||
WatchListView.SelectItem(i[z], true);
|
||||
|
||||
}
|
||||
|
||||
DisplayWatchList();
|
||||
}
|
||||
|
@ -820,7 +825,9 @@ namespace BizHawk.MultiClient
|
|||
Watches.Insert(indexes[0], w);
|
||||
}
|
||||
else
|
||||
{
|
||||
Watches.Add(w);
|
||||
}
|
||||
DisplayWatchList();
|
||||
}
|
||||
|
||||
|
@ -876,7 +883,9 @@ namespace BizHawk.MultiClient
|
|||
RamPoke p = new RamPoke();
|
||||
Global.Sound.StartSound();
|
||||
if (indexes.Count > 0)
|
||||
p.SetWatchObject(Watches[indexes[0]], Domain);
|
||||
{
|
||||
p.SetWatchObject(Watches[indexes[0]]);
|
||||
}
|
||||
p.location = GetPromptPoint();
|
||||
p.ShowDialog();
|
||||
UpdateValues();
|
||||
|
|
|
@ -28,240 +28,264 @@
|
|||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RamWatchNewWatch));
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.AddressBox = new System.Windows.Forms.TextBox();
|
||||
this.NotesBox = new System.Windows.Forms.TextBox();
|
||||
this.DataTypeGroupBox = new System.Windows.Forms.GroupBox();
|
||||
this.HexRadio = new System.Windows.Forms.RadioButton();
|
||||
this.UnsignedRadio = new System.Windows.Forms.RadioButton();
|
||||
this.SignedRadio = new System.Windows.Forms.RadioButton();
|
||||
this.DataSizeBox = new System.Windows.Forms.GroupBox();
|
||||
this.Byte4Radio = new System.Windows.Forms.RadioButton();
|
||||
this.Byte2Radio = new System.Windows.Forms.RadioButton();
|
||||
this.Byte1Radio = new System.Windows.Forms.RadioButton();
|
||||
this.EndianBox = new System.Windows.Forms.GroupBox();
|
||||
this.LittleEndianRadio = new System.Windows.Forms.RadioButton();
|
||||
this.BigEndianRadio = new System.Windows.Forms.RadioButton();
|
||||
this.OK = new System.Windows.Forms.Button();
|
||||
this.Cancel = new System.Windows.Forms.Button();
|
||||
this.DataTypeGroupBox.SuspendLayout();
|
||||
this.DataSizeBox.SuspendLayout();
|
||||
this.EndianBox.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(9, 9);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(62, 13);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Address: 0x";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(9, 35);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(38, 13);
|
||||
this.label2.TabIndex = 1;
|
||||
this.label2.Text = "Notes:";
|
||||
//
|
||||
// AddressBox
|
||||
//
|
||||
this.AddressBox.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;
|
||||
this.AddressBox.Location = new System.Drawing.Point(69, 6);
|
||||
this.AddressBox.MaxLength = 8;
|
||||
this.AddressBox.Name = "AddressBox";
|
||||
this.AddressBox.Size = new System.Drawing.Size(100, 20);
|
||||
this.AddressBox.TabIndex = 2;
|
||||
this.AddressBox.Text = "00000000";
|
||||
this.AddressBox.Leave += new System.EventHandler(this.AddressBox_Leave);
|
||||
this.AddressBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.AddressBox_KeyPress);
|
||||
//
|
||||
// NotesBox
|
||||
//
|
||||
this.NotesBox.Location = new System.Drawing.Point(69, 32);
|
||||
this.NotesBox.MaxLength = 256;
|
||||
this.NotesBox.Name = "NotesBox";
|
||||
this.NotesBox.Size = new System.Drawing.Size(100, 20);
|
||||
this.NotesBox.TabIndex = 3;
|
||||
//
|
||||
// DataTypeGroupBox
|
||||
//
|
||||
this.DataTypeGroupBox.Controls.Add(this.HexRadio);
|
||||
this.DataTypeGroupBox.Controls.Add(this.UnsignedRadio);
|
||||
this.DataTypeGroupBox.Controls.Add(this.SignedRadio);
|
||||
this.DataTypeGroupBox.Location = new System.Drawing.Point(12, 67);
|
||||
this.DataTypeGroupBox.Name = "DataTypeGroupBox";
|
||||
this.DataTypeGroupBox.Size = new System.Drawing.Size(95, 79);
|
||||
this.DataTypeGroupBox.TabIndex = 4;
|
||||
this.DataTypeGroupBox.TabStop = false;
|
||||
this.DataTypeGroupBox.Text = "Data Type";
|
||||
//
|
||||
// HexRadio
|
||||
//
|
||||
this.HexRadio.AutoSize = true;
|
||||
this.HexRadio.Location = new System.Drawing.Point(4, 51);
|
||||
this.HexRadio.Name = "HexRadio";
|
||||
this.HexRadio.Size = new System.Drawing.Size(86, 17);
|
||||
this.HexRadio.TabIndex = 2;
|
||||
this.HexRadio.Text = "Hexadecimal";
|
||||
this.HexRadio.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// UnsignedRadio
|
||||
//
|
||||
this.UnsignedRadio.AutoSize = true;
|
||||
this.UnsignedRadio.Checked = true;
|
||||
this.UnsignedRadio.Location = new System.Drawing.Point(4, 34);
|
||||
this.UnsignedRadio.Name = "UnsignedRadio";
|
||||
this.UnsignedRadio.Size = new System.Drawing.Size(70, 17);
|
||||
this.UnsignedRadio.TabIndex = 1;
|
||||
this.UnsignedRadio.TabStop = true;
|
||||
this.UnsignedRadio.Text = "Unsigned";
|
||||
this.UnsignedRadio.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// SignedRadio
|
||||
//
|
||||
this.SignedRadio.AutoSize = true;
|
||||
this.SignedRadio.Location = new System.Drawing.Point(4, 17);
|
||||
this.SignedRadio.Name = "SignedRadio";
|
||||
this.SignedRadio.Size = new System.Drawing.Size(58, 17);
|
||||
this.SignedRadio.TabIndex = 0;
|
||||
this.SignedRadio.Text = "Signed";
|
||||
this.SignedRadio.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// DataSizeBox
|
||||
//
|
||||
this.DataSizeBox.Controls.Add(this.Byte4Radio);
|
||||
this.DataSizeBox.Controls.Add(this.Byte2Radio);
|
||||
this.DataSizeBox.Controls.Add(this.Byte1Radio);
|
||||
this.DataSizeBox.Location = new System.Drawing.Point(115, 67);
|
||||
this.DataSizeBox.Name = "DataSizeBox";
|
||||
this.DataSizeBox.Size = new System.Drawing.Size(83, 79);
|
||||
this.DataSizeBox.TabIndex = 5;
|
||||
this.DataSizeBox.TabStop = false;
|
||||
this.DataSizeBox.Text = "Data Size:";
|
||||
//
|
||||
// Byte4Radio
|
||||
//
|
||||
this.Byte4Radio.AutoSize = true;
|
||||
this.Byte4Radio.Location = new System.Drawing.Point(5, 51);
|
||||
this.Byte4Radio.Name = "Byte4Radio";
|
||||
this.Byte4Radio.Size = new System.Drawing.Size(60, 17);
|
||||
this.Byte4Radio.TabIndex = 2;
|
||||
this.Byte4Radio.Text = "4 Bytes";
|
||||
this.Byte4Radio.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// Byte2Radio
|
||||
//
|
||||
this.Byte2Radio.AutoSize = true;
|
||||
this.Byte2Radio.Location = new System.Drawing.Point(5, 34);
|
||||
this.Byte2Radio.Name = "Byte2Radio";
|
||||
this.Byte2Radio.Size = new System.Drawing.Size(60, 17);
|
||||
this.Byte2Radio.TabIndex = 1;
|
||||
this.Byte2Radio.Text = "2 Bytes";
|
||||
this.Byte2Radio.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// Byte1Radio
|
||||
//
|
||||
this.Byte1Radio.AutoSize = true;
|
||||
this.Byte1Radio.Checked = true;
|
||||
this.Byte1Radio.Location = new System.Drawing.Point(5, 17);
|
||||
this.Byte1Radio.Name = "Byte1Radio";
|
||||
this.Byte1Radio.Size = new System.Drawing.Size(55, 17);
|
||||
this.Byte1Radio.TabIndex = 0;
|
||||
this.Byte1Radio.TabStop = true;
|
||||
this.Byte1Radio.Text = "1 Byte";
|
||||
this.Byte1Radio.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// EndianBox
|
||||
//
|
||||
this.EndianBox.Controls.Add(this.LittleEndianRadio);
|
||||
this.EndianBox.Controls.Add(this.BigEndianRadio);
|
||||
this.EndianBox.Location = new System.Drawing.Point(12, 152);
|
||||
this.EndianBox.Name = "EndianBox";
|
||||
this.EndianBox.Size = new System.Drawing.Size(117, 55);
|
||||
this.EndianBox.TabIndex = 6;
|
||||
this.EndianBox.TabStop = false;
|
||||
this.EndianBox.Text = "Endian";
|
||||
//
|
||||
// LittleEndianRadio
|
||||
//
|
||||
this.LittleEndianRadio.AutoSize = true;
|
||||
this.LittleEndianRadio.Location = new System.Drawing.Point(4, 35);
|
||||
this.LittleEndianRadio.Name = "LittleEndianRadio";
|
||||
this.LittleEndianRadio.Size = new System.Drawing.Size(83, 17);
|
||||
this.LittleEndianRadio.TabIndex = 1;
|
||||
this.LittleEndianRadio.Text = "Little Endian";
|
||||
this.LittleEndianRadio.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// BigEndianRadio
|
||||
//
|
||||
this.BigEndianRadio.AutoSize = true;
|
||||
this.BigEndianRadio.Checked = true;
|
||||
this.BigEndianRadio.Location = new System.Drawing.Point(4, 18);
|
||||
this.BigEndianRadio.Name = "BigEndianRadio";
|
||||
this.BigEndianRadio.Size = new System.Drawing.Size(76, 17);
|
||||
this.BigEndianRadio.TabIndex = 0;
|
||||
this.BigEndianRadio.TabStop = true;
|
||||
this.BigEndianRadio.Text = "Big Endian";
|
||||
this.BigEndianRadio.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// OK
|
||||
//
|
||||
this.OK.Location = new System.Drawing.Point(12, 222);
|
||||
this.OK.Name = "OK";
|
||||
this.OK.Size = new System.Drawing.Size(75, 23);
|
||||
this.OK.TabIndex = 7;
|
||||
this.OK.Text = "Ok";
|
||||
this.OK.UseVisualStyleBackColor = true;
|
||||
this.OK.Click += new System.EventHandler(this.OK_Click);
|
||||
//
|
||||
// Cancel
|
||||
//
|
||||
this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.Cancel.Location = new System.Drawing.Point(123, 222);
|
||||
this.Cancel.Name = "Cancel";
|
||||
this.Cancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.Cancel.TabIndex = 8;
|
||||
this.Cancel.Text = "Cancel";
|
||||
this.Cancel.UseVisualStyleBackColor = true;
|
||||
this.Cancel.Click += new System.EventHandler(this.Cancel_Click);
|
||||
//
|
||||
// RamWatchNewWatch
|
||||
//
|
||||
this.AcceptButton = this.OK;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.Cancel;
|
||||
this.ClientSize = new System.Drawing.Size(213, 258);
|
||||
this.Controls.Add(this.Cancel);
|
||||
this.Controls.Add(this.OK);
|
||||
this.Controls.Add(this.EndianBox);
|
||||
this.Controls.Add(this.DataSizeBox);
|
||||
this.Controls.Add(this.DataTypeGroupBox);
|
||||
this.Controls.Add(this.NotesBox);
|
||||
this.Controls.Add(this.AddressBox);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.label1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "RamWatchNewWatch";
|
||||
this.Text = "New Watch";
|
||||
this.Load += new System.EventHandler(this.RamWatchNewWatch_Load);
|
||||
this.DataTypeGroupBox.ResumeLayout(false);
|
||||
this.DataTypeGroupBox.PerformLayout();
|
||||
this.DataSizeBox.ResumeLayout(false);
|
||||
this.DataSizeBox.PerformLayout();
|
||||
this.EndianBox.ResumeLayout(false);
|
||||
this.EndianBox.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RamWatchNewWatch));
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.AddressBox = new System.Windows.Forms.TextBox();
|
||||
this.NotesBox = new System.Windows.Forms.TextBox();
|
||||
this.DataTypeGroupBox = new System.Windows.Forms.GroupBox();
|
||||
this.HexRadio = new System.Windows.Forms.RadioButton();
|
||||
this.UnsignedRadio = new System.Windows.Forms.RadioButton();
|
||||
this.SignedRadio = new System.Windows.Forms.RadioButton();
|
||||
this.DataSizeBox = new System.Windows.Forms.GroupBox();
|
||||
this.Byte4Radio = new System.Windows.Forms.RadioButton();
|
||||
this.Byte2Radio = new System.Windows.Forms.RadioButton();
|
||||
this.Byte1Radio = new System.Windows.Forms.RadioButton();
|
||||
this.EndianBox = new System.Windows.Forms.GroupBox();
|
||||
this.LittleEndianRadio = new System.Windows.Forms.RadioButton();
|
||||
this.BigEndianRadio = new System.Windows.Forms.RadioButton();
|
||||
this.OK = new System.Windows.Forms.Button();
|
||||
this.Cancel = new System.Windows.Forms.Button();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.DomainComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.DataTypeGroupBox.SuspendLayout();
|
||||
this.DataSizeBox.SuspendLayout();
|
||||
this.EndianBox.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(9, 9);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(62, 13);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Address: 0x";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(9, 35);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(38, 13);
|
||||
this.label2.TabIndex = 1;
|
||||
this.label2.Text = "Notes:";
|
||||
//
|
||||
// AddressBox
|
||||
//
|
||||
this.AddressBox.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;
|
||||
this.AddressBox.Location = new System.Drawing.Point(69, 6);
|
||||
this.AddressBox.MaxLength = 8;
|
||||
this.AddressBox.Name = "AddressBox";
|
||||
this.AddressBox.Size = new System.Drawing.Size(100, 20);
|
||||
this.AddressBox.TabIndex = 2;
|
||||
this.AddressBox.Text = "00000000";
|
||||
this.AddressBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.AddressBox_KeyPress);
|
||||
this.AddressBox.Leave += new System.EventHandler(this.AddressBox_Leave);
|
||||
//
|
||||
// NotesBox
|
||||
//
|
||||
this.NotesBox.Location = new System.Drawing.Point(69, 32);
|
||||
this.NotesBox.MaxLength = 256;
|
||||
this.NotesBox.Name = "NotesBox";
|
||||
this.NotesBox.Size = new System.Drawing.Size(100, 20);
|
||||
this.NotesBox.TabIndex = 3;
|
||||
//
|
||||
// DataTypeGroupBox
|
||||
//
|
||||
this.DataTypeGroupBox.Controls.Add(this.HexRadio);
|
||||
this.DataTypeGroupBox.Controls.Add(this.UnsignedRadio);
|
||||
this.DataTypeGroupBox.Controls.Add(this.SignedRadio);
|
||||
this.DataTypeGroupBox.Location = new System.Drawing.Point(12, 67);
|
||||
this.DataTypeGroupBox.Name = "DataTypeGroupBox";
|
||||
this.DataTypeGroupBox.Size = new System.Drawing.Size(95, 79);
|
||||
this.DataTypeGroupBox.TabIndex = 4;
|
||||
this.DataTypeGroupBox.TabStop = false;
|
||||
this.DataTypeGroupBox.Text = "Data Type";
|
||||
//
|
||||
// HexRadio
|
||||
//
|
||||
this.HexRadio.AutoSize = true;
|
||||
this.HexRadio.Location = new System.Drawing.Point(4, 51);
|
||||
this.HexRadio.Name = "HexRadio";
|
||||
this.HexRadio.Size = new System.Drawing.Size(86, 17);
|
||||
this.HexRadio.TabIndex = 2;
|
||||
this.HexRadio.Text = "Hexadecimal";
|
||||
this.HexRadio.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// UnsignedRadio
|
||||
//
|
||||
this.UnsignedRadio.AutoSize = true;
|
||||
this.UnsignedRadio.Checked = true;
|
||||
this.UnsignedRadio.Location = new System.Drawing.Point(4, 34);
|
||||
this.UnsignedRadio.Name = "UnsignedRadio";
|
||||
this.UnsignedRadio.Size = new System.Drawing.Size(70, 17);
|
||||
this.UnsignedRadio.TabIndex = 1;
|
||||
this.UnsignedRadio.TabStop = true;
|
||||
this.UnsignedRadio.Text = "Unsigned";
|
||||
this.UnsignedRadio.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// SignedRadio
|
||||
//
|
||||
this.SignedRadio.AutoSize = true;
|
||||
this.SignedRadio.Location = new System.Drawing.Point(4, 17);
|
||||
this.SignedRadio.Name = "SignedRadio";
|
||||
this.SignedRadio.Size = new System.Drawing.Size(58, 17);
|
||||
this.SignedRadio.TabIndex = 0;
|
||||
this.SignedRadio.Text = "Signed";
|
||||
this.SignedRadio.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// DataSizeBox
|
||||
//
|
||||
this.DataSizeBox.Controls.Add(this.Byte4Radio);
|
||||
this.DataSizeBox.Controls.Add(this.Byte2Radio);
|
||||
this.DataSizeBox.Controls.Add(this.Byte1Radio);
|
||||
this.DataSizeBox.Location = new System.Drawing.Point(115, 67);
|
||||
this.DataSizeBox.Name = "DataSizeBox";
|
||||
this.DataSizeBox.Size = new System.Drawing.Size(83, 79);
|
||||
this.DataSizeBox.TabIndex = 5;
|
||||
this.DataSizeBox.TabStop = false;
|
||||
this.DataSizeBox.Text = "Data Size:";
|
||||
//
|
||||
// Byte4Radio
|
||||
//
|
||||
this.Byte4Radio.AutoSize = true;
|
||||
this.Byte4Radio.Location = new System.Drawing.Point(5, 51);
|
||||
this.Byte4Radio.Name = "Byte4Radio";
|
||||
this.Byte4Radio.Size = new System.Drawing.Size(60, 17);
|
||||
this.Byte4Radio.TabIndex = 2;
|
||||
this.Byte4Radio.Text = "4 Bytes";
|
||||
this.Byte4Radio.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// Byte2Radio
|
||||
//
|
||||
this.Byte2Radio.AutoSize = true;
|
||||
this.Byte2Radio.Location = new System.Drawing.Point(5, 34);
|
||||
this.Byte2Radio.Name = "Byte2Radio";
|
||||
this.Byte2Radio.Size = new System.Drawing.Size(60, 17);
|
||||
this.Byte2Radio.TabIndex = 1;
|
||||
this.Byte2Radio.Text = "2 Bytes";
|
||||
this.Byte2Radio.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// Byte1Radio
|
||||
//
|
||||
this.Byte1Radio.AutoSize = true;
|
||||
this.Byte1Radio.Checked = true;
|
||||
this.Byte1Radio.Location = new System.Drawing.Point(5, 17);
|
||||
this.Byte1Radio.Name = "Byte1Radio";
|
||||
this.Byte1Radio.Size = new System.Drawing.Size(55, 17);
|
||||
this.Byte1Radio.TabIndex = 0;
|
||||
this.Byte1Radio.TabStop = true;
|
||||
this.Byte1Radio.Text = "1 Byte";
|
||||
this.Byte1Radio.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// EndianBox
|
||||
//
|
||||
this.EndianBox.Controls.Add(this.LittleEndianRadio);
|
||||
this.EndianBox.Controls.Add(this.BigEndianRadio);
|
||||
this.EndianBox.Location = new System.Drawing.Point(12, 152);
|
||||
this.EndianBox.Name = "EndianBox";
|
||||
this.EndianBox.Size = new System.Drawing.Size(117, 55);
|
||||
this.EndianBox.TabIndex = 6;
|
||||
this.EndianBox.TabStop = false;
|
||||
this.EndianBox.Text = "Endian";
|
||||
//
|
||||
// LittleEndianRadio
|
||||
//
|
||||
this.LittleEndianRadio.AutoSize = true;
|
||||
this.LittleEndianRadio.Location = new System.Drawing.Point(4, 35);
|
||||
this.LittleEndianRadio.Name = "LittleEndianRadio";
|
||||
this.LittleEndianRadio.Size = new System.Drawing.Size(83, 17);
|
||||
this.LittleEndianRadio.TabIndex = 1;
|
||||
this.LittleEndianRadio.Text = "Little Endian";
|
||||
this.LittleEndianRadio.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// BigEndianRadio
|
||||
//
|
||||
this.BigEndianRadio.AutoSize = true;
|
||||
this.BigEndianRadio.Checked = true;
|
||||
this.BigEndianRadio.Location = new System.Drawing.Point(4, 18);
|
||||
this.BigEndianRadio.Name = "BigEndianRadio";
|
||||
this.BigEndianRadio.Size = new System.Drawing.Size(76, 17);
|
||||
this.BigEndianRadio.TabIndex = 0;
|
||||
this.BigEndianRadio.TabStop = true;
|
||||
this.BigEndianRadio.Text = "Big Endian";
|
||||
this.BigEndianRadio.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// OK
|
||||
//
|
||||
this.OK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.OK.Location = new System.Drawing.Point(12, 260);
|
||||
this.OK.Name = "OK";
|
||||
this.OK.Size = new System.Drawing.Size(75, 23);
|
||||
this.OK.TabIndex = 7;
|
||||
this.OK.Text = "Ok";
|
||||
this.OK.UseVisualStyleBackColor = true;
|
||||
this.OK.Click += new System.EventHandler(this.OK_Click);
|
||||
//
|
||||
// Cancel
|
||||
//
|
||||
this.Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.Cancel.Location = new System.Drawing.Point(123, 260);
|
||||
this.Cancel.Name = "Cancel";
|
||||
this.Cancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.Cancel.TabIndex = 8;
|
||||
this.Cancel.Text = "Cancel";
|
||||
this.Cancel.UseVisualStyleBackColor = true;
|
||||
this.Cancel.Click += new System.EventHandler(this.Cancel_Click);
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Location = new System.Drawing.Point(11, 214);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(83, 13);
|
||||
this.label6.TabIndex = 15;
|
||||
this.label6.Text = "Memory Domain";
|
||||
//
|
||||
// DomainComboBox
|
||||
//
|
||||
this.DomainComboBox.FormattingEnabled = true;
|
||||
this.DomainComboBox.Location = new System.Drawing.Point(12, 230);
|
||||
this.DomainComboBox.Name = "DomainComboBox";
|
||||
this.DomainComboBox.Size = new System.Drawing.Size(141, 21);
|
||||
this.DomainComboBox.TabIndex = 14;
|
||||
this.DomainComboBox.SelectedIndexChanged += new System.EventHandler(this.DomainComboBox_SelectedIndexChanged);
|
||||
//
|
||||
// RamWatchNewWatch
|
||||
//
|
||||
this.AcceptButton = this.OK;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.Cancel;
|
||||
this.ClientSize = new System.Drawing.Size(213, 296);
|
||||
this.Controls.Add(this.label6);
|
||||
this.Controls.Add(this.DomainComboBox);
|
||||
this.Controls.Add(this.Cancel);
|
||||
this.Controls.Add(this.OK);
|
||||
this.Controls.Add(this.EndianBox);
|
||||
this.Controls.Add(this.DataSizeBox);
|
||||
this.Controls.Add(this.DataTypeGroupBox);
|
||||
this.Controls.Add(this.NotesBox);
|
||||
this.Controls.Add(this.AddressBox);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.label1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "RamWatchNewWatch";
|
||||
this.Text = "New Watch";
|
||||
this.Load += new System.EventHandler(this.RamWatchNewWatch_Load);
|
||||
this.DataTypeGroupBox.ResumeLayout(false);
|
||||
this.DataTypeGroupBox.PerformLayout();
|
||||
this.DataSizeBox.ResumeLayout(false);
|
||||
this.DataSizeBox.PerformLayout();
|
||||
this.EndianBox.ResumeLayout(false);
|
||||
this.EndianBox.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
|
@ -284,5 +308,7 @@
|
|||
private System.Windows.Forms.RadioButton LittleEndianRadio;
|
||||
private System.Windows.Forms.Button OK;
|
||||
private System.Windows.Forms.Button Cancel;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.ComboBox DomainComboBox;
|
||||
}
|
||||
}
|
|
@ -13,6 +13,7 @@ namespace BizHawk.MultiClient
|
|||
public partial class RamWatchNewWatch : Form
|
||||
{
|
||||
public Watch watch = new Watch();
|
||||
public MemoryDomain domain = Global.Emulator.MainMemory;
|
||||
public bool userSelected = false;
|
||||
public bool customSetup = false;
|
||||
public Point location = new Point();
|
||||
|
@ -76,6 +77,11 @@ namespace BizHawk.MultiClient
|
|||
LittleEndianRadio.Checked = true;
|
||||
}
|
||||
|
||||
public void SetDomain(MemoryDomain domain)
|
||||
{
|
||||
watch.Domain = domain;
|
||||
}
|
||||
|
||||
public void SetEndian(Endian endian)
|
||||
{
|
||||
if (endian == Endian.Big)
|
||||
|
@ -99,7 +105,11 @@ namespace BizHawk.MultiClient
|
|||
}
|
||||
|
||||
if (location.X > 0 && location.Y > 0)
|
||||
{
|
||||
this.Location = location;
|
||||
}
|
||||
|
||||
PopulateMemoryDomainComboBox();
|
||||
}
|
||||
|
||||
private void Cancel_Click(object sender, EventArgs e)
|
||||
|
@ -159,7 +169,7 @@ namespace BizHawk.MultiClient
|
|||
{
|
||||
watch.BigEndian = false;
|
||||
}
|
||||
|
||||
watch.Domain = domain;
|
||||
watch.Notes = NotesBox.Text;
|
||||
|
||||
this.Close();
|
||||
|
@ -184,5 +194,61 @@ namespace BizHawk.MultiClient
|
|||
if (!InputValidate.IsValidHexNumber(e.KeyChar))
|
||||
e.Handled = true;
|
||||
}
|
||||
|
||||
private void PopulateMemoryDomainComboBox()
|
||||
{
|
||||
DomainComboBox.Items.Clear();
|
||||
if (Global.Emulator.MemoryDomains.Count > 0)
|
||||
{
|
||||
for (int x = 0; x < Global.Emulator.MemoryDomains.Count; x++)
|
||||
{
|
||||
string str = Global.Emulator.MemoryDomains[x].ToString();
|
||||
DomainComboBox.Items.Add(str);
|
||||
}
|
||||
}
|
||||
SetDomainSelection();
|
||||
}
|
||||
|
||||
private int GetNumDigits(Int32 i)
|
||||
{
|
||||
if (i < 0x10000) return 4;
|
||||
if (i < 0x100000) return 5;
|
||||
if (i < 0x1000000) return 6;
|
||||
if (i < 0x10000000) return 7;
|
||||
else return 8;
|
||||
}
|
||||
|
||||
private void SetAddressBox()
|
||||
{
|
||||
AddressBox.Text = String.Format("{0:X" +
|
||||
GetNumDigits(watch.Address) + "}", watch.Address);
|
||||
}
|
||||
|
||||
private void SetDomainSelection()
|
||||
{
|
||||
//Counts should always be the same, but just in case, let's check
|
||||
int max;
|
||||
if (Global.Emulator.MemoryDomains.Count < DomainComboBox.Items.Count)
|
||||
max = Global.Emulator.MemoryDomains.Count;
|
||||
else
|
||||
max = DomainComboBox.Items.Count;
|
||||
|
||||
for (int x = 0; x < max; x++)
|
||||
{
|
||||
if (domain.ToString() == DomainComboBox.Items[x].ToString())
|
||||
DomainComboBox.SelectedIndex = x;
|
||||
}
|
||||
}
|
||||
|
||||
private void DomainComboBox_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
domain = Global.Emulator.MemoryDomains[DomainComboBox.SelectedIndex];
|
||||
int x = GetNumDigits(domain.Size);
|
||||
watch.Address = 0;
|
||||
watch.Value = 0;
|
||||
watch.Domain = domain;
|
||||
SetAddressBox();
|
||||
AddressBox.MaxLength = GetNumDigits(domain.Size);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -112,12 +112,12 @@
|
|||
<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>
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.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>
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.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>
|
||||
AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAABMLAAATCwAAAAEAAAAA
|
||||
|
|
|
@ -270,48 +270,50 @@ namespace BizHawk.MultiClient
|
|||
}
|
||||
}
|
||||
|
||||
public void PeekAddress(MemoryDomain domain)
|
||||
public void PeekAddress()
|
||||
{
|
||||
if (Type == TYPE.SEPARATOR)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Prev = Value;
|
||||
|
||||
switch (Type)
|
||||
{
|
||||
case TYPE.BYTE:
|
||||
Value = domain.PeekByte(Address);
|
||||
Value = Domain.PeekByte(Address);
|
||||
break;
|
||||
case TYPE.WORD:
|
||||
if (BigEndian)
|
||||
{
|
||||
Value = 0;
|
||||
Value |= domain.PeekByte(Address) << 8;
|
||||
Value |= domain.PeekByte(Address + 1);
|
||||
Value |= Domain.PeekByte(Address) << 8;
|
||||
Value |= Domain.PeekByte(Address + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
Value = 0;
|
||||
Value |= domain.PeekByte(Address);
|
||||
Value |= domain.PeekByte(Address + 1) << 8;
|
||||
Value |= Domain.PeekByte(Address);
|
||||
Value |= Domain.PeekByte(Address + 1) << 8;
|
||||
}
|
||||
break;
|
||||
case TYPE.DWORD:
|
||||
if (BigEndian)
|
||||
{
|
||||
Value = 0;
|
||||
Value |= domain.PeekByte(Address) << 24;
|
||||
Value |= domain.PeekByte(Address + 1) << 16;
|
||||
Value |= domain.PeekByte(Address + 2) << 8;
|
||||
Value |= domain.PeekByte(Address + 3) << 0;
|
||||
Value |= Domain.PeekByte(Address) << 24;
|
||||
Value |= Domain.PeekByte(Address + 1) << 16;
|
||||
Value |= Domain.PeekByte(Address + 2) << 8;
|
||||
Value |= Domain.PeekByte(Address + 3) << 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
Value = 0;
|
||||
Value |= domain.PeekByte(Address) << 0;
|
||||
Value |= domain.PeekByte(Address + 1) << 8;
|
||||
Value |= domain.PeekByte(Address + 2) << 16;
|
||||
Value |= domain.PeekByte(Address + 3) << 24;
|
||||
Value |= Domain.PeekByte(Address) << 0;
|
||||
Value |= Domain.PeekByte(Address + 1) << 8;
|
||||
Value |= Domain.PeekByte(Address + 2) << 16;
|
||||
Value |= Domain.PeekByte(Address + 3) << 24;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -323,7 +325,7 @@ namespace BizHawk.MultiClient
|
|||
}
|
||||
}
|
||||
|
||||
public void PokeAddress(MemoryDomain domain)
|
||||
public void PokeAddress()
|
||||
{
|
||||
if (Type == TYPE.SEPARATOR)
|
||||
return;
|
||||
|
@ -331,13 +333,13 @@ namespace BizHawk.MultiClient
|
|||
switch (Type)
|
||||
{
|
||||
case TYPE.BYTE:
|
||||
PokeByte(domain);
|
||||
PokeByte();
|
||||
break;
|
||||
case TYPE.WORD:
|
||||
PokeWord(domain);
|
||||
PokeWord();
|
||||
break;
|
||||
case TYPE.DWORD:
|
||||
PokeDWord(domain);
|
||||
PokeDWord();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -421,40 +423,40 @@ namespace BizHawk.MultiClient
|
|||
|
||||
#region Helpers
|
||||
|
||||
private void PokeByte(MemoryDomain domain)
|
||||
private void PokeByte()
|
||||
{
|
||||
domain.PokeByte(Address, (byte)Value);
|
||||
Domain.PokeByte(Address, (byte)Value);
|
||||
}
|
||||
|
||||
private void PokeWord(MemoryDomain domain)
|
||||
private void PokeWord()
|
||||
{
|
||||
if (BigEndian)
|
||||
{
|
||||
domain.PokeByte(Address + 0, (byte)(Value >> 8));
|
||||
domain.PokeByte(Address + 1, (byte)(Value));
|
||||
Domain.PokeByte(Address + 0, (byte)(Value >> 8));
|
||||
Domain.PokeByte(Address + 1, (byte)(Value));
|
||||
}
|
||||
else
|
||||
{
|
||||
domain.PokeByte(Address + 0, (byte)(Value));
|
||||
domain.PokeByte(Address + 1, (byte)(Value >> 8));
|
||||
Domain.PokeByte(Address + 0, (byte)(Value));
|
||||
Domain.PokeByte(Address + 1, (byte)(Value >> 8));
|
||||
}
|
||||
}
|
||||
|
||||
private void PokeDWord(MemoryDomain domain)
|
||||
private void PokeDWord()
|
||||
{
|
||||
if (BigEndian)
|
||||
{
|
||||
domain.PokeByte(Address + 0, (byte)(Value << 24));
|
||||
domain.PokeByte(Address + 1, (byte)(Value << 16));
|
||||
domain.PokeByte(Address + 2, (byte)(Value << 8));
|
||||
domain.PokeByte(Address + 3, (byte)(Value));
|
||||
Domain.PokeByte(Address + 0, (byte)(Value << 24));
|
||||
Domain.PokeByte(Address + 1, (byte)(Value << 16));
|
||||
Domain.PokeByte(Address + 2, (byte)(Value << 8));
|
||||
Domain.PokeByte(Address + 3, (byte)(Value));
|
||||
}
|
||||
else
|
||||
{
|
||||
domain.PokeByte(Address + 0, (byte)(Value));
|
||||
domain.PokeByte(Address + 1, (byte)(Value << 8));
|
||||
domain.PokeByte(Address + 2, (byte)(Value << 16));
|
||||
domain.PokeByte(Address + 3, (byte)(Value << 24));
|
||||
Domain.PokeByte(Address + 0, (byte)(Value));
|
||||
Domain.PokeByte(Address + 1, (byte)(Value << 8));
|
||||
Domain.PokeByte(Address + 2, (byte)(Value << 16));
|
||||
Domain.PokeByte(Address + 3, (byte)(Value << 24));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue