snes-hookup ui for color palette selection
This commit is contained in:
parent
7a6f5fcf99
commit
57e9619ff6
|
@ -373,6 +373,16 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
|
||||||
return test;
|
return test;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SnesColors.ColorType CurrPalette { get; private set; }
|
||||||
|
|
||||||
|
public void SetPalette(SnesColors.ColorType pal)
|
||||||
|
{
|
||||||
|
CurrPalette = pal;
|
||||||
|
int[] tmp = SnesColors.GetLUT(pal);
|
||||||
|
fixed (int* p = &tmp[0])
|
||||||
|
BizHawk.Emulation.Consoles.Nintendo.SNES.LibsnesDll.snes_set_color_lut((IntPtr)p);
|
||||||
|
}
|
||||||
|
|
||||||
public LibsnesCore()
|
public LibsnesCore()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -411,10 +421,8 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
|
||||||
|
|
||||||
scanlineStart_cb = new LibsnesDll.snes_scanlineStart_t(snes_scanlineStart);
|
scanlineStart_cb = new LibsnesDll.snes_scanlineStart_t(snes_scanlineStart);
|
||||||
|
|
||||||
// set palette
|
// set default palette. Should be overridden by frontend probably
|
||||||
int[] tmp = SnesColors.GetLUT(SnesColors.ColorType.Bizhawk);
|
SetPalette(SnesColors.ColorType.BizHawk);
|
||||||
fixed (int* p = &tmp[0])
|
|
||||||
BizHawk.Emulation.Consoles.Nintendo.SNES.LibsnesDll.snes_set_color_lut((IntPtr)p);
|
|
||||||
|
|
||||||
|
|
||||||
// start up audio resampler
|
// start up audio resampler
|
||||||
|
|
|
@ -362,9 +362,7 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
|
||||||
return ScreenInfo.GetScreenInfo();
|
return ScreenInfo.GetScreenInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//the same basic color table that libsnes uses to convert from snes 555 to rgba32
|
//the same basic color table that libsnes uses to convert from snes 555 to rgba32
|
||||||
public static int[] colortable;
|
|
||||||
static int[] directColorTable = new int[256]; //8bpp gfx -> rgb555
|
static int[] directColorTable = new int[256]; //8bpp gfx -> rgb555
|
||||||
static SNESGraphicsDecoder()
|
static SNESGraphicsDecoder()
|
||||||
{
|
{
|
||||||
|
@ -380,13 +378,14 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
|
||||||
int color = (b << 10) | (g << 5) | r;
|
int color = (b << 10) | (g << 5) | r;
|
||||||
directColorTable[i] = color;
|
directColorTable[i] = color;
|
||||||
}
|
}
|
||||||
colortable = SnesColors.GetLUT(SnesColors.ColorType.Bizhawk);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int[] colortable;
|
||||||
public byte* vram, oam;
|
public byte* vram, oam;
|
||||||
public ushort* cgram, vram16;
|
public ushort* cgram, vram16;
|
||||||
public SNESGraphicsDecoder()
|
public SNESGraphicsDecoder(SnesColors.ColorType pal)
|
||||||
{
|
{
|
||||||
|
colortable = SnesColors.GetLUT(pal);
|
||||||
IntPtr block = LibsnesDll.snes_get_memory_data(LibsnesDll.SNES_MEMORY.VRAM);
|
IntPtr block = LibsnesDll.snes_get_memory_data(LibsnesDll.SNES_MEMORY.VRAM);
|
||||||
vram = (byte*)block;
|
vram = (byte*)block;
|
||||||
vram16 = (ushort*)block;
|
vram16 = (ushort*)block;
|
||||||
|
|
|
@ -12,7 +12,7 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
|
||||||
|
|
||||||
// none of this is optimized for speed because we make a LUT at load time
|
// none of this is optimized for speed because we make a LUT at load time
|
||||||
|
|
||||||
public static void BizColor(out int or, out int og, out int ob, int l, int r, int g, int b)
|
public static void BsnesColor(out int or, out int og, out int ob, int l, int r, int g, int b)
|
||||||
{
|
{
|
||||||
// bizhawk through r3808, from bsnes
|
// bizhawk through r3808, from bsnes
|
||||||
double luma = (double)l / 15.0;
|
double luma = (double)l / 15.0;
|
||||||
|
@ -24,7 +24,7 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
|
||||||
ob = ab * 255 / 31;
|
ob = ab * 255 / 31;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void NattColor(out int or, out int og, out int ob, int l, int r, int g, int b)
|
public static void BizColor(out int or, out int og, out int ob, int l, int r, int g, int b)
|
||||||
{
|
{
|
||||||
// bizhawk r3809. assumes that luma mixing is done in analog
|
// bizhawk r3809. assumes that luma mixing is done in analog
|
||||||
or = (r * l * 17 + 15) / 31;
|
or = (r * l * 17 + 15) / 31;
|
||||||
|
@ -81,12 +81,39 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
|
||||||
|
|
||||||
public enum ColorType
|
public enum ColorType
|
||||||
{
|
{
|
||||||
Bizhawk,
|
BizHawk,
|
||||||
Natt,
|
BSNES,
|
||||||
Snes9x
|
Snes9x
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//I separated these out to try and make them lazy construct, but it didnt work. try it some other way later.
|
||||||
|
|
||||||
|
public static class BIZCOLOR
|
||||||
|
{
|
||||||
|
public static int[] palette = GenLUT(ColorType.BizHawk);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class SNES9XCOLOR
|
||||||
|
{
|
||||||
|
public static int[] palette = GenLUT(ColorType.Snes9x);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class BSNESCOLOR
|
||||||
|
{
|
||||||
|
public static int[] palette = GenLUT(ColorType.BSNES);
|
||||||
|
}
|
||||||
|
|
||||||
public static int[] GetLUT(ColorType t)
|
public static int[] GetLUT(ColorType t)
|
||||||
|
{
|
||||||
|
if (t == ColorType.Snes9x)
|
||||||
|
return SNES9XCOLOR.palette;
|
||||||
|
else if (t == ColorType.BizHawk)
|
||||||
|
return BIZCOLOR.palette;
|
||||||
|
else
|
||||||
|
return BSNESCOLOR.palette;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int[] GenLUT(ColorType t)
|
||||||
{
|
{
|
||||||
int[] ret = new int[16 * 32768];
|
int[] ret = new int[16 * 32768];
|
||||||
for (int l = 0; l < 16; l++)
|
for (int l = 0; l < 16; l++)
|
||||||
|
@ -100,10 +127,11 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
|
||||||
int ar, ag, ab;
|
int ar, ag, ab;
|
||||||
if (t == ColorType.Snes9x)
|
if (t == ColorType.Snes9x)
|
||||||
Snes9xColor(out ar, out ag, out ab, l, r, g, b);
|
Snes9xColor(out ar, out ag, out ab, l, r, g, b);
|
||||||
else if (t == ColorType.Natt)
|
else if (t == ColorType.BizHawk)
|
||||||
NattColor(out ar, out ag, out ab, l, r, g, b);
|
|
||||||
else
|
|
||||||
BizColor(out ar, out ag, out ab, l, r, g, b);
|
BizColor(out ar, out ag, out ab, l, r, g, b);
|
||||||
|
else
|
||||||
|
BsnesColor(out ar, out ag, out ab, l, r, g, b);
|
||||||
|
|
||||||
int color = (ar << 16) + (ag << 8) + (ab << 0) | unchecked((int)0xFF000000);
|
int color = (ar << 16) + (ag << 8) + (ab << 0) | unchecked((int)0xFF000000);
|
||||||
ret[(l << 15) + (b << 10) + (g << 5) + (r << 0)] = color;
|
ret[(l << 15) + (b << 10) + (g << 5) + (r << 0)] = color;
|
||||||
}
|
}
|
||||||
|
|
|
@ -456,6 +456,7 @@ namespace BizHawk.MultiClient
|
||||||
public int SNESGraphicsDebuggerRefreshRate = 4;
|
public int SNESGraphicsDebuggerRefreshRate = 4;
|
||||||
public bool SNESGraphicsUseUserBackdropColor = false;
|
public bool SNESGraphicsUseUserBackdropColor = false;
|
||||||
public int SNESGraphicsUserBackdropColor = -1;
|
public int SNESGraphicsUserBackdropColor = -1;
|
||||||
|
public string SNESPalette = "BizHawk";
|
||||||
|
|
||||||
// SNES Graphics settings
|
// SNES Graphics settings
|
||||||
//bsnes allows the layers to be enabled for each priority level.
|
//bsnes allows the layers to be enabled for each priority level.
|
||||||
|
|
|
@ -1908,6 +1908,12 @@ namespace BizHawk.MultiClient
|
||||||
Global.Game = game;
|
Global.Game = game;
|
||||||
SyncControls();
|
SyncControls();
|
||||||
|
|
||||||
|
if (nextEmulator is LibsnesCore)
|
||||||
|
{
|
||||||
|
var snes = nextEmulator as LibsnesCore;
|
||||||
|
snes.SetPalette((SnesColors.ColorType)Enum.Parse(typeof(SnesColors.ColorType), Global.Config.SNESPalette, false));
|
||||||
|
}
|
||||||
|
|
||||||
if (game.System == "NES")
|
if (game.System == "NES")
|
||||||
{
|
{
|
||||||
NES nes = Global.Emulator as NES;
|
NES nes = Global.Emulator as NES;
|
||||||
|
|
|
@ -41,6 +41,20 @@
|
||||||
this.saveWindowPositionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.saveWindowPositionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.comboPalette = new System.Windows.Forms.ComboBox();
|
||||||
|
this.groupBox7 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtOBSELT1OfsBits = new System.Windows.Forms.TextBox();
|
||||||
|
this.txtOBSELT1OfsDescr = new System.Windows.Forms.TextBox();
|
||||||
|
this.label30 = new System.Windows.Forms.Label();
|
||||||
|
this.txtOBSELBaseBits = new System.Windows.Forms.TextBox();
|
||||||
|
this.txtOBSELBaseDescr = new System.Windows.Forms.TextBox();
|
||||||
|
this.label29 = new System.Windows.Forms.Label();
|
||||||
|
this.txtOBSELSizeBits = new System.Windows.Forms.TextBox();
|
||||||
|
this.label26 = new System.Windows.Forms.Label();
|
||||||
|
this.txtOBSELSizeDescr = new System.Windows.Forms.TextBox();
|
||||||
|
this.label28 = new System.Windows.Forms.Label();
|
||||||
|
this.groupBox6 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.labelClipboard = new System.Windows.Forms.Label();
|
||||||
this.label24 = new System.Windows.Forms.Label();
|
this.label24 = new System.Windows.Forms.Label();
|
||||||
this.pnBackdropColor = new System.Windows.Forms.Panel();
|
this.pnBackdropColor = new System.Windows.Forms.Panel();
|
||||||
this.checkBackdropColor = new System.Windows.Forms.CheckBox();
|
this.checkBackdropColor = new System.Windows.Forms.CheckBox();
|
||||||
|
@ -134,6 +148,7 @@
|
||||||
this.radioButton5 = new System.Windows.Forms.RadioButton();
|
this.radioButton5 = new System.Windows.Forms.RadioButton();
|
||||||
this.radioButton10 = new System.Windows.Forms.RadioButton();
|
this.radioButton10 = new System.Windows.Forms.RadioButton();
|
||||||
this.groupBox5 = new System.Windows.Forms.GroupBox();
|
this.groupBox5 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.paletteViewer = new BizHawk.MultiClient.SNESGraphicsViewer();
|
||||||
this.tabctrlDetails = new System.Windows.Forms.TabControl();
|
this.tabctrlDetails = new System.Windows.Forms.TabControl();
|
||||||
this.tpPalette = new System.Windows.Forms.TabPage();
|
this.tpPalette = new System.Windows.Forms.TabPage();
|
||||||
this.txtPaletteDetailsIndexSpecific = new System.Windows.Forms.TextBox();
|
this.txtPaletteDetailsIndexSpecific = new System.Windows.Forms.TextBox();
|
||||||
|
@ -148,28 +163,16 @@
|
||||||
this.pnDetailsPaletteColor = new System.Windows.Forms.Panel();
|
this.pnDetailsPaletteColor = new System.Windows.Forms.Panel();
|
||||||
this.lblDetailsPaletteAddress = new System.Windows.Forms.Label();
|
this.lblDetailsPaletteAddress = new System.Windows.Forms.Label();
|
||||||
this.tpTile = new System.Windows.Forms.TabPage();
|
this.tpTile = new System.Windows.Forms.TabPage();
|
||||||
this.viewerPanel = new System.Windows.Forms.Panel();
|
|
||||||
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
|
|
||||||
this.groupBox6 = new System.Windows.Forms.GroupBox();
|
|
||||||
this.labelClipboard = new System.Windows.Forms.Label();
|
|
||||||
this.messagetimer = new System.Windows.Forms.Timer(this.components);
|
|
||||||
this.label26 = new System.Windows.Forms.Label();
|
|
||||||
this.txtOBSELSizeDescr = new System.Windows.Forms.TextBox();
|
|
||||||
this.label28 = new System.Windows.Forms.Label();
|
|
||||||
this.txtOBSELSizeBits = new System.Windows.Forms.TextBox();
|
|
||||||
this.groupBox7 = new System.Windows.Forms.GroupBox();
|
|
||||||
this.txtOBSELBaseBits = new System.Windows.Forms.TextBox();
|
|
||||||
this.txtOBSELBaseDescr = new System.Windows.Forms.TextBox();
|
|
||||||
this.label29 = new System.Windows.Forms.Label();
|
|
||||||
this.txtOBSELT1OfsBits = new System.Windows.Forms.TextBox();
|
|
||||||
this.txtOBSELT1OfsDescr = new System.Windows.Forms.TextBox();
|
|
||||||
this.label30 = new System.Windows.Forms.Label();
|
|
||||||
this.paletteViewer = new BizHawk.MultiClient.SNESGraphicsViewer();
|
|
||||||
this.viewerTile = new BizHawk.MultiClient.SNESGraphicsViewer();
|
this.viewerTile = new BizHawk.MultiClient.SNESGraphicsViewer();
|
||||||
|
this.viewerPanel = new System.Windows.Forms.Panel();
|
||||||
this.viewer = new BizHawk.MultiClient.SNESGraphicsViewer();
|
this.viewer = new BizHawk.MultiClient.SNESGraphicsViewer();
|
||||||
|
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
|
||||||
|
this.messagetimer = new System.Windows.Forms.Timer(this.components);
|
||||||
this.menuStrip1.SuspendLayout();
|
this.menuStrip1.SuspendLayout();
|
||||||
this.tableLayoutPanel1.SuspendLayout();
|
this.tableLayoutPanel1.SuspendLayout();
|
||||||
this.panel1.SuspendLayout();
|
this.panel1.SuspendLayout();
|
||||||
|
this.groupBox7.SuspendLayout();
|
||||||
|
this.groupBox6.SuspendLayout();
|
||||||
this.groupBox3.SuspendLayout();
|
this.groupBox3.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.nudScanline)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.nudScanline)).BeginInit();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.sliderScanline)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.sliderScanline)).BeginInit();
|
||||||
|
@ -182,8 +185,6 @@
|
||||||
this.tpPalette.SuspendLayout();
|
this.tpPalette.SuspendLayout();
|
||||||
this.tpTile.SuspendLayout();
|
this.tpTile.SuspendLayout();
|
||||||
this.viewerPanel.SuspendLayout();
|
this.viewerPanel.SuspendLayout();
|
||||||
this.groupBox6.SuspendLayout();
|
|
||||||
this.groupBox7.SuspendLayout();
|
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// menuStrip1
|
// menuStrip1
|
||||||
|
@ -280,6 +281,7 @@
|
||||||
//
|
//
|
||||||
this.panel1.AutoSize = true;
|
this.panel1.AutoSize = true;
|
||||||
this.panel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
this.panel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.panel1.Controls.Add(this.comboPalette);
|
||||||
this.panel1.Controls.Add(this.groupBox7);
|
this.panel1.Controls.Add(this.groupBox7);
|
||||||
this.panel1.Controls.Add(this.groupBox6);
|
this.panel1.Controls.Add(this.groupBox6);
|
||||||
this.panel1.Controls.Add(this.label24);
|
this.panel1.Controls.Add(this.label24);
|
||||||
|
@ -296,6 +298,153 @@
|
||||||
this.panel1.Size = new System.Drawing.Size(558, 672);
|
this.panel1.Size = new System.Drawing.Size(558, 672);
|
||||||
this.panel1.TabIndex = 0;
|
this.panel1.TabIndex = 0;
|
||||||
//
|
//
|
||||||
|
// comboPalette
|
||||||
|
//
|
||||||
|
this.comboPalette.DisplayMember = "descr";
|
||||||
|
this.comboPalette.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.comboPalette.FormattingEnabled = true;
|
||||||
|
this.comboPalette.Location = new System.Drawing.Point(108, 588);
|
||||||
|
this.comboPalette.Name = "comboPalette";
|
||||||
|
this.comboPalette.Size = new System.Drawing.Size(121, 21);
|
||||||
|
this.comboPalette.TabIndex = 52;
|
||||||
|
this.comboPalette.ValueMember = "type";
|
||||||
|
this.comboPalette.SelectedIndexChanged += new System.EventHandler(this.comboPalette_SelectedIndexChanged);
|
||||||
|
//
|
||||||
|
// groupBox7
|
||||||
|
//
|
||||||
|
this.groupBox7.Controls.Add(this.txtOBSELT1OfsBits);
|
||||||
|
this.groupBox7.Controls.Add(this.txtOBSELT1OfsDescr);
|
||||||
|
this.groupBox7.Controls.Add(this.label30);
|
||||||
|
this.groupBox7.Controls.Add(this.txtOBSELBaseBits);
|
||||||
|
this.groupBox7.Controls.Add(this.txtOBSELBaseDescr);
|
||||||
|
this.groupBox7.Controls.Add(this.label29);
|
||||||
|
this.groupBox7.Controls.Add(this.txtOBSELSizeBits);
|
||||||
|
this.groupBox7.Controls.Add(this.label26);
|
||||||
|
this.groupBox7.Controls.Add(this.txtOBSELSizeDescr);
|
||||||
|
this.groupBox7.Controls.Add(this.label28);
|
||||||
|
this.groupBox7.Location = new System.Drawing.Point(1, 419);
|
||||||
|
this.groupBox7.Name = "groupBox7";
|
||||||
|
this.groupBox7.Size = new System.Drawing.Size(228, 114);
|
||||||
|
this.groupBox7.TabIndex = 51;
|
||||||
|
this.groupBox7.TabStop = false;
|
||||||
|
this.groupBox7.Text = "OBJ";
|
||||||
|
//
|
||||||
|
// txtOBSELT1OfsBits
|
||||||
|
//
|
||||||
|
this.txtOBSELT1OfsBits.BackColor = System.Drawing.Color.LightGreen;
|
||||||
|
this.txtOBSELT1OfsBits.Location = new System.Drawing.Point(12, 72);
|
||||||
|
this.txtOBSELT1OfsBits.Multiline = true;
|
||||||
|
this.txtOBSELT1OfsBits.Name = "txtOBSELT1OfsBits";
|
||||||
|
this.txtOBSELT1OfsBits.ReadOnly = true;
|
||||||
|
this.txtOBSELT1OfsBits.Size = new System.Drawing.Size(15, 17);
|
||||||
|
this.txtOBSELT1OfsBits.TabIndex = 55;
|
||||||
|
this.txtOBSELT1OfsBits.Text = "00";
|
||||||
|
//
|
||||||
|
// txtOBSELT1OfsDescr
|
||||||
|
//
|
||||||
|
this.txtOBSELT1OfsDescr.Location = new System.Drawing.Point(77, 72);
|
||||||
|
this.txtOBSELT1OfsDescr.Multiline = true;
|
||||||
|
this.txtOBSELT1OfsDescr.Name = "txtOBSELT1OfsDescr";
|
||||||
|
this.txtOBSELT1OfsDescr.ReadOnly = true;
|
||||||
|
this.txtOBSELT1OfsDescr.Size = new System.Drawing.Size(80, 18);
|
||||||
|
this.txtOBSELT1OfsDescr.TabIndex = 54;
|
||||||
|
//
|
||||||
|
// label30
|
||||||
|
//
|
||||||
|
this.label30.AutoSize = true;
|
||||||
|
this.label30.Location = new System.Drawing.Point(31, 75);
|
||||||
|
this.label30.Name = "label30";
|
||||||
|
this.label30.Size = new System.Drawing.Size(45, 13);
|
||||||
|
this.label30.TabIndex = 53;
|
||||||
|
this.label30.Text = "T1.Addr";
|
||||||
|
//
|
||||||
|
// txtOBSELBaseBits
|
||||||
|
//
|
||||||
|
this.txtOBSELBaseBits.BackColor = System.Drawing.Color.LightGreen;
|
||||||
|
this.txtOBSELBaseBits.Location = new System.Drawing.Point(12, 51);
|
||||||
|
this.txtOBSELBaseBits.Multiline = true;
|
||||||
|
this.txtOBSELBaseBits.Name = "txtOBSELBaseBits";
|
||||||
|
this.txtOBSELBaseBits.ReadOnly = true;
|
||||||
|
this.txtOBSELBaseBits.Size = new System.Drawing.Size(15, 17);
|
||||||
|
this.txtOBSELBaseBits.TabIndex = 52;
|
||||||
|
this.txtOBSELBaseBits.Text = "00";
|
||||||
|
//
|
||||||
|
// txtOBSELBaseDescr
|
||||||
|
//
|
||||||
|
this.txtOBSELBaseDescr.Location = new System.Drawing.Point(77, 51);
|
||||||
|
this.txtOBSELBaseDescr.Multiline = true;
|
||||||
|
this.txtOBSELBaseDescr.Name = "txtOBSELBaseDescr";
|
||||||
|
this.txtOBSELBaseDescr.ReadOnly = true;
|
||||||
|
this.txtOBSELBaseDescr.Size = new System.Drawing.Size(80, 18);
|
||||||
|
this.txtOBSELBaseDescr.TabIndex = 51;
|
||||||
|
//
|
||||||
|
// label29
|
||||||
|
//
|
||||||
|
this.label29.AutoSize = true;
|
||||||
|
this.label29.Location = new System.Drawing.Point(31, 54);
|
||||||
|
this.label29.Name = "label29";
|
||||||
|
this.label29.Size = new System.Drawing.Size(47, 13);
|
||||||
|
this.label29.TabIndex = 50;
|
||||||
|
this.label29.Text = "TD.Addr";
|
||||||
|
//
|
||||||
|
// txtOBSELSizeBits
|
||||||
|
//
|
||||||
|
this.txtOBSELSizeBits.BackColor = System.Drawing.Color.LightGreen;
|
||||||
|
this.txtOBSELSizeBits.Location = new System.Drawing.Point(12, 29);
|
||||||
|
this.txtOBSELSizeBits.Multiline = true;
|
||||||
|
this.txtOBSELSizeBits.Name = "txtOBSELSizeBits";
|
||||||
|
this.txtOBSELSizeBits.ReadOnly = true;
|
||||||
|
this.txtOBSELSizeBits.Size = new System.Drawing.Size(15, 17);
|
||||||
|
this.txtOBSELSizeBits.TabIndex = 49;
|
||||||
|
this.txtOBSELSizeBits.Text = "00";
|
||||||
|
//
|
||||||
|
// label26
|
||||||
|
//
|
||||||
|
this.label26.AutoSize = true;
|
||||||
|
this.label26.Location = new System.Drawing.Point(5, 14);
|
||||||
|
this.label26.Name = "label26";
|
||||||
|
this.label26.Size = new System.Drawing.Size(42, 13);
|
||||||
|
this.label26.TabIndex = 45;
|
||||||
|
this.label26.Text = "OBSEL";
|
||||||
|
//
|
||||||
|
// txtOBSELSizeDescr
|
||||||
|
//
|
||||||
|
this.txtOBSELSizeDescr.Location = new System.Drawing.Point(77, 29);
|
||||||
|
this.txtOBSELSizeDescr.Multiline = true;
|
||||||
|
this.txtOBSELSizeDescr.Name = "txtOBSELSizeDescr";
|
||||||
|
this.txtOBSELSizeDescr.ReadOnly = true;
|
||||||
|
this.txtOBSELSizeDescr.Size = new System.Drawing.Size(80, 18);
|
||||||
|
this.txtOBSELSizeDescr.TabIndex = 48;
|
||||||
|
this.txtOBSELSizeDescr.Text = "64x32, 32x32";
|
||||||
|
//
|
||||||
|
// label28
|
||||||
|
//
|
||||||
|
this.label28.AutoSize = true;
|
||||||
|
this.label28.Location = new System.Drawing.Point(31, 32);
|
||||||
|
this.label28.Name = "label28";
|
||||||
|
this.label28.Size = new System.Drawing.Size(27, 13);
|
||||||
|
this.label28.TabIndex = 47;
|
||||||
|
this.label28.Text = "Size";
|
||||||
|
//
|
||||||
|
// groupBox6
|
||||||
|
//
|
||||||
|
this.groupBox6.Controls.Add(this.labelClipboard);
|
||||||
|
this.groupBox6.Location = new System.Drawing.Point(1, 539);
|
||||||
|
this.groupBox6.Name = "groupBox6";
|
||||||
|
this.groupBox6.Size = new System.Drawing.Size(228, 43);
|
||||||
|
this.groupBox6.TabIndex = 50;
|
||||||
|
this.groupBox6.TabStop = false;
|
||||||
|
this.groupBox6.Text = "Copy to Clipboard";
|
||||||
|
//
|
||||||
|
// labelClipboard
|
||||||
|
//
|
||||||
|
this.labelClipboard.AutoSize = true;
|
||||||
|
this.labelClipboard.Location = new System.Drawing.Point(7, 23);
|
||||||
|
this.labelClipboard.Name = "labelClipboard";
|
||||||
|
this.labelClipboard.Size = new System.Drawing.Size(212, 13);
|
||||||
|
this.labelClipboard.TabIndex = 0;
|
||||||
|
this.labelClipboard.Text = "CTRL+C copies the pane under the mouse.";
|
||||||
|
//
|
||||||
// label24
|
// label24
|
||||||
//
|
//
|
||||||
this.label24.AutoSize = true;
|
this.label24.AutoSize = true;
|
||||||
|
@ -1335,6 +1484,17 @@
|
||||||
this.groupBox5.TabStop = false;
|
this.groupBox5.TabStop = false;
|
||||||
this.groupBox5.Text = "Palette";
|
this.groupBox5.Text = "Palette";
|
||||||
//
|
//
|
||||||
|
// paletteViewer
|
||||||
|
//
|
||||||
|
this.paletteViewer.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.paletteViewer.Location = new System.Drawing.Point(6, 14);
|
||||||
|
this.paletteViewer.Name = "paletteViewer";
|
||||||
|
this.paletteViewer.Size = new System.Drawing.Size(307, 307);
|
||||||
|
this.paletteViewer.TabIndex = 18;
|
||||||
|
this.paletteViewer.TabStop = false;
|
||||||
|
this.paletteViewer.MouseClick += new System.Windows.Forms.MouseEventHandler(this.paletteViewer_MouseClick);
|
||||||
|
this.paletteViewer.MouseMove += new System.Windows.Forms.MouseEventHandler(this.paletteViewer_MouseMove);
|
||||||
|
//
|
||||||
// tabctrlDetails
|
// tabctrlDetails
|
||||||
//
|
//
|
||||||
this.tabctrlDetails.Controls.Add(this.tpPalette);
|
this.tabctrlDetails.Controls.Add(this.tpPalette);
|
||||||
|
@ -1485,6 +1645,15 @@
|
||||||
this.tpTile.Text = "Tile";
|
this.tpTile.Text = "Tile";
|
||||||
this.tpTile.UseVisualStyleBackColor = true;
|
this.tpTile.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
|
// viewerTile
|
||||||
|
//
|
||||||
|
this.viewerTile.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.viewerTile.Location = new System.Drawing.Point(6, 6);
|
||||||
|
this.viewerTile.Name = "viewerTile";
|
||||||
|
this.viewerTile.Size = new System.Drawing.Size(64, 64);
|
||||||
|
this.viewerTile.TabIndex = 19;
|
||||||
|
this.viewerTile.TabStop = false;
|
||||||
|
//
|
||||||
// viewerPanel
|
// viewerPanel
|
||||||
//
|
//
|
||||||
this.viewerPanel.AutoScroll = true;
|
this.viewerPanel.AutoScroll = true;
|
||||||
|
@ -1497,172 +1666,6 @@
|
||||||
this.viewerPanel.Size = new System.Drawing.Size(516, 667);
|
this.viewerPanel.Size = new System.Drawing.Size(516, 667);
|
||||||
this.viewerPanel.TabIndex = 1;
|
this.viewerPanel.TabIndex = 1;
|
||||||
//
|
//
|
||||||
// toolTip1
|
|
||||||
//
|
|
||||||
this.toolTip1.AutoPopDelay = 5000;
|
|
||||||
this.toolTip1.InitialDelay = 250;
|
|
||||||
this.toolTip1.ReshowDelay = 100;
|
|
||||||
//
|
|
||||||
// groupBox6
|
|
||||||
//
|
|
||||||
this.groupBox6.Controls.Add(this.labelClipboard);
|
|
||||||
this.groupBox6.Location = new System.Drawing.Point(1, 539);
|
|
||||||
this.groupBox6.Name = "groupBox6";
|
|
||||||
this.groupBox6.Size = new System.Drawing.Size(228, 43);
|
|
||||||
this.groupBox6.TabIndex = 50;
|
|
||||||
this.groupBox6.TabStop = false;
|
|
||||||
this.groupBox6.Text = "Copy to Clipboard";
|
|
||||||
//
|
|
||||||
// labelClipboard
|
|
||||||
//
|
|
||||||
this.labelClipboard.AutoSize = true;
|
|
||||||
this.labelClipboard.Location = new System.Drawing.Point(7, 23);
|
|
||||||
this.labelClipboard.Name = "labelClipboard";
|
|
||||||
this.labelClipboard.Size = new System.Drawing.Size(212, 13);
|
|
||||||
this.labelClipboard.TabIndex = 0;
|
|
||||||
this.labelClipboard.Text = "CTRL+C copies the pane under the mouse.";
|
|
||||||
//
|
|
||||||
// messagetimer
|
|
||||||
//
|
|
||||||
this.messagetimer.Interval = 5000;
|
|
||||||
this.messagetimer.Tick += new System.EventHandler(this.messagetimer_Tick);
|
|
||||||
//
|
|
||||||
// label26
|
|
||||||
//
|
|
||||||
this.label26.AutoSize = true;
|
|
||||||
this.label26.Location = new System.Drawing.Point(5, 14);
|
|
||||||
this.label26.Name = "label26";
|
|
||||||
this.label26.Size = new System.Drawing.Size(42, 13);
|
|
||||||
this.label26.TabIndex = 45;
|
|
||||||
this.label26.Text = "OBSEL";
|
|
||||||
//
|
|
||||||
// txtOBSELSizeDescr
|
|
||||||
//
|
|
||||||
this.txtOBSELSizeDescr.Location = new System.Drawing.Point(77, 29);
|
|
||||||
this.txtOBSELSizeDescr.Multiline = true;
|
|
||||||
this.txtOBSELSizeDescr.Name = "txtOBSELSizeDescr";
|
|
||||||
this.txtOBSELSizeDescr.ReadOnly = true;
|
|
||||||
this.txtOBSELSizeDescr.Size = new System.Drawing.Size(80, 18);
|
|
||||||
this.txtOBSELSizeDescr.TabIndex = 48;
|
|
||||||
this.txtOBSELSizeDescr.Text = "64x32, 32x32";
|
|
||||||
//
|
|
||||||
// label28
|
|
||||||
//
|
|
||||||
this.label28.AutoSize = true;
|
|
||||||
this.label28.Location = new System.Drawing.Point(31, 32);
|
|
||||||
this.label28.Name = "label28";
|
|
||||||
this.label28.Size = new System.Drawing.Size(27, 13);
|
|
||||||
this.label28.TabIndex = 47;
|
|
||||||
this.label28.Text = "Size";
|
|
||||||
//
|
|
||||||
// txtOBSELSizeBits
|
|
||||||
//
|
|
||||||
this.txtOBSELSizeBits.BackColor = System.Drawing.Color.LightGreen;
|
|
||||||
this.txtOBSELSizeBits.Location = new System.Drawing.Point(12, 29);
|
|
||||||
this.txtOBSELSizeBits.Multiline = true;
|
|
||||||
this.txtOBSELSizeBits.Name = "txtOBSELSizeBits";
|
|
||||||
this.txtOBSELSizeBits.ReadOnly = true;
|
|
||||||
this.txtOBSELSizeBits.Size = new System.Drawing.Size(15, 17);
|
|
||||||
this.txtOBSELSizeBits.TabIndex = 49;
|
|
||||||
this.txtOBSELSizeBits.Text = "00";
|
|
||||||
//
|
|
||||||
// groupBox7
|
|
||||||
//
|
|
||||||
this.groupBox7.Controls.Add(this.txtOBSELT1OfsBits);
|
|
||||||
this.groupBox7.Controls.Add(this.txtOBSELT1OfsDescr);
|
|
||||||
this.groupBox7.Controls.Add(this.label30);
|
|
||||||
this.groupBox7.Controls.Add(this.txtOBSELBaseBits);
|
|
||||||
this.groupBox7.Controls.Add(this.txtOBSELBaseDescr);
|
|
||||||
this.groupBox7.Controls.Add(this.label29);
|
|
||||||
this.groupBox7.Controls.Add(this.txtOBSELSizeBits);
|
|
||||||
this.groupBox7.Controls.Add(this.label26);
|
|
||||||
this.groupBox7.Controls.Add(this.txtOBSELSizeDescr);
|
|
||||||
this.groupBox7.Controls.Add(this.label28);
|
|
||||||
this.groupBox7.Location = new System.Drawing.Point(1, 419);
|
|
||||||
this.groupBox7.Name = "groupBox7";
|
|
||||||
this.groupBox7.Size = new System.Drawing.Size(228, 114);
|
|
||||||
this.groupBox7.TabIndex = 51;
|
|
||||||
this.groupBox7.TabStop = false;
|
|
||||||
this.groupBox7.Text = "OBJ";
|
|
||||||
//
|
|
||||||
// txtOBSELBaseBits
|
|
||||||
//
|
|
||||||
this.txtOBSELBaseBits.BackColor = System.Drawing.Color.LightGreen;
|
|
||||||
this.txtOBSELBaseBits.Location = new System.Drawing.Point(12, 51);
|
|
||||||
this.txtOBSELBaseBits.Multiline = true;
|
|
||||||
this.txtOBSELBaseBits.Name = "txtOBSELBaseBits";
|
|
||||||
this.txtOBSELBaseBits.ReadOnly = true;
|
|
||||||
this.txtOBSELBaseBits.Size = new System.Drawing.Size(15, 17);
|
|
||||||
this.txtOBSELBaseBits.TabIndex = 52;
|
|
||||||
this.txtOBSELBaseBits.Text = "00";
|
|
||||||
//
|
|
||||||
// txtOBSELBaseDescr
|
|
||||||
//
|
|
||||||
this.txtOBSELBaseDescr.Location = new System.Drawing.Point(77, 51);
|
|
||||||
this.txtOBSELBaseDescr.Multiline = true;
|
|
||||||
this.txtOBSELBaseDescr.Name = "txtOBSELBaseDescr";
|
|
||||||
this.txtOBSELBaseDescr.ReadOnly = true;
|
|
||||||
this.txtOBSELBaseDescr.Size = new System.Drawing.Size(80, 18);
|
|
||||||
this.txtOBSELBaseDescr.TabIndex = 51;
|
|
||||||
//
|
|
||||||
// label29
|
|
||||||
//
|
|
||||||
this.label29.AutoSize = true;
|
|
||||||
this.label29.Location = new System.Drawing.Point(31, 54);
|
|
||||||
this.label29.Name = "label29";
|
|
||||||
this.label29.Size = new System.Drawing.Size(47, 13);
|
|
||||||
this.label29.TabIndex = 50;
|
|
||||||
this.label29.Text = "TD.Addr";
|
|
||||||
//
|
|
||||||
// txtOBSELT1OfsBits
|
|
||||||
//
|
|
||||||
this.txtOBSELT1OfsBits.BackColor = System.Drawing.Color.LightGreen;
|
|
||||||
this.txtOBSELT1OfsBits.Location = new System.Drawing.Point(12, 72);
|
|
||||||
this.txtOBSELT1OfsBits.Multiline = true;
|
|
||||||
this.txtOBSELT1OfsBits.Name = "txtOBSELT1OfsBits";
|
|
||||||
this.txtOBSELT1OfsBits.ReadOnly = true;
|
|
||||||
this.txtOBSELT1OfsBits.Size = new System.Drawing.Size(15, 17);
|
|
||||||
this.txtOBSELT1OfsBits.TabIndex = 55;
|
|
||||||
this.txtOBSELT1OfsBits.Text = "00";
|
|
||||||
//
|
|
||||||
// txtOBSELT1OfsDescr
|
|
||||||
//
|
|
||||||
this.txtOBSELT1OfsDescr.Location = new System.Drawing.Point(77, 72);
|
|
||||||
this.txtOBSELT1OfsDescr.Multiline = true;
|
|
||||||
this.txtOBSELT1OfsDescr.Name = "txtOBSELT1OfsDescr";
|
|
||||||
this.txtOBSELT1OfsDescr.ReadOnly = true;
|
|
||||||
this.txtOBSELT1OfsDescr.Size = new System.Drawing.Size(80, 18);
|
|
||||||
this.txtOBSELT1OfsDescr.TabIndex = 54;
|
|
||||||
//
|
|
||||||
// label30
|
|
||||||
//
|
|
||||||
this.label30.AutoSize = true;
|
|
||||||
this.label30.Location = new System.Drawing.Point(31, 75);
|
|
||||||
this.label30.Name = "label30";
|
|
||||||
this.label30.Size = new System.Drawing.Size(45, 13);
|
|
||||||
this.label30.TabIndex = 53;
|
|
||||||
this.label30.Text = "T1.Addr";
|
|
||||||
//
|
|
||||||
// paletteViewer
|
|
||||||
//
|
|
||||||
this.paletteViewer.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.paletteViewer.Location = new System.Drawing.Point(6, 14);
|
|
||||||
this.paletteViewer.Name = "paletteViewer";
|
|
||||||
this.paletteViewer.Size = new System.Drawing.Size(307, 307);
|
|
||||||
this.paletteViewer.TabIndex = 18;
|
|
||||||
this.paletteViewer.TabStop = false;
|
|
||||||
this.paletteViewer.MouseClick += new System.Windows.Forms.MouseEventHandler(this.paletteViewer_MouseClick);
|
|
||||||
this.paletteViewer.MouseMove += new System.Windows.Forms.MouseEventHandler(this.paletteViewer_MouseMove);
|
|
||||||
//
|
|
||||||
// viewerTile
|
|
||||||
//
|
|
||||||
this.viewerTile.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.viewerTile.Location = new System.Drawing.Point(6, 6);
|
|
||||||
this.viewerTile.Name = "viewerTile";
|
|
||||||
this.viewerTile.Size = new System.Drawing.Size(64, 64);
|
|
||||||
this.viewerTile.TabIndex = 19;
|
|
||||||
this.viewerTile.TabStop = false;
|
|
||||||
//
|
|
||||||
// viewer
|
// viewer
|
||||||
//
|
//
|
||||||
this.viewer.BackColor = System.Drawing.Color.Transparent;
|
this.viewer.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
@ -1675,6 +1678,17 @@
|
||||||
this.viewer.MouseMove += new System.Windows.Forms.MouseEventHandler(this.viewer_MouseMove);
|
this.viewer.MouseMove += new System.Windows.Forms.MouseEventHandler(this.viewer_MouseMove);
|
||||||
this.viewer.MouseUp += new System.Windows.Forms.MouseEventHandler(this.viewer_MouseUp);
|
this.viewer.MouseUp += new System.Windows.Forms.MouseEventHandler(this.viewer_MouseUp);
|
||||||
//
|
//
|
||||||
|
// toolTip1
|
||||||
|
//
|
||||||
|
this.toolTip1.AutoPopDelay = 5000;
|
||||||
|
this.toolTip1.InitialDelay = 250;
|
||||||
|
this.toolTip1.ReshowDelay = 100;
|
||||||
|
//
|
||||||
|
// messagetimer
|
||||||
|
//
|
||||||
|
this.messagetimer.Interval = 5000;
|
||||||
|
this.messagetimer.Tick += new System.EventHandler(this.messagetimer_Tick);
|
||||||
|
//
|
||||||
// SNESGraphicsDebugger
|
// SNESGraphicsDebugger
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
@ -1694,6 +1708,10 @@
|
||||||
this.tableLayoutPanel1.PerformLayout();
|
this.tableLayoutPanel1.PerformLayout();
|
||||||
this.panel1.ResumeLayout(false);
|
this.panel1.ResumeLayout(false);
|
||||||
this.panel1.PerformLayout();
|
this.panel1.PerformLayout();
|
||||||
|
this.groupBox7.ResumeLayout(false);
|
||||||
|
this.groupBox7.PerformLayout();
|
||||||
|
this.groupBox6.ResumeLayout(false);
|
||||||
|
this.groupBox6.PerformLayout();
|
||||||
this.groupBox3.ResumeLayout(false);
|
this.groupBox3.ResumeLayout(false);
|
||||||
this.groupBox3.PerformLayout();
|
this.groupBox3.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.nudScanline)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.nudScanline)).EndInit();
|
||||||
|
@ -1712,10 +1730,6 @@
|
||||||
this.tpPalette.PerformLayout();
|
this.tpPalette.PerformLayout();
|
||||||
this.tpTile.ResumeLayout(false);
|
this.tpTile.ResumeLayout(false);
|
||||||
this.viewerPanel.ResumeLayout(false);
|
this.viewerPanel.ResumeLayout(false);
|
||||||
this.groupBox6.ResumeLayout(false);
|
|
||||||
this.groupBox6.PerformLayout();
|
|
||||||
this.groupBox7.ResumeLayout(false);
|
|
||||||
this.groupBox7.PerformLayout();
|
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
|
||||||
|
@ -1860,5 +1874,6 @@
|
||||||
private System.Windows.Forms.Label label26;
|
private System.Windows.Forms.Label label26;
|
||||||
private System.Windows.Forms.TextBox txtOBSELSizeDescr;
|
private System.Windows.Forms.TextBox txtOBSELSizeDescr;
|
||||||
private System.Windows.Forms.Label label28;
|
private System.Windows.Forms.Label label28;
|
||||||
|
private System.Windows.Forms.ComboBox comboPalette;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -5,6 +5,8 @@
|
||||||
//TODO - add eDisplayType for BG1-Tiles, BG2-Tiles, etc. which show the tiles available to a BG. more concise than viewing all tiles and illustrating the relevant accessible areas
|
//TODO - add eDisplayType for BG1-Tiles, BG2-Tiles, etc. which show the tiles available to a BG. more concise than viewing all tiles and illustrating the relevant accessible areas
|
||||||
// . could this apply to the palette too?
|
// . could this apply to the palette too?
|
||||||
|
|
||||||
|
//http://stackoverflow.com/questions/1101149/displaying-thumbnail-icons-128x128-pixels-or-larger-in-a-grid-in-listview
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
|
@ -29,6 +31,7 @@ namespace BizHawk.MultiClient
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
Closing += (o, e) => SaveConfigSettings();
|
Closing += (o, e) => SaveConfigSettings();
|
||||||
viewerTile.ScaleImage = true;
|
viewerTile.ScaleImage = true;
|
||||||
|
|
||||||
viewer.ScaleImage = false;
|
viewer.ScaleImage = false;
|
||||||
|
|
||||||
var displayTypeItems = new List<DisplayTypeItem>();
|
var displayTypeItems = new List<DisplayTypeItem>();
|
||||||
|
@ -44,9 +47,18 @@ namespace BizHawk.MultiClient
|
||||||
displayTypeItems.Add(new DisplayTypeItem("Mode7 tiles",eDisplayType.TilesMode7));
|
displayTypeItems.Add(new DisplayTypeItem("Mode7 tiles",eDisplayType.TilesMode7));
|
||||||
displayTypeItems.Add(new DisplayTypeItem("Mode7Ext tiles",eDisplayType.TilesMode7Ext));
|
displayTypeItems.Add(new DisplayTypeItem("Mode7Ext tiles",eDisplayType.TilesMode7Ext));
|
||||||
displayTypeItems.Add(new DisplayTypeItem("Mode7 tiles (DC)", eDisplayType.TilesMode7DC));
|
displayTypeItems.Add(new DisplayTypeItem("Mode7 tiles (DC)", eDisplayType.TilesMode7DC));
|
||||||
|
|
||||||
comboDisplayType.DataSource = displayTypeItems;
|
comboDisplayType.DataSource = displayTypeItems;
|
||||||
comboDisplayType.SelectedIndex = 0;
|
comboDisplayType.SelectedIndex = 0;
|
||||||
|
|
||||||
|
var paletteTypeItems = new List<PaletteTypeItem>();
|
||||||
|
paletteTypeItems.Add(new PaletteTypeItem("BizHawk Palette", SnesColors.ColorType.BizHawk));
|
||||||
|
paletteTypeItems.Add(new PaletteTypeItem("bsnes Palette", SnesColors.ColorType.BSNES));
|
||||||
|
paletteTypeItems.Add(new PaletteTypeItem("Snes9X Palette", SnesColors.ColorType.Snes9x));
|
||||||
|
suppression = true;
|
||||||
|
comboPalette.DataSource = paletteTypeItems;
|
||||||
|
comboPalette.SelectedIndex = 0;
|
||||||
|
suppression = false;
|
||||||
|
|
||||||
comboBGProps.SelectedIndex = 0;
|
comboBGProps.SelectedIndex = 0;
|
||||||
|
|
||||||
tabctrlDetails.SelectedIndex = 1;
|
tabctrlDetails.SelectedIndex = 1;
|
||||||
|
@ -126,7 +138,16 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
LibsnesCore core = Global.Emulator as LibsnesCore;
|
LibsnesCore core = Global.Emulator as LibsnesCore;
|
||||||
if (currentSnesCore != core && currentSnesCore != null)
|
if (currentSnesCore != core && currentSnesCore != null)
|
||||||
|
{
|
||||||
currentSnesCore.ScanlineHookManager.Unregister(this);
|
currentSnesCore.ScanlineHookManager.Unregister(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(currentSnesCore != core)
|
||||||
|
{
|
||||||
|
suppression = true;
|
||||||
|
comboPalette.SelectedValue = core.CurrPalette;
|
||||||
|
suppression = false;
|
||||||
|
}
|
||||||
|
|
||||||
currentSnesCore = core;
|
currentSnesCore = core;
|
||||||
|
|
||||||
|
@ -149,14 +170,14 @@ namespace BizHawk.MultiClient
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SNESGraphicsDecoder gd = new SNESGraphicsDecoder();
|
SNESGraphicsDecoder gd = new SNESGraphicsDecoder(SnesColors.ColorType.BizHawk);
|
||||||
SNESGraphicsDecoder.ScreenInfo si;
|
SNESGraphicsDecoder.ScreenInfo si;
|
||||||
|
|
||||||
void RegenerateData()
|
void RegenerateData()
|
||||||
{
|
{
|
||||||
gd = null;
|
gd = null;
|
||||||
if (currentSnesCore == null) return;
|
if (currentSnesCore == null) return;
|
||||||
gd = new SNESGraphicsDecoder();
|
gd = NewDecoder();
|
||||||
if(checkBackdropColor.Checked)
|
if(checkBackdropColor.Checked)
|
||||||
gd.SetBackColor(DecodeWinformsColorToSNES(pnBackdropColor.BackColor));
|
gd.SetBackColor(DecodeWinformsColorToSNES(pnBackdropColor.BackColor));
|
||||||
gd.CacheTiles();
|
gd.CacheTiles();
|
||||||
|
@ -371,6 +392,17 @@ namespace BizHawk.MultiClient
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class PaletteTypeItem
|
||||||
|
{
|
||||||
|
public SnesColors.ColorType type { get; set; }
|
||||||
|
public string descr { get; set; }
|
||||||
|
public PaletteTypeItem(string descr, SnesColors.ColorType type)
|
||||||
|
{
|
||||||
|
this.type = type;
|
||||||
|
this.descr = descr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void comboDisplayType_SelectedIndexChanged(object sender, EventArgs e)
|
private void comboDisplayType_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
UpdateValues();
|
UpdateValues();
|
||||||
|
@ -531,9 +563,16 @@ namespace BizHawk.MultiClient
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SNESGraphicsDecoder NewDecoder()
|
||||||
|
{
|
||||||
|
if (currentSnesCore != null)
|
||||||
|
return new SNESGraphicsDecoder(currentSnesCore.CurrPalette);
|
||||||
|
else return new SNESGraphicsDecoder(SnesColors.ColorType.BizHawk);
|
||||||
|
}
|
||||||
|
|
||||||
void RenderPalette()
|
void RenderPalette()
|
||||||
{
|
{
|
||||||
var gd = new SNESGraphicsDecoder();
|
var gd = NewDecoder();
|
||||||
lastPalette = gd.GetPalette();
|
lastPalette = gd.GetPalette();
|
||||||
|
|
||||||
int pixsize = paletteCellSize * 16 + paletteCellSpacing * 17;
|
int pixsize = paletteCellSize * 16 + paletteCellSpacing * 17;
|
||||||
|
@ -585,7 +624,7 @@ namespace BizHawk.MultiClient
|
||||||
void UpdateColorDetails()
|
void UpdateColorDetails()
|
||||||
{
|
{
|
||||||
int rgb555 = lastPalette[lastColorNum];
|
int rgb555 = lastPalette[lastColorNum];
|
||||||
var gd = new SNESGraphicsDecoder();
|
var gd = NewDecoder();
|
||||||
int color = gd.Colorize(rgb555);
|
int color = gd.Colorize(rgb555);
|
||||||
pnDetailsPaletteColor.BackColor = Color.FromArgb(color);
|
pnDetailsPaletteColor.BackColor = Color.FromArgb(color);
|
||||||
|
|
||||||
|
@ -711,6 +750,7 @@ namespace BizHawk.MultiClient
|
||||||
TileViewerBGState currTileViewerBGState;
|
TileViewerBGState currTileViewerBGState;
|
||||||
int currViewingTile = -1;
|
int currViewingTile = -1;
|
||||||
int currViewingTileBpp = -1;
|
int currViewingTileBpp = -1;
|
||||||
|
int currViewingSprite = -1;
|
||||||
void RenderTileView(bool force=false)
|
void RenderTileView(bool force=false)
|
||||||
{
|
{
|
||||||
//TODO - blech - handle invalid some other way with a dedicated black-setter
|
//TODO - blech - handle invalid some other way with a dedicated black-setter
|
||||||
|
@ -759,6 +799,10 @@ namespace BizHawk.MultiClient
|
||||||
int ty = loc.Y / 8;
|
int ty = loc.Y / 8;
|
||||||
switch (CurrDisplaySelection)
|
switch (CurrDisplaySelection)
|
||||||
{
|
{
|
||||||
|
case eDisplayType.Sprites:
|
||||||
|
//currViewingSprite = tx + ty * 16;
|
||||||
|
RenderView();
|
||||||
|
break;
|
||||||
case eDisplayType.Tiles4bpp:
|
case eDisplayType.Tiles4bpp:
|
||||||
currViewingTileBpp = 4;
|
currViewingTileBpp = 4;
|
||||||
currViewingTile = ty * 64 + tx;
|
currViewingTile = ty * 64 + tx;
|
||||||
|
@ -905,6 +949,22 @@ namespace BizHawk.MultiClient
|
||||||
labelClipboard.Text = "CTRL+C copies the pane under the mouse.";
|
labelClipboard.Text = "CTRL+C copies the pane under the mouse.";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void comboPalette_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (suppression) return;
|
||||||
|
var pal = (SnesColors.ColorType)comboPalette.SelectedValue;
|
||||||
|
Console.WriteLine("set {0}", pal);
|
||||||
|
Global.Config.SNESPalette = pal.ToString();
|
||||||
|
if (currentSnesCore != null)
|
||||||
|
{
|
||||||
|
currentSnesCore.SetPalette(pal);
|
||||||
|
}
|
||||||
|
RegenerateData();
|
||||||
|
RenderView();
|
||||||
|
RenderPalette();
|
||||||
|
RenderTileView();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue