firmwaremanager now tracks filesizes, and filesizes of known firmwares are used to restrict scope of scanning
This commit is contained in:
parent
2e88a279bb
commit
a7432a1e52
BizHawk.Client.Common
BizHawk.Client.EmuHawk/config
BizHawk.Emulation.Common/Database
|
@ -6,9 +6,6 @@ using System.Linq;
|
|||
using BizHawk.Common.BufferExtensions;
|
||||
using BizHawk.Emulation.Common;
|
||||
|
||||
// IDEA: put filesizes in DB too. then scans can go real quick by only scanning filesizes that match (and then scanning filesizes that dont match, in case of an emergency)
|
||||
// this would be adviseable if we end up with a very large firmware file
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
public class FirmwareManager
|
||||
|
@ -28,6 +25,7 @@ namespace BizHawk.Client.Common
|
|||
public FirmwareDatabase.FirmwareFile KnownFirmwareFile { get; set; }
|
||||
public string FilePath { get; set; }
|
||||
public string Hash { get; set; }
|
||||
public long Size { get; set; }
|
||||
}
|
||||
|
||||
private readonly Dictionary<FirmwareDatabase.FirmwareRecord, ResolutionInfo> _resolutionDictionary = new Dictionary<FirmwareDatabase.FirmwareRecord, ResolutionInfo>();
|
||||
|
@ -98,6 +96,11 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public void DoScanAndResolve()
|
||||
{
|
||||
//build a list of file sizes. Only those will be checked during scanning
|
||||
HashSet<long> sizes = new HashSet<long>();
|
||||
foreach (var ff in FirmwareDatabase.FirmwareFiles)
|
||||
sizes.Add(ff.size);
|
||||
|
||||
using(var reader = new RealFirmwareReader())
|
||||
{
|
||||
// build a list of files under the global firmwares path, and build a hash for each of them while we're at it
|
||||
|
@ -119,7 +122,8 @@ namespace BizHawk.Client.Common
|
|||
|
||||
foreach (var fi in di.GetFiles())
|
||||
{
|
||||
reader.Read(fi);
|
||||
if(sizes.Contains(fi.Length))
|
||||
reader.Read(fi);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -149,7 +153,8 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
FilePath = reader.dict[hash].FileInfo.FullName,
|
||||
KnownFirmwareFile = FirmwareDatabase.FirmwareFilesByHash[hash],
|
||||
Hash = hash
|
||||
Hash = hash,
|
||||
Size = fo.size
|
||||
};
|
||||
_resolutionDictionary[fr] = ri;
|
||||
goto DONE_FIRMWARE;
|
||||
|
@ -190,6 +195,7 @@ namespace BizHawk.Client.Common
|
|||
|
||||
// compute its hash
|
||||
var rff = reader.Read(fi);
|
||||
ri.Size = fi.Length;
|
||||
ri.Hash = rff.Hash;
|
||||
|
||||
// check whether it was a known file anyway, and go ahead and bind to the known file, as a perk (the firmwares config doesnt really use this information right now)
|
||||
|
|
|
@ -56,6 +56,7 @@
|
|||
this.linkBasePath = new System.Windows.Forms.LinkLabel();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.columnHeader8 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.lvFirmwaresContextMenuStrip.SuspendLayout();
|
||||
this.panel1.SuspendLayout();
|
||||
this.toolStrip1.SuspendLayout();
|
||||
|
@ -79,6 +80,7 @@
|
|||
this.columnHeader4,
|
||||
this.columnHeader2,
|
||||
this.columnHeader3,
|
||||
this.columnHeader8,
|
||||
this.columnHeader7});
|
||||
this.lvFirmwares.ContextMenuStrip = this.lvFirmwaresContextMenuStrip;
|
||||
this.lvFirmwares.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
|
@ -86,7 +88,7 @@
|
|||
this.lvFirmwares.GridLines = true;
|
||||
this.lvFirmwares.Location = new System.Drawing.Point(0, 25);
|
||||
this.lvFirmwares.Name = "lvFirmwares";
|
||||
this.lvFirmwares.Size = new System.Drawing.Size(773, 424);
|
||||
this.lvFirmwares.Size = new System.Drawing.Size(824, 424);
|
||||
this.lvFirmwares.SmallImageList = this.imageList1;
|
||||
this.lvFirmwares.TabIndex = 24;
|
||||
this.lvFirmwares.UseCompatibleStateImageBehavior = false;
|
||||
|
@ -128,7 +130,7 @@
|
|||
// columnHeader7
|
||||
//
|
||||
this.columnHeader7.Text = "Hash";
|
||||
this.columnHeader7.Width = 340;
|
||||
this.columnHeader7.Width = 250;
|
||||
//
|
||||
// lvFirmwaresContextMenuStrip
|
||||
//
|
||||
|
@ -176,7 +178,7 @@
|
|||
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel1.Location = new System.Drawing.Point(3, 3);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(773, 449);
|
||||
this.panel1.Size = new System.Drawing.Size(824, 449);
|
||||
this.panel1.TabIndex = 24;
|
||||
//
|
||||
// toolStrip1
|
||||
|
@ -190,7 +192,7 @@
|
|||
this.tbbImport});
|
||||
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.toolStrip1.Name = "toolStrip1";
|
||||
this.toolStrip1.Size = new System.Drawing.Size(773, 25);
|
||||
this.toolStrip1.Size = new System.Drawing.Size(824, 25);
|
||||
this.toolStrip1.TabIndex = 23;
|
||||
this.toolStrip1.Text = "toolStrip1";
|
||||
//
|
||||
|
@ -254,7 +256,7 @@
|
|||
this.tableLayoutPanel1.RowCount = 2;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(779, 478);
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(830, 478);
|
||||
this.tableLayoutPanel1.TabIndex = 25;
|
||||
//
|
||||
// panel2
|
||||
|
@ -267,7 +269,7 @@
|
|||
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel2.Location = new System.Drawing.Point(3, 458);
|
||||
this.panel2.Name = "panel2";
|
||||
this.panel2.Size = new System.Drawing.Size(773, 17);
|
||||
this.panel2.Size = new System.Drawing.Size(824, 17);
|
||||
this.panel2.TabIndex = 26;
|
||||
//
|
||||
// linkBasePath
|
||||
|
@ -290,11 +292,15 @@
|
|||
this.label1.TabIndex = 25;
|
||||
this.label1.Text = "Firmwares Search Path:";
|
||||
//
|
||||
// columnHeader8
|
||||
//
|
||||
this.columnHeader8.Text = "Size";
|
||||
//
|
||||
// FirmwaresConfig
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(779, 478);
|
||||
this.ClientSize = new System.Drawing.Size(830, 478);
|
||||
this.Controls.Add(this.tableLayoutPanel1);
|
||||
this.Name = "FirmwaresConfig";
|
||||
this.ShowIcon = false;
|
||||
|
@ -343,5 +349,6 @@
|
|||
private System.Windows.Forms.LinkLabel linkBasePath;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.ToolStripButton tbbImport;
|
||||
private System.Windows.Forms.ColumnHeader columnHeader8;
|
||||
}
|
||||
}
|
|
@ -124,8 +124,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
lvi.SubItems.Add(fr.descr);
|
||||
lvi.SubItems.Add(""); //resolved with
|
||||
lvi.SubItems.Add(""); //location
|
||||
lvi.SubItems.Add(""); //size
|
||||
lvi.SubItems.Add(""); //hash
|
||||
lvi.SubItems[6].Font = fixedFont; //would be used for hash
|
||||
lvi.SubItems[6].Font = fixedFont; //would be used for hash and size
|
||||
lvi.SubItems[7].Font = fixedFont; //would be used for hash and size
|
||||
lvFirmwares.Items.Add(lvi);
|
||||
|
||||
//build the groups in the listview as we go:
|
||||
|
@ -198,7 +200,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
var fr = lvi.Tag as FirmwareDatabase.FirmwareRecord;
|
||||
var ri = Manager.Resolve(fr, true);
|
||||
for(int i=4;i<=6;i++)
|
||||
for(int i=4;i<=7;i++)
|
||||
lvi.SubItems[i].Text = "";
|
||||
|
||||
if (ri == null)
|
||||
|
@ -248,8 +250,11 @@ namespace BizHawk.Client.EmuHawk
|
|||
lvi.ImageIndex = idUnsure;
|
||||
|
||||
lvi.SubItems[5].Text = path;
|
||||
if (ri.Hash != null) lvi.SubItems[6].Text = "sha1:" + ri.Hash;
|
||||
else lvi.SubItems[6].Text = "";
|
||||
|
||||
lvi.SubItems[6].Text = ri.Size.ToString();
|
||||
|
||||
if (ri.Hash != null) lvi.SubItems[7].Text = "sha1:" + ri.Hash;
|
||||
else lvi.SubItems[7].Text = "";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -362,6 +367,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
olvi.SubItems.Add(new ListViewItem.ListViewSubItem());
|
||||
olvi.SubItems.Add(new ListViewItem.ListViewSubItem());
|
||||
olvi.SubItems.Add(new ListViewItem.ListViewSubItem());
|
||||
olvi.SubItems.Add(new ListViewItem.ListViewSubItem());
|
||||
var ff = FirmwareDatabase.FirmwareFilesByHash[o.hash];
|
||||
if (o.status == FirmwareDatabase.FirmwareOptionStatus.Ideal)
|
||||
olvi.ImageIndex = FirmwaresConfigInfo.idIdeal;
|
||||
|
@ -371,14 +377,16 @@ namespace BizHawk.Client.EmuHawk
|
|||
olvi.ImageIndex = FirmwaresConfigInfo.idUnacceptable;
|
||||
if (o.status == FirmwareDatabase.FirmwareOptionStatus.Bad)
|
||||
olvi.ImageIndex = FirmwaresConfigInfo.idBad;
|
||||
olvi.SubItems[0].Text = o.hash;
|
||||
olvi.SubItems[0].Font = fixedFont;
|
||||
olvi.SubItems[1].Text = ff.recommendedName;
|
||||
olvi.SubItems[1].Font = this.Font; //why doesnt this work?
|
||||
olvi.SubItems[2].Text = ff.descr;
|
||||
olvi.SubItems[0].Text = ff.size.ToString();
|
||||
olvi.SubItems[0].Font = this.Font; //why doesnt this work?
|
||||
olvi.SubItems[1].Text = o.hash;
|
||||
olvi.SubItems[1].Font = fixedFont;
|
||||
olvi.SubItems[2].Text = ff.recommendedName;
|
||||
olvi.SubItems[2].Font = this.Font; //why doesnt this work?
|
||||
olvi.SubItems[3].Text = ff.info;
|
||||
olvi.SubItems[3].Text = ff.descr;
|
||||
olvi.SubItems[3].Font = this.Font; //why doesnt this work?
|
||||
olvi.SubItems[4].Text = ff.info;
|
||||
olvi.SubItems[4].Font = this.Font; //why doesnt this work?
|
||||
fciDialog.lvOptions.Items.Add(olvi);
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
this.colStandardFilename = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.colDescription = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.colInfo = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.btnClose = new System.Windows.Forms.Button();
|
||||
|
@ -42,7 +43,7 @@
|
|||
this.lblFirmware = new System.Windows.Forms.Label();
|
||||
this.lvmiOptionsContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.tsmiOptionsCopy = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
|
||||
this.colSize = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.flowLayoutPanel1.SuspendLayout();
|
||||
this.lvmiOptionsContextMenuStrip.SuspendLayout();
|
||||
|
@ -51,6 +52,7 @@
|
|||
// lvOptions
|
||||
//
|
||||
this.lvOptions.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.colSize,
|
||||
this.colHash,
|
||||
this.colStandardFilename,
|
||||
this.colDescription,
|
||||
|
@ -88,6 +90,12 @@
|
|||
this.colInfo.Text = "Info";
|
||||
this.colInfo.Width = 165;
|
||||
//
|
||||
// imageList1
|
||||
//
|
||||
this.imageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
|
||||
this.imageList1.ImageSize = new System.Drawing.Size(16, 16);
|
||||
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.ColumnCount = 1;
|
||||
|
@ -173,11 +181,10 @@
|
|||
this.tsmiOptionsCopy.Text = "&Copy";
|
||||
this.tsmiOptionsCopy.Click += new System.EventHandler(this.tsmiOptionsCopy_Click);
|
||||
//
|
||||
// imageList1
|
||||
// colSize
|
||||
//
|
||||
this.imageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
|
||||
this.imageList1.ImageSize = new System.Drawing.Size(16, 16);
|
||||
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.colSize.Text = "Size";
|
||||
this.colSize.Width = 74;
|
||||
//
|
||||
// FirmwaresConfigInfo
|
||||
//
|
||||
|
@ -216,5 +223,6 @@
|
|||
private System.Windows.Forms.ToolStripMenuItem tsmiOptionsCopy;
|
||||
private System.Windows.Forms.ColumnHeader colInfo;
|
||||
private System.Windows.Forms.ImageList imageList1;
|
||||
private System.Windows.Forms.ColumnHeader colSize;
|
||||
}
|
||||
}
|
|
@ -9,53 +9,53 @@ namespace BizHawk.Emulation.Common
|
|||
static FirmwareDatabase()
|
||||
{
|
||||
//FDS has two OK variants (http://tcrf.net/Family_Computer_Disk_System)
|
||||
var fds_nintendo = File("57FE1BDEE955BB48D357E463CCBF129496930B62", "disksys-nintendo.rom", "Bios (Nintendo)");
|
||||
var fds_twinfc = File("E4E41472C454F928E53EB10E0509BF7D1146ECC1", "disksys-nintendo.rom", "Bios (TwinFC)");
|
||||
var fds_nintendo = File("57FE1BDEE955BB48D357E463CCBF129496930B62", 8192, "disksys-nintendo.rom", "Bios (Nintendo)");
|
||||
var fds_twinfc = File("E4E41472C454F928E53EB10E0509BF7D1146ECC1", 8192, "disksys-nintendo.rom", "Bios (TwinFC)");
|
||||
Firmware("NES", "Bios_FDS", "Bios");
|
||||
Option("NES", "Bios_FDS", fds_nintendo);
|
||||
Option("NES", "Bios_FDS", fds_twinfc);
|
||||
|
||||
FirmwareAndOption("973E10840DB683CF3FAF61BD443090786B3A9F04", "SNES", "Rom_SGB", "sgb.sfc", "Super GameBoy Rom"); //World (Rev B) ?
|
||||
FirmwareAndOption("A002F4EFBA42775A31185D443F3ED1790B0E949A", "SNES", "CX4", "cx4.rom", "CX4 Rom");
|
||||
FirmwareAndOption("188D471FEFEA71EB53F0EE7064697FF0971B1014", "SNES", "DSP1", "dsp1.rom", "DSP1 Rom");
|
||||
FirmwareAndOption("78B724811F5F18D8C67669D9390397EB1A47A5E2", "SNES", "DSP1b", "dsp1b.rom", "DSP1b Rom");
|
||||
FirmwareAndOption("198C4B1C3BFC6D69E734C5957AF3DBFA26238DFB", "SNES", "DSP2", "dsp2.rom", "DSP2 Rom");
|
||||
FirmwareAndOption("558DA7CB3BD3876A6CA693661FFC6C110E948CF9", "SNES", "DSP3", "dsp3.rom", "DSP3 Rom");
|
||||
FirmwareAndOption("AF6478AECB6F1B67177E79C82CA04C56250A8C72", "SNES", "DSP4", "dsp4.rom", "DSP4 Rom");
|
||||
FirmwareAndOption("6472828403DE3589433A906E2C3F3D274C0FF008", "SNES", "ST010", "st010.rom", "ST010 Rom");
|
||||
FirmwareAndOption("FECBAE2CEC76C710422486BAA186FFA7CA1CF925", "SNES", "ST011", "st011.rom", "ST011 Rom");
|
||||
FirmwareAndOption("91383B92745CC7CC4F15409AC5BC2C2F699A43F1", "SNES", "ST018", "st018.rom", "ST018 Rom");
|
||||
FirmwareAndOption("79F5FF55DD10187C7FD7B8DAAB0B3FFBD1F56A2C", "PCECD", "Bios", "pcecd-3.0-(J).pce", "Super CD Bios (J)");
|
||||
FirmwareAndOption("D9D134BB6B36907C615A594CC7688F7BFCEF5B43", "A78", "Bios_NTSC", "7800NTSCBIOS.bin", "NTSC Bios");
|
||||
FirmwareAndOption("5A140136A16D1D83E4FF32A19409CA376A8DF874", "A78", "Bios_PAL", "7800PALBIOS.bin", "PAL Bios");
|
||||
FirmwareAndOption("A3AF676991391A6DD716C79022D4947206B78164", "A78", "Bios_HSC", "7800highscore.bin", "Highscore Bios");
|
||||
FirmwareAndOption("45BEDC4CBDEAC66C7DF59E9E599195C778D86A92", "Coleco", "Bios", "ColecoBios.bin", "Bios");
|
||||
FirmwareAndOption("973E10840DB683CF3FAF61BD443090786B3A9F04", 262144, "SNES", "Rom_SGB", "sgb.sfc", "Super GameBoy Rom"); //World (Rev B) ?
|
||||
FirmwareAndOption("A002F4EFBA42775A31185D443F3ED1790B0E949A", 3072, "SNES", "CX4", "cx4.rom", "CX4 Rom");
|
||||
FirmwareAndOption("188D471FEFEA71EB53F0EE7064697FF0971B1014", 8192, "SNES", "DSP1", "dsp1.rom", "DSP1 Rom");
|
||||
FirmwareAndOption("78B724811F5F18D8C67669D9390397EB1A47A5E2", 8192, "SNES", "DSP1b", "dsp1b.rom", "DSP1b Rom");
|
||||
FirmwareAndOption("198C4B1C3BFC6D69E734C5957AF3DBFA26238DFB", 8192, "SNES", "DSP2", "dsp2.rom", "DSP2 Rom");
|
||||
FirmwareAndOption("558DA7CB3BD3876A6CA693661FFC6C110E948CF9", 8192, "SNES", "DSP3", "dsp3.rom", "DSP3 Rom");
|
||||
FirmwareAndOption("AF6478AECB6F1B67177E79C82CA04C56250A8C72", 8192, "SNES", "DSP4", "dsp4.rom", "DSP4 Rom");
|
||||
FirmwareAndOption("6472828403DE3589433A906E2C3F3D274C0FF008", 53248, "SNES", "ST010", "st010.rom", "ST010 Rom");
|
||||
FirmwareAndOption("FECBAE2CEC76C710422486BAA186FFA7CA1CF925", 53248, "SNES", "ST011", "st011.rom", "ST011 Rom");
|
||||
FirmwareAndOption("91383B92745CC7CC4F15409AC5BC2C2F699A43F1", 163840, "SNES", "ST018", "st018.rom", "ST018 Rom");
|
||||
FirmwareAndOption("79F5FF55DD10187C7FD7B8DAAB0B3FFBD1F56A2C", 262144, "PCECD", "Bios", "pcecd-3.0-(J).pce", "Super CD Bios (J)");
|
||||
FirmwareAndOption("D9D134BB6B36907C615A594CC7688F7BFCEF5B43", 4096, "A78", "Bios_NTSC", "7800NTSCBIOS.bin", "NTSC Bios");
|
||||
FirmwareAndOption("5A140136A16D1D83E4FF32A19409CA376A8DF874", 16384, "A78", "Bios_PAL", "7800PALBIOS.bin", "PAL Bios");
|
||||
FirmwareAndOption("A3AF676991391A6DD716C79022D4947206B78164", 4096, "A78", "Bios_HSC", "7800highscore.bin", "Highscore Bios");
|
||||
FirmwareAndOption("45BEDC4CBDEAC66C7DF59E9E599195C778D86A92", 8192, "Coleco", "Bios", "ColecoBios.bin", "Bios");
|
||||
|
||||
{
|
||||
var GBA_JDebug = File("AA98A2AD32B86106340665D1222D7D973A1361C7", "gbabios.rom", "Bios (J Debug)");
|
||||
var GBA_Normal = File("300C20DF6731A33952DED8C436F7F186D25D3492", "gbabios.rom", "Bios (World)");
|
||||
var GBA_JDebug = File("AA98A2AD32B86106340665D1222D7D973A1361C7", 16384, "gbabios.rom", "Bios (J Debug)"); //?? is this size correct?
|
||||
var GBA_Normal = File("300C20DF6731A33952DED8C436F7F186D25D3492", 16384, "gbabios.rom", "Bios (World)");
|
||||
Firmware("GBA", "Bios", "Bios");
|
||||
Option("GBA", "Bios", GBA_Normal);
|
||||
Option("GBA", "Bios", GBA_JDebug);
|
||||
}
|
||||
|
||||
FirmwareAndOption("E4ED47FAE31693E016B081C6BDA48DA5B70D7CCB", "LYNX", "Boot", "lynxboot.img", "Boot Rom");
|
||||
FirmwareAndOption("E4ED47FAE31693E016B081C6BDA48DA5B70D7CCB", 512, "LYNX", "Boot", "lynxboot.img", "Boot Rom");
|
||||
|
||||
|
||||
//FirmwareAndOption("24F67BDEA115A2C847C8813A262502EE1607B7DF", "NDS", "Bios_Arm7", "biosnds7.rom", "ARM7 Bios");
|
||||
//FirmwareAndOption("BFAAC75F101C135E32E2AAF541DE6B1BE4C8C62D", "NDS", "Bios_Arm9", "biosnds9.rom", "ARM9 Bios");
|
||||
FirmwareAndOption("5A65B922B562CB1F57DAB51B73151283F0E20C7A", "INTV", "EROM", "erom.bin", "Executive Rom");
|
||||
FirmwareAndOption("F9608BB4AD1CFE3640D02844C7AD8E0BCD974917", "INTV", "GROM", "grom.bin", "Graphics Rom");
|
||||
FirmwareAndOption("1D503E56DF85A62FEE696E7618DC5B4E781DF1BB", "C64", "Kernal", "c64-kernal.bin", "Kernal Rom");
|
||||
FirmwareAndOption("79015323128650C742A3694C9429AA91F355905E", "C64", "Basic", "c64-basic.bin", "Basic Rom");
|
||||
FirmwareAndOption("ADC7C31E18C7C7413D54802EF2F4193DA14711AA", "C64", "Chargen", "c64-chargen.bin", "Chargen Rom");
|
||||
FirmwareAndOption("5A65B922B562CB1F57DAB51B73151283F0E20C7A", 8192, "INTV", "EROM", "erom.bin", "Executive Rom");
|
||||
FirmwareAndOption("F9608BB4AD1CFE3640D02844C7AD8E0BCD974917", 2048, "INTV", "GROM", "grom.bin", "Graphics Rom");
|
||||
FirmwareAndOption("1D503E56DF85A62FEE696E7618DC5B4E781DF1BB", 8192, "C64", "Kernal", "c64-kernal.bin", "Kernal Rom");
|
||||
FirmwareAndOption("79015323128650C742A3694C9429AA91F355905E", 8192, "C64", "Basic", "c64-basic.bin", "Basic Rom");
|
||||
FirmwareAndOption("ADC7C31E18C7C7413D54802EF2F4193DA14711AA", 4096, "C64", "Chargen", "c64-chargen.bin", "Chargen Rom");
|
||||
|
||||
//for saturn, we think any bios region can pretty much run any iso
|
||||
//so, we're going to lay this out carefully so that we choose things in a sensible order, but prefer the correct region
|
||||
var ss_100_j = File("2B8CB4F87580683EB4D760E4ED210813D667F0A2", "saturn-1.00-(J).bin", "Bios v1.00 (J)");
|
||||
var ss_100_ue = File("FAA8EA183A6D7BBE5D4E03BB1332519800D3FBC3", "saturn-1.00-(U+E).bin", "Bios v1.00 (U+E)");
|
||||
var ss_100a_ue = File("3BB41FEB82838AB9A35601AC666DE5AACFD17A58", "saturn-1.00a-(U+E).bin", "Bios v1.00a (U+E)");
|
||||
var ss_101_j = File("DF94C5B4D47EB3CC404D88B33A8FDA237EAF4720", "saturn-1.01-(J).bin", "Bios v1.01 (J)");
|
||||
var ss_100_j = File("2B8CB4F87580683EB4D760E4ED210813D667F0A2", 524288, "saturn-1.00-(J).bin", "Bios v1.00 (J)");
|
||||
var ss_100_ue = File("FAA8EA183A6D7BBE5D4E03BB1332519800D3FBC3", 524288, "saturn-1.00-(U+E).bin", "Bios v1.00 (U+E)");
|
||||
var ss_100a_ue = File("3BB41FEB82838AB9A35601AC666DE5AACFD17A58", 524288, "saturn-1.00a-(U+E).bin", "Bios v1.00a (U+E)"); //?? is this size correct?
|
||||
var ss_101_j = File("DF94C5B4D47EB3CC404D88B33A8FDA237EAF4720", 524288, "saturn-1.01-(J).bin", "Bios v1.01 (J)"); //?? is this size correct?
|
||||
Firmware("SAT", "J", "Bios (J)");
|
||||
Option("SAT", "J", ss_100_j);
|
||||
Option("SAT", "J", ss_101_j);
|
||||
|
@ -72,14 +72,14 @@ namespace BizHawk.Emulation.Common
|
|||
Option("SAT", "E", ss_100_j);
|
||||
Option("SAT", "E", ss_101_j);
|
||||
|
||||
var ti83_102 = File("CE08F6A808701FC6672230A790167EE485157561", "ti83_102.rom", "TI-83 Rom v1.02");
|
||||
var ti83_103 = File("8399E384804D8D29866CAA4C8763D7A61946A467", "ti83_103.rom", "TI-83 Rom v1.03");
|
||||
var ti83_104 = File("33877FF637DC5F4C5388799FD7E2159B48E72893", "ti83_104.rom", "TI-83 Rom v1.04");
|
||||
var ti83_106 = File("3D65C2A1B771CE8E5E5A0476EC1AA9C9CDC0E833", "ti83_106.rom", "TI-83 Rom v1.06");
|
||||
var ti83_107 = File("EF66DAD3E7B2B6A86F326765E7DFD7D1A308AD8F", "ti83_107.rom", "TI-83 Rom v1.07"); //formerly the 1.?? recommended one
|
||||
var ti83_108 = File("9C74F0B61655E9E160E92164DB472AD7EE02B0F8", "ti83_108.rom", "TI-83 Rom v1.08");
|
||||
var ti83p_103 = File("37EAEEB9FB5C18FB494E322B75070E80CC4D858E", "ti83p_103b.rom", "TI-83 Plus Rom v1.03");
|
||||
var ti83p_112 = File("6615DF5554076B6B81BD128BF847D2FF046E556B", "ti83p_112.rom", "TI-83 Plus Rom v1.12");
|
||||
var ti83_102 = File("CE08F6A808701FC6672230A790167EE485157561", 262144, "ti83_102.rom", "TI-83 Rom v1.02"); //?? is this size correct?
|
||||
var ti83_103 = File("8399E384804D8D29866CAA4C8763D7A61946A467", 262144, "ti83_103.rom", "TI-83 Rom v1.03"); //?? is this size correct?
|
||||
var ti83_104 = File("33877FF637DC5F4C5388799FD7E2159B48E72893", 262144, "ti83_104.rom", "TI-83 Rom v1.04"); //?? is this size correct?
|
||||
var ti83_106 = File("3D65C2A1B771CE8E5E5A0476EC1AA9C9CDC0E833", 262144, "ti83_106.rom", "TI-83 Rom v1.06"); //?? is this size correct?
|
||||
var ti83_107 = File("EF66DAD3E7B2B6A86F326765E7DFD7D1A308AD8F", 262144, "ti83_107.rom", "TI-83 Rom v1.07"); //formerly the 1.?? recommended one
|
||||
var ti83_108 = File("9C74F0B61655E9E160E92164DB472AD7EE02B0F8", 262144, "ti83_108.rom", "TI-83 Rom v1.08"); //?? is this size correct?
|
||||
var ti83p_103 = File("37EAEEB9FB5C18FB494E322B75070E80CC4D858E", 262144, "ti83p_103b.rom", "TI-83 Plus Rom v1.03"); //?? is this size correct?
|
||||
var ti83p_112 = File("6615DF5554076B6B81BD128BF847D2FF046E556B", 262144, "ti83p_112.rom", "TI-83 Plus Rom v1.12"); //?? is this size correct?
|
||||
|
||||
Firmware("TI83", "Rom", "TI-83 Rom");
|
||||
Option("TI83", "Rom", ti83_102);
|
||||
|
@ -92,13 +92,13 @@ namespace BizHawk.Emulation.Common
|
|||
Option("TI83", "Rom", ti83p_112);
|
||||
|
||||
// mega cd
|
||||
var eu_mcd1_9210 = File("f891e0ea651e2232af0c5c4cb46a0cae2ee8f356", "eu_mcd1_9210.bin", "Mega CD EU (9210)");
|
||||
var eu_mcd2_9303 = File("7063192ae9f6b696c5b81bc8f0a9fe6f0c400e58", "eu_mcd2_9303.bin", "Mega CD EU (9303)");
|
||||
var eu_mcd2_9306 = File("523b3125fb0ac094e16aa072bc6ccdca22e520e5", "eu_mcd2_9306.bin", "Mega CD EU (9310)");
|
||||
var jp_mcd1_9111 = File("4846f448160059a7da0215a5df12ca160f26dd69", "jp_mcd1_9111.bin", "Mega CD JP (9111)");
|
||||
var jp_mcd1_9112 = File("e4193c6ae44c3cea002707d2a88f1fbcced664de", "jp_mcd1_9112.bin", "Mega CD JP (9112)");
|
||||
var us_scd1_9210 = File("f4f315adcef9b8feb0364c21ab7f0eaf5457f3ed", "us_scd1_9210.bin", "Sega CD US (9210)");
|
||||
var us_scd2_9303 = File("bd3ee0c8ab732468748bf98953603ce772612704", "us_scd2_9303.bin", "Sega CD US (9303)");
|
||||
var eu_mcd1_9210 = File("f891e0ea651e2232af0c5c4cb46a0cae2ee8f356", 131072, "eu_mcd1_9210.bin", "Mega CD EU (9210)"); //?? is this size correct?
|
||||
var eu_mcd2_9303 = File("7063192ae9f6b696c5b81bc8f0a9fe6f0c400e58", 131072, "eu_mcd2_9303.bin", "Mega CD EU (9303)"); //?? is this size correct?
|
||||
var eu_mcd2_9306 = File("523b3125fb0ac094e16aa072bc6ccdca22e520e5", 131072, "eu_mcd2_9306.bin", "Mega CD EU (9310)"); //?? is this size correct?
|
||||
var jp_mcd1_9111 = File("4846f448160059a7da0215a5df12ca160f26dd69", 131072, "jp_mcd1_9111.bin", "Mega CD JP (9111)"); //?? is this size correct?
|
||||
var jp_mcd1_9112 = File("e4193c6ae44c3cea002707d2a88f1fbcced664de", 131072, "jp_mcd1_9112.bin", "Mega CD JP (9112)"); //?? is this size correct?
|
||||
var us_scd1_9210 = File("f4f315adcef9b8feb0364c21ab7f0eaf5457f3ed", 131072, "us_scd1_9210.bin", "Sega CD US (9210)"); //?? is this size correct?
|
||||
var us_scd2_9303 = File("bd3ee0c8ab732468748bf98953603ce772612704", 131072, "us_scd2_9303.bin", "Sega CD US (9303)"); //?? is this size correct?
|
||||
|
||||
Firmware("GEN", "CD_BIOS_EU", "Mega CD Bios (Europe)");
|
||||
Firmware("GEN", "CD_BIOS_JP", "Mega CD Bios (Japan)");
|
||||
|
@ -112,10 +112,10 @@ namespace BizHawk.Emulation.Common
|
|||
Option("GEN", "CD_BIOS_US", us_scd2_9303);
|
||||
|
||||
// SMS
|
||||
var sms_us_13 = File("C315672807D8DDB8D91443729405C766DD95CAE7", "sms_us_1.3.sms", "SMS BIOS 1.3 (USA, Europe)");
|
||||
var sms_jp_21 = File("A8C1B39A2E41137835EDA6A5DE6D46DD9FADBAF2", "sms_jp_2.1.sms", "SMS BIOS 2.1 (Japan)");
|
||||
var sms_us_1b = File("29091FF60EF4C22B1EE17AA21E0E75BAC6B36474", "sms_us_1.0b.sms", "SMS BIOS 1.0 (USA) (Proto)");
|
||||
var sms_m404 = File("4A06C8E66261611DCE0305217C42138B71331701", "sms_m404.sms", "SMS BIOS (USA) (M404) (Proto)");
|
||||
var sms_us_13 = File("C315672807D8DDB8D91443729405C766DD95CAE7", 8192, "sms_us_1.3.sms", "SMS BIOS 1.3 (USA, Europe)");
|
||||
var sms_jp_21 = File("A8C1B39A2E41137835EDA6A5DE6D46DD9FADBAF2", 8192, "sms_jp_2.1.sms", "SMS BIOS 2.1 (Japan)");
|
||||
var sms_us_1b = File("29091FF60EF4C22B1EE17AA21E0E75BAC6B36474", 8192, "sms_us_1.0b.sms", "SMS BIOS 1.0 (USA) (Proto)"); //?? is this size correct?
|
||||
var sms_m404 = File("4A06C8E66261611DCE0305217C42138B71331701", 8192, "sms_m404.sms", "SMS BIOS (USA) (M404) (Proto)"); //?? is this size correct?
|
||||
|
||||
Firmware("SMS", "Export", "SMS Bios (USA/Export)");
|
||||
Firmware("SMS", "Japan", "SMS Bios (Japan)");
|
||||
|
@ -130,30 +130,30 @@ namespace BizHawk.Emulation.Common
|
|||
//https://en.wikipedia.org/wiki/PlayStation_models#Comparison_of_models [w]
|
||||
//https://github.com/petrockblog/RetroPie-Setup/wiki/PCSX-Core-Playstation-1 [g]
|
||||
//http://redump.org/datfile/psx-bios/ also
|
||||
var ps_10j = File("343883A7B555646DA8CEE54AADD2795B6E7DD070", "ps-10j.bin", "PSX BIOS (Version 1.0 J)", "Used on SCPH-1000, DTL-H1000 [g]. This is Rev for A hardware [w].");
|
||||
var ps_11j = File("B06F4A861F74270BE819AA2A07DB8D0563A7CC4E", "ps-11j.bin", "PSX BIOS (Version 1.1 01/22/95)", "Used on SCPH-3000, DTL-H1000H [g]. This is for Rev B hardware [w].");
|
||||
var ps_20a = File("649895EFD79D14790EABB362E94EB0622093DFB9", "ps-20a.bin", "PSX BIOS (Version 2.0 05/07/95 A)", "Used on DTL-H1001 [g]. This is for Rev B hardware [w].");
|
||||
var ps_20e = File("20B98F3D80F11CBF5A7BFD0779B0E63760ECC62C", "ps-20e.bin", "PSX BIOS (Version 2.0 05/10/95 E)", "Used on DTL-H1002, SCPH-1002 [g]. This is for Rev B hardware [w].");
|
||||
var ps_21j = File("E38466A4BA8005FBA7E9E3C7B9EFEBA7205BEE3F", "ps-21j.bin", "PSX BIOS (Version 2.1 07/17/95 J)", "Used on SCPH-3500 [g]. This is for Rev B hardware [w].");
|
||||
var ps_21a = File("CA7AF30B50D9756CBD764640126C454CFF658479", "ps-21a.bin", "PSX BIOS (Version 2.1 07/17/95 A)", "Used on DTL-H1101 [g]. This is for Rev B hardware, presumably.");
|
||||
var ps_21e = File("76CF6B1B2A7C571A6AD07F2BAC0DB6CD8F71E2CC", "ps-21e.bin", "PSX BIOS (Version 2.1 07/17/95 E)", "Used on SCPH-1002, DTL-H1102 [g]. This is for Rev B hardware [w].");
|
||||
var ps_22j = File("FFA7F9A7FB19D773A0C3985A541C8E5623D2C30D", "ps-22j.bin", "PSX BIOS (Version 2.2 12/04/95 J)", "Used on SCPH-5000, DTL-H1200, DTL-H3000 [g]. This is for Rev C hardware [w].");
|
||||
var ps_22j_bad = File("E340DB2696274DDA5FDC25E434A914DB71E8B02B", "ps-22j-bad.bin", "BAD DUMP OF SCPH-5000. Found on [p]."); //BAD!!
|
||||
var ps_22a = File("10155D8D6E6E832D6EA66DB9BC098321FB5E8EBF", "ps-22a.bin", "PSX BIOS (Version 2.2 12/04/95 A)", "Used on SCPH-1001, DTL-H1201, DTL-H3001 [g]. This is for Rev C hardware [w].");
|
||||
var ps_22e = File("B6A11579CAEF3875504FCF3831B8E3922746DF2C", "ps-22e.bin", "PSX BIOS (Version 2.2 12/04/95 E)", "Used on SCPH-1002, DTL-H1202, DTL-H3002 [g]. This is for Rev C hardware [w].");
|
||||
var ps_22d = File("73107D468FC7CB1D2C5B18B269715DD889ECEF06", "ps-22d.bin", "PSX BIOS (Version 2.2 03/06/96 D)", "Used on DTL-H1100 [g]. This is for Rev C hardware, presumably.");
|
||||
var ps_30j = File("B05DEF971D8EC59F346F2D9AC21FB742E3EB6917", "ps-30j.bin", "PSX BIOS (Version 3.0 09/09/96 J)", "Used on SCPH-5500 [g]. This is for Rev C hardware [w]. Recommended for (J) [f].");
|
||||
var ps_30a = File("0555C6FAE8906F3F09BAF5988F00E55F88E9F30B", "ps-30a.bin", "PSX BIOS (Version 3.0 11/18/96 A)", "Used on SCPH-5501, SCPH-5503, SCPH-7003 [g]. This is for Rev C hardware [w]. Recommended for (U) [f].");
|
||||
var ps_30e = File("F6BC2D1F5EB6593DE7D089C425AC681D6FFFD3F0", "ps-30e.bin", "PSX BIOS (Version 3.0 01/06/97 E)", "Used on SCPH-5502, SCPH-5552 [g]. This is for Rev C hardware [w]. Recommended for (E) [f].");
|
||||
var ps_30e_bad = File("F8DE9325FC36FCFA4B29124D291C9251094F2E54", "ps-30e-bad.bin", "BAD DUMP OF SCPH-5502. Found on [p]."); //BAD!
|
||||
var ps_40j = File("77B10118D21AC7FFA9B35F9C4FD814DA240EB3E9", "ps-40j.bin", "PSX BIOS (Version 4.0 08/18/97 J)", "Used on SCPH-7000, SCPH-7500, SCPH-9000 [g]. This is for Rev C hardware [w].");
|
||||
var ps_41a = File("14DF4F6C1E367CE097C11DEAE21566B4FE5647A9", "ps-41a.bin", "PSX BIOS (Version 4.1 12/16/97 A)", "Used on SCPH-7001, SCPH-7501, SCPH-7503, SCPH-9001, SCPH-9003, SCPH-9903 [g]. This is for Rev C hardware [w].");
|
||||
var ps_41e = File("8D5DE56A79954F29E9006929BA3FED9B6A418C1D", "ps-41e.bin", "PSX BIOS (Version 4.1 12/16/97 E)", "Used on SCPH-7002, SCPH-7502, SCPH-9002 [g]. This is for Rev C hardware [w].");
|
||||
var psone_43j = File("339A48F4FCF63E10B5B867B8C93CFD40945FAF6C", "psone-43j.bin", "PSX BIOS (Version 4.3 03/11/00 J)", "Used on PSone SCPH-100 [g]. This is for Rev C PSone hardware [w].");
|
||||
var psone_44e = File("BEB0AC693C0DC26DAF5665B3314DB81480FA5C7C", "psone-44e.bin", "PSX BIOS (Version 4.4 03/24/00 E)", "Used on PSone SCPH-102 [g]. This is for Rev C PSone hardware [w].");
|
||||
var psone_45a = File("DCFFE16BD90A723499AD46C641424981338D8378", "psone-45a.bin", "PSX BIOS (Version 4.5 05/25/00 A)", "Used on PSone SCPH-101 [g]. This is for Rev C PSone hardware [w].");
|
||||
var psone_r5e = File("DBC7339E5D85827C095764FC077B41F78FD2ECAE", "psone-45e.bin", "PSX BIOS (Version 4.5 05/25/00 E)", "Used on PSone SCPH-102 [g]. This is for Rev C PSone hardware [w].");
|
||||
var ps2_50j = File("D7D6BE084F51354BC951D8FA2D8D912AA70ABC5E", "ps2-50j.bin", "PSX BIOS (Version 5.0 10/27/00 J)", "Found on a PS2 [p].");
|
||||
var ps_10j = File("343883A7B555646DA8CEE54AADD2795B6E7DD070", 524288, "ps-10j.bin", "PSX BIOS (Version 1.0 J)", "Used on SCPH-1000, DTL-H1000 [g]. This is Rev for A hardware [w].");
|
||||
var ps_11j = File("B06F4A861F74270BE819AA2A07DB8D0563A7CC4E", 524288, "ps-11j.bin", "PSX BIOS (Version 1.1 01/22/95)", "Used on SCPH-3000, DTL-H1000H [g]. This is for Rev B hardware [w].");
|
||||
var ps_20a = File("649895EFD79D14790EABB362E94EB0622093DFB9", 524288, "ps-20a.bin", "PSX BIOS (Version 2.0 05/07/95 A)", "Used on DTL-H1001 [g]. This is for Rev B hardware [w].");
|
||||
var ps_20e = File("20B98F3D80F11CBF5A7BFD0779B0E63760ECC62C", 524288, "ps-20e.bin", "PSX BIOS (Version 2.0 05/10/95 E)", "Used on DTL-H1002, SCPH-1002 [g]. This is for Rev B hardware [w].");
|
||||
var ps_21j = File("E38466A4BA8005FBA7E9E3C7B9EFEBA7205BEE3F", 524288, "ps-21j.bin", "PSX BIOS (Version 2.1 07/17/95 J)", "Used on SCPH-3500 [g]. This is for Rev B hardware [w].");
|
||||
var ps_21a = File("CA7AF30B50D9756CBD764640126C454CFF658479", 524288, "ps-21a.bin", "PSX BIOS (Version 2.1 07/17/95 A)", "Used on DTL-H1101 [g]. This is for Rev B hardware, presumably.");
|
||||
var ps_21e = File("76CF6B1B2A7C571A6AD07F2BAC0DB6CD8F71E2CC", 524288, "ps-21e.bin", "PSX BIOS (Version 2.1 07/17/95 E)", "Used on SCPH-1002, DTL-H1102 [g]. This is for Rev B hardware [w].");
|
||||
var ps_22j = File("FFA7F9A7FB19D773A0C3985A541C8E5623D2C30D", 524288, "ps-22j.bin", "PSX BIOS (Version 2.2 12/04/95 J)", "Used on SCPH-5000, DTL-H1200, DTL-H3000 [g]. This is for Rev C hardware [w].");
|
||||
var ps_22j_bad = File("E340DB2696274DDA5FDC25E434A914DB71E8B02B", 524288, "ps-22j-bad.bin", "BAD DUMP OF SCPH-5000. Found on [p]."); //BAD!!
|
||||
var ps_22a = File("10155D8D6E6E832D6EA66DB9BC098321FB5E8EBF", 524288, "ps-22a.bin", "PSX BIOS (Version 2.2 12/04/95 A)", "Used on SCPH-1001, DTL-H1201, DTL-H3001 [g]. This is for Rev C hardware [w].");
|
||||
var ps_22e = File("B6A11579CAEF3875504FCF3831B8E3922746DF2C", 524288, "ps-22e.bin", "PSX BIOS (Version 2.2 12/04/95 E)", "Used on SCPH-1002, DTL-H1202, DTL-H3002 [g]. This is for Rev C hardware [w].");
|
||||
var ps_22d = File("73107D468FC7CB1D2C5B18B269715DD889ECEF06", 524288, "ps-22d.bin", "PSX BIOS (Version 2.2 03/06/96 D)", "Used on DTL-H1100 [g]. This is for Rev C hardware, presumably.");
|
||||
var ps_30j = File("B05DEF971D8EC59F346F2D9AC21FB742E3EB6917", 524288, "ps-30j.bin", "PSX BIOS (Version 3.0 09/09/96 J)", "Used on SCPH-5500 [g]. This is for Rev C hardware [w]. Recommended for (J) [f].");
|
||||
var ps_30a = File("0555C6FAE8906F3F09BAF5988F00E55F88E9F30B", 524288, "ps-30a.bin", "PSX BIOS (Version 3.0 11/18/96 A)", "Used on SCPH-5501, SCPH-5503, SCPH-7003 [g]. This is for Rev C hardware [w]. Recommended for (U) [f].");
|
||||
var ps_30e = File("F6BC2D1F5EB6593DE7D089C425AC681D6FFFD3F0", 524288, "ps-30e.bin", "PSX BIOS (Version 3.0 01/06/97 E)", "Used on SCPH-5502, SCPH-5552 [g]. This is for Rev C hardware [w]. Recommended for (E) [f].");
|
||||
var ps_30e_bad = File("F8DE9325FC36FCFA4B29124D291C9251094F2E54", 524288, "ps-30e-bad.bin", "BAD DUMP OF SCPH-5502. Found on [p]."); //BAD!
|
||||
var ps_40j = File("77B10118D21AC7FFA9B35F9C4FD814DA240EB3E9", 524288, "ps-40j.bin", "PSX BIOS (Version 4.0 08/18/97 J)", "Used on SCPH-7000, SCPH-7500, SCPH-9000 [g]. This is for Rev C hardware [w].");
|
||||
var ps_41a = File("14DF4F6C1E367CE097C11DEAE21566B4FE5647A9", 524288, "ps-41a.bin", "PSX BIOS (Version 4.1 12/16/97 A)", "Used on SCPH-7001, SCPH-7501, SCPH-7503, SCPH-9001, SCPH-9003, SCPH-9903 [g]. This is for Rev C hardware [w].");
|
||||
var ps_41e = File("8D5DE56A79954F29E9006929BA3FED9B6A418C1D", 524288, "ps-41e.bin", "PSX BIOS (Version 4.1 12/16/97 E)", "Used on SCPH-7002, SCPH-7502, SCPH-9002 [g]. This is for Rev C hardware [w].");
|
||||
var psone_43j = File("339A48F4FCF63E10B5B867B8C93CFD40945FAF6C", 524288, "psone-43j.bin", "PSX BIOS (Version 4.3 03/11/00 J)", "Used on PSone SCPH-100 [g]. This is for Rev C PSone hardware [w].");
|
||||
var psone_44e = File("BEB0AC693C0DC26DAF5665B3314DB81480FA5C7C", 524288, "psone-44e.bin", "PSX BIOS (Version 4.4 03/24/00 E)", "Used on PSone SCPH-102 [g]. This is for Rev C PSone hardware [w].");
|
||||
var psone_45a = File("DCFFE16BD90A723499AD46C641424981338D8378", 524288, "psone-45a.bin", "PSX BIOS (Version 4.5 05/25/00 A)", "Used on PSone SCPH-101 [g]. This is for Rev C PSone hardware [w].");
|
||||
var psone_r5e = File("DBC7339E5D85827C095764FC077B41F78FD2ECAE", 524288, "psone-45e.bin", "PSX BIOS (Version 4.5 05/25/00 E)", "Used on PSone SCPH-102 [g]. This is for Rev C PSone hardware [w].");
|
||||
var ps2_50j = File("D7D6BE084F51354BC951D8FA2D8D912AA70ABC5E", 99999, "ps2-50j.bin", "PSX BIOS (Version 5.0 10/27/00 J)", "Found on a PS2 [p]."); //not sure about this size
|
||||
|
||||
ps_22j_bad.bad = ps_30e_bad.bad = true;
|
||||
|
||||
|
@ -205,7 +205,7 @@ namespace BizHawk.Emulation.Common
|
|||
}
|
||||
|
||||
//adds an acceptable option for a firmware ID to the database
|
||||
static FirmwareOption Option(string hash, string systemId, string id, FirmwareOptionStatus status = FirmwareOptionStatus.Acceptable)
|
||||
static FirmwareOption Option(string hash, long size, string systemId, string id, FirmwareOptionStatus status = FirmwareOptionStatus.Acceptable)
|
||||
{
|
||||
var fo = new FirmwareOption
|
||||
{
|
||||
|
@ -213,6 +213,7 @@ namespace BizHawk.Emulation.Common
|
|||
firmwareId = id,
|
||||
hash = hash,
|
||||
status = status,
|
||||
size = size
|
||||
};
|
||||
|
||||
FirmwareOptions.Add(fo);
|
||||
|
@ -227,20 +228,21 @@ namespace BizHawk.Emulation.Common
|
|||
//adds an acceptable option for a firmware ID to the database
|
||||
static FirmwareOption Option(string systemId, string id, FirmwareFile ff, FirmwareOptionStatus status = FirmwareOptionStatus.Acceptable)
|
||||
{
|
||||
var fo = Option(ff.hash, systemId, id, status);
|
||||
var fo = Option(ff.hash, ff.size, systemId, id, status);
|
||||
//make sure this goes in as bad
|
||||
if(ff.bad) fo.status = FirmwareOptionStatus.Bad;
|
||||
return fo;
|
||||
}
|
||||
|
||||
//defines a firmware file
|
||||
static FirmwareFile File(string hash, string recommendedName, string descr, string additionalInfo = "")
|
||||
static FirmwareFile File(string hash, long size, string recommendedName, string descr, string additionalInfo = "")
|
||||
{
|
||||
string hashfix = hash.ToUpperInvariant();
|
||||
|
||||
var ff = new FirmwareFile
|
||||
{
|
||||
hash = hashfix,
|
||||
size = size,
|
||||
recommendedName = recommendedName,
|
||||
descr = descr,
|
||||
info = additionalInfo
|
||||
|
@ -251,11 +253,11 @@ namespace BizHawk.Emulation.Common
|
|||
}
|
||||
|
||||
//adds a defined firmware ID and one file and option
|
||||
static void FirmwareAndOption(string hash, string systemId, string id, string name, string descr)
|
||||
static void FirmwareAndOption(string hash, long size, string systemId, string id, string name, string descr)
|
||||
{
|
||||
Firmware(systemId, id, descr);
|
||||
File(hash, name, descr, "");
|
||||
Option(hash, systemId, id);
|
||||
File(hash, size, name, descr, "");
|
||||
Option(hash, size, systemId, id);
|
||||
}
|
||||
|
||||
|
||||
|
@ -268,6 +270,7 @@ namespace BizHawk.Emulation.Common
|
|||
public class FirmwareFile
|
||||
{
|
||||
public string hash;
|
||||
public long size;
|
||||
public string recommendedName;
|
||||
public string descr;
|
||||
public string info;
|
||||
|
@ -292,6 +295,7 @@ namespace BizHawk.Emulation.Common
|
|||
public string systemId;
|
||||
public string firmwareId;
|
||||
public string hash;
|
||||
public long size;
|
||||
public FirmwareOptionStatus status;
|
||||
public bool IsAcceptableOrIdeal { get { return status == FirmwareOptionStatus.Ideal || status == FirmwareOptionStatus.Acceptable; } }
|
||||
public string ConfigKey { get { return string.Format("{0}+{1}", systemId, firmwareId); } }
|
||||
|
|
Loading…
Reference in New Issue