diff --git a/src/BizHawk.Client.EmuHawk/tools/NES/NESPPU.Designer.cs b/src/BizHawk.Client.EmuHawk/tools/NES/NESPPU.Designer.cs
index e6033d29e3..38fc49108f 100644
--- a/src/BizHawk.Client.EmuHawk/tools/NES/NESPPU.Designer.cs
+++ b/src/BizHawk.Client.EmuHawk/tools/NES/NESPPU.Designer.cs
@@ -171,7 +171,7 @@ namespace BizHawk.Client.EmuHawk
this.PatternImageToClipboardMenuItem,
this.PatternRefreshMenuItem});
this.PatternContext.Name = "PatternContext";
- this.PatternContext.Size = new System.Drawing.Size(166, 70);
+ this.PatternContext.Size = new System.Drawing.Size(177, 70);
//
// PatternSaveImageMenuItem
//
@@ -220,7 +220,7 @@ namespace BizHawk.Client.EmuHawk
this.PaletteImageToClipboardMenuItem,
this.PaletteRefreshMenuItem});
this.PaletteContext.Name = "PaletteContext";
- this.PaletteContext.Size = new System.Drawing.Size(166, 70);
+ this.PaletteContext.Size = new System.Drawing.Size(177, 70);
//
// PaletteSaveImageMenuItem
//
@@ -345,7 +345,7 @@ namespace BizHawk.Client.EmuHawk
this.SpriteImageToClipboardMenuItem,
this.SpriteRefreshMenuItem});
this.SpriteContext.Name = "SpriteContext";
- this.SpriteContext.Size = new System.Drawing.Size(166, 70);
+ this.SpriteContext.Size = new System.Drawing.Size(177, 70);
//
// SpriteSaveImageMenuItem
//
@@ -609,7 +609,7 @@ namespace BizHawk.Client.EmuHawk
// toolStripStatusLabel1
//
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
- this.toolStripStatusLabel1.Size = new System.Drawing.Size(319, 17);
+ this.toolStripStatusLabel1.Size = new System.Drawing.Size(347, 17);
this.toolStripStatusLabel1.Text = "Use CTRL+C to copy the pane under the mouse to the clipboard.";
//
// Messagetimer
@@ -657,8 +657,8 @@ namespace BizHawk.Client.EmuHawk
//
// NesPPU
//
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.ClientSize = new System.Drawing.Size(854, 371);
this.Controls.Add(this.CHRROMGroup);
this.Controls.Add(this.NesPPUStatusBar);
diff --git a/src/BizHawk.Client.EmuHawk/tools/NES/NESPPU.cs b/src/BizHawk.Client.EmuHawk/tools/NES/NESPPU.cs
index 467aba3117..c8f3d517b3 100644
--- a/src/BizHawk.Client.EmuHawk/tools/NES/NESPPU.cs
+++ b/src/BizHawk.Client.EmuHawk/tools/NES/NESPPU.cs
@@ -548,10 +548,7 @@ namespace BizHawk.Client.EmuHawk
private void HandleSpriteViewMouseMove(Point e)
{
- if (e.X < SpriteView.ClientRectangle.Left) return;
- if (e.Y < SpriteView.ClientRectangle.Top) return;
- if (e.X >= SpriteView.ClientRectangle.Right) return;
- if (e.Y >= SpriteView.ClientRectangle.Bottom) return;
+ var p = UIHelper.Unscale(e);
byte[] oam = _ppu.GetOam();
byte[] ppuBus = _ppu.GetPPUBus(); // caching is quicker, but not really correct in this case
@@ -559,8 +556,8 @@ namespace BizHawk.Client.EmuHawk
bool is8x16 = _ppu.SPTall;
//figure out which sprite we're over
- int spriteSlotY = e.Y / 8;
- int spriteSlotX = e.X / 8;
+ int spriteSlotY = p.Y / 8;
+ int spriteSlotX = p.X / 8;
//exclude mouse over empty area (vertical). this depends on how big the sprites are
if (is8x16)
@@ -638,12 +635,12 @@ namespace BizHawk.Client.EmuHawk
if (is8x16)
{
ZoomBox.Image = Section(
- SpriteView.Sprites, new Rectangle(new Point((e.X / 8) * 8, (e.Y / 24) * 24), new Size(8, 16)), true);
+ SpriteView.Sprites, new Rectangle(new Point((p.X / 8) * 8, (p.Y / 24) * 24), new Size(8, 16)), true);
}
else
{
ZoomBox.Image = Section(
- SpriteView.Sprites, new Rectangle(new Point((e.X / 8) * 8, (e.Y / 8) * 8), new Size(8, 8)), false);
+ SpriteView.Sprites, new Rectangle(new Point((p.X / 8) * 8, (p.Y / 8) * 8), new Size(8, 8)), false);
}
}
@@ -666,19 +663,17 @@ namespace BizHawk.Client.EmuHawk
private void HandlePaletteViewMouseMove(Point e)
{
- if (e.X < PaletteView.ClientRectangle.Left) return;
- if (e.Y < PaletteView.ClientRectangle.Top) return;
- if (e.X >= PaletteView.ClientRectangle.Right) return;
- if (e.Y >= PaletteView.ClientRectangle.Bottom) return;
+ var p = UIHelper.Unscale(e);
+ if (p.X < 0 || p.X >= 256 || p.Y < 0 || p.Y >= 32) return;
int baseAddr = 0x3F00;
- if (e.Y > 16)
+ if (p.Y > 16)
{
baseAddr += 16;
}
- int column = e.X / 16;
- int addr = column + baseAddr;
+ int column = p.X / 16;
+ int addr = baseAddr + column;
AddressLabel.Text = $"Address: 0x{addr:X4}";
int val;
@@ -748,27 +743,28 @@ namespace BizHawk.Client.EmuHawk
private void PatternView_MouseMove(object sender, MouseEventArgs e)
{
+ var p = UIHelper.Unscale(e.Location);
int table = 0;
int address;
int tile;
- if (e.X > PatternView.Width / 2)
+ if (p.X > PatternView.Width / 2)
{
table = 1;
}
if (table == 0)
{
- tile = (e.X - 1) / 8;
+ tile = (p.X - 1) / 8;
address = tile * 16;
}
else
{
- tile = (e.X - 128) / 8;
+ tile = (p.X - 128) / 8;
address = 0x1000 + (tile * 16);
}
- address += (e.Y / 8) * 256;
- tile += (e.Y / 8) * 16;
+ address += (p.Y / 8) * 256;
+ tile += (p.Y / 8) * 16;
var usage = "Usage: ";
if (_ppu.BGBaseHigh == address >= 0x1000) // bghigh
@@ -790,7 +786,7 @@ namespace BizHawk.Client.EmuHawk
Value3Label.Text = $"Tile {tile:X2}";
Value4Label.Text = usage;
- ZoomBox.Image = Section(PatternView.Pattern, new Rectangle(new Point((e.X / 8) * 8, (e.Y / 8) * 8), new Size(8, 8)), false);
+ ZoomBox.Image = Section(PatternView.Pattern, new Rectangle(new Point((p.X / 8) * 8, (p.Y / 8) * 8), new Size(8, 8)), false);
}
private void ScanlineTextBox_TextChanged(object sender, EventArgs e)
@@ -812,7 +808,7 @@ namespace BizHawk.Client.EmuHawk
private void CalculateFormSize()
{
- Width = ChrRomView ? 861 : 580;
+ ClientSize = ClientSize with { Width = UIHelper.ScaleX(ChrRomView ? 850 : 570) };
}
private void ChrRomViewReload()
diff --git a/src/BizHawk.Client.EmuHawk/tools/NES/NESPPU.resx b/src/BizHawk.Client.EmuHawk/tools/NES/NESPPU.resx
index 8b679fbabe..0515c943b8 100644
--- a/src/BizHawk.Client.EmuHawk/tools/NES/NESPPU.resx
+++ b/src/BizHawk.Client.EmuHawk/tools/NES/NESPPU.resx
@@ -123,11 +123,11 @@
- iVBORw0KGgoAAAANSUhEUgAAAQAAAACACAYAAADktbcKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsAAAA7AAWrWiQkAAACWSURBVHhe7cExAQAAAMKg9U9tDQ8gAAAAAAAAAAAAAAAA
+ iVBORw0KGgoAAAANSUhEUgAAAQAAAACACAYAAADktbcKAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ vwAADr8BOAVTJAAAAJZJREFUeF7twTEBAAAAwqD1T20NDyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAs1AJ4A
- AT4xyOEAAAAASUVORK5CYII=
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACACzUAngABPjHI4QAAAABJRU5E
+ rkJggg==
@@ -138,10 +138,10 @@
- iVBORw0KGgoAAAANSUhEUgAAAQAAAABgCAYAAADy8ayIAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsAAAA7AAWrWiQkAAAB2SURBVHhe7cExAQAAAMKg9U9tCy8gAAAAAAAAAAAAAAAA
+ iVBORw0KGgoAAAANSUhEUgAAAQAAAABgCAYAAADy8ayIAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ vwAADr8BOAVTJAAAAHZJREFUeF7twTEBAAAAwqD1T20LLyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOaoBvAAG82XG2AAAAAElFTkSuQmCC
+ AAAAAAAAAAAAAA5qgG8AAbzZcbYAAAAASUVORK5CYII=
@@ -155,11 +155,11 @@
- iVBORw0KGgoAAAANSUhEUgAAAQAAAACACAYAAADktbcKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsAAAA7AAWrWiQkAAACWSURBVHhe7cExAQAAAMKg9U9tDQ8gAAAAAAAAAAAAAAAA
+ iVBORw0KGgoAAAANSUhEUgAAAQAAAACACAYAAADktbcKAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ vwAADr8BOAVTJAAAAJZJREFUeF7twTEBAAAAwqD1T20NDyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAs1AJ4A
- AT4xyOEAAAAASUVORK5CYII=
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACACzUAngABPjHI4QAAAABJRU5E
+ rkJggg==
\ No newline at end of file
diff --git a/src/BizHawk.Client.EmuHawk/tools/NES/PaletteViewer.cs b/src/BizHawk.Client.EmuHawk/tools/NES/PaletteViewer.cs
index dab939ed10..d3e4691f7c 100644
--- a/src/BizHawk.Client.EmuHawk/tools/NES/PaletteViewer.cs
+++ b/src/BizHawk.Client.EmuHawk/tools/NES/PaletteViewer.cs
@@ -51,12 +51,15 @@ namespace BizHawk.Client.EmuHawk
private void PaletteViewer_Paint(object sender, PaintEventArgs e)
{
- for (int x = 0; x < 16; x++)
+ int size = UIHelper.ScaleX(16);
+ for (int i = 0; i < 16; i++)
{
- BgPalettesBrush.Color = BgPalettes[x].Color;
- SpritePalettesBrush.Color = SpritePalettes[x].Color;
- e.Graphics.FillRectangle(BgPalettesBrush, new Rectangle(x * 16, 0, 16, 16));
- e.Graphics.FillRectangle(SpritePalettesBrush, new Rectangle(x * 16, 16, 16, 16));
+ int x = UIHelper.ScaleX(16 * i);
+ int y = UIHelper.ScaleY(16);
+ BgPalettesBrush.Color = BgPalettes[i].Color;
+ SpritePalettesBrush.Color = SpritePalettes[i].Color;
+ e.Graphics.FillRectangle(BgPalettesBrush, new Rectangle(x, 0, size, size));
+ e.Graphics.FillRectangle(SpritePalettesBrush, new Rectangle(x, y, size, size));
}
}