Slight Dialog performance tweaks
This commit is contained in:
parent
35ead836d2
commit
293b7133c5
|
@ -24,6 +24,7 @@ namespace BizHawk.MultiClient
|
||||||
string Header = "";
|
string Header = "";
|
||||||
int NumDigits = 4;
|
int NumDigits = 4;
|
||||||
string NumDigitsStr = "{0:X4} ";
|
string NumDigitsStr = "{0:X4} ";
|
||||||
|
string DigitFormatString = "{0:X2} ";
|
||||||
char[] nibbles = { 'G', 'G', 'G', 'G' , 'G', 'G', 'G', 'G'}; //G = off 0-9 & A-F are acceptable values
|
char[] nibbles = { 'G', 'G', 'G', 'G' , 'G', 'G', 'G', 'G'}; //G = off 0-9 & A-F are acceptable values
|
||||||
int addressHighlighted = -1;
|
int addressHighlighted = -1;
|
||||||
int addressOver = -1;
|
int addressOver = -1;
|
||||||
|
@ -93,36 +94,33 @@ namespace BizHawk.MultiClient
|
||||||
|
|
||||||
public string GenerateMemoryViewString()
|
public string GenerateMemoryViewString()
|
||||||
{
|
{
|
||||||
unchecked
|
StringBuilder rowStr = new StringBuilder("");
|
||||||
|
addrOffset = (NumDigits % 4) * 9;
|
||||||
|
|
||||||
|
rowStr.Append(Header + '\n');
|
||||||
|
|
||||||
|
for (int i = 0; i < RowsVisible; i++)
|
||||||
{
|
{
|
||||||
StringBuilder rowStr = new StringBuilder("");
|
row = i + vScrollBar1.Value;
|
||||||
addrOffset = (NumDigits % 4) * 9;
|
addr = (row * 16);
|
||||||
|
if (addr >= Domain.Size)
|
||||||
rowStr.Append(Header + '\n');
|
break;
|
||||||
|
rowStr.AppendFormat(NumDigitsStr, addr);
|
||||||
for (int i = 0; i < RowsVisible; i++)
|
|
||||||
{
|
|
||||||
row = i + vScrollBar1.Value;
|
|
||||||
addr = (row * 16);
|
|
||||||
if (addr >= Domain.Size)
|
|
||||||
break;
|
|
||||||
rowStr.AppendFormat(NumDigitsStr, addr);
|
|
||||||
|
|
||||||
for (int j = 0; j < 16; j += Global.Config.HexEditorDataSize)
|
for (int j = 0; j < 16; j += Global.Config.HexEditorDataSize)
|
||||||
{
|
{
|
||||||
if (addr + j < Domain.Size)
|
if (addr + j < Domain.Size)
|
||||||
rowStr.AppendFormat("{0:X" + (Global.Config.HexEditorDataSize * 2).ToString() + "} ", MakeValue(addr + j));
|
rowStr.AppendFormat(DigitFormatString, MakeValue(addr + j));
|
||||||
}
|
|
||||||
rowStr.Append(" | ");
|
|
||||||
for (int k = 0; k < 16; k++)
|
|
||||||
{
|
|
||||||
rowStr.Append(Remap(Domain.PeekByte(addr + k)));
|
|
||||||
}
|
|
||||||
rowStr.AppendLine();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return rowStr.ToString();
|
rowStr.Append(" | ");
|
||||||
|
for (int k = 0; k < 16; k++)
|
||||||
|
{
|
||||||
|
rowStr.Append(Remap(Domain.PeekByte(addr + k)));
|
||||||
|
}
|
||||||
|
rowStr.AppendLine();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
return rowStr.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
static char Remap(byte val)
|
static char Remap(byte val)
|
||||||
|
@ -137,31 +135,34 @@ namespace BizHawk.MultiClient
|
||||||
|
|
||||||
private int MakeValue(int addr)
|
private int MakeValue(int addr)
|
||||||
{
|
{
|
||||||
unchecked
|
|
||||||
|
switch (Global.Config.HexEditorDataSize)
|
||||||
{
|
{
|
||||||
switch (Global.Config.HexEditorDataSize)
|
default:
|
||||||
{
|
case 1:
|
||||||
default:
|
return Domain.PeekByte(addr);
|
||||||
case 1:
|
case 2:
|
||||||
return Domain.PeekByte(addr);
|
if (Global.Config.HexEditorBigEndian)
|
||||||
case 2:
|
return MakeWordBig(addr);
|
||||||
return MakeWord(addr, Global.Config.HexEditorBigEndian);
|
else
|
||||||
case 4:
|
return MakeWordLittle(addr);
|
||||||
return (MakeWord(addr, Global.Config.HexEditorBigEndian) * 65536) +
|
case 4:
|
||||||
MakeWord(addr + 2, Global.Config.HexEditorBigEndian);
|
if (Global.Config.HexEditorBigEndian)
|
||||||
}
|
return (MakeWordBig(addr) * 65536) + MakeWordBig(addr + 2);
|
||||||
|
else
|
||||||
|
return (MakeWordLittle(addr) * 65536) + MakeWordLittle(addr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int MakeWord(int addr, bool endian)
|
private int MakeWordBig(int addr)
|
||||||
{
|
{
|
||||||
unchecked
|
System.Diagnostics.Debugger.Break();
|
||||||
{
|
return (Domain.PeekByte(addr) * 256) + Domain.PeekByte(addr + 1);
|
||||||
if (endian)
|
}
|
||||||
return (Domain.PeekByte(addr) * 256) + Domain.PeekByte(addr + 1);
|
|
||||||
else
|
private int MakeWordLittle(int addr)
|
||||||
return Domain.PeekByte(addr) + (Domain.PeekByte(addr + 1) * 256);
|
{
|
||||||
}
|
return Domain.PeekByte(addr) + (Domain.PeekByte(addr + 1) * 256);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Restart()
|
public void Restart()
|
||||||
|
@ -395,7 +396,7 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
if (size == 1 || size == 2 || size == 4)
|
if (size == 1 || size == 2 || size == 4)
|
||||||
Global.Config.HexEditorDataSize = size;
|
Global.Config.HexEditorDataSize = size;
|
||||||
|
DigitFormatString = "{0:X" + (Global.Config.HexEditorDataSize * 2).ToString() + "} ";
|
||||||
SetHeader();
|
SetHeader();
|
||||||
UpdateGroupBoxTitle();
|
UpdateGroupBoxTitle();
|
||||||
UpdateValues();
|
UpdateValues();
|
||||||
|
|
|
@ -63,8 +63,8 @@ namespace BizHawk.MultiClient
|
||||||
|
|
||||||
public void UpdateValues()
|
public void UpdateValues()
|
||||||
{
|
{
|
||||||
WatchListView.BlazingFast = true;
|
|
||||||
if (!this.IsHandleCreated || this.IsDisposed) return;
|
if (!this.IsHandleCreated || this.IsDisposed) return;
|
||||||
|
WatchListView.BlazingFast = true;
|
||||||
for (int x = 0; x < watchList.Count; x++)
|
for (int x = 0; x < watchList.Count; x++)
|
||||||
{
|
{
|
||||||
watchList[x].prev = watchList[x].value;
|
watchList[x].prev = watchList[x].value;
|
||||||
|
|
Loading…
Reference in New Issue