Example #1
0
 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();
         }
     }
 }
Example #2
0
 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();
             }
         }
     }
 }
Example #3
0
        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();
        }
Example #4
0
        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;
        }
Example #5
0
 private void newToolStripMenuItem_Click(object sender, EventArgs e)
 {
     _originalData = NIN_CFG.Default;
     Populate();
 }