private void openToolStripMenuItem_Click(object sender, EventArgs e) { using (var dialog = new OpenFileDialog()) { dialog.DefaultExt = "bin"; if (dialog.ShowDialog(this) == DialogResult.OK) { _originalData = NIN_CFG.Read(File.ReadAllBytes(dialog.FileName)); Populate(); } } }
private void importMetaxmlToolStripMenuItem_Click(object sender, EventArgs e) { using (var dialog = new OpenFileDialog()) { dialog.Filter = "Homebrew Channel meta.xml files (*.xml)|*.xml"; if (dialog.ShowDialog(this) == DialogResult.OK) { using (var fs = new FileStream(dialog.FileName, FileMode.Open, FileAccess.Read)) { MetaXml xml = new XmlSerializer(typeof(MetaXml)).Deserialize(fs) as MetaXml; string base64 = xml?.Arguments?.FirstOrDefault(); if (base64 == null) { throw new Exception("Could not find a base-64-encoded nincfg.dat in the first argument in meta.xml."); } _originalData = NIN_CFG.Read(Convert.FromBase64String(base64)); Populate(); } } } }
public Form1() { InitializeComponent(); _checkboxes = new Dictionary <NinCFGFlags, CheckBox>(); foreach (object o in Enum.GetValues(typeof(NinCFGFlags))) { NinCFGFlags v = (NinCFGFlags)o; CheckBox box = new CheckBox { Text = v.ToString().Replace('_', ' '), AutoSize = true }; box.CheckedChanged += (sender, e) => { _workingData.Flags &= ~v; if (box.Checked) { _workingData.Flags |= v; } UpdateHexBox(); }; flowLayoutPanel1.Controls.Add(box); _checkboxes.Add(v, box); if (v == NinCFGFlags.Cheat_Path) { box.CheckedChanged += (s, e) => txtCheatPath.Enabled = btnCheatPathBrowse.Enabled = box.Checked; } if (_flagDescriptions.TryGetValue(v, out string desc)) { flowLayoutPanel1.Controls.Add(new Label { Text = desc, Padding = new Padding(16, 0, 0, 4), AutoSize = true }); } } _originalData = NIN_CFG.Default; Populate(); }
public void Populate() { _workingData = _originalData; UpdateHexBox(); foreach (var pair in _checkboxes) { pair.Value.Checked = _workingData.Flags.HasFlag(pair.Key); } ddlVideoMode.Items.Clear(); foreach (object o in Enum.GetValues(typeof(NinCFGVideoModeHigh))) { ddlVideoMode.Items.Add(o); if ((NinCFGVideoModeHigh)o == _workingData.VideoModeHigh) { ddlVideoMode.SelectedIndex = ddlVideoMode.Items.Count - 1; } } if (ddlVideoMode.SelectedIndex == -1) { ddlVideoMode.Items.Add(_workingData.VideoModeHigh); ddlVideoMode.SelectedIndex = ddlVideoMode.Items.Count - 1; } ddlForceVideoMode.Items.Clear(); foreach (NinCFGVideoModeLow o in new[] { NinCFGVideoModeLow.PAL50, NinCFGVideoModeLow.PAL60, NinCFGVideoModeLow.NTSC, NinCFGVideoModeLow.MPAL }) { ddlForceVideoMode.Items.Add(o); if (o == _workingData.ForcedVideoMode) { ddlForceVideoMode.SelectedIndex = ddlForceVideoMode.Items.Count - 1; } } if (ddlForceVideoMode.SelectedIndex == -1) { ddlForceVideoMode.Items.Add(_workingData.ForcedVideoMode); ddlForceVideoMode.SelectedIndex = ddlForceVideoMode.Items.Count - 1; } chkPatchPAL50.Checked = _workingData.PatchPAL50; ddlLanguage.Items.Clear(); foreach (object o in Enum.GetValues(typeof(NinCFGLanguage))) { ddlLanguage.Items.Add(o); if ((NinCFGLanguage)o == _workingData.Language) { ddlLanguage.SelectedIndex = ddlLanguage.Items.Count - 1; } } txtGamePath.Text = _workingData.GamePath; txtCheatPath.Text = _workingData.CheatPath; numMaxPads.Value = _workingData.MaxPads; textBox1.Text = _workingData.GameID; ddlMemCardBlocks.Items.Clear(); foreach (int size in new[] { 59, 251, _workingData.MemoryCardBlocks }.Distinct()) { ddlMemCardBlocks.Items.Add(size); if (size == _workingData.MemoryCardBlocks) { ddlMemCardBlocks.SelectedIndex = ddlMemCardBlocks.Items.Count - 1; } } if (_workingData.VideoScale == 0) { chkVideoWidthAuto.Checked = true; numVideoScale.Value = 640; } else { chkVideoWidthAuto.Checked = false; numVideoScale.Value = _workingData.VideoScale + 600; } numVideoOffset.Value = _workingData.VideoOffset; }
private void newToolStripMenuItem_Click(object sender, EventArgs e) { _originalData = NIN_CFG.Default; Populate(); }