remove "SGB" systemid because its gonna cause a lot of trouble if we dont hook it up in a lot of places.. why can't we set it up as just a regular snes core? and run the sgb rom through the snes firmwares directory.
This commit is contained in:
parent
af9390f569
commit
96089026cd
|
@ -284,6 +284,8 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
|
|||
|
||||
public unsafe class LibsnesCore : IEmulator, IVideoProvider, ISoundProvider
|
||||
{
|
||||
public bool IsSGB { get; private set; }
|
||||
|
||||
bool disposed = false;
|
||||
public void Dispose()
|
||||
{
|
||||
|
@ -337,7 +339,7 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
|
|||
ScanlineHookManager.HandleScanline(line);
|
||||
}
|
||||
|
||||
string snes_path_request_t(int slot, string hint)
|
||||
string snes_path_request(int slot, string hint)
|
||||
{
|
||||
//every rom requests this byuu homemade rom
|
||||
if (hint == "msu1.rom") return "";
|
||||
|
@ -348,7 +350,7 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
|
|||
//does it exist?
|
||||
if (!File.Exists(test))
|
||||
{
|
||||
System.Windows.Forms.MessageBox.Show("libsneshawk is requesting a firmware file which could not be found. make sure it's in your snes firmwares folder. the name is: " + hint);
|
||||
System.Windows.Forms.MessageBox.Show("The SNES core is referencing a firmware file which could not be found. Please make sure it's in your configured SNES firmwares folder. The referenced filename is: " + hint);
|
||||
return "";
|
||||
}
|
||||
|
||||
|
@ -388,7 +390,7 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
|
|||
soundcb = new LibsnesDll.snes_audio_sample_t(snes_audio_sample);
|
||||
BizHawk.Emulation.Consoles.Nintendo.SNES.LibsnesDll.snes_set_audio_sample(soundcb);
|
||||
|
||||
pathRequest_cb = new LibsnesDll.snes_path_request_t(snes_path_request_t);
|
||||
pathRequest_cb = new LibsnesDll.snes_path_request_t(snes_path_request);
|
||||
BizHawk.Emulation.Consoles.Nintendo.SNES.LibsnesDll.snes_set_path_request(pathRequest_cb);
|
||||
|
||||
|
||||
|
@ -407,7 +409,8 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
|
|||
|
||||
if (game["SGB"])
|
||||
{
|
||||
SystemId = "SGB";
|
||||
IsSGB = true;
|
||||
SystemId = "SNES";
|
||||
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");
|
||||
}
|
||||
|
|
|
@ -154,7 +154,6 @@ 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";
|
||||
|
||||
|
|
|
@ -1179,7 +1179,8 @@ namespace BizHawk.MultiClient
|
|||
sNESToolStripMenuItem.Visible = true;
|
||||
break;
|
||||
case "SGB":
|
||||
sNESToolStripMenuItem.Text = "&SGB";
|
||||
if((Global.Emulator as LibsnesCore).IsSGB)
|
||||
sNESToolStripMenuItem.Text = "&SGB";
|
||||
sNESToolStripMenuItem.Visible = true;
|
||||
break;
|
||||
default:
|
||||
|
@ -1227,7 +1228,6 @@ namespace BizHawk.MultiClient
|
|||
Global.AutoFireController = Global.AutofireNESControls;
|
||||
break;
|
||||
case "SNES":
|
||||
case "SGB":
|
||||
Global.ActiveController = Global.SNESControls;
|
||||
Global.AutoFireController = Global.AutofireSNESControls;
|
||||
break;
|
||||
|
@ -1395,6 +1395,7 @@ namespace BizHawk.MultiClient
|
|||
rom = new RomGame(file);
|
||||
game = rom.GameInfo;
|
||||
|
||||
RETRY:
|
||||
switch (game.System)
|
||||
{
|
||||
case "SNES":
|
||||
|
@ -1476,11 +1477,22 @@ namespace BizHawk.MultiClient
|
|||
}
|
||||
else
|
||||
{
|
||||
// todo: get these bioses into a gamedb??
|
||||
byte[] sgbrom;
|
||||
// todo: get these bioses into a gamedb?? then we could demand different filenames for different regions?
|
||||
string sgbromPath = Path.Combine(PathManager.MakeAbsolutePath(Global.Config.PathSNESFirmwares, "SNES"), "sgb.sfc");
|
||||
byte[] sgbrom = null;
|
||||
try
|
||||
{
|
||||
sgbrom = File.ReadAllBytes(PathManager.MakeAbsolutePath(Global.Config.PathSGBRom, "SGB"));
|
||||
if (File.Exists(sgbromPath))
|
||||
{
|
||||
sgbrom = File.ReadAllBytes(sgbromPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("Couldn't open sgb.smc from the configured SNES firmwares path, which is:\n\n" + PathManager.MakeAbsolutePath(Global.Config.PathSNESFirmwares, "SNES") + "\n\nPlease make sure it is available and try again.\n\nWe're going to disable SGB for now; please re-enable it when you've set up the file.");
|
||||
Global.Config.GB_AsSGB = false;
|
||||
game.System = "GB";
|
||||
goto RETRY;
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
@ -1488,11 +1500,13 @@ namespace BizHawk.MultiClient
|
|||
Global.Config.GB_AsSGB = false;
|
||||
throw;
|
||||
}
|
||||
game.AddOption("SGB");
|
||||
game.System = "SGB";
|
||||
var snes = new LibsnesCore();
|
||||
nextEmulator = snes;
|
||||
snes.Load(game, rom.FileData, sgbrom, deterministicemulation);
|
||||
if (sgbrom != null)
|
||||
{
|
||||
game.AddOption("SGB");
|
||||
var snes = new LibsnesCore();
|
||||
nextEmulator = snes;
|
||||
snes.Load(game, rom.FileData, sgbrom, deterministicemulation);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "COLV":
|
||||
|
@ -3731,7 +3745,7 @@ namespace BizHawk.MultiClient
|
|||
|
||||
private void sNESToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
||||
{
|
||||
if (Global.Emulator.SystemId == "SGB")
|
||||
if ((Global.Emulator as LibsnesCore).IsSGB)
|
||||
{
|
||||
loadGBInSGBToolStripMenuItem.Visible = true;
|
||||
loadGBInSGBToolStripMenuItem.Checked = Global.Config.GB_AsSGB;
|
||||
|
|
|
@ -84,9 +84,6 @@
|
|||
this.SNESBrowseFirmwares = new System.Windows.Forms.Button();
|
||||
this.SNESFirmwaresBox = new System.Windows.Forms.TextBox();
|
||||
this.SNESBaseBox = new System.Windows.Forms.TextBox();
|
||||
this.SNESSGBDescription = new System.Windows.Forms.Label();
|
||||
this.SNESBrowseSGB = new System.Windows.Forms.Button();
|
||||
this.SNESSGBBox = new System.Windows.Forms.TextBox();
|
||||
this.SNESCheatsDescription = new System.Windows.Forms.Label();
|
||||
this.SNESBrowseCheats = new System.Windows.Forms.Button();
|
||||
this.SNESCheatsBox = new System.Windows.Forms.TextBox();
|
||||
|
@ -844,9 +841,6 @@
|
|||
this.tabPage12.Controls.Add(this.SNESBrowseFirmwares);
|
||||
this.tabPage12.Controls.Add(this.SNESFirmwaresBox);
|
||||
this.tabPage12.Controls.Add(this.SNESBaseBox);
|
||||
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);
|
||||
|
@ -875,7 +869,7 @@
|
|||
//
|
||||
this.SNESFirmwaresDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.SNESFirmwaresDescription.AutoSize = true;
|
||||
this.SNESFirmwaresDescription.Location = new System.Drawing.Point(474, 240);
|
||||
this.SNESFirmwaresDescription.Location = new System.Drawing.Point(474, 211);
|
||||
this.SNESFirmwaresDescription.Name = "SNESFirmwaresDescription";
|
||||
this.SNESFirmwaresDescription.Size = new System.Drawing.Size(54, 13);
|
||||
this.SNESFirmwaresDescription.TabIndex = 94;
|
||||
|
@ -885,7 +879,7 @@
|
|||
//
|
||||
this.SNESBrowseFirmwares.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.SNESBrowseFirmwares.Image = ((System.Drawing.Image)(resources.GetObject("SNESBrowseFirmwares.Image")));
|
||||
this.SNESBrowseFirmwares.Location = new System.Drawing.Point(442, 237);
|
||||
this.SNESBrowseFirmwares.Location = new System.Drawing.Point(442, 208);
|
||||
this.SNESBrowseFirmwares.Name = "SNESBrowseFirmwares";
|
||||
this.SNESBrowseFirmwares.Size = new System.Drawing.Size(26, 23);
|
||||
this.SNESBrowseFirmwares.TabIndex = 93;
|
||||
|
@ -896,7 +890,7 @@
|
|||
//
|
||||
this.SNESFirmwaresBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.SNESFirmwaresBox.Location = new System.Drawing.Point(13, 237);
|
||||
this.SNESFirmwaresBox.Location = new System.Drawing.Point(13, 208);
|
||||
this.SNESFirmwaresBox.Name = "SNESFirmwaresBox";
|
||||
this.SNESFirmwaresBox.Size = new System.Drawing.Size(421, 20);
|
||||
this.SNESFirmwaresBox.TabIndex = 92;
|
||||
|
@ -910,34 +904,6 @@
|
|||
this.SNESBaseBox.Size = new System.Drawing.Size(421, 20);
|
||||
this.SNESBaseBox.TabIndex = 27;
|
||||
//
|
||||
// SNESSGBDescription
|
||||
//
|
||||
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";
|
||||
//
|
||||
// SNESBrowseSGB
|
||||
//
|
||||
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);
|
||||
//
|
||||
// SNESSGBBox
|
||||
//
|
||||
this.SNESSGBBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
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;
|
||||
//
|
||||
// SNESCheatsDescription
|
||||
//
|
||||
this.SNESCheatsDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
|
@ -3458,9 +3424,6 @@
|
|||
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;
|
||||
private System.Windows.Forms.Label SNESFirmwaresDescription;
|
||||
private System.Windows.Forms.Button SNESBrowseFirmwares;
|
||||
private System.Windows.Forms.TextBox SNESFirmwaresBox;
|
||||
|
|
|
@ -73,7 +73,6 @@ namespace BizHawk.MultiClient
|
|||
SNESSaveRAMBox.Text = Global.Config.PathSNESSaveRAM;
|
||||
SNESScreenshotsBox.Text = Global.Config.PathSNESScreenshots;
|
||||
SNESCheatsBox.Text = Global.Config.PathSNESCheats;
|
||||
SNESSGBBox.Text = Global.Config.PathSGBRom;
|
||||
SNESFirmwaresBox.Text = Global.Config.PathSNESFirmwares;
|
||||
|
||||
Sega8BaseBox.Text = Global.Config.BaseSMS;
|
||||
|
@ -177,7 +176,6 @@ 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.PathSNESFirmwares = SNESFirmwaresBox.Text;
|
||||
|
||||
Global.Config.BaseSMS = Sega8BaseBox.Text;
|
||||
|
@ -729,15 +727,6 @@ 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);
|
||||
|
||||
}
|
||||
|
||||
private void SNESBrowseFirmwares_Click(object sender, EventArgs e)
|
||||
{
|
||||
BrowseFolder(SNESFirmwaresBox, SNESFirmwaresDescription.Text);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -345,7 +345,6 @@ namespace BizHawk.MultiClient
|
|||
case "NES":
|
||||
return "|.|........|........|........|........|";
|
||||
case "SNES":
|
||||
case "SGB":
|
||||
return "|.|............|............|............|............|";
|
||||
case "SMS":
|
||||
case "GG":
|
||||
|
|
Loading…
Reference in New Issue