MelonDS: Add (currently unused) bootToFirmware sync setting, and NDSSettings dialog.

This commit is contained in:
SuuperW 2019-12-28 05:48:56 -06:00
parent 85e91d722c
commit 56b474c005
9 changed files with 416 additions and 95 deletions

View File

@ -409,6 +409,12 @@
<Compile Include="config\N64\N64VideoPluginconfig.Designer.cs">
<DependentUpon>N64VideoPluginconfig.cs</DependentUpon>
</Compile>
<Compile Include="config\NDS\NDSSettings.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="config\NDS\NDSSettings.Designer.cs">
<DependentUpon>NDSSettings.cs</DependentUpon>
</Compile>
<Compile Include="config\NES\DataTableDictionaryBind.cs" />
<Compile Include="config\NES\NesControllerSettings.cs">
<SubType>Form</SubType>
@ -1428,6 +1434,9 @@
<EmbeddedResource Include="config\N64\N64VideoPluginconfig.resx">
<DependentUpon>N64VideoPluginconfig.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="config\NDS\NDSSettings.resx">
<DependentUpon>NDSSettings.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="config\NES\NesControllerSettings.resx">
<DependentUpon>NesControllerSettings.cs</DependentUpon>
</EmbeddedResource>

View File

@ -359,8 +359,6 @@
this.GB3xsettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.GGLSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.GGLsettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.VectrexSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.VectrexsettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.GenesisSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.vDPViewerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.GenesisGameGenieECDC = new System.Windows.Forms.ToolStripMenuItem();
@ -398,6 +396,8 @@
this.ZXSpectrumDisksSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.zxt2ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ZXSpectrumExportSnapshotMenuItemMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.VectrexSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.VectrexsettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.HelpSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.OnlineHelpMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ForumsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -485,6 +485,8 @@
this.ShowMenuContextMenuSeparator = new System.Windows.Forms.ToolStripSeparator();
this.ShowMenuContextMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.timerMouseIdle = new System.Windows.Forms.Timer(this.components);
this.NDSSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.NDSSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.MainformMenu.SuspendLayout();
this.MainStatusBar.SuspendLayout();
this.MainFormContextMenu.SuspendLayout();
@ -507,6 +509,7 @@
this.A7800SubMenu,
this.GBSubMenu,
this.GBASubMenu,
this.NDSSubMenu,
this.PSXSubMenu,
this.SNESSubMenu,
this.ColecoSubMenu,
@ -514,8 +517,8 @@
this.SaturnSubMenu,
this.DGBSubMenu,
this.DGBHawkSubMenu,
this.GB3xSubMenu,
this.GGLSubMenu,
this.GB3xSubMenu,
this.GGLSubMenu,
this.GenesisSubMenu,
this.wonderSwanToolStripMenuItem,
this.AppleSubMenu,
@ -526,7 +529,7 @@
this.virtualBoyToolStripMenuItem,
this.neoGeoPocketToolStripMenuItem,
this.zXSpectrumToolStripMenuItem,
this.VectrexSubMenu,
this.VectrexSubMenu,
this.HelpSubMenu,
this.amstradCPCToolStripMenuItem});
this.MainformMenu.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow;
@ -1164,7 +1167,7 @@
//
this.RecordAVMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.RecordHS;
this.RecordAVMenuItem.Name = "RecordAVMenuItem";
this.RecordAVMenuItem.Size = new System.Drawing.Size(223, 22);
this.RecordAVMenuItem.Size = new System.Drawing.Size(225, 22);
this.RecordAVMenuItem.Text = "&Record AVI/WAV";
this.RecordAVMenuItem.Click += new System.EventHandler(this.RecordAVMenuItem_Click);
//
@ -1172,7 +1175,7 @@
//
this.ConfigAndRecordAVMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AVI;
this.ConfigAndRecordAVMenuItem.Name = "ConfigAndRecordAVMenuItem";
this.ConfigAndRecordAVMenuItem.Size = new System.Drawing.Size(223, 22);
this.ConfigAndRecordAVMenuItem.Size = new System.Drawing.Size(225, 22);
this.ConfigAndRecordAVMenuItem.Text = "Config and Record AVI/WAV";
this.ConfigAndRecordAVMenuItem.Click += new System.EventHandler(this.ConfigAndRecordAVMenuItem_Click);
//
@ -1180,26 +1183,26 @@
//
this.StopAVIMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop;
this.StopAVIMenuItem.Name = "StopAVIMenuItem";
this.StopAVIMenuItem.Size = new System.Drawing.Size(223, 22);
this.StopAVIMenuItem.Size = new System.Drawing.Size(225, 22);
this.StopAVIMenuItem.Text = "&Stop AVI/WAV";
this.StopAVIMenuItem.Click += new System.EventHandler(this.StopAVMenuItem_Click);
//
// toolStripSeparator19
//
this.toolStripSeparator19.Name = "toolStripSeparator19";
this.toolStripSeparator19.Size = new System.Drawing.Size(220, 6);
this.toolStripSeparator19.Size = new System.Drawing.Size(222, 6);
//
// CaptureOSDMenuItem
//
this.CaptureOSDMenuItem.Name = "CaptureOSDMenuItem";
this.CaptureOSDMenuItem.Size = new System.Drawing.Size(223, 22);
this.CaptureOSDMenuItem.Size = new System.Drawing.Size(225, 22);
this.CaptureOSDMenuItem.Text = "Capture OSD";
this.CaptureOSDMenuItem.Click += new System.EventHandler(this.CaptureOSDMenuItem_Click);
//
// SynclessRecordingMenuItem
//
this.SynclessRecordingMenuItem.Name = "SynclessRecordingMenuItem";
this.SynclessRecordingMenuItem.Size = new System.Drawing.Size(223, 22);
this.SynclessRecordingMenuItem.Size = new System.Drawing.Size(225, 22);
this.SynclessRecordingMenuItem.Text = "S&yncless Recording Tools";
this.SynclessRecordingMenuItem.Click += new System.EventHandler(this.SynclessRecordingMenuItem_Click);
//
@ -1510,7 +1513,7 @@
//
this.ControllersMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController;
this.ControllersMenuItem.Name = "ControllersMenuItem";
this.ControllersMenuItem.Size = new System.Drawing.Size(180, 22);
this.ControllersMenuItem.Size = new System.Drawing.Size(179, 22);
this.ControllersMenuItem.Text = "&Controllers...";
this.ControllersMenuItem.Click += new System.EventHandler(this.ControllersMenuItem_Click);
//
@ -1518,7 +1521,7 @@
//
this.HotkeysMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.HotKeys;
this.HotkeysMenuItem.Name = "HotkeysMenuItem";
this.HotkeysMenuItem.Size = new System.Drawing.Size(180, 22);
this.HotkeysMenuItem.Size = new System.Drawing.Size(179, 22);
this.HotkeysMenuItem.Text = "&Hotkeys...";
this.HotkeysMenuItem.Click += new System.EventHandler(this.HotkeysMenuItem_Click);
//
@ -1526,7 +1529,7 @@
//
this.DisplayConfigMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("DisplayConfigMenuItem.Image")));
this.DisplayConfigMenuItem.Name = "DisplayConfigMenuItem";
this.DisplayConfigMenuItem.Size = new System.Drawing.Size(180, 22);
this.DisplayConfigMenuItem.Size = new System.Drawing.Size(179, 22);
this.DisplayConfigMenuItem.Text = "Display...";
this.DisplayConfigMenuItem.Click += new System.EventHandler(this.DisplayConfigMenuItem_Click);
//
@ -1534,7 +1537,7 @@
//
this.SoundMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AudioHS;
this.SoundMenuItem.Name = "SoundMenuItem";
this.SoundMenuItem.Size = new System.Drawing.Size(180, 22);
this.SoundMenuItem.Size = new System.Drawing.Size(179, 22);
this.SoundMenuItem.Text = "&Sound...";
this.SoundMenuItem.Click += new System.EventHandler(this.SoundMenuItem_Click);
//
@ -1542,7 +1545,7 @@
//
this.PathsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CopyFolderHS;
this.PathsMenuItem.Name = "PathsMenuItem";
this.PathsMenuItem.Size = new System.Drawing.Size(180, 22);
this.PathsMenuItem.Size = new System.Drawing.Size(179, 22);
this.PathsMenuItem.Text = "Paths...";
this.PathsMenuItem.Click += new System.EventHandler(this.PathsMenuItem_Click);
//
@ -1550,7 +1553,7 @@
//
this.FirmwaresMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("FirmwaresMenuItem.Image")));
this.FirmwaresMenuItem.Name = "FirmwaresMenuItem";
this.FirmwaresMenuItem.Size = new System.Drawing.Size(180, 22);
this.FirmwaresMenuItem.Size = new System.Drawing.Size(179, 22);
this.FirmwaresMenuItem.Text = "&Firmwares...";
this.FirmwaresMenuItem.Click += new System.EventHandler(this.FirmwaresMenuItem_Click);
//
@ -1558,7 +1561,7 @@
//
this.MessagesMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MessageConfig;
this.MessagesMenuItem.Name = "MessagesMenuItem";
this.MessagesMenuItem.Size = new System.Drawing.Size(180, 22);
this.MessagesMenuItem.Size = new System.Drawing.Size(179, 22);
this.MessagesMenuItem.Text = "&Messages...";
this.MessagesMenuItem.Click += new System.EventHandler(this.MessagesMenuItem_Click);
//
@ -1566,7 +1569,7 @@
//
this.AutofireMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Lightning;
this.AutofireMenuItem.Name = "AutofireMenuItem";
this.AutofireMenuItem.Size = new System.Drawing.Size(180, 22);
this.AutofireMenuItem.Size = new System.Drawing.Size(179, 22);
this.AutofireMenuItem.Text = "&Autofire...";
this.AutofireMenuItem.Click += new System.EventHandler(this.AutofireMenuItem_Click);
//
@ -1574,21 +1577,21 @@
//
this.RewindOptionsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Previous;
this.RewindOptionsMenuItem.Name = "RewindOptionsMenuItem";
this.RewindOptionsMenuItem.Size = new System.Drawing.Size(180, 22);
this.RewindOptionsMenuItem.Size = new System.Drawing.Size(179, 22);
this.RewindOptionsMenuItem.Text = "&Rewind && States...";
this.RewindOptionsMenuItem.Click += new System.EventHandler(this.RewindOptionsMenuItem_Click);
//
// extensionsToolStripMenuItem
//
this.extensionsToolStripMenuItem.Name = "extensionsToolStripMenuItem";
this.extensionsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.extensionsToolStripMenuItem.Size = new System.Drawing.Size(179, 22);
this.extensionsToolStripMenuItem.Text = "File Extensions...";
this.extensionsToolStripMenuItem.Click += new System.EventHandler(this.FileExtensionsMenuItem_Click);
//
// ClientOptionsMenuItem
//
this.ClientOptionsMenuItem.Name = "ClientOptionsMenuItem";
this.ClientOptionsMenuItem.Size = new System.Drawing.Size(180, 22);
this.ClientOptionsMenuItem.Size = new System.Drawing.Size(179, 22);
this.ClientOptionsMenuItem.Text = "&Customize...";
this.ClientOptionsMenuItem.Click += new System.EventHandler(this.CustomizeMenuItem_Click);
//
@ -1596,14 +1599,14 @@
//
this.ProfilesMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.user_blue_small;
this.ProfilesMenuItem.Name = "ProfilesMenuItem";
this.ProfilesMenuItem.Size = new System.Drawing.Size(180, 22);
this.ProfilesMenuItem.Size = new System.Drawing.Size(179, 22);
this.ProfilesMenuItem.Text = "&Profiles...";
this.ProfilesMenuItem.Click += new System.EventHandler(this.ProfilesMenuItem_Click);
//
// toolStripSeparator9
//
this.toolStripSeparator9.Name = "toolStripSeparator9";
this.toolStripSeparator9.Size = new System.Drawing.Size(177, 6);
this.toolStripSeparator9.Size = new System.Drawing.Size(176, 6);
//
// SpeedSkipSubMenu
//
@ -1626,7 +1629,7 @@
this.Speed200MenuItem,
this.Speed400MenuItem});
this.SpeedSkipSubMenu.Name = "SpeedSkipSubMenu";
this.SpeedSkipSubMenu.Size = new System.Drawing.Size(180, 22);
this.SpeedSkipSubMenu.Size = new System.Drawing.Size(179, 22);
this.SpeedSkipSubMenu.Text = "Speed/Skip";
this.SpeedSkipSubMenu.DropDownOpened += new System.EventHandler(this.FrameSkipMenuItem_DropDownOpened);
//
@ -1822,7 +1825,7 @@
this.InputOverHkMenuItem,
this.HkOverInputMenuItem});
this.KeyPrioritySubMenu.Name = "KeyPrioritySubMenu";
this.KeyPrioritySubMenu.Size = new System.Drawing.Size(180, 22);
this.KeyPrioritySubMenu.Size = new System.Drawing.Size(179, 22);
this.KeyPrioritySubMenu.Text = "Key Priority";
this.KeyPrioritySubMenu.DropDownOpened += new System.EventHandler(this.KeyPriorityMenuItem_DropDownOpened);
//
@ -1862,7 +1865,7 @@
this.N64VideoPluginSettingsMenuItem,
this.setLibretroCoreToolStripMenuItem});
this.CoresSubMenu.Name = "CoresSubMenu";
this.CoresSubMenu.Size = new System.Drawing.Size(180, 22);
this.CoresSubMenu.Size = new System.Drawing.Size(179, 22);
this.CoresSubMenu.Text = "Cores";
this.CoresSubMenu.DropDownOpened += new System.EventHandler(this.CoresSubMenu_DropDownOpened);
//
@ -1897,7 +1900,7 @@
this.toolStripSeparator38.Name = "toolStripSeparator38";
this.toolStripSeparator38.Size = new System.Drawing.Size(220, 6);
//
// subFrameNesHawkTASOnlyToolStripMenuItem
// SubNesHawkMenuItem
//
this.SubNesHawkMenuItem.Name = "SubNesHawkMenuItem";
this.SubNesHawkMenuItem.Size = new System.Drawing.Size(223, 22);
@ -2042,20 +2045,20 @@
// toolStripSeparator10
//
this.toolStripSeparator10.Name = "toolStripSeparator10";
this.toolStripSeparator10.Size = new System.Drawing.Size(177, 6);
this.toolStripSeparator10.Size = new System.Drawing.Size(176, 6);
//
// SaveConfigMenuItem
//
this.SaveConfigMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Save;
this.SaveConfigMenuItem.Name = "SaveConfigMenuItem";
this.SaveConfigMenuItem.Size = new System.Drawing.Size(180, 22);
this.SaveConfigMenuItem.Size = new System.Drawing.Size(179, 22);
this.SaveConfigMenuItem.Text = "Save Config";
this.SaveConfigMenuItem.Click += new System.EventHandler(this.SaveConfigMenuItem_Click);
//
// SaveConfigAsMenuItem
//
this.SaveConfigAsMenuItem.Name = "SaveConfigAsMenuItem";
this.SaveConfigAsMenuItem.Size = new System.Drawing.Size(180, 22);
this.SaveConfigAsMenuItem.Size = new System.Drawing.Size(179, 22);
this.SaveConfigAsMenuItem.Text = "Save Config As...";
this.SaveConfigAsMenuItem.Click += new System.EventHandler(this.SaveConfigAsMenuItem_Click);
//
@ -2063,14 +2066,14 @@
//
this.LoadConfigMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.LoadConfig;
this.LoadConfigMenuItem.Name = "LoadConfigMenuItem";
this.LoadConfigMenuItem.Size = new System.Drawing.Size(180, 22);
this.LoadConfigMenuItem.Size = new System.Drawing.Size(179, 22);
this.LoadConfigMenuItem.Text = "Load Config";
this.LoadConfigMenuItem.Click += new System.EventHandler(this.LoadConfigMenuItem_Click);
//
// LoadConfigFromMenuItem
//
this.LoadConfigFromMenuItem.Name = "LoadConfigFromMenuItem";
this.LoadConfigFromMenuItem.Size = new System.Drawing.Size(180, 22);
this.LoadConfigFromMenuItem.Size = new System.Drawing.Size(179, 22);
this.LoadConfigFromMenuItem.Text = "Load Config From...";
this.LoadConfigFromMenuItem.Click += new System.EventHandler(this.LoadConfigFromMenuItem_Click);
//
@ -2099,7 +2102,7 @@
this.batchRunnerToolStripMenuItem,
this.ExperimentalToolsSubMenu});
this.ToolsSubMenu.Name = "ToolsSubMenu";
this.ToolsSubMenu.Size = new System.Drawing.Size(47, 19);
this.ToolsSubMenu.Size = new System.Drawing.Size(48, 19);
this.ToolsSubMenu.Text = "&Tools";
this.ToolsSubMenu.DropDownOpened += new System.EventHandler(this.ToolsSubMenu_DropDownOpened);
//
@ -2488,7 +2491,7 @@
//
this.PceControllerSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController;
this.PceControllerSettingsMenuItem.Name = "PceControllerSettingsMenuItem";
this.PceControllerSettingsMenuItem.Size = new System.Drawing.Size(258, 22);
this.PceControllerSettingsMenuItem.Size = new System.Drawing.Size(259, 22);
this.PceControllerSettingsMenuItem.Text = "Controller Settings";
this.PceControllerSettingsMenuItem.Click += new System.EventHandler(this.PceControllerSettingsMenuItem_Click);
//
@ -2496,59 +2499,59 @@
//
this.PCEGraphicsSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.tvIcon;
this.PCEGraphicsSettingsMenuItem.Name = "PCEGraphicsSettingsMenuItem";
this.PCEGraphicsSettingsMenuItem.Size = new System.Drawing.Size(258, 22);
this.PCEGraphicsSettingsMenuItem.Size = new System.Drawing.Size(259, 22);
this.PCEGraphicsSettingsMenuItem.Text = "Graphics Settings";
this.PCEGraphicsSettingsMenuItem.Click += new System.EventHandler(this.PceGraphicsSettingsMenuItem_Click);
//
// toolStripSeparator32
//
this.toolStripSeparator32.Name = "toolStripSeparator32";
this.toolStripSeparator32.Size = new System.Drawing.Size(255, 6);
this.toolStripSeparator32.Size = new System.Drawing.Size(256, 6);
//
// PCEBGViewerMenuItem
//
this.PCEBGViewerMenuItem.Name = "PCEBGViewerMenuItem";
this.PCEBGViewerMenuItem.Size = new System.Drawing.Size(258, 22);
this.PCEBGViewerMenuItem.Size = new System.Drawing.Size(259, 22);
this.PCEBGViewerMenuItem.Text = "&BG Viewer";
this.PCEBGViewerMenuItem.Click += new System.EventHandler(this.PceBgViewerMenuItem_Click);
//
// PCEtileViewerToolStripMenuItem
//
this.PCEtileViewerToolStripMenuItem.Name = "PCEtileViewerToolStripMenuItem";
this.PCEtileViewerToolStripMenuItem.Size = new System.Drawing.Size(258, 22);
this.PCEtileViewerToolStripMenuItem.Size = new System.Drawing.Size(259, 22);
this.PCEtileViewerToolStripMenuItem.Text = "&Tile Viewer";
this.PCEtileViewerToolStripMenuItem.Click += new System.EventHandler(this.PceTileViewerMenuItem_Click);
//
// PceSoundDebuggerToolStripMenuItem
//
this.PceSoundDebuggerToolStripMenuItem.Name = "PceSoundDebuggerToolStripMenuItem";
this.PceSoundDebuggerToolStripMenuItem.Size = new System.Drawing.Size(258, 22);
this.PceSoundDebuggerToolStripMenuItem.Size = new System.Drawing.Size(259, 22);
this.PceSoundDebuggerToolStripMenuItem.Text = "&Sound Debugger";
this.PceSoundDebuggerToolStripMenuItem.Click += new System.EventHandler(this.PceSoundDebuggerMenuItem_Click);
//
// toolStripSeparator25
//
this.toolStripSeparator25.Name = "toolStripSeparator25";
this.toolStripSeparator25.Size = new System.Drawing.Size(255, 6);
this.toolStripSeparator25.Size = new System.Drawing.Size(256, 6);
//
// PCEAlwaysPerformSpriteLimitMenuItem
//
this.PCEAlwaysPerformSpriteLimitMenuItem.Name = "PCEAlwaysPerformSpriteLimitMenuItem";
this.PCEAlwaysPerformSpriteLimitMenuItem.Size = new System.Drawing.Size(258, 22);
this.PCEAlwaysPerformSpriteLimitMenuItem.Size = new System.Drawing.Size(259, 22);
this.PCEAlwaysPerformSpriteLimitMenuItem.Text = "Always Perform Sprite Limit";
this.PCEAlwaysPerformSpriteLimitMenuItem.Click += new System.EventHandler(this.PCEAlwaysPerformSpriteLimitMenuItem_Click);
//
// PCEAlwaysEqualizeVolumesMenuItem
//
this.PCEAlwaysEqualizeVolumesMenuItem.Name = "PCEAlwaysEqualizeVolumesMenuItem";
this.PCEAlwaysEqualizeVolumesMenuItem.Size = new System.Drawing.Size(258, 22);
this.PCEAlwaysEqualizeVolumesMenuItem.Size = new System.Drawing.Size(259, 22);
this.PCEAlwaysEqualizeVolumesMenuItem.Text = "Always Equalize Volumes (PCE-CD)";
this.PCEAlwaysEqualizeVolumesMenuItem.Click += new System.EventHandler(this.PCEAlwaysEqualizeVolumesMenuItem_Click);
//
// PCEArcadeCardRewindEnableMenuItem
//
this.PCEArcadeCardRewindEnableMenuItem.Name = "PCEArcadeCardRewindEnableMenuItem";
this.PCEArcadeCardRewindEnableMenuItem.Size = new System.Drawing.Size(258, 22);
this.PCEArcadeCardRewindEnableMenuItem.Size = new System.Drawing.Size(259, 22);
this.PCEArcadeCardRewindEnableMenuItem.Text = "Arcade Card Rewind-Enable Hack";
this.PCEArcadeCardRewindEnableMenuItem.Click += new System.EventHandler(this.PCEArcadeCardRewindEnableMenuItem_Click);
//
@ -2585,7 +2588,7 @@
this.SMSregionKoreaToolStripMenuItem,
this.SMSregionAutoToolStripMenuItem});
this.SMSregionToolStripMenuItem.Name = "SMSregionToolStripMenuItem";
this.SMSregionToolStripMenuItem.Size = new System.Drawing.Size(277, 22);
this.SMSregionToolStripMenuItem.Size = new System.Drawing.Size(278, 22);
this.SMSregionToolStripMenuItem.Text = "Region";
//
// SMSregionExportToolStripMenuItem
@ -2623,7 +2626,7 @@
this.SMSdisplayPalToolStripMenuItem,
this.SMSdisplayAutoToolStripMenuItem});
this.SMSdisplayToolStripMenuItem.Name = "SMSdisplayToolStripMenuItem";
this.SMSdisplayToolStripMenuItem.Size = new System.Drawing.Size(277, 22);
this.SMSdisplayToolStripMenuItem.Size = new System.Drawing.Size(278, 22);
this.SMSdisplayToolStripMenuItem.Text = "Display Type";
//
// SMSdisplayNtscToolStripMenuItem
@ -2656,7 +2659,7 @@
this.SMSControllerSportsPadToolStripMenuItem,
this.SMSControllerKeyboardToolStripMenuItem});
this.SMSControllerToolStripMenuItem.Name = "SMSControllerToolStripMenuItem";
this.SMSControllerToolStripMenuItem.Size = new System.Drawing.Size(277, 22);
this.SMSControllerToolStripMenuItem.Size = new System.Drawing.Size(278, 22);
this.SMSControllerToolStripMenuItem.Text = "&Controller Type";
//
// SMSControllerStandardToolStripMenuItem
@ -2697,94 +2700,94 @@
// SMStoolStripMenuItem2
//
this.SMStoolStripMenuItem2.Name = "SMStoolStripMenuItem2";
this.SMStoolStripMenuItem2.Size = new System.Drawing.Size(274, 6);
this.SMStoolStripMenuItem2.Size = new System.Drawing.Size(275, 6);
//
// SMSenableBIOSToolStripMenuItem
//
this.SMSenableBIOSToolStripMenuItem.Name = "SMSenableBIOSToolStripMenuItem";
this.SMSenableBIOSToolStripMenuItem.Size = new System.Drawing.Size(277, 22);
this.SMSenableBIOSToolStripMenuItem.Size = new System.Drawing.Size(278, 22);
this.SMSenableBIOSToolStripMenuItem.Text = "Enable BIOS (Must be Enabled for TAS)";
this.SMSenableBIOSToolStripMenuItem.Click += new System.EventHandler(this.SmsBiosMenuItem_Click);
//
// SMSEnableFMChipMenuItem
//
this.SMSEnableFMChipMenuItem.Name = "SMSEnableFMChipMenuItem";
this.SMSEnableFMChipMenuItem.Size = new System.Drawing.Size(277, 22);
this.SMSEnableFMChipMenuItem.Size = new System.Drawing.Size(278, 22);
this.SMSEnableFMChipMenuItem.Text = "&Enable FM Chip";
this.SMSEnableFMChipMenuItem.Click += new System.EventHandler(this.SmsEnableFmChipMenuItem_Click);
//
// SMSOverclockMenuItem
//
this.SMSOverclockMenuItem.Name = "SMSOverclockMenuItem";
this.SMSOverclockMenuItem.Size = new System.Drawing.Size(277, 22);
this.SMSOverclockMenuItem.Size = new System.Drawing.Size(278, 22);
this.SMSOverclockMenuItem.Text = "&Overclock when Known Safe";
this.SMSOverclockMenuItem.Click += new System.EventHandler(this.SMSOverclockMenuItem_Click);
//
// SMSForceStereoMenuItem
//
this.SMSForceStereoMenuItem.Name = "SMSForceStereoMenuItem";
this.SMSForceStereoMenuItem.Size = new System.Drawing.Size(277, 22);
this.SMSForceStereoMenuItem.Size = new System.Drawing.Size(278, 22);
this.SMSForceStereoMenuItem.Text = "&Force Stereo Separation";
this.SMSForceStereoMenuItem.Click += new System.EventHandler(this.SMSForceStereoMenuItem_Click);
//
// SMSSpriteLimitMenuItem
//
this.SMSSpriteLimitMenuItem.Name = "SMSSpriteLimitMenuItem";
this.SMSSpriteLimitMenuItem.Size = new System.Drawing.Size(277, 22);
this.SMSSpriteLimitMenuItem.Size = new System.Drawing.Size(278, 22);
this.SMSSpriteLimitMenuItem.Text = "Sprite &Limit";
this.SMSSpriteLimitMenuItem.Click += new System.EventHandler(this.SMSSpriteLimitMenuItem_Click);
//
// SMSDisplayOverscanMenuItem
//
this.SMSDisplayOverscanMenuItem.Name = "SMSDisplayOverscanMenuItem";
this.SMSDisplayOverscanMenuItem.Size = new System.Drawing.Size(277, 22);
this.SMSDisplayOverscanMenuItem.Size = new System.Drawing.Size(278, 22);
this.SMSDisplayOverscanMenuItem.Text = "Display Overscan";
this.SMSDisplayOverscanMenuItem.Click += new System.EventHandler(this.SMSDisplayOverscanMenuItem_Click);
//
// SMSFix3DGameDisplayToolStripMenuItem
//
this.SMSFix3DGameDisplayToolStripMenuItem.Name = "SMSFix3DGameDisplayToolStripMenuItem";
this.SMSFix3DGameDisplayToolStripMenuItem.Size = new System.Drawing.Size(277, 22);
this.SMSFix3DGameDisplayToolStripMenuItem.Size = new System.Drawing.Size(278, 22);
this.SMSFix3DGameDisplayToolStripMenuItem.Text = "Fix 3D Game Display";
this.SMSFix3DGameDisplayToolStripMenuItem.Click += new System.EventHandler(this.SMSFix3DDisplayMenuItem_Click);
//
// ShowClippedRegionsMenuItem
//
this.ShowClippedRegionsMenuItem.Name = "ShowClippedRegionsMenuItem";
this.ShowClippedRegionsMenuItem.Size = new System.Drawing.Size(277, 22);
this.ShowClippedRegionsMenuItem.Size = new System.Drawing.Size(278, 22);
this.ShowClippedRegionsMenuItem.Text = "&Show Clipped Regions";
this.ShowClippedRegionsMenuItem.Click += new System.EventHandler(this.ShowClippedRegionsMenuItem_Click);
//
// HighlightActiveDisplayRegionMenuItem
//
this.HighlightActiveDisplayRegionMenuItem.Name = "HighlightActiveDisplayRegionMenuItem";
this.HighlightActiveDisplayRegionMenuItem.Size = new System.Drawing.Size(277, 22);
this.HighlightActiveDisplayRegionMenuItem.Size = new System.Drawing.Size(278, 22);
this.HighlightActiveDisplayRegionMenuItem.Text = "&Highlight Active Display Region";
this.HighlightActiveDisplayRegionMenuItem.Click += new System.EventHandler(this.HighlightActiveDisplayRegionMenuItem_Click);
//
// SMSGraphicsSettingsMenuItem
//
this.SMSGraphicsSettingsMenuItem.Name = "SMSGraphicsSettingsMenuItem";
this.SMSGraphicsSettingsMenuItem.Size = new System.Drawing.Size(277, 22);
this.SMSGraphicsSettingsMenuItem.Size = new System.Drawing.Size(278, 22);
this.SMSGraphicsSettingsMenuItem.Text = "&Graphics Settings...";
this.SMSGraphicsSettingsMenuItem.Click += new System.EventHandler(this.SMSGraphicsSettingsMenuItem_Click);
//
// toolStripSeparator24
//
this.toolStripSeparator24.Name = "toolStripSeparator24";
this.toolStripSeparator24.Size = new System.Drawing.Size(274, 6);
this.toolStripSeparator24.Size = new System.Drawing.Size(275, 6);
//
// SMSVDPViewerToolStripMenuItem
//
this.SMSVDPViewerToolStripMenuItem.Name = "SMSVDPViewerToolStripMenuItem";
this.SMSVDPViewerToolStripMenuItem.Size = new System.Drawing.Size(277, 22);
this.SMSVDPViewerToolStripMenuItem.Size = new System.Drawing.Size(278, 22);
this.SMSVDPViewerToolStripMenuItem.Text = "&VDP Viewer";
this.SMSVDPViewerToolStripMenuItem.Click += new System.EventHandler(this.SmsVdpViewerMenuItem_Click);
//
// GGGameGenieMenuItem
//
this.GGGameGenieMenuItem.Name = "GGGameGenieMenuItem";
this.GGGameGenieMenuItem.Size = new System.Drawing.Size(277, 22);
this.GGGameGenieMenuItem.Size = new System.Drawing.Size(278, 22);
this.GGGameGenieMenuItem.Text = "&Game Genie Encoder/Decoder";
this.GGGameGenieMenuItem.Click += new System.EventHandler(this.GGGameGenieMenuItem_Click);
//
@ -2947,7 +2950,7 @@
this.GBAmGBAMenuItem,
this.GBAVBANextMenuItem});
this.GBACoreSelectionSubMenu.Name = "GBACoreSelectionSubMenu";
this.GBACoreSelectionSubMenu.Size = new System.Drawing.Size(135, 22);
this.GBACoreSelectionSubMenu.Size = new System.Drawing.Size(180, 22);
this.GBACoreSelectionSubMenu.Text = "&Core";
this.GBACoreSelectionSubMenu.DropDownOpened += new System.EventHandler(this.GBACoreSelectionSubMenu_DropDownOpened);
//
@ -2968,19 +2971,19 @@
// GBAcoresettingsToolStripMenuItem1
//
this.GBAcoresettingsToolStripMenuItem1.Name = "GBAcoresettingsToolStripMenuItem1";
this.GBAcoresettingsToolStripMenuItem1.Size = new System.Drawing.Size(135, 22);
this.GBAcoresettingsToolStripMenuItem1.Size = new System.Drawing.Size(180, 22);
this.GBAcoresettingsToolStripMenuItem1.Text = "&Settings...";
this.GBAcoresettingsToolStripMenuItem1.Click += new System.EventHandler(this.GBAcoresettingsToolStripMenuItem1_Click);
//
// toolStripSeparator33
//
this.toolStripSeparator33.Name = "toolStripSeparator33";
this.toolStripSeparator33.Size = new System.Drawing.Size(132, 6);
this.toolStripSeparator33.Size = new System.Drawing.Size(177, 6);
//
// GbaGpuViewerMenuItem
//
this.GbaGpuViewerMenuItem.Name = "GbaGpuViewerMenuItem";
this.GbaGpuViewerMenuItem.Size = new System.Drawing.Size(135, 22);
this.GbaGpuViewerMenuItem.Size = new System.Drawing.Size(180, 22);
this.GbaGpuViewerMenuItem.Text = "GPU Viewer";
this.GbaGpuViewerMenuItem.Click += new System.EventHandler(this.GbaGpuViewerMenuItem_Click);
//
@ -3224,9 +3227,9 @@
// GB3xSubMenu
//
this.GB3xSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.GB3xsettingsToolStripMenuItem});
this.GB3xsettingsToolStripMenuItem});
this.GB3xSubMenu.Name = "GB3xSubMenu";
this.GB3xSubMenu.Size = new System.Drawing.Size(59, 19);
this.GB3xSubMenu.Size = new System.Drawing.Size(73, 19);
this.GB3xSubMenu.Text = "&GB Link 3x";
//
// GB3xsettingsToolStripMenuItem
@ -3251,21 +3254,6 @@
this.GGLsettingsToolStripMenuItem.Text = "Settings...";
this.GGLsettingsToolStripMenuItem.Click += new System.EventHandler(this.GGLSettingsMenuItem_Click);
//
// VectrexSubMenu
//
this.VectrexSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.VectrexsettingsToolStripMenuItem});
this.VectrexSubMenu.Name = "VectrexSubMenu";
this.VectrexSubMenu.Size = new System.Drawing.Size(60, 19);
this.VectrexSubMenu.Text = "&Vectrex";
//
// VectrexsettingsToolStripMenuItem
//
this.VectrexsettingsToolStripMenuItem.Name = "VectrexsettingsToolStripMenuItem";
this.VectrexsettingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22);
this.VectrexsettingsToolStripMenuItem.Text = "Settings...";
this.VectrexsettingsToolStripMenuItem.Click += new System.EventHandler(this.VectrexSettingsMenuItem_Click);
//
// GenesisSubMenu
//
this.GenesisSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -3554,6 +3542,21 @@
this.ZXSpectrumExportSnapshotMenuItemMenuItem.Text = "Export Snapshot";
this.ZXSpectrumExportSnapshotMenuItemMenuItem.Click += new System.EventHandler(this.ZXSpectrumExportSnapshotMenuItemMenuItem_Click);
//
// VectrexSubMenu
//
this.VectrexSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.VectrexsettingsToolStripMenuItem});
this.VectrexSubMenu.Name = "VectrexSubMenu";
this.VectrexSubMenu.Size = new System.Drawing.Size(57, 19);
this.VectrexSubMenu.Text = "&Vectrex";
//
// VectrexsettingsToolStripMenuItem
//
this.VectrexsettingsToolStripMenuItem.Name = "VectrexsettingsToolStripMenuItem";
this.VectrexsettingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22);
this.VectrexsettingsToolStripMenuItem.Text = "Settings...";
this.VectrexsettingsToolStripMenuItem.Click += new System.EventHandler(this.VectrexSettingsMenuItem_Click);
//
// HelpSubMenu
//
this.HelpSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -3653,7 +3656,7 @@
this.AmstradCPCTapesSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.cpct1ToolStripMenuItem});
this.AmstradCPCTapesSubMenu.Name = "AmstradCPCTapesSubMenu";
this.AmstradCPCTapesSubMenu.Size = new System.Drawing.Size(104, 22);
this.AmstradCPCTapesSubMenu.Size = new System.Drawing.Size(105, 22);
this.AmstradCPCTapesSubMenu.Text = "Tapes";
this.AmstradCPCTapesSubMenu.DropDownOpened += new System.EventHandler(this.AmstradCPCTapesSubMenu_DropDownOpened);
//
@ -3668,7 +3671,7 @@
this.AmstradCPCDisksSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.cpcd1ToolStripMenuItem});
this.AmstradCPCDisksSubMenu.Name = "AmstradCPCDisksSubMenu";
this.AmstradCPCDisksSubMenu.Size = new System.Drawing.Size(104, 22);
this.AmstradCPCDisksSubMenu.Size = new System.Drawing.Size(105, 22);
this.AmstradCPCDisksSubMenu.Text = "Disks";
this.AmstradCPCDisksSubMenu.DropDownOpened += new System.EventHandler(this.AmstradCPCDisksSubMenu_DropDownOpened);
//
@ -4305,6 +4308,21 @@
this.timerMouseIdle.Interval = 2000;
this.timerMouseIdle.Tick += new System.EventHandler(this.TimerMouseIdle_Tick);
//
// NDSSubMenu
//
this.NDSSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.NDSSettingsMenuItem});
this.NDSSubMenu.Name = "NDSSubMenu";
this.NDSSubMenu.Size = new System.Drawing.Size(42, 19);
this.NDSSubMenu.Text = "NDS";
//
// NDSSettingsMenuItem
//
this.NDSSettingsMenuItem.Name = "NDSSettingsMenuItem";
this.NDSSettingsMenuItem.Size = new System.Drawing.Size(180, 22);
this.NDSSettingsMenuItem.Text = "Settings...";
this.NDSSettingsMenuItem.Click += new System.EventHandler(this.NDSSettingsMenuItem_Click);
//
// MainForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@ -4801,5 +4819,7 @@
private System.Windows.Forms.ToolStripMenuItem AmstradCPCNonSyncSettingsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem SubNesHawkMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator38;
private System.Windows.Forms.ToolStripMenuItem NDSSubMenu;
private System.Windows.Forms.ToolStripMenuItem NDSSettingsMenuItem;
}
}

View File

@ -2180,6 +2180,21 @@ namespace BizHawk.Client.EmuHawk
#endregion
#region NDS
private void NDSSettingsMenuItem_Click(object sender, EventArgs e)
{
DialogResult result = new NDSSettings().ShowDialog();
if (result == DialogResult.OK)
GlobalWin.OSD.AddMessage("Settings saved.");
else if (result == DialogResult.Yes)
FlagNeedsReboot();
else
GlobalWin.OSD.AddMessage("Settings aborted.");
}
#endregion
#region PSX
private void PSXSubMenu_DropDownOpened(object sender, EventArgs e)

View File

@ -1720,6 +1720,7 @@ namespace BizHawk.Client.EmuHawk
SMSSubMenu.Visible = false;
GBSubMenu.Visible = false;
GBASubMenu.Visible = false;
NDSSubMenu.Visible = false;
AtariSubMenu.Visible = false;
A7800SubMenu.Visible = false;
SNESSubMenu.Visible = false;
@ -1779,6 +1780,9 @@ namespace BizHawk.Client.EmuHawk
case "GBA":
GBASubMenu.Visible = true;
break;
case "NDS":
NDSSubMenu.Visible = true;
break;
case "A26":
AtariSubMenu.Visible = true;
break;

View File

@ -0,0 +1,95 @@
namespace BizHawk.Client.EmuHawk
{
partial class NDSSettings
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.chkBootToFirmware = new System.Windows.Forms.CheckBox();
this.btnCancel = new System.Windows.Forms.Button();
this.btnSave = new System.Windows.Forms.Button();
this.ttipFirmware = new System.Windows.Forms.ToolTip(this.components);
this.SuspendLayout();
//
// chkBootToFirmware
//
this.chkBootToFirmware.AutoSize = true;
this.chkBootToFirmware.Location = new System.Drawing.Point(12, 12);
this.chkBootToFirmware.Name = "chkBootToFirmware";
this.chkBootToFirmware.Size = new System.Drawing.Size(102, 17);
this.chkBootToFirmware.TabIndex = 0;
this.chkBootToFirmware.Text = "Boot to firmware";
this.ttipFirmware.SetToolTip(this.chkBootToFirmware, "This option requires that a firmware file be in use, as well as both bios files. " +
"See Config -> Firmwares.");
this.chkBootToFirmware.UseVisualStyleBackColor = true;
//
// btnCancel
//
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnCancel.Location = new System.Drawing.Point(138, 40);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(66, 23);
this.btnCancel.TabIndex = 1;
this.btnCancel.Text = "Cancel";
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// btnSave
//
this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnSave.Location = new System.Drawing.Point(66, 40);
this.btnSave.Name = "btnSave";
this.btnSave.Size = new System.Drawing.Size(66, 23);
this.btnSave.TabIndex = 1;
this.btnSave.Text = "Save";
this.btnSave.UseVisualStyleBackColor = true;
this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
//
// NDSSettings
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(216, 75);
this.Controls.Add(this.btnSave);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.chkBootToFirmware);
this.Name = "NDSSettings";
this.Text = "NDSSettings";
this.Load += new System.EventHandler(this.NDSSettings_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.CheckBox chkBootToFirmware;
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.Button btnSave;
private System.Windows.Forms.ToolTip ttipFirmware;
}
}

View File

@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using BizHawk.Client.Common;
using BizHawk.Emulation.Cores.Consoles.Nintendo.NDS;
namespace BizHawk.Client.EmuHawk
{
public partial class NDSSettings : Form
{
public NDSSettings()
{
InitializeComponent();
}
MelonDS.MelonSyncSettings syncSettings;
private void NDSSettings_Load(object sender, EventArgs e)
{
syncSettings = Global.Config.GetCoreSyncSettings<MelonDS>() as MelonDS.MelonSyncSettings;
chkBootToFirmware.Checked = syncSettings.bootToFirmware;
}
private void btnCancel_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
Close();
}
private void btnSave_Click(object sender, EventArgs e)
{
syncSettings.bootToFirmware = chkBootToFirmware.Checked;
Global.Config.PutCoreSyncSettings<MelonDS>(syncSettings);
bool reboot = (Global.Emulator as MelonDS).PutSyncSettings(syncSettings);
DialogResult = reboot ? DialogResult.Yes : DialogResult.OK;
Close();
}
}
}

View File

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="ttipFirmware.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@ -133,7 +133,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.NDS
fwBytes = CoreComm.CoreFileProvider.GetFirmware("NDS", "firmware", false);
if (fwBytes != null)
{
ss.data.CopyTo(fwBytes, fwBytes.Length - 0x200); // NDS user settings are included in the firmware file.
ss.userSettings.CopyTo(fwBytes, fwBytes.Length - 0x200); // NDS user settings are included in the firmware file.
File.WriteAllBytes("melon/firmware.bin", fwBytes);
}
else

View File

@ -6,6 +6,7 @@ using System.Threading.Tasks;
using System.Runtime.InteropServices;
using BizHawk.Emulation.Common;
using Newtonsoft.Json;
namespace BizHawk.Emulation.Cores.Consoles.Nintendo.NDS
{
@ -19,7 +20,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.NDS
public MelonSyncSettings GetSyncSettings()
{
MelonSyncSettings ret = new MelonSyncSettings();
fixed (byte* ptr = ret.data)
fixed (byte* ptr = ret.userSettings)
GetUserSettings(ptr);
return ret;
}
@ -51,20 +52,25 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.NDS
{
public MelonSyncSettings()
{
data = new byte[userSettingsLength];
userSettings = new byte[userSettingsLength];
}
public byte[] data;
public bool bootToFirmware;
public byte[] userSettings;
public byte favoriteColor => data[2];
public byte birthdayMonth => data[3];
public byte birthdayDay => data[4];
[JsonIgnore]
public byte favoriteColor => userSettings[2];
[JsonIgnore]
public byte birthdayMonth => userSettings[3];
[JsonIgnore]
public byte birthdayDay => userSettings[4];
const int maxNicknameLength = 10;
[JsonIgnore]
public string nickname
{
get
{
fixed (byte* ptr = data)
fixed (byte* ptr = userSettings)
return Encoding.Unicode.GetString(ptr + 6, nicknameLength * 2);
}
set
@ -76,11 +82,12 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.NDS
if (Encoding.Unicode.GetBytes(value, 0, value.Length, nick, 0) != value.Length * 2)
return;
// The extra 2 bytes on the end will overwrite nickname length, which is set immediately after
nick.CopyTo(data, 6);
data[0x1A] = (byte)value.Length;
nick.CopyTo(userSettings, 6);
userSettings[0x1A] = (byte)value.Length;
}
}
public short nicknameLength { get => data[0x1A]; }
[JsonIgnore]
public short nicknameLength { get => userSettings[0x1A]; }
}
}
}