preliminary SGB support.

1) choose your SGB rom from the path config (should probably be an .smc file of about 256KB)
2) turn on Load GB as SGB from the GB menu.
3) load rom again.
To turn off, uncheck Load GB as SGB from the SGB menu.
This commit is contained in:
goyuken 2012-09-26 15:59:14 +00:00
parent f1a31bcac8
commit fc8087c344
8 changed files with 1350 additions and 1211 deletions

View File

@ -38,12 +38,27 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
public static extern void snes_unload_cartridge();
[DllImport("libsneshawk.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void snes_load_cartridge_normal(
[return: MarshalAs(UnmanagedType.U1)]
public static extern bool snes_load_cartridge_normal(
[MarshalAs(UnmanagedType.LPStr)]
string rom_xml,
[MarshalAs(UnmanagedType.LPArray)]
byte[] rom_data,
int rom_size);
uint rom_size);
[DllImport("libsneshawk.dll", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.U1)]
public static extern bool snes_load_cartridge_super_game_boy(
[MarshalAs(UnmanagedType.LPStr)]
string rom_xml,
[MarshalAs(UnmanagedType.LPArray)]
byte[] rom_data,
uint rom_size,
[MarshalAs(UnmanagedType.LPStr)]
string dmg_xml,
[MarshalAs(UnmanagedType.LPArray)]
byte[] dmg_data,
uint dmg_size);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void snes_video_refresh_t(int *data, int width, int height);
@ -291,7 +306,7 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
ScanlineHookManager.HandleScanline(line);
}
public LibsnesCore(byte[] romData)
public LibsnesCore(GameInfo game, byte[] romData, byte[] sgbRomData = null)
{
//attach this core as the current
if(CurrLibsnesCore != null)
@ -329,8 +344,19 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
Array.Copy(romData, 512, newData, 0, newData.Length);
romData = newData;
}
LibsnesDll.snes_load_cartridge_normal(null, romData, romData.Length);
if (game["SGB"])
{
SystemId = "SGB";
if (!LibsnesDll.snes_load_cartridge_super_game_boy(null, sgbRomData, (uint)sgbRomData.Length, null, romData, (uint)romData.Length))
throw new Exception("snes_load_cartridge_super_game_boy() failed");
}
else
{
SystemId = "SNES";
if (!LibsnesDll.snes_load_cartridge_normal(null, romData, (uint)romData.Length))
throw new Exception("snes_load_cartridge_normal() failed");
}
LibsnesDll.snes_power();
SetupMemoryDomains(romData);
@ -497,7 +523,7 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
public int Frame { get { return timeFrameCounter; } set { timeFrameCounter = value; } }
public int LagCount { get; set; }
public bool IsLagFrame { get; private set; }
public string SystemId { get { return "SNES"; } }
public string SystemId { get; private set; }
public bool DeterministicEmulation { get; set; }
public bool SaveRamModified
{

View File

@ -152,6 +152,7 @@ namespace BizHawk.MultiClient
public string PathPCEBios = Path.Combine(".", "PCECDBios.pce");
public string PathINTVGROM = Path.Combine(".", "grom.bin");
public string PathINTVEROM = Path.Combine(".", "erom.bin");
public string PathSGBRom = Path.Combine(".", "Super Game Boy (UE) (V1.2) [!].smc");
public string FFMpegPath = "%exe%/ffmpeg.exe";
@ -629,6 +630,7 @@ namespace BizHawk.MultiClient
public bool GB_GBACGB = false;
public bool GB_MulticartCompat = false;
public string GB_PaletteFile = "";
public bool GB_AsSGB = false;
//GIF Animator Settings
public int GifAnimatorNumFrames;

File diff suppressed because it is too large Load Diff

View File

@ -1698,6 +1698,8 @@ namespace BizHawk.MultiClient
forceDMGModeToolStripMenuItem.Checked = Global.Config.GB_ForceDMG;
gBAInCGBModeToolStripMenuItem.Checked = Global.Config.GB_GBACGB;
multicartCompatibilityToolStripMenuItem.Checked = Global.Config.GB_MulticartCompat;
loadGBInSGBToolStripMenuItem1.Checked = Global.Config.GB_AsSGB;
}
private void graphicsDebuggerToolStripMenuItem_Click(object sender, EventArgs e)

View File

@ -1158,6 +1158,11 @@ namespace BizHawk.MultiClient
atariToolStripMenuItem.Visible = true;
break;
case "SNES":
sNESToolStripMenuItem.Text = "&SNES";
sNESToolStripMenuItem.Visible = true;
break;
case "SGB":
sNESToolStripMenuItem.Text = "&SGB";
sNESToolStripMenuItem.Visible = true;
break;
default:
@ -1375,8 +1380,8 @@ namespace BizHawk.MultiClient
switch (game.System)
{
case "SNES":
nextEmulator = new LibsnesCore(rom.FileData);
game.System = "SNES";
nextEmulator = new LibsnesCore(game, rom.FileData);
break;
case "SMS":
case "SG":
@ -1428,6 +1433,8 @@ namespace BizHawk.MultiClient
}
break;
case "GB":
if (!Global.Config.GB_AsSGB)
{
if (Global.Config.GB_ForceDMG) game.AddOption("ForceDMG");
if (Global.Config.GB_GBACGB) game.AddOption("GBACGB");
if (Global.Config.GB_MulticartCompat) game.AddOption("MulitcartCompat");
@ -1443,6 +1450,15 @@ namespace BizHawk.MultiClient
}
}
catch { }
}
else
{
// todo: get these bioses into a gamedb??
byte[] sgbrom = File.ReadAllBytes(PathManager.MakeAbsolutePath(Global.Config.PathSGBRom, "SGB"));
game.AddOption("SGB");
game.System = "SGB";
nextEmulator = new LibsnesCore(game, rom.FileData, sgbrom);
}
break;
case "COLV":
SMS c = new SMS(game, rom.RomData);//new ColecoVision(game, rom.FileData);
@ -3627,5 +3643,26 @@ namespace BizHawk.MultiClient
{
captureOSDToolStripMenuItem1.Checked = Global.Config.Screenshot_CaptureOSD;
}
private void sNESToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
{
if (Global.Emulator.SystemId == "SGB")
{
loadGBInSGBToolStripMenuItem.Visible = true;
loadGBInSGBToolStripMenuItem.Checked = Global.Config.GB_AsSGB;
}
else
loadGBInSGBToolStripMenuItem.Visible = false;
}
private void loadGBInSGBToolStripMenuItem1_Click(object sender, EventArgs e)
{
loadGBInSGBToolStripMenuItem_Click(sender, e);
}
private void loadGBInSGBToolStripMenuItem_Click(object sender, EventArgs e)
{
Global.Config.GB_AsSGB ^= true;
}
}
}

View File

@ -78,6 +78,25 @@
this.NESBaseBox = new System.Windows.Forms.TextBox();
this.NESBaseDescription = new System.Windows.Forms.Label();
this.BrowseNESBase = new System.Windows.Forms.Button();
this.tabPage12 = new System.Windows.Forms.TabPage();
this.SNESCheatsDescription = new System.Windows.Forms.Label();
this.SNESBrowseCheats = new System.Windows.Forms.Button();
this.SNESCheatsBox = new System.Windows.Forms.TextBox();
this.SNESBaseBox = new System.Windows.Forms.TextBox();
this.SNESBaseDescription = new System.Windows.Forms.Label();
this.BrowseSNESBase = new System.Windows.Forms.Button();
this.SNESROMsBox = new System.Windows.Forms.TextBox();
this.SNESScreenshotsBox = new System.Windows.Forms.TextBox();
this.BrowseSNESSavestates = new System.Windows.Forms.Button();
this.SNESScreenshotsDescription = new System.Windows.Forms.Label();
this.SNESSavestatesDescription = new System.Windows.Forms.Label();
this.BrowseSNESScreenshots = new System.Windows.Forms.Button();
this.SNESSavestatesBox = new System.Windows.Forms.TextBox();
this.BrowseSNESSaveRAM = new System.Windows.Forms.Button();
this.SNESSaveRAMDescription = new System.Windows.Forms.Label();
this.SNESROMsDescription = new System.Windows.Forms.Label();
this.SNESSaveRAMBox = new System.Windows.Forms.TextBox();
this.BrowseSNESROMs = new System.Windows.Forms.Button();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.Sega8CheatsDescription = new System.Windows.Forms.Label();
this.Sega8BrowseCheats = new System.Windows.Forms.Button();
@ -258,27 +277,12 @@
this.BaseDescription = new System.Windows.Forms.Label();
this.RecentForROMs = new System.Windows.Forms.CheckBox();
this.SaveButton = new System.Windows.Forms.Button();
this.tabPage12 = new System.Windows.Forms.TabPage();
this.SNESCheatsDescription = new System.Windows.Forms.Label();
this.SNESBrowseCheats = new System.Windows.Forms.Button();
this.SNESCheatsBox = new System.Windows.Forms.TextBox();
this.SNESBaseBox = new System.Windows.Forms.TextBox();
this.SNESBaseDescription = new System.Windows.Forms.Label();
this.BrowseSNESBase = new System.Windows.Forms.Button();
this.SNESROMsBox = new System.Windows.Forms.TextBox();
this.SNESScreenshotsBox = new System.Windows.Forms.TextBox();
this.BrowseSNESSavestates = new System.Windows.Forms.Button();
this.SNESScreenshotsDescription = new System.Windows.Forms.Label();
this.SNESSavestatesDescription = new System.Windows.Forms.Label();
this.BrowseSNESScreenshots = new System.Windows.Forms.Button();
this.SNESSavestatesBox = new System.Windows.Forms.TextBox();
this.BrowseSNESSaveRAM = new System.Windows.Forms.Button();
this.SNESSaveRAMDescription = new System.Windows.Forms.Label();
this.SNESROMsDescription = new System.Windows.Forms.Label();
this.SNESSaveRAMBox = new System.Windows.Forms.TextBox();
this.BrowseSNESROMs = new System.Windows.Forms.Button();
this.SNESSGBBox = new System.Windows.Forms.TextBox();
this.SNESBrowseSGB = new System.Windows.Forms.Button();
this.SNESSGBDescription = new System.Windows.Forms.Label();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
this.tabPage12.SuspendLayout();
this.tabPage2.SuspendLayout();
this.tabPage9.SuspendLayout();
this.tabPage8.SuspendLayout();
@ -289,7 +293,6 @@
this.tabPage10.SuspendLayout();
this.tabPage11.SuspendLayout();
this.tabPage7.SuspendLayout();
this.tabPage12.SuspendLayout();
this.SuspendLayout();
//
// Cancel
@ -825,6 +828,216 @@
this.BrowseNESBase.UseVisualStyleBackColor = true;
this.BrowseNESBase.Click += new System.EventHandler(this.BrowseNESBase_Click);
//
// tabPage12
//
this.tabPage12.Controls.Add(this.SNESSGBDescription);
this.tabPage12.Controls.Add(this.SNESBrowseSGB);
this.tabPage12.Controls.Add(this.SNESSGBBox);
this.tabPage12.Controls.Add(this.SNESCheatsDescription);
this.tabPage12.Controls.Add(this.SNESBrowseCheats);
this.tabPage12.Controls.Add(this.SNESCheatsBox);
this.tabPage12.Controls.Add(this.SNESBaseBox);
this.tabPage12.Controls.Add(this.SNESBaseDescription);
this.tabPage12.Controls.Add(this.BrowseSNESBase);
this.tabPage12.Controls.Add(this.SNESROMsBox);
this.tabPage12.Controls.Add(this.SNESScreenshotsBox);
this.tabPage12.Controls.Add(this.BrowseSNESSavestates);
this.tabPage12.Controls.Add(this.SNESScreenshotsDescription);
this.tabPage12.Controls.Add(this.SNESSavestatesDescription);
this.tabPage12.Controls.Add(this.BrowseSNESScreenshots);
this.tabPage12.Controls.Add(this.SNESSavestatesBox);
this.tabPage12.Controls.Add(this.BrowseSNESSaveRAM);
this.tabPage12.Controls.Add(this.SNESSaveRAMDescription);
this.tabPage12.Controls.Add(this.SNESROMsDescription);
this.tabPage12.Controls.Add(this.SNESSaveRAMBox);
this.tabPage12.Controls.Add(this.BrowseSNESROMs);
this.tabPage12.Location = new System.Drawing.Point(4, 22);
this.tabPage12.Name = "tabPage12";
this.tabPage12.Size = new System.Drawing.Size(566, 275);
this.tabPage12.TabIndex = 11;
this.tabPage12.Text = "SNES";
this.tabPage12.UseVisualStyleBackColor = true;
//
// SNESCheatsDescription
//
this.SNESCheatsDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.SNESCheatsDescription.AutoSize = true;
this.SNESCheatsDescription.Location = new System.Drawing.Point(474, 183);
this.SNESCheatsDescription.Name = "SNESCheatsDescription";
this.SNESCheatsDescription.Size = new System.Drawing.Size(40, 13);
this.SNESCheatsDescription.TabIndex = 44;
this.SNESCheatsDescription.Text = "Cheats";
//
// SNESBrowseCheats
//
this.SNESBrowseCheats.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.SNESBrowseCheats.Image = ((System.Drawing.Image)(resources.GetObject("SNESBrowseCheats.Image")));
this.SNESBrowseCheats.Location = new System.Drawing.Point(442, 179);
this.SNESBrowseCheats.Name = "SNESBrowseCheats";
this.SNESBrowseCheats.Size = new System.Drawing.Size(26, 23);
this.SNESBrowseCheats.TabIndex = 41;
this.SNESBrowseCheats.UseVisualStyleBackColor = true;
this.SNESBrowseCheats.Click += new System.EventHandler(this.SNESBrowseCheats_Click);
//
// SNESCheatsBox
//
this.SNESCheatsBox.AcceptsTab = true;
this.SNESCheatsBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.SNESCheatsBox.Location = new System.Drawing.Point(13, 179);
this.SNESCheatsBox.Name = "SNESCheatsBox";
this.SNESCheatsBox.Size = new System.Drawing.Size(421, 20);
this.SNESCheatsBox.TabIndex = 40;
//
// SNESBaseBox
//
this.SNESBaseBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.SNESBaseBox.Location = new System.Drawing.Point(13, 21);
this.SNESBaseBox.Name = "SNESBaseBox";
this.SNESBaseBox.Size = new System.Drawing.Size(421, 20);
this.SNESBaseBox.TabIndex = 27;
//
// SNESBaseDescription
//
this.SNESBaseDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.SNESBaseDescription.AutoSize = true;
this.SNESBaseDescription.Location = new System.Drawing.Point(474, 25);
this.SNESBaseDescription.Name = "SNESBaseDescription";
this.SNESBaseDescription.Size = new System.Drawing.Size(31, 13);
this.SNESBaseDescription.TabIndex = 43;
this.SNESBaseDescription.Text = "Base";
//
// BrowseSNESBase
//
this.BrowseSNESBase.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.BrowseSNESBase.Image = global::BizHawk.MultiClient.Properties.Resources.OpenFile;
this.BrowseSNESBase.Location = new System.Drawing.Point(442, 21);
this.BrowseSNESBase.Name = "BrowseSNESBase";
this.BrowseSNESBase.Size = new System.Drawing.Size(26, 23);
this.BrowseSNESBase.TabIndex = 28;
this.BrowseSNESBase.UseVisualStyleBackColor = true;
this.BrowseSNESBase.Click += new System.EventHandler(this.BrowseSNESBase_Click);
//
// SNESROMsBox
//
this.SNESROMsBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.SNESROMsBox.Location = new System.Drawing.Point(13, 59);
this.SNESROMsBox.Name = "SNESROMsBox";
this.SNESROMsBox.Size = new System.Drawing.Size(421, 20);
this.SNESROMsBox.TabIndex = 30;
//
// SNESScreenshotsBox
//
this.SNESScreenshotsBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.SNESScreenshotsBox.Location = new System.Drawing.Point(13, 149);
this.SNESScreenshotsBox.Name = "SNESScreenshotsBox";
this.SNESScreenshotsBox.Size = new System.Drawing.Size(421, 20);
this.SNESScreenshotsBox.TabIndex = 37;
//
// BrowseSNESSavestates
//
this.BrowseSNESSavestates.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.BrowseSNESSavestates.Image = ((System.Drawing.Image)(resources.GetObject("BrowseSNESSavestates.Image")));
this.BrowseSNESSavestates.Location = new System.Drawing.Point(442, 89);
this.BrowseSNESSavestates.Name = "BrowseSNESSavestates";
this.BrowseSNESSavestates.Size = new System.Drawing.Size(26, 23);
this.BrowseSNESSavestates.TabIndex = 33;
this.BrowseSNESSavestates.UseVisualStyleBackColor = true;
this.BrowseSNESSavestates.Click += new System.EventHandler(this.BrowseSNESSavestates_Click);
//
// SNESScreenshotsDescription
//
this.SNESScreenshotsDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.SNESScreenshotsDescription.AutoSize = true;
this.SNESScreenshotsDescription.Location = new System.Drawing.Point(474, 153);
this.SNESScreenshotsDescription.Name = "SNESScreenshotsDescription";
this.SNESScreenshotsDescription.Size = new System.Drawing.Size(66, 13);
this.SNESScreenshotsDescription.TabIndex = 42;
this.SNESScreenshotsDescription.Text = "Screenshots";
//
// SNESSavestatesDescription
//
this.SNESSavestatesDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.SNESSavestatesDescription.AutoSize = true;
this.SNESSavestatesDescription.Location = new System.Drawing.Point(474, 93);
this.SNESSavestatesDescription.Name = "SNESSavestatesDescription";
this.SNESSavestatesDescription.Size = new System.Drawing.Size(60, 13);
this.SNESSavestatesDescription.TabIndex = 29;
this.SNESSavestatesDescription.Text = "Savestates";
//
// BrowseSNESScreenshots
//
this.BrowseSNESScreenshots.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.BrowseSNESScreenshots.Image = ((System.Drawing.Image)(resources.GetObject("BrowseSNESScreenshots.Image")));
this.BrowseSNESScreenshots.Location = new System.Drawing.Point(442, 149);
this.BrowseSNESScreenshots.Name = "BrowseSNESScreenshots";
this.BrowseSNESScreenshots.Size = new System.Drawing.Size(26, 23);
this.BrowseSNESScreenshots.TabIndex = 38;
this.BrowseSNESScreenshots.UseVisualStyleBackColor = true;
this.BrowseSNESScreenshots.Click += new System.EventHandler(this.button5_Click);
//
// SNESSavestatesBox
//
this.SNESSavestatesBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.SNESSavestatesBox.Location = new System.Drawing.Point(13, 89);
this.SNESSavestatesBox.Name = "SNESSavestatesBox";
this.SNESSavestatesBox.Size = new System.Drawing.Size(421, 20);
this.SNESSavestatesBox.TabIndex = 32;
//
// BrowseSNESSaveRAM
//
this.BrowseSNESSaveRAM.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.BrowseSNESSaveRAM.Image = ((System.Drawing.Image)(resources.GetObject("BrowseSNESSaveRAM.Image")));
this.BrowseSNESSaveRAM.Location = new System.Drawing.Point(442, 119);
this.BrowseSNESSaveRAM.Name = "BrowseSNESSaveRAM";
this.BrowseSNESSaveRAM.Size = new System.Drawing.Size(26, 23);
this.BrowseSNESSaveRAM.TabIndex = 36;
this.BrowseSNESSaveRAM.UseVisualStyleBackColor = true;
//
// SNESSaveRAMDescription
//
this.SNESSaveRAMDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.SNESSaveRAMDescription.AutoSize = true;
this.SNESSaveRAMDescription.Location = new System.Drawing.Point(474, 123);
this.SNESSaveRAMDescription.Name = "SNESSaveRAMDescription";
this.SNESSaveRAMDescription.Size = new System.Drawing.Size(59, 13);
this.SNESSaveRAMDescription.TabIndex = 35;
this.SNESSaveRAMDescription.Text = "Save RAM";
//
// SNESROMsDescription
//
this.SNESROMsDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.SNESROMsDescription.AutoSize = true;
this.SNESROMsDescription.Location = new System.Drawing.Point(474, 63);
this.SNESROMsDescription.Name = "SNESROMsDescription";
this.SNESROMsDescription.Size = new System.Drawing.Size(37, 13);
this.SNESROMsDescription.TabIndex = 39;
this.SNESROMsDescription.Text = "ROMs";
//
// SNESSaveRAMBox
//
this.SNESSaveRAMBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.SNESSaveRAMBox.Location = new System.Drawing.Point(13, 119);
this.SNESSaveRAMBox.Name = "SNESSaveRAMBox";
this.SNESSaveRAMBox.Size = new System.Drawing.Size(421, 20);
this.SNESSaveRAMBox.TabIndex = 34;
//
// BrowseSNESROMs
//
this.BrowseSNESROMs.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.BrowseSNESROMs.Image = ((System.Drawing.Image)(resources.GetObject("BrowseSNESROMs.Image")));
this.BrowseSNESROMs.Location = new System.Drawing.Point(442, 59);
this.BrowseSNESROMs.Name = "BrowseSNESROMs";
this.BrowseSNESROMs.Size = new System.Drawing.Size(26, 23);
this.BrowseSNESROMs.TabIndex = 31;
this.BrowseSNESROMs.UseVisualStyleBackColor = true;
this.BrowseSNESROMs.Click += new System.EventHandler(this.BrowseSNESROMs_Click);
//
// tabPage2
//
this.tabPage2.Controls.Add(this.Sega8CheatsDescription);
@ -2818,212 +3031,33 @@
this.SaveButton.UseVisualStyleBackColor = true;
this.SaveButton.Click += new System.EventHandler(this.SaveButton_Click);
//
// tabPage12
// SNESSGBBox
//
this.tabPage12.Controls.Add(this.SNESCheatsDescription);
this.tabPage12.Controls.Add(this.SNESBrowseCheats);
this.tabPage12.Controls.Add(this.SNESCheatsBox);
this.tabPage12.Controls.Add(this.SNESBaseBox);
this.tabPage12.Controls.Add(this.SNESBaseDescription);
this.tabPage12.Controls.Add(this.BrowseSNESBase);
this.tabPage12.Controls.Add(this.SNESROMsBox);
this.tabPage12.Controls.Add(this.SNESScreenshotsBox);
this.tabPage12.Controls.Add(this.BrowseSNESSavestates);
this.tabPage12.Controls.Add(this.SNESScreenshotsDescription);
this.tabPage12.Controls.Add(this.SNESSavestatesDescription);
this.tabPage12.Controls.Add(this.BrowseSNESScreenshots);
this.tabPage12.Controls.Add(this.SNESSavestatesBox);
this.tabPage12.Controls.Add(this.BrowseSNESSaveRAM);
this.tabPage12.Controls.Add(this.SNESSaveRAMDescription);
this.tabPage12.Controls.Add(this.SNESROMsDescription);
this.tabPage12.Controls.Add(this.SNESSaveRAMBox);
this.tabPage12.Controls.Add(this.BrowseSNESROMs);
this.tabPage12.Location = new System.Drawing.Point(4, 22);
this.tabPage12.Name = "tabPage12";
this.tabPage12.Size = new System.Drawing.Size(566, 275);
this.tabPage12.TabIndex = 11;
this.tabPage12.Text = "SNES";
this.tabPage12.UseVisualStyleBackColor = true;
//
// SNESCheatsDescription
//
this.SNESCheatsDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.SNESCheatsDescription.AutoSize = true;
this.SNESCheatsDescription.Location = new System.Drawing.Point(474, 183);
this.SNESCheatsDescription.Name = "SNESCheatsDescription";
this.SNESCheatsDescription.Size = new System.Drawing.Size(40, 13);
this.SNESCheatsDescription.TabIndex = 44;
this.SNESCheatsDescription.Text = "Cheats";
//
// SNESBrowseCheats
//
this.SNESBrowseCheats.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.SNESBrowseCheats.Image = ((System.Drawing.Image)(resources.GetObject("SNESBrowseCheats.Image")));
this.SNESBrowseCheats.Location = new System.Drawing.Point(442, 179);
this.SNESBrowseCheats.Name = "SNESBrowseCheats";
this.SNESBrowseCheats.Size = new System.Drawing.Size(26, 23);
this.SNESBrowseCheats.TabIndex = 41;
this.SNESBrowseCheats.UseVisualStyleBackColor = true;
this.SNESBrowseCheats.Click += new System.EventHandler(this.SNESBrowseCheats_Click);
//
// SNESCheatsBox
//
this.SNESCheatsBox.AcceptsTab = true;
this.SNESCheatsBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
this.SNESSGBBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.SNESCheatsBox.Location = new System.Drawing.Point(13, 179);
this.SNESCheatsBox.Name = "SNESCheatsBox";
this.SNESCheatsBox.Size = new System.Drawing.Size(421, 20);
this.SNESCheatsBox.TabIndex = 40;
this.SNESSGBBox.Location = new System.Drawing.Point(13, 211);
this.SNESSGBBox.Name = "SNESSGBBox";
this.SNESSGBBox.Size = new System.Drawing.Size(421, 20);
this.SNESSGBBox.TabIndex = 45;
//
// SNESBaseBox
// SNESBrowseSGB
//
this.SNESBaseBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.SNESBaseBox.Location = new System.Drawing.Point(13, 21);
this.SNESBaseBox.Name = "SNESBaseBox";
this.SNESBaseBox.Size = new System.Drawing.Size(421, 20);
this.SNESBaseBox.TabIndex = 27;
this.SNESBrowseSGB.Image = global::BizHawk.MultiClient.Properties.Resources.OpenFile;
this.SNESBrowseSGB.Location = new System.Drawing.Point(442, 209);
this.SNESBrowseSGB.Name = "SNESBrowseSGB";
this.SNESBrowseSGB.Size = new System.Drawing.Size(26, 23);
this.SNESBrowseSGB.TabIndex = 46;
this.SNESBrowseSGB.UseVisualStyleBackColor = true;
this.SNESBrowseSGB.Click += new System.EventHandler(this.SNESBrowseSGB_Click);
//
// SNESBaseDescription
// SNESSGBDescription
//
this.SNESBaseDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.SNESBaseDescription.AutoSize = true;
this.SNESBaseDescription.Location = new System.Drawing.Point(474, 25);
this.SNESBaseDescription.Name = "SNESBaseDescription";
this.SNESBaseDescription.Size = new System.Drawing.Size(31, 13);
this.SNESBaseDescription.TabIndex = 43;
this.SNESBaseDescription.Text = "Base";
//
// BrowseSNESBase
//
this.BrowseSNESBase.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.BrowseSNESBase.Image = global::BizHawk.MultiClient.Properties.Resources.OpenFile;
this.BrowseSNESBase.Location = new System.Drawing.Point(442, 21);
this.BrowseSNESBase.Name = "BrowseSNESBase";
this.BrowseSNESBase.Size = new System.Drawing.Size(26, 23);
this.BrowseSNESBase.TabIndex = 28;
this.BrowseSNESBase.UseVisualStyleBackColor = true;
this.BrowseSNESBase.Click += new System.EventHandler(this.BrowseSNESBase_Click);
//
// SNESROMsBox
//
this.SNESROMsBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.SNESROMsBox.Location = new System.Drawing.Point(13, 59);
this.SNESROMsBox.Name = "SNESROMsBox";
this.SNESROMsBox.Size = new System.Drawing.Size(421, 20);
this.SNESROMsBox.TabIndex = 30;
//
// SNESScreenshotsBox
//
this.SNESScreenshotsBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.SNESScreenshotsBox.Location = new System.Drawing.Point(13, 149);
this.SNESScreenshotsBox.Name = "SNESScreenshotsBox";
this.SNESScreenshotsBox.Size = new System.Drawing.Size(421, 20);
this.SNESScreenshotsBox.TabIndex = 37;
//
// BrowseSNESSavestates
//
this.BrowseSNESSavestates.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.BrowseSNESSavestates.Image = ((System.Drawing.Image)(resources.GetObject("BrowseSNESSavestates.Image")));
this.BrowseSNESSavestates.Location = new System.Drawing.Point(442, 89);
this.BrowseSNESSavestates.Name = "BrowseSNESSavestates";
this.BrowseSNESSavestates.Size = new System.Drawing.Size(26, 23);
this.BrowseSNESSavestates.TabIndex = 33;
this.BrowseSNESSavestates.UseVisualStyleBackColor = true;
this.BrowseSNESSavestates.Click += new System.EventHandler(this.BrowseSNESSavestates_Click);
//
// SNESScreenshotsDescription
//
this.SNESScreenshotsDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.SNESScreenshotsDescription.AutoSize = true;
this.SNESScreenshotsDescription.Location = new System.Drawing.Point(474, 153);
this.SNESScreenshotsDescription.Name = "SNESScreenshotsDescription";
this.SNESScreenshotsDescription.Size = new System.Drawing.Size(66, 13);
this.SNESScreenshotsDescription.TabIndex = 42;
this.SNESScreenshotsDescription.Text = "Screenshots";
//
// SNESSavestatesDescription
//
this.SNESSavestatesDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.SNESSavestatesDescription.AutoSize = true;
this.SNESSavestatesDescription.Location = new System.Drawing.Point(474, 93);
this.SNESSavestatesDescription.Name = "SNESSavestatesDescription";
this.SNESSavestatesDescription.Size = new System.Drawing.Size(60, 13);
this.SNESSavestatesDescription.TabIndex = 29;
this.SNESSavestatesDescription.Text = "Savestates";
//
// BrowseSNESScreenshots
//
this.BrowseSNESScreenshots.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.BrowseSNESScreenshots.Image = ((System.Drawing.Image)(resources.GetObject("BrowseSNESScreenshots.Image")));
this.BrowseSNESScreenshots.Location = new System.Drawing.Point(442, 149);
this.BrowseSNESScreenshots.Name = "BrowseSNESScreenshots";
this.BrowseSNESScreenshots.Size = new System.Drawing.Size(26, 23);
this.BrowseSNESScreenshots.TabIndex = 38;
this.BrowseSNESScreenshots.UseVisualStyleBackColor = true;
this.BrowseSNESScreenshots.Click += new System.EventHandler(this.button5_Click);
//
// SNESSavestatesBox
//
this.SNESSavestatesBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.SNESSavestatesBox.Location = new System.Drawing.Point(13, 89);
this.SNESSavestatesBox.Name = "SNESSavestatesBox";
this.SNESSavestatesBox.Size = new System.Drawing.Size(421, 20);
this.SNESSavestatesBox.TabIndex = 32;
//
// BrowseSNESSaveRAM
//
this.BrowseSNESSaveRAM.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.BrowseSNESSaveRAM.Image = ((System.Drawing.Image)(resources.GetObject("BrowseSNESSaveRAM.Image")));
this.BrowseSNESSaveRAM.Location = new System.Drawing.Point(442, 119);
this.BrowseSNESSaveRAM.Name = "BrowseSNESSaveRAM";
this.BrowseSNESSaveRAM.Size = new System.Drawing.Size(26, 23);
this.BrowseSNESSaveRAM.TabIndex = 36;
this.BrowseSNESSaveRAM.UseVisualStyleBackColor = true;
//
// SNESSaveRAMDescription
//
this.SNESSaveRAMDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.SNESSaveRAMDescription.AutoSize = true;
this.SNESSaveRAMDescription.Location = new System.Drawing.Point(474, 123);
this.SNESSaveRAMDescription.Name = "SNESSaveRAMDescription";
this.SNESSaveRAMDescription.Size = new System.Drawing.Size(59, 13);
this.SNESSaveRAMDescription.TabIndex = 35;
this.SNESSaveRAMDescription.Text = "Save RAM";
//
// SNESROMsDescription
//
this.SNESROMsDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.SNESROMsDescription.AutoSize = true;
this.SNESROMsDescription.Location = new System.Drawing.Point(474, 63);
this.SNESROMsDescription.Name = "SNESROMsDescription";
this.SNESROMsDescription.Size = new System.Drawing.Size(37, 13);
this.SNESROMsDescription.TabIndex = 39;
this.SNESROMsDescription.Text = "ROMs";
//
// SNESSaveRAMBox
//
this.SNESSaveRAMBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.SNESSaveRAMBox.Location = new System.Drawing.Point(13, 119);
this.SNESSaveRAMBox.Name = "SNESSaveRAMBox";
this.SNESSaveRAMBox.Size = new System.Drawing.Size(421, 20);
this.SNESSaveRAMBox.TabIndex = 34;
//
// BrowseSNESROMs
//
this.BrowseSNESROMs.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.BrowseSNESROMs.Image = ((System.Drawing.Image)(resources.GetObject("BrowseSNESROMs.Image")));
this.BrowseSNESROMs.Location = new System.Drawing.Point(442, 59);
this.BrowseSNESROMs.Name = "BrowseSNESROMs";
this.BrowseSNESROMs.Size = new System.Drawing.Size(26, 23);
this.BrowseSNESROMs.TabIndex = 31;
this.BrowseSNESROMs.UseVisualStyleBackColor = true;
this.BrowseSNESROMs.Click += new System.EventHandler(this.BrowseSNESROMs_Click);
this.SNESSGBDescription.AutoSize = true;
this.SNESSGBDescription.Location = new System.Drawing.Point(474, 214);
this.SNESSGBDescription.Name = "SNESSGBDescription";
this.SNESSGBDescription.Size = new System.Drawing.Size(54, 13);
this.SNESSGBDescription.TabIndex = 47;
this.SNESSGBDescription.Text = "SGB Rom";
//
// PathConfig
//
@ -3048,6 +3082,8 @@
this.tabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.tabPage1.PerformLayout();
this.tabPage12.ResumeLayout(false);
this.tabPage12.PerformLayout();
this.tabPage2.ResumeLayout(false);
this.tabPage2.PerformLayout();
this.tabPage9.ResumeLayout(false);
@ -3068,8 +3104,6 @@
this.tabPage11.PerformLayout();
this.tabPage7.ResumeLayout(false);
this.tabPage7.PerformLayout();
this.tabPage12.ResumeLayout(false);
this.tabPage12.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@ -3325,5 +3359,8 @@
private System.Windows.Forms.Label SNESROMsDescription;
private System.Windows.Forms.TextBox SNESSaveRAMBox;
private System.Windows.Forms.Button BrowseSNESROMs;
private System.Windows.Forms.Label SNESSGBDescription;
private System.Windows.Forms.Button SNESBrowseSGB;
private System.Windows.Forms.TextBox SNESSGBBox;
}
}

View File

@ -73,6 +73,7 @@ namespace BizHawk.MultiClient
SNESSaveRAMBox.Text = Global.Config.PathSNESSaveRAM;
SNESScreenshotsBox.Text = Global.Config.PathSNESScreenshots;
SNESCheatsBox.Text = Global.Config.PathSNESCheats;
SNESSGBBox.Text = Global.Config.PathSGBRom;
Sega8BaseBox.Text = Global.Config.BaseSMS;
Sega8ROMsBox.Text = Global.Config.PathSMSROMs;
@ -174,6 +175,7 @@ namespace BizHawk.MultiClient
Global.Config.PathSNESSaveRAM = SNESSaveRAMBox.Text;
Global.Config.PathSNESScreenshots = SNESScreenshotsBox.Text;
Global.Config.PathSNESCheats = SNESCheatsBox.Text;
Global.Config.PathSGBRom = SNESSGBBox.Text;
Global.Config.BaseSMS = Sega8BaseBox.Text;
Global.Config.PathSMSROMs = Sega8ROMsBox.Text;
@ -721,5 +723,14 @@ namespace BizHawk.MultiClient
{
BrowseFolder(SNESCheatsBox, SNESCheatsDescription.Text, "SNES");
}
private void SNESBrowseSGB_Click(object sender, EventArgs e)
{
BrowseForBios(
"SGB Rom (*.smc;*.sfc)|*.smc;*.sfc|All Files|*.*",
Global.Config.PathSGBRom,
SNESSGBBox);
}
}
}

File diff suppressed because it is too large Load Diff