Hex Editor - fix increment/decrement logic with frozen addresses. Also support increment/decrement on all highlighted addresses at once, not just the primary one
This commit is contained in:
parent
634a465c06
commit
f08c737dcc
|
@ -159,7 +159,7 @@ namespace BizHawk.MultiClient
|
||||||
}
|
}
|
||||||
addrStr.Append(String.Format("{0:X" + NumDigits + "}", addr));
|
addrStr.Append(String.Format("{0:X" + NumDigits + "}", addr));
|
||||||
addrStr.Append('\n');
|
addrStr.Append('\n');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return addrStr.ToString();
|
return addrStr.ToString();
|
||||||
|
@ -212,7 +212,7 @@ namespace BizHawk.MultiClient
|
||||||
|
|
||||||
private int MakeValue(int address)
|
private int MakeValue(int address)
|
||||||
{
|
{
|
||||||
|
|
||||||
switch (DataSize)
|
switch (DataSize)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
|
@ -279,7 +279,7 @@ namespace BizHawk.MultiClient
|
||||||
public void Restart()
|
public void Restart()
|
||||||
{
|
{
|
||||||
if (!IsHandleCreated || IsDisposed) return;
|
if (!IsHandleCreated || IsDisposed) return;
|
||||||
|
|
||||||
int? theDomain;
|
int? theDomain;
|
||||||
if (Domain.Name.ToLower() == "rom file")
|
if (Domain.Name.ToLower() == "rom file")
|
||||||
{
|
{
|
||||||
|
@ -289,17 +289,17 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
theDomain = GetDomainInt(Domain.Name);
|
theDomain = GetDomainInt(Domain.Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SetMemoryDomainMenu(); //Calls update routines
|
SetMemoryDomainMenu(); //Calls update routines
|
||||||
|
|
||||||
if (theDomain != null)
|
if (theDomain != null)
|
||||||
{
|
{
|
||||||
SetMemoryDomain((int) theDomain);
|
SetMemoryDomain((int)theDomain);
|
||||||
}
|
}
|
||||||
SetHeader();
|
SetHeader();
|
||||||
|
|
||||||
ResetScrollBar();
|
ResetScrollBar();
|
||||||
|
|
||||||
|
|
||||||
|
@ -352,7 +352,7 @@ namespace BizHawk.MultiClient
|
||||||
freezeAddressToolStripMenuItem.Image = Properties.Resources.Freeze;
|
freezeAddressToolStripMenuItem.Image = Properties.Resources.Freeze;
|
||||||
freezeAddressToolStripMenuItem.Text = "&Freeze Address";
|
freezeAddressToolStripMenuItem.Text = "&Freeze Address";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (HighlightedAddress.HasValue)
|
if (HighlightedAddress.HasValue)
|
||||||
{
|
{
|
||||||
|
@ -375,7 +375,7 @@ namespace BizHawk.MultiClient
|
||||||
BigEndian = false;
|
BigEndian = false;
|
||||||
maxRow = Domain.Size / 2;
|
maxRow = Domain.Size / 2;
|
||||||
SetUpScrollBar();
|
SetUpScrollBar();
|
||||||
if (0 >= vScrollBar1.Minimum && 0 <= vScrollBar1.Maximum)
|
if (0 >= vScrollBar1.Minimum && 0 <= vScrollBar1.Maximum)
|
||||||
{
|
{
|
||||||
vScrollBar1.Value = 0;
|
vScrollBar1.Value = 0;
|
||||||
}
|
}
|
||||||
|
@ -481,13 +481,13 @@ namespace BizHawk.MultiClient
|
||||||
private void SetMemoryDomainMenu()
|
private void SetMemoryDomainMenu()
|
||||||
{
|
{
|
||||||
memoryDomainsToolStripMenuItem.DropDownItems.Clear();
|
memoryDomainsToolStripMenuItem.DropDownItems.Clear();
|
||||||
|
|
||||||
for (int i = 0; i < Global.Emulator.MemoryDomains.Count; i++)
|
for (int i = 0; i < Global.Emulator.MemoryDomains.Count; i++)
|
||||||
{
|
{
|
||||||
if (Global.Emulator.MemoryDomains[i].Size > 0)
|
if (Global.Emulator.MemoryDomains[i].Size > 0)
|
||||||
{
|
{
|
||||||
string str = Global.Emulator.MemoryDomains[i].ToString();
|
string str = Global.Emulator.MemoryDomains[i].ToString();
|
||||||
var item = new ToolStripMenuItem {Text = str};
|
var item = new ToolStripMenuItem { Text = str };
|
||||||
{
|
{
|
||||||
int z = i;
|
int z = i;
|
||||||
item.Click += (o, ev) => SetMemoryDomain(z);
|
item.Click += (o, ev) => SetMemoryDomain(z);
|
||||||
|
@ -500,10 +500,10 @@ namespace BizHawk.MultiClient
|
||||||
domainMenuItems.Add(item);
|
domainMenuItems.Add(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Add ROM File memory domain
|
//Add ROM File memory domain
|
||||||
//<zeromus> THIS IS HORRIBLE.
|
//<zeromus> THIS IS HORRIBLE.
|
||||||
var rom_item = new ToolStripMenuItem {Text = "ROM File"};
|
var rom_item = new ToolStripMenuItem { Text = "ROM File" };
|
||||||
rom_item.Click += (o, ev) => SetMemoryDomain(999); //999 will denote ROM file
|
rom_item.Click += (o, ev) => SetMemoryDomain(999); //999 will denote ROM file
|
||||||
memoryDomainsToolStripMenuItem.DropDownItems.Add(rom_item);
|
memoryDomainsToolStripMenuItem.DropDownItems.Add(rom_item);
|
||||||
domainMenuItems.Add(rom_item);
|
domainMenuItems.Add(rom_item);
|
||||||
|
@ -531,7 +531,7 @@ namespace BizHawk.MultiClient
|
||||||
|
|
||||||
public void GoToSpecifiedAddress()
|
public void GoToSpecifiedAddress()
|
||||||
{
|
{
|
||||||
InputPrompt i = new InputPrompt {Text = "Go to Address"};
|
InputPrompt i = new InputPrompt { Text = "Go to Address" };
|
||||||
i._Location = GetPromptPoint();
|
i._Location = GetPromptPoint();
|
||||||
i.SetMessage("Enter a hexadecimal value");
|
i.SetMessage("Enter a hexadecimal value");
|
||||||
Global.Sound.StopSound();
|
Global.Sound.StopSound();
|
||||||
|
@ -741,9 +741,9 @@ namespace BizHawk.MultiClient
|
||||||
foreach (var address in addresses)
|
foreach (var address in addresses)
|
||||||
{
|
{
|
||||||
Watches.Add(Watch.GenerateWatch(
|
Watches.Add(Watch.GenerateWatch(
|
||||||
Domain,
|
Domain,
|
||||||
address,
|
address,
|
||||||
(Watch.WatchSize)DataSize,
|
(Watch.WatchSize)DataSize,
|
||||||
Watch.DisplayType.Hex,
|
Watch.DisplayType.Hex,
|
||||||
String.Empty,
|
String.Empty,
|
||||||
BigEndian));
|
BigEndian));
|
||||||
|
@ -1022,7 +1022,7 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
string extension = Path.GetExtension(Global.MainForm.CurrentlyOpenRom);
|
string extension = Path.GetExtension(Global.MainForm.CurrentlyOpenRom);
|
||||||
|
|
||||||
return "Binary (*" + extension + ")|*" + extension + "|All Files|*.*";
|
return "Binary (*" + extension + ")|*" + extension + "|All Files|*.*";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1064,7 +1064,7 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
RowsVisible = ((MemoryViewerBox.Height - (fontHeight * 2) - (fontHeight / 2)) / fontHeight);
|
RowsVisible = ((MemoryViewerBox.Height - (fontHeight * 2) - (fontHeight / 2)) / fontHeight);
|
||||||
int totalRows = Domain.Size / 16;
|
int totalRows = Domain.Size / 16;
|
||||||
|
|
||||||
vScrollBar1.Maximum = totalRows - 1;
|
vScrollBar1.Maximum = totalRows - 1;
|
||||||
vScrollBar1.LargeChange = RowsVisible;
|
vScrollBar1.LargeChange = RowsVisible;
|
||||||
vScrollBar1.Visible = totalRows > RowsVisible;
|
vScrollBar1.Visible = totalRows > RowsVisible;
|
||||||
|
@ -1074,7 +1074,7 @@ namespace BizHawk.MultiClient
|
||||||
|
|
||||||
private int GetPointedAddress(int x, int y)
|
private int GetPointedAddress(int x, int y)
|
||||||
{
|
{
|
||||||
|
|
||||||
int address;
|
int address;
|
||||||
//Scroll value determines the first row
|
//Scroll value determines the first row
|
||||||
int i = vScrollBar1.Value;
|
int i = vScrollBar1.Value;
|
||||||
|
@ -1099,7 +1099,7 @@ namespace BizHawk.MultiClient
|
||||||
int start = GetTextOffset() - 50;
|
int start = GetTextOffset() - 50;
|
||||||
if (x > start)
|
if (x > start)
|
||||||
{
|
{
|
||||||
column = (x - start) / (fontWidth / DataSize);
|
column = (x - start) / (fontWidth / DataSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i >= 0 && i <= maxRow && column >= 0 && column < (16 / DataSize))
|
if (i >= 0 && i <= maxRow && column >= 0 && column < (16 / DataSize))
|
||||||
|
@ -1133,7 +1133,7 @@ namespace BizHawk.MultiClient
|
||||||
|
|
||||||
private void AddressesLabel_MouseClick(object sender, MouseEventArgs e)
|
private void AddressesLabel_MouseClick(object sender, MouseEventArgs e)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DoShiftClick()
|
private void DoShiftClick()
|
||||||
|
@ -1208,7 +1208,7 @@ namespace BizHawk.MultiClient
|
||||||
private void MemoryViewerBox_Paint(object sender, PaintEventArgs e)
|
private void MemoryViewerBox_Paint(object sender, PaintEventArgs e)
|
||||||
{
|
{
|
||||||
var activeCheats = Global.CheatList.Where(x => x.Enabled);
|
var activeCheats = Global.CheatList.Where(x => x.Enabled);
|
||||||
foreach(var cheat in activeCheats)
|
foreach (var cheat in activeCheats)
|
||||||
{
|
{
|
||||||
if (IsVisible(cheat.Address.Value))
|
if (IsVisible(cheat.Address.Value))
|
||||||
{
|
{
|
||||||
|
@ -1231,7 +1231,7 @@ namespace BizHawk.MultiClient
|
||||||
e.Graphics.DrawRectangle(new Pen(Brushes.Black), rect);
|
e.Graphics.DrawRectangle(new Pen(Brushes.Black), rect);
|
||||||
|
|
||||||
Rectangle textrect = new Rectangle(textpoint, new Size((8 * DataSize), fontHeight));
|
Rectangle textrect = new Rectangle(textpoint, new Size((8 * DataSize), fontHeight));
|
||||||
|
|
||||||
if (Global.CheatList.IsActive(Domain, addressHighlighted))
|
if (Global.CheatList.IsActive(Domain, addressHighlighted))
|
||||||
{
|
{
|
||||||
e.Graphics.FillRectangle(new SolidBrush(Global.Config.HexHighlightFreezeColor), rect);
|
e.Graphics.FillRectangle(new SolidBrush(Global.Config.HexHighlightFreezeColor), rect);
|
||||||
|
@ -1267,7 +1267,7 @@ namespace BizHawk.MultiClient
|
||||||
}
|
}
|
||||||
if (HasNibbles())
|
if (HasNibbles())
|
||||||
{
|
{
|
||||||
e.Graphics.DrawString(MakeNibbles(), new Font("Courier New", 8, FontStyle.Italic), Brushes.Black, new Point(158,4));
|
e.Graphics.DrawString(MakeNibbles(), new Font("Courier New", 8, FontStyle.Italic), Brushes.Black, new Point(158, 4));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1302,18 +1302,18 @@ namespace BizHawk.MultiClient
|
||||||
|
|
||||||
private void HexEditor_KeyDown(object sender, KeyEventArgs e)
|
private void HexEditor_KeyDown(object sender, KeyEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.Control && e.KeyCode == Keys.G)
|
if (e.Control && e.KeyCode == Keys.G)
|
||||||
{
|
{
|
||||||
GoToSpecifiedAddress();
|
GoToSpecifiedAddress();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (e.Control && e.KeyCode == Keys.P)
|
if (e.Control && e.KeyCode == Keys.P)
|
||||||
{
|
{
|
||||||
PokeAddress();
|
PokeAddress();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int newHighlighted;
|
int newHighlighted;
|
||||||
switch (e.KeyCode)
|
switch (e.KeyCode)
|
||||||
{
|
{
|
||||||
case Keys.Up:
|
case Keys.Up:
|
||||||
|
@ -1445,11 +1445,11 @@ namespace BizHawk.MultiClient
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Keys.Add:
|
case Keys.Add:
|
||||||
IncrementAddress();
|
IncrementHighlighted();
|
||||||
UpdateValues();
|
UpdateValues();
|
||||||
break;
|
break;
|
||||||
case Keys.Subtract:
|
case Keys.Subtract:
|
||||||
DecrementAddress();
|
DecrementHighlighted();
|
||||||
UpdateValues();
|
UpdateValues();
|
||||||
break;
|
break;
|
||||||
case Keys.Space:
|
case Keys.Space:
|
||||||
|
@ -1575,10 +1575,10 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
string temp = nibbles[0].ToString() + nibbles[1].ToString();
|
string temp = nibbles[0].ToString() + nibbles[1].ToString();
|
||||||
byte x1 = byte.Parse(temp, NumberStyles.HexNumber);
|
byte x1 = byte.Parse(temp, NumberStyles.HexNumber);
|
||||||
|
|
||||||
string temp2 = nibbles[2].ToString() + ((char)e.KeyCode).ToString();
|
string temp2 = nibbles[2].ToString() + ((char)e.KeyCode).ToString();
|
||||||
byte x2 = byte.Parse(temp2, NumberStyles.HexNumber);
|
byte x2 = byte.Parse(temp2, NumberStyles.HexNumber);
|
||||||
|
|
||||||
PokeWord(addressHighlighted, x1, x2);
|
PokeWord(addressHighlighted, x1, x2);
|
||||||
ClearNibbles();
|
ClearNibbles();
|
||||||
SetHighlighted(addressHighlighted + 2);
|
SetHighlighted(addressHighlighted + 2);
|
||||||
|
@ -1679,186 +1679,131 @@ namespace BizHawk.MultiClient
|
||||||
delta = 1;
|
delta = 1;
|
||||||
|
|
||||||
int newValue = vScrollBar1.Value + delta;
|
int newValue = vScrollBar1.Value + delta;
|
||||||
if(newValue < vScrollBar1.Minimum) newValue = vScrollBar1.Minimum;
|
if (newValue < vScrollBar1.Minimum) newValue = vScrollBar1.Minimum;
|
||||||
if(newValue > vScrollBar1.Maximum - vScrollBar1.LargeChange + 1) newValue = vScrollBar1.Maximum - vScrollBar1.LargeChange + 1;
|
if (newValue > vScrollBar1.Maximum - vScrollBar1.LargeChange + 1) newValue = vScrollBar1.Maximum - vScrollBar1.LargeChange + 1;
|
||||||
if(newValue != vScrollBar1.Value)
|
if (newValue != vScrollBar1.Value)
|
||||||
{
|
{
|
||||||
vScrollBar1.Value = newValue;
|
vScrollBar1.Value = newValue;
|
||||||
MemoryViewerBox.Refresh();
|
MemoryViewerBox.Refresh();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void IncrementAddress()
|
private void IncrementAddress(int address)
|
||||||
{
|
{
|
||||||
if (HighlightedAddress.HasValue)
|
if (Global.CheatList.IsActive(Domain, address))
|
||||||
{
|
{
|
||||||
int address = HighlightedAddress.Value;
|
var cheat = Global.CheatList.FirstOrDefault(x => x.Domain == Domain && x.Address == address);
|
||||||
byte value;
|
cheat.Increment();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Endian endian = BigEndian ? Endian.Big : Endian.Little;
|
||||||
switch (DataSize)
|
switch (DataSize)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
case 1:
|
case 1:
|
||||||
value = Domain.PeekByte(address);
|
byte thebyte = Domain.PeekByte(address);
|
||||||
HexPokeAddress(address, (byte)(value + 1));
|
Domain.PokeByte(
|
||||||
|
address,
|
||||||
|
(byte)(Domain.PeekByte(address) + 1)
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (BigEndian)
|
Domain.PokeWord(
|
||||||
{
|
address,
|
||||||
value = Domain.PeekByte(address + 1);
|
(ushort)(Domain.PeekWord(address, endian) + 1),
|
||||||
if (value == 0xFF) //Wrapping logic
|
endian
|
||||||
{
|
);
|
||||||
HexPokeAddress(address, (byte)(value + 1));
|
|
||||||
HexPokeAddress(address + 1, (byte)(value + 1));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
HexPokeAddress(address + 1, (byte)(value + 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
value = Domain.PeekByte(address);
|
|
||||||
if (value == 0xFF) //Wrapping logic
|
|
||||||
{
|
|
||||||
HexPokeAddress(address, (byte)(value + 1));
|
|
||||||
HexPokeAddress(address + 1, (byte)(value + 1));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
HexPokeAddress(address, (byte)(value + 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
if (BigEndian)
|
Domain.PokeDWord(
|
||||||
{
|
address,
|
||||||
value = Domain.PeekByte(address + 3);
|
Domain.PeekDWord(address, endian) + 1,
|
||||||
if (value == 0xFF) //Wrapping logic
|
endian
|
||||||
{
|
);
|
||||||
HexPokeAddress(address + 3, (byte)(value + 1));
|
|
||||||
HexPokeAddress(address + 2, (byte)(value + 1));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
HexPokeAddress(address + 2, (byte)(value + 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
value = Domain.PeekByte(address);
|
|
||||||
HexPokeAddress(address, (byte)(value + 1));
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HexPokeAddress(int address, byte value)
|
private void DecrementAddress(int address)
|
||||||
{
|
{
|
||||||
if (Global.CheatList.IsActive(Domain, address))
|
if (Global.CheatList.IsActive(Domain, address))
|
||||||
{
|
{
|
||||||
UnFreezeAddress(address);
|
var cheat = Global.CheatList.FirstOrDefault(x => x.Domain == Domain && x.Address == address);
|
||||||
Domain.PokeByte(address, value);
|
cheat.Decrement();
|
||||||
FreezeAddress(address);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Domain.PokeByte(address, value);
|
Endian endian = BigEndian ? Endian.Big : Endian.Little;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void DecrementAddress()
|
|
||||||
{
|
|
||||||
|
|
||||||
if (HighlightedAddress.HasValue)
|
|
||||||
{
|
|
||||||
int address = HighlightedAddress.Value;
|
|
||||||
byte value;
|
|
||||||
switch (DataSize)
|
switch (DataSize)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
case 1:
|
case 1:
|
||||||
value = Domain.PeekByte(address);
|
byte thebyte = Domain.PeekByte(address);
|
||||||
HexPokeAddress(address, (byte)(value - 1));
|
Domain.PokeByte(
|
||||||
|
address,
|
||||||
|
(byte)(Domain.PeekByte(address) - 1)
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (BigEndian)
|
Domain.PokeWord(
|
||||||
{
|
address,
|
||||||
value = Domain.PeekByte(address + 1);
|
(ushort)(Domain.PeekWord(address, endian) - 1),
|
||||||
if (value == 0) //Wrapping logic
|
endian
|
||||||
{
|
);
|
||||||
HexPokeAddress(address, (byte)(value - 1));
|
|
||||||
HexPokeAddress(address + 1, (byte)(value - 1));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Domain.PokeByte(address + 1, (byte)(value - 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
value = Domain.PeekByte(address);
|
|
||||||
if (value == 0) //Wrapping logic
|
|
||||||
{
|
|
||||||
HexPokeAddress(address, (byte)(value - 1));
|
|
||||||
HexPokeAddress(address + 1, (byte)(value - 1));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
HexPokeAddress(address, (byte)(value - 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
if (BigEndian)
|
Domain.PokeDWord(
|
||||||
{
|
address,
|
||||||
value = Domain.PeekByte(address + 3);
|
Domain.PeekDWord(address, endian) - 1,
|
||||||
if (value == 0xFF) //Wrapping logic
|
endian
|
||||||
{
|
);
|
||||||
HexPokeAddress(address + 3, (byte)(value - 1));
|
|
||||||
HexPokeAddress(address + 2, (byte)(value - 1));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
HexPokeAddress(address + 3, (byte)(value - 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
value = Domain.PeekByte(address);
|
|
||||||
if (value == 0)
|
|
||||||
{
|
|
||||||
HexPokeAddress(address, (byte)(value - 1));
|
|
||||||
HexPokeAddress(address + 1, (byte)(value - 1));
|
|
||||||
int value2 = Domain.PeekByte(address + 1);
|
|
||||||
if (value2 == 0xFF)
|
|
||||||
{
|
|
||||||
Domain.PokeByte(address + 2, (byte)(value - 1));
|
|
||||||
int value3 = Domain.PeekByte(address + 1);
|
|
||||||
if (value3 == 0xFF)
|
|
||||||
{
|
|
||||||
HexPokeAddress(address + 3, (byte)(value - 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
HexPokeAddress(address, (byte)(value - 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void IncrementHighlighted()
|
||||||
|
{
|
||||||
|
if (HighlightedAddress.HasValue)
|
||||||
|
{
|
||||||
|
IncrementAddress(HighlightedAddress.Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SecondaryHighlightedAddresses.Any())
|
||||||
|
{
|
||||||
|
foreach (int address in SecondaryHighlightedAddresses)
|
||||||
|
{
|
||||||
|
IncrementAddress(address);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DecrementHighlighted()
|
||||||
|
{
|
||||||
|
if (HighlightedAddress.HasValue)
|
||||||
|
{
|
||||||
|
DecrementAddress(HighlightedAddress.Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SecondaryHighlightedAddresses.Any())
|
||||||
|
{
|
||||||
|
foreach (int address in SecondaryHighlightedAddresses)
|
||||||
|
{
|
||||||
|
DecrementAddress(address);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void incrementToolStripMenuItem_Click(object sender, EventArgs e)
|
private void incrementToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
IncrementAddress();
|
IncrementHighlighted();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void decrementToolStripMenuItem_Click(object sender, EventArgs e)
|
private void decrementToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
DecrementAddress();
|
DecrementHighlighted();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ViewerContextMenuStrip_Opening(object sender, CancelEventArgs e)
|
private void ViewerContextMenuStrip_Opening(object sender, CancelEventArgs e)
|
||||||
|
@ -2034,7 +1979,7 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
//This function assumes that the primary highlighted value has been set and sets the remaining characters in this string
|
//This function assumes that the primary highlighted value has been set and sets the remaining characters in this string
|
||||||
SecondaryHighlightedAddresses.Clear();
|
SecondaryHighlightedAddresses.Clear();
|
||||||
|
|
||||||
int addrLength = DataSize * 2;
|
int addrLength = DataSize * 2;
|
||||||
if (value.Length <= addrLength)
|
if (value.Length <= addrLength)
|
||||||
{
|
{
|
||||||
|
@ -2046,7 +1991,7 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
SecondaryHighlightedAddresses.Add(found + 1 + i);
|
SecondaryHighlightedAddresses.Add(found + 1 + i);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Copy()
|
private void Copy()
|
||||||
|
@ -2276,10 +2221,10 @@ namespace BizHawk.MultiClient
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void alwaysOnTopToolStripMenuItem_Click(object sender, EventArgs e)
|
private void alwaysOnTopToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
alwaysOnTopToolStripMenuItem.Checked = alwaysOnTopToolStripMenuItem.Checked == false;
|
alwaysOnTopToolStripMenuItem.Checked = alwaysOnTopToolStripMenuItem.Checked == false;
|
||||||
this.TopMost = alwaysOnTopToolStripMenuItem.Checked;
|
this.TopMost = alwaysOnTopToolStripMenuItem.Checked;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue