add new field to gamedb to specify which core should be used.
allow it to be 'neshawk' or 'quicknes'. this should only be employed by end-users; we won't make those choices in the gamedb officially. the quicknes blacklist is still implemented separately. yeah, that's a lot of prioritization levels.
This commit is contained in:
parent
c7b639be28
commit
595a207c97
|
@ -744,16 +744,29 @@ namespace BizHawk.Client.Common
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case "NES":
|
case "NES":
|
||||||
if (!Global.Config.NES_InQuickNES || forceAccurateCore)
|
|
||||||
{
|
{
|
||||||
core = CoreInventory.Instance["NES", "NesHawk"];
|
//apply main spur-of-the-moment switcheroo as lowest priority
|
||||||
}
|
string preference = "neshawk";
|
||||||
else
|
if(Global.Config.NES_InQuickNES) preference = "quicknes";
|
||||||
{
|
|
||||||
core = CoreInventory.Instance["NES", "QuickNes"];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
//if user has saw fit to override in gamedb, apply that
|
||||||
|
if(Global.Config.CoreForcingViaGameDB)
|
||||||
|
preference = game.ForcedCore;
|
||||||
|
|
||||||
|
//but only neshawk is accurate
|
||||||
|
if (forceAccurateCore) preference = "neshawk";
|
||||||
|
|
||||||
|
if (preference == "neshawk")
|
||||||
|
{
|
||||||
|
core = CoreInventory.Instance["NES", "NesHawk"];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
core = CoreInventory.Instance["NES", "QuickNes"];
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "GB":
|
case "GB":
|
||||||
case "GBC":
|
case "GBC":
|
||||||
if (!Global.Config.GB_AsSGB)
|
if (!Global.Config.GB_AsSGB)
|
||||||
|
|
|
@ -513,6 +513,7 @@ namespace BizHawk.Client.Common
|
||||||
public bool NES_InQuickNES = true;
|
public bool NES_InQuickNES = true;
|
||||||
public bool SNES_InSnes9x = false;
|
public bool SNES_InSnes9x = false;
|
||||||
public bool GBA_UsemGBA = false;
|
public bool GBA_UsemGBA = false;
|
||||||
|
public bool CoreForcingViaGameDB = true;
|
||||||
public string LibretroCore;
|
public string LibretroCore;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1173,6 +1173,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
GBInSGBMenuItem.Checked = Global.Config.GB_AsSGB;
|
GBInSGBMenuItem.Checked = Global.Config.GB_AsSGB;
|
||||||
NesInQuickNESMenuItem.Checked = Global.Config.NES_InQuickNES;
|
NesInQuickNESMenuItem.Checked = Global.Config.NES_InQuickNES;
|
||||||
gBAWithMGBAToolStripMenuItem.Checked = Global.Config.GBA_UsemGBA;
|
gBAWithMGBAToolStripMenuItem.Checked = Global.Config.GBA_UsemGBA;
|
||||||
|
allowGameDBCoreOverridesToolStripMenuItem.Checked = Global.Config.CoreForcingViaGameDB;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CoreSNESSubMenu_DropDownOpened(object sender, EventArgs e)
|
private void CoreSNESSubMenu_DropDownOpened(object sender, EventArgs e)
|
||||||
|
|
|
@ -4152,5 +4152,10 @@ namespace BizHawk.Client.EmuHawk
|
||||||
quickNESToolStripMenuItem.Checked = Global.Config.NES_InQuickNES == true;
|
quickNESToolStripMenuItem.Checked = Global.Config.NES_InQuickNES == true;
|
||||||
nesHawkToolStripMenuItem.Checked = Global.Config.NES_InQuickNES == false;
|
nesHawkToolStripMenuItem.Checked = Global.Config.NES_InQuickNES == false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void allowGameDBCoreOverridesToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Global.Config.CoreForcingViaGameDB ^= true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,7 +138,7 @@
|
||||||
<data name="FirmwaresMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="FirmwaresMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
|
||||||
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABBDAAAQQwHDBU0eAAAAcElE
|
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABBBAAAQQQG8+46XAAAAcElE
|
||||||
QVQ4T82Q4QoAIQiDffR7804DY+pOov5c8GltwyiRR8YVTLTFOsWK2iA0eAapQkPOznwRGnJ25rX87AmK
|
QVQ4T82Q4QoAIQiDffR7804DY+pOov5c8GltwyiRR8YVTLTFOsWK2iA0eAapQkPOznwRGnJ25rX87AmK
|
||||||
/3ruFCvhCR9oclI8PNggJHg7A46w4rf5zY6H8jlAxQQOKMPWBswSIpmloXkEFbeR8QKDpKJKL1M/dQAA
|
/3ruFCvhCR9oclI8PNggJHg7A46w4rf5zY6H8jlAxQQOKMPWBswSIpmloXkEFbeR8QKDpKJKL1M/dQAA
|
||||||
AABJRU5ErkJggg==
|
AABJRU5ErkJggg==
|
||||||
|
@ -563,7 +563,7 @@
|
||||||
<data name="toolStripMenuItem11.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="toolStripMenuItem11.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
|
||||||
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABBDAAAQQwHDBU0eAAAAcElE
|
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABBBAAAQQQG8+46XAAAAcElE
|
||||||
QVQ4T82Q4QoAIQiDffR7804DY+pOov5c8GltwyiRR8YVTLTFOsWK2iA0eAapQkPOznwRGnJ25rX87AmK
|
QVQ4T82Q4QoAIQiDffR7804DY+pOov5c8GltwyiRR8YVTLTFOsWK2iA0eAapQkPOznwRGnJ25rX87AmK
|
||||||
/3ruFCvhCR9oclI8PNggJHg7A46w4rf5zY6H8jlAxQQOKMPWBswSIpmloXkEFbeR8QKDpKJKL1M/dQAA
|
/3ruFCvhCR9oclI8PNggJHg7A46w4rf5zY6H8jlAxQQOKMPWBswSIpmloXkEFbeR8QKDpKJKL1M/dQAA
|
||||||
AABJRU5ErkJggg==
|
AABJRU5ErkJggg==
|
||||||
|
|
|
@ -17,6 +17,7 @@ namespace BizHawk.Emulation.Common
|
||||||
public string Hash { get; set; }
|
public string Hash { get; set; }
|
||||||
public string Region { get; set; }
|
public string Region { get; set; }
|
||||||
public RomStatus Status { get; set; }
|
public RomStatus Status { get; set; }
|
||||||
|
public string ForcedCore { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Database
|
public static class Database
|
||||||
|
@ -192,6 +193,11 @@ namespace BizHawk.Emulation.Common
|
||||||
game.System = items[3];
|
game.System = items[3];
|
||||||
game.MetaData = items.Length >= 6 ? items[5] : null;
|
game.MetaData = items.Length >= 6 ? items[5] : null;
|
||||||
game.Region = items.Length >= 7 ? items[6] : string.Empty;
|
game.Region = items.Length >= 7 ? items[6] : string.Empty;
|
||||||
|
game.ForcedCore = items.Length >= 8 ? items[7].ToLowerInvariant() : string.Empty;
|
||||||
|
if (items.Length >= 8)
|
||||||
|
{
|
||||||
|
int zzz = 9;
|
||||||
|
}
|
||||||
|
|
||||||
if (db.ContainsKey(game.Hash))
|
if (db.ContainsKey(game.Hash))
|
||||||
{
|
{
|
||||||
|
|
|
@ -20,6 +20,7 @@ namespace BizHawk.Emulation.Common
|
||||||
public RomStatus Status = RomStatus.NotInDatabase;
|
public RomStatus Status = RomStatus.NotInDatabase;
|
||||||
public bool NotInDatabase = true;
|
public bool NotInDatabase = true;
|
||||||
public string FirmwareHash;
|
public string FirmwareHash;
|
||||||
|
public string ForcedCore;
|
||||||
|
|
||||||
Dictionary<string, string> Options = new Dictionary<string, string>();
|
Dictionary<string, string> Options = new Dictionary<string, string>();
|
||||||
|
|
||||||
|
@ -43,6 +44,7 @@ namespace BizHawk.Emulation.Common
|
||||||
Hash = "",
|
Hash = "",
|
||||||
Region = "",
|
Region = "",
|
||||||
Status = RomStatus.GoodDump,
|
Status = RomStatus.GoodDump,
|
||||||
|
ForcedCore = "",
|
||||||
NotInDatabase = false
|
NotInDatabase = false
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -60,6 +62,7 @@ namespace BizHawk.Emulation.Common
|
||||||
Hash = cgi.Hash;
|
Hash = cgi.Hash;
|
||||||
Region = cgi.Region;
|
Region = cgi.Region;
|
||||||
Status = cgi.Status;
|
Status = cgi.Status;
|
||||||
|
ForcedCore = cgi.ForcedCore;
|
||||||
NotInDatabase = false;
|
NotInDatabase = false;
|
||||||
ParseOptionsDictionary(cgi.MetaData);
|
ParseOptionsDictionary(cgi.MetaData);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue