2011-06-11 14:40:00 +00:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using System.Drawing;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using BizHawk.Emulation.Consoles.Nintendo;
|
|
|
|
|
|
|
|
|
|
namespace BizHawk.MultiClient
|
|
|
|
|
{
|
|
|
|
|
public partial class NESGraphicsConfig : Form
|
|
|
|
|
{
|
|
|
|
|
//TODO:
|
2012-09-03 21:52:51 +00:00
|
|
|
|
|
2011-06-11 14:40:00 +00:00
|
|
|
|
//Allow selection of palette file from archive
|
|
|
|
|
//Hotkeys for BG & Sprite display toggle
|
2012-09-03 21:52:51 +00:00
|
|
|
|
//NTSC filter settings? Hue, Tint (This should probably be a multiclient thing, not a nes specific thing?)
|
2011-06-11 14:40:00 +00:00
|
|
|
|
|
|
|
|
|
HawkFile palette = null;
|
|
|
|
|
NES nes;
|
|
|
|
|
|
|
|
|
|
public NESGraphicsConfig()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void NESGraphicsConfig_Load(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
nes = Global.Emulator as NES;
|
2012-09-24 03:08:32 +00:00
|
|
|
|
LoadStuff();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void LoadStuff()
|
|
|
|
|
{
|
2013-03-25 01:59:34 +00:00
|
|
|
|
NTSC_FirstLineNumeric.Value = Global.Config.NTSC_NESTopLine;
|
|
|
|
|
NTSC_LastLineNumeric.Value = Global.Config.NTSC_NESBottomLine;
|
|
|
|
|
PAL_FirstLineNumeric.Value = Global.Config.PAL_NESTopLine;
|
|
|
|
|
PAL_LastLineNumeric.Value = Global.Config.PAL_NESBottomLine;
|
2011-06-11 14:40:00 +00:00
|
|
|
|
AllowMoreSprites.Checked = Global.Config.NESAllowMoreThanEightSprites;
|
|
|
|
|
ClipLeftAndRightCheckBox.Checked = Global.Config.NESClipLeftAndRight;
|
|
|
|
|
AutoLoadPalette.Checked = Global.Config.NESAutoLoadPalette;
|
|
|
|
|
PalettePath.Text = Global.Config.NESPaletteFile;
|
|
|
|
|
DispSprites.Checked = Global.Config.NESDispSprites;
|
|
|
|
|
DispBackground.Checked = Global.Config.NESDispBackground;
|
2011-06-11 22:15:08 +00:00
|
|
|
|
BGColorDialog.Color = Color.FromArgb(unchecked(Global.Config.NESBackgroundColor | (int)0xFF000000));
|
|
|
|
|
checkUseBackdropColor.Checked = (Global.Config.NESBackgroundColor & 0xFF000000) != 0;
|
2011-06-11 14:40:00 +00:00
|
|
|
|
SetColorBox();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void BrowsePalette_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
OpenFileDialog ofd = new OpenFileDialog();
|
2011-06-11 16:22:48 +00:00
|
|
|
|
ofd.InitialDirectory = PathManager.MakeAbsolutePath(Global.Config.PathNESPalette, "NES");
|
2011-06-11 14:40:00 +00:00
|
|
|
|
ofd.Filter = "Palette Files (.pal)|*.PAL|All Files (*.*)|*.*";
|
|
|
|
|
ofd.RestoreDirectory = true;
|
|
|
|
|
|
|
|
|
|
var result = ofd.ShowDialog();
|
|
|
|
|
if (result != DialogResult.OK)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
PalettePath.Text = ofd.FileName;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OK_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2011-06-11 16:22:48 +00:00
|
|
|
|
if (PalettePath.Text.Length > 0)
|
2011-06-11 14:40:00 +00:00
|
|
|
|
{
|
2011-06-11 16:22:48 +00:00
|
|
|
|
string path = PathManager.MakeAbsolutePath(PalettePath.Text, "NES");
|
|
|
|
|
palette = new HawkFile(PalettePath.Text);
|
|
|
|
|
|
|
|
|
|
if (palette != null && palette.Exists)
|
2011-06-11 14:40:00 +00:00
|
|
|
|
{
|
2011-06-11 16:22:48 +00:00
|
|
|
|
if (Global.Config.NESPaletteFile != palette.Name)
|
|
|
|
|
{
|
|
|
|
|
Global.Config.NESPaletteFile = palette.Name;
|
|
|
|
|
nes.SetPalette(NES.Palettes.Load_FCEUX_Palette(HawkFile.ReadAllBytes(palette.Name)));
|
2012-04-16 08:18:41 +00:00
|
|
|
|
Global.OSD.AddMessage("Palette file loaded: " + palette.Name);
|
2011-06-11 16:22:48 +00:00
|
|
|
|
}
|
2011-06-11 14:40:00 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2011-06-11 16:22:48 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Global.Config.NESPaletteFile = "";
|
|
|
|
|
nes.SetPalette(NES.Palettes.FCEUX_Standard);
|
2012-04-16 08:18:41 +00:00
|
|
|
|
Global.OSD.AddMessage("Standard Palette set");
|
2011-06-11 16:22:48 +00:00
|
|
|
|
}
|
|
|
|
|
|
2013-03-25 01:59:34 +00:00
|
|
|
|
Global.Config.NTSC_NESTopLine = (int)NTSC_FirstLineNumeric.Value;
|
|
|
|
|
nes.NTSC_FirstDrawLine = (int)NTSC_FirstLineNumeric.Value;
|
|
|
|
|
|
|
|
|
|
Global.Config.NTSC_NESBottomLine = (int)NTSC_LastLineNumeric.Value;
|
|
|
|
|
nes.NTSC_LastDrawLine = (int)NTSC_LastLineNumeric.Value;
|
|
|
|
|
|
|
|
|
|
Global.Config.PAL_NESTopLine = (int)PAL_FirstLineNumeric.Value;
|
|
|
|
|
nes.PAL_FirstDrawLine = (int)PAL_FirstLineNumeric.Value;
|
|
|
|
|
|
|
|
|
|
Global.Config.PAL_NESBottomLine = (int)PAL_LastLineNumeric.Value;
|
|
|
|
|
nes.PAL_LastDrawLine = (int)PAL_LastLineNumeric.Value;
|
|
|
|
|
|
2011-06-11 16:22:48 +00:00
|
|
|
|
Global.Config.NESAllowMoreThanEightSprites = AllowMoreSprites.Checked;
|
|
|
|
|
Global.Config.NESClipLeftAndRight = ClipLeftAndRightCheckBox.Checked;
|
2011-09-04 01:58:16 +00:00
|
|
|
|
nes.SetClipLeftAndRight(ClipLeftAndRightCheckBox.Checked);
|
2011-06-11 16:22:48 +00:00
|
|
|
|
Global.Config.NESAutoLoadPalette = AutoLoadPalette.Checked;
|
|
|
|
|
Global.Config.NESDispSprites = DispSprites.Checked;
|
|
|
|
|
Global.Config.NESDispBackground = DispBackground.Checked;
|
2011-06-11 22:15:08 +00:00
|
|
|
|
Global.Config.NESBackgroundColor = BGColorDialog.Color.ToArgb();
|
|
|
|
|
if (!checkUseBackdropColor.Checked)
|
|
|
|
|
Global.Config.NESBackgroundColor &= 0x00FFFFFF;
|
2011-06-11 14:40:00 +00:00
|
|
|
|
|
|
|
|
|
this.Close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void SetColorBox()
|
|
|
|
|
{
|
|
|
|
|
int color = BGColorDialog.Color.ToArgb();
|
2012-03-11 07:02:10 +00:00
|
|
|
|
BackGroundColorNumber.Text = String.Format("{0:X8}", color).Substring(2,6);
|
2011-06-11 14:40:00 +00:00
|
|
|
|
BackgroundColorPanel.BackColor = BGColorDialog.Color;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ChangeBGColor_Click(object sender, EventArgs e)
|
2012-09-03 21:52:51 +00:00
|
|
|
|
{
|
|
|
|
|
ChangeBG();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ChangeBG()
|
2011-06-11 14:40:00 +00:00
|
|
|
|
{
|
|
|
|
|
if (BGColorDialog.ShowDialog() == DialogResult.OK)
|
2012-09-03 21:52:51 +00:00
|
|
|
|
{
|
2011-06-11 14:40:00 +00:00
|
|
|
|
SetColorBox();
|
2012-09-03 21:52:51 +00:00
|
|
|
|
}
|
2011-06-11 14:40:00 +00:00
|
|
|
|
}
|
2012-03-25 08:52:52 +00:00
|
|
|
|
|
|
|
|
|
private void btnAreaStandard_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2013-03-25 01:59:34 +00:00
|
|
|
|
NTSC_FirstLineNumeric.Value = 8;
|
|
|
|
|
NTSC_LastLineNumeric.Value = 231;
|
2012-03-25 08:52:52 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void btnAreaFull_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2013-03-25 01:59:34 +00:00
|
|
|
|
NTSC_FirstLineNumeric.Value = 0;
|
|
|
|
|
NTSC_LastLineNumeric.Value = 239;
|
2012-03-25 08:52:52 +00:00
|
|
|
|
}
|
2012-09-03 21:52:51 +00:00
|
|
|
|
|
|
|
|
|
private void BackgroundColorPanel_DoubleClick(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
ChangeBG();
|
|
|
|
|
}
|
2012-09-24 03:08:32 +00:00
|
|
|
|
|
|
|
|
|
private void RestoreDefaultsButton_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2013-03-25 01:59:34 +00:00
|
|
|
|
NTSC_FirstLineNumeric.Value = 8;
|
|
|
|
|
NTSC_LastLineNumeric.Value = 231;
|
|
|
|
|
PAL_FirstLineNumeric.Value = 0;
|
|
|
|
|
PAL_LastLineNumeric.Value = 239;
|
2012-09-24 03:08:32 +00:00
|
|
|
|
AllowMoreSprites.Checked = false;
|
|
|
|
|
ClipLeftAndRightCheckBox.Checked = false;
|
|
|
|
|
AutoLoadPalette.Checked = true;
|
|
|
|
|
PalettePath.Text = "";
|
|
|
|
|
DispSprites.Checked = true;
|
|
|
|
|
DispBackground.Checked = true;
|
|
|
|
|
BGColorDialog.Color = Color.FromArgb(unchecked(0 | (int)0xFF000000));
|
|
|
|
|
checkUseBackdropColor.Checked = false;
|
|
|
|
|
SetColorBox();
|
|
|
|
|
}
|
2011-06-11 14:40:00 +00:00
|
|
|
|
}
|
|
|
|
|
}
|