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 BizHawk.Emulation.Cores.Nintendo.NES; using BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES; using BizHawk.Client.Common; using BizHawk.Common; namespace BizHawk.Client.EmuHawk.config.NES { public partial class QuickNesConfig : Form { private QuickNES.QuickNESSettings Settings; public QuickNesConfig() { InitializeComponent(); } private void QuickNesConfig_Load(object sender, EventArgs e) { Settings = (QuickNES.QuickNESSettings)Global.Emulator.GetSettings(); propertyGrid1.SelectedObject = Settings; SetPaletteImage(); } void SetPaletteImage() { int w = pictureBox1.Size.Width; int h = pictureBox1.Size.Height; var bmp = new Bitmap(w, h); var pal = Settings.Palette; for (int j = 0; j < h; j++) { int iy = j * 12 / h; int cy = iy / 3; for (int i = 0; i < w; i++) { int ix = i * 112 / w; int cx = ix / 7; if (iy % 3 == 2) { cx += 64 * (ix % 7 + 1); } int cindex = cy * 16 + cx; Color col = Color.FromArgb(0xff, pal[cindex * 3], pal[cindex * 3 + 1], pal[cindex * 3 + 2]); bmp.SetPixel(i, j, col); } } pictureBox1.Image = bmp; } private void buttonPal_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog { InitialDirectory = PathManager.MakeAbsolutePath(Global.Config.PathEntries["NES", "Palettes"].Path, "NES"), Filter = "Palette Files (.pal)|*.PAL|All Files (*.*)|*.*", RestoreDirectory = true }; var result = ofd.ShowDialog(); if (result != DialogResult.OK) { return; } HawkFile palette = new HawkFile(ofd.FileName); if (palette != null && palette.Exists) { var data = BizHawk.Emulation.Cores.Nintendo.NES.NES.Palettes.Load_FCEUX_Palette(HawkFile.ReadAllBytes(palette.Name)); Settings.SetNesHawkPalette(data); SetPaletteImage(); } } private void buttonOK_Click(object sender, EventArgs e) { GlobalWin.MainForm.PutCoreSettings(Settings); DialogResult = DialogResult.OK; Close(); } private void buttonPalReset_Click(object sender, EventArgs e) { Settings.SetDefaultColors(); SetPaletteImage(); } } }