SMS: Add Export/Japan, NTSC/PAL, Enable BIOS options to SMS menu. Not yet hooked up to core.

This commit is contained in:
beirich 2014-03-13 04:15:05 +00:00
parent 07e984582d
commit 8daab82463
3 changed files with 124 additions and 6 deletions

View File

@ -230,6 +230,13 @@
this.PCEArcadeCardRewindEnableMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.PCEGraphicsSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SMSSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.SMSexportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SMSjapanToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SMStoolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
this.SMS_NTSCToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SMS_PALToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SMStoolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
this.SMSenableBIOSToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SMSEnableFMChipMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SMSOverclockMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SMSForceStereoMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -2062,6 +2069,13 @@
// SMSSubMenu
//
this.SMSSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.SMSexportToolStripMenuItem,
this.SMSjapanToolStripMenuItem,
this.SMStoolStripMenuItem1,
this.SMS_NTSCToolStripMenuItem,
this.SMS_PALToolStripMenuItem,
this.SMStoolStripMenuItem2,
this.SMSenableBIOSToolStripMenuItem,
this.SMSEnableFMChipMenuItem,
this.SMSOverclockMenuItem,
this.SMSForceStereoMenuItem,
@ -2078,6 +2092,51 @@
this.SMSSubMenu.Text = "&SMS";
this.SMSSubMenu.DropDownOpened += new System.EventHandler(this.SMSSubMenu_DropDownOpened);
//
// SMSexportToolStripMenuItem
//
this.SMSexportToolStripMenuItem.Name = "SMSexportToolStripMenuItem";
this.SMSexportToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
this.SMSexportToolStripMenuItem.Text = "Export";
this.SMSexportToolStripMenuItem.Click += new System.EventHandler(this.SMS_Export_Click);
//
// SMSjapanToolStripMenuItem
//
this.SMSjapanToolStripMenuItem.Name = "SMSjapanToolStripMenuItem";
this.SMSjapanToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
this.SMSjapanToolStripMenuItem.Text = "Japan";
this.SMSjapanToolStripMenuItem.Click += new System.EventHandler(this.SMS_Japan_Click);
//
// SMStoolStripMenuItem1
//
this.SMStoolStripMenuItem1.Name = "SMStoolStripMenuItem1";
this.SMStoolStripMenuItem1.Size = new System.Drawing.Size(238, 6);
//
// SMS_NTSCToolStripMenuItem
//
this.SMS_NTSCToolStripMenuItem.Name = "SMS_NTSCToolStripMenuItem";
this.SMS_NTSCToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
this.SMS_NTSCToolStripMenuItem.Text = "NTSC";
this.SMS_NTSCToolStripMenuItem.Click += new System.EventHandler(this.SMS_NTSC_Click);
//
// SMS_PALToolStripMenuItem
//
this.SMS_PALToolStripMenuItem.Name = "SMS_PALToolStripMenuItem";
this.SMS_PALToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
this.SMS_PALToolStripMenuItem.Text = "PAL";
this.SMS_PALToolStripMenuItem.Click += new System.EventHandler(this.SMS_PAL_Click);
//
// SMStoolStripMenuItem2
//
this.SMStoolStripMenuItem2.Name = "SMStoolStripMenuItem2";
this.SMStoolStripMenuItem2.Size = new System.Drawing.Size(238, 6);
//
// SMSenableBIOSToolStripMenuItem
//
this.SMSenableBIOSToolStripMenuItem.Name = "SMSenableBIOSToolStripMenuItem";
this.SMSenableBIOSToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
this.SMSenableBIOSToolStripMenuItem.Text = "Enable BIOS";
this.SMSenableBIOSToolStripMenuItem.Click += new System.EventHandler(this.SMS_BIOS_Click);
//
// SMSEnableFMChipMenuItem
//
this.SMSEnableFMChipMenuItem.Name = "SMSEnableFMChipMenuItem";
@ -3378,6 +3437,13 @@
private System.Windows.Forms.ToolStripMenuItem codeDataLoggerToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem vDPViewerToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem SMSFix3DGameDisplayToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator SMStoolStripMenuItem2;
private System.Windows.Forms.ToolStripMenuItem SMSexportToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem SMSjapanToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator SMStoolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem SMS_NTSCToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem SMS_PALToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem SMSenableBIOSToolStripMenuItem;
}
}

View File

@ -1290,6 +1290,11 @@ namespace BizHawk.Client.EmuHawk
{
var s = (SMS.SMSSettings)Global.Emulator.GetSettings();
var ss = (SMS.SMSSyncSettings)Global.Emulator.GetSyncSettings();
SMSexportToolStripMenuItem.Checked = ss.ExportRegion;
SMSjapanToolStripMenuItem.Checked = !ss.ExportRegion;
SMS_NTSCToolStripMenuItem.Checked = !ss.UsePAL;
SMS_PALToolStripMenuItem.Checked = ss.UsePAL;
SMSenableBIOSToolStripMenuItem.Checked = ss.UseBIOS;
SMSEnableFMChipMenuItem.Checked = ss.EnableFM;
SMSOverclockMenuItem.Checked = ss.AllowOverlock;
SMSForceStereoMenuItem.Checked = s.ForceStereoSeparation;
@ -1298,10 +1303,16 @@ namespace BizHawk.Client.EmuHawk
ShowClippedRegionsMenuItem.Checked = s.ShowClippedRegions;
HighlightActiveDisplayRegionMenuItem.Checked = s.HighlightActiveDisplayRegion;
SMSFix3DGameDisplayToolStripMenuItem.Visible =
SMSenableBIOSToolStripMenuItem.Visible =
Global.Game.System == "SMS";
SMSEnableFMChipMenuItem.Visible =
SMSOverclockMenuItem.Visible =
SMSForceStereoMenuItem.Visible =
SMSFix3DGameDisplayToolStripMenuItem.Visible =
SMS_NTSCToolStripMenuItem.Visible =
SMS_PALToolStripMenuItem.Visible =
SMStoolStripMenuItem2.Visible =
Global.Game.System != "GG";
ShowClippedRegionsMenuItem.Visible =
@ -1310,6 +1321,41 @@ namespace BizHawk.Client.EmuHawk
Global.Game.System == "GG";
}
private void SMS_Export_Click(object sender, EventArgs e)
{
var ss = (SMS.SMSSyncSettings)Global.Emulator.GetSyncSettings();
ss.ExportRegion = true;
PutCoreSyncSettings(ss);
}
private void SMS_Japan_Click(object sender, EventArgs e)
{
var ss = (SMS.SMSSyncSettings)Global.Emulator.GetSyncSettings();
ss.ExportRegion = false;
PutCoreSyncSettings(ss);
}
private void SMS_NTSC_Click(object sender, EventArgs e)
{
var ss = (SMS.SMSSyncSettings)Global.Emulator.GetSyncSettings();
ss.UsePAL = false;
PutCoreSyncSettings(ss);
}
private void SMS_PAL_Click(object sender, EventArgs e)
{
var ss = (SMS.SMSSyncSettings)Global.Emulator.GetSyncSettings();
ss.UsePAL = true;
PutCoreSyncSettings(ss);
}
private void SMS_BIOS_Click(object sender, EventArgs e)
{
var ss = (SMS.SMSSyncSettings)Global.Emulator.GetSyncSettings();
ss.UseBIOS ^= true;
PutCoreSyncSettings(ss);
}
private void SMSEnableFMChipMenuItem_Click(object sender, EventArgs e)
{
var ss = (SMS.SMSSyncSettings)Global.Emulator.GetSyncSettings();

View File

@ -14,10 +14,7 @@ using BizHawk.Emulation.Cores.Components.Z80;
+ HCounter
+ Try to clean up the organization of the source code.
+ Lightgun/Paddle/etc if I get really bored
+ SG-1000 TMS does not fire sprite collision bit
+ SG-1000 TMS sprite doubling most likely does not work!
+ Maybe try to unify the Coleco TMS with SG-1000? Or at least pull in other TMS fixes.
+ Mode 1 not implemented in VDP TMS modes. (I dont have a test case in SG1000 or Coleco)
**********************************************************/
@ -542,6 +539,7 @@ namespace BizHawk.Emulation.Cores.Sega.MasterSystem
public class SMSSettings
{
// Game settings
public bool ForceStereoSeparation = false;
public bool SpriteLimit = false;
public bool Fix3D = true;
@ -566,6 +564,9 @@ namespace BizHawk.Emulation.Cores.Sega.MasterSystem
{
public bool EnableFM = true;
public bool AllowOverlock = false;
public bool UseBIOS = false;
public bool ExportRegion = true;
public bool UsePAL = false;
public SMSSyncSettings Clone()
{
@ -573,7 +574,12 @@ namespace BizHawk.Emulation.Cores.Sega.MasterSystem
}
public static bool RebootNeeded(SMSSyncSettings x, SMSSyncSettings y)
{
return x.EnableFM != y.EnableFM || x.AllowOverlock != y.AllowOverlock;
return
x.EnableFM != y.EnableFM ||
x.AllowOverlock != y.AllowOverlock ||
x.UseBIOS != y.UseBIOS ||
x.ExportRegion != y.ExportRegion ||
x.UsePAL != y.UsePAL;
}
}
}