give firmware database and UI ability to track ok/notok/bad state of an option/firmwarefile. apply tons of research to study PSX bios files situation
This commit is contained in:
parent
3cdc9d7c25
commit
f43859f421
|
@ -128,7 +128,7 @@ namespace BizHawk.Client.Common
|
|||
var fr1 = fr;
|
||||
var options =
|
||||
from fo in FirmwareDatabase.FirmwareOptions
|
||||
where fo.systemId == fr1.systemId && fo.firmwareId == fr1.firmwareId
|
||||
where fo.systemId == fr1.systemId && fo.firmwareId == fr1.firmwareId && fo.IsAcceptableOrIdeal
|
||||
select fo;
|
||||
|
||||
// try each option
|
||||
|
|
|
@ -1489,6 +1489,7 @@
|
|||
<None Include="config\ControllerImages\GENController.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="images\thumbsdown.png" />
|
||||
<None Include="images\monitor.png" />
|
||||
<None Include="images\ppsspp.png" />
|
||||
<None Include="images\meteor.png" />
|
||||
|
@ -1604,6 +1605,7 @@
|
|||
<None Include="images\gambatte.png" />
|
||||
<None Include="images\dual.png" />
|
||||
<None Include="config\ControllerImages\WonderSwanColor.png" />
|
||||
<None Include="images\alt_about_image.png" />
|
||||
<Content Include="images\logo.ico" />
|
||||
<None Include="images\Paste.png" />
|
||||
<None Include="images\reboot.png" />
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -298,9 +298,6 @@
|
|||
<data name="undo" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\images\undo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="alt_about_image" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\images\alt_about_image.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="whiteTriLeft" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\images\whiteTriLeft.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -936,4 +933,10 @@
|
|||
<data name="WonderSwanColor" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\config\ControllerImages\WonderSwanColor.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="alt_about_image" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\images\alt_about_image.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="thumbsdown" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\images\thumbsdown.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
|
@ -357,21 +357,33 @@ namespace BizHawk.Client.EmuHawk
|
|||
ListViewItem olvi = new ListViewItem();
|
||||
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;
|
||||
if (o.status == FirmwareDatabase.FirmwareOptionStatus.Acceptable)
|
||||
olvi.ImageIndex = FirmwaresConfigInfo.idAcceptable;
|
||||
if (o.status == FirmwareDatabase.FirmwareOptionStatus.Unacceptable)
|
||||
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[2].Font = this.Font; //why doesnt this work?
|
||||
olvi.SubItems[3].Text = ff.info;
|
||||
olvi.SubItems[3].Font = this.Font; //why doesnt this work?
|
||||
fciDialog.lvOptions.Items.Add(olvi);
|
||||
}
|
||||
|
||||
fciDialog.lvOptions.AutoResizeColumn(0, ColumnHeaderAutoResizeStyle.ColumnContent);
|
||||
fciDialog.lvOptions.AutoResizeColumn(1, ColumnHeaderAutoResizeStyle.ColumnContent);
|
||||
fciDialog.lvOptions.AutoResizeColumn(2, ColumnHeaderAutoResizeStyle.ColumnContent);
|
||||
fciDialog.lvOptions.AutoResizeColumn(3, ColumnHeaderAutoResizeStyle.ColumnContent);
|
||||
|
||||
fciDialog.ShowDialog();
|
||||
fciDialog.ShowDialog(this);
|
||||
}
|
||||
|
||||
private void lvFirmwaresContextMenuStrip_Opening(object sender, CancelEventArgs e)
|
||||
|
|
|
@ -28,160 +28,175 @@
|
|||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.lvOptions = new System.Windows.Forms.ListView();
|
||||
this.colHash = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.colStandardFilename = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.colDescription = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.btnClose = new System.Windows.Forms.Button();
|
||||
this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.lblFirmware = new System.Windows.Forms.Label();
|
||||
this.lvmiOptionsContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.tsmiOptionsCopy = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.flowLayoutPanel1.SuspendLayout();
|
||||
this.lvmiOptionsContextMenuStrip.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// lvOptions
|
||||
//
|
||||
this.lvOptions.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.lvOptions = new System.Windows.Forms.ListView();
|
||||
this.colHash = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
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.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.btnClose = new System.Windows.Forms.Button();
|
||||
this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
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.tableLayoutPanel1.SuspendLayout();
|
||||
this.flowLayoutPanel1.SuspendLayout();
|
||||
this.lvmiOptionsContextMenuStrip.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// lvOptions
|
||||
//
|
||||
this.lvOptions.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.colHash,
|
||||
this.colStandardFilename,
|
||||
this.colDescription});
|
||||
this.lvOptions.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lvOptions.FullRowSelect = true;
|
||||
this.lvOptions.GridLines = true;
|
||||
this.lvOptions.Location = new System.Drawing.Point(3, 29);
|
||||
this.lvOptions.Name = "lvOptions";
|
||||
this.lvOptions.Size = new System.Drawing.Size(648, 402);
|
||||
this.lvOptions.TabIndex = 0;
|
||||
this.lvOptions.UseCompatibleStateImageBehavior = false;
|
||||
this.lvOptions.View = System.Windows.Forms.View.Details;
|
||||
this.lvOptions.KeyDown += new System.Windows.Forms.KeyEventHandler(this.lvOptions_KeyDown);
|
||||
this.lvOptions.MouseClick += new System.Windows.Forms.MouseEventHandler(this.lvOptions_MouseClick);
|
||||
//
|
||||
// colHash
|
||||
//
|
||||
this.colHash.Text = "Hash";
|
||||
this.colHash.Width = 251;
|
||||
//
|
||||
// colStandardFilename
|
||||
//
|
||||
this.colStandardFilename.Text = "Standard Filename";
|
||||
this.colStandardFilename.Width = 175;
|
||||
//
|
||||
// colDescription
|
||||
//
|
||||
this.colDescription.Text = "Description";
|
||||
this.colDescription.Width = 214;
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.ColumnCount = 1;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel1.Controls.Add(this.label1, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.lvOptions, 0, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.btnClose, 0, 3);
|
||||
this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel1, 0, 0);
|
||||
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 4;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
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(654, 469);
|
||||
this.tableLayoutPanel1.TabIndex = 1;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(3, 13);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(122, 13);
|
||||
this.label1.TabIndex = 1;
|
||||
this.label1.Text = "Options for this firmware:";
|
||||
//
|
||||
// btnClose
|
||||
//
|
||||
this.btnClose.Anchor = System.Windows.Forms.AnchorStyles.Right;
|
||||
this.btnClose.AutoSize = true;
|
||||
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnClose.Location = new System.Drawing.Point(595, 440);
|
||||
this.btnClose.Margin = new System.Windows.Forms.Padding(6);
|
||||
this.btnClose.Name = "btnClose";
|
||||
this.btnClose.Size = new System.Drawing.Size(53, 23);
|
||||
this.btnClose.TabIndex = 2;
|
||||
this.btnClose.Text = "Close";
|
||||
this.btnClose.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// flowLayoutPanel1
|
||||
//
|
||||
this.flowLayoutPanel1.AutoSize = true;
|
||||
this.flowLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||
this.flowLayoutPanel1.Controls.Add(this.label2);
|
||||
this.flowLayoutPanel1.Controls.Add(this.lblFirmware);
|
||||
this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
|
||||
this.flowLayoutPanel1.Size = new System.Drawing.Size(99, 13);
|
||||
this.flowLayoutPanel1.TabIndex = 3;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(3, 0);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(52, 13);
|
||||
this.label2.TabIndex = 0;
|
||||
this.label2.Text = "Firmware:";
|
||||
//
|
||||
// lblFirmware
|
||||
//
|
||||
this.lblFirmware.AutoSize = true;
|
||||
this.lblFirmware.Location = new System.Drawing.Point(61, 0);
|
||||
this.lblFirmware.Name = "lblFirmware";
|
||||
this.lblFirmware.Size = new System.Drawing.Size(35, 13);
|
||||
this.lblFirmware.TabIndex = 1;
|
||||
this.lblFirmware.Text = "label3";
|
||||
//
|
||||
// lvmiOptionsContextMenuStrip
|
||||
//
|
||||
this.lvmiOptionsContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.colDescription,
|
||||
this.colInfo});
|
||||
this.lvOptions.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lvOptions.FullRowSelect = true;
|
||||
this.lvOptions.GridLines = true;
|
||||
this.lvOptions.Location = new System.Drawing.Point(3, 29);
|
||||
this.lvOptions.Name = "lvOptions";
|
||||
this.lvOptions.Size = new System.Drawing.Size(722, 402);
|
||||
this.lvOptions.SmallImageList = this.imageList1;
|
||||
this.lvOptions.TabIndex = 0;
|
||||
this.lvOptions.UseCompatibleStateImageBehavior = false;
|
||||
this.lvOptions.View = System.Windows.Forms.View.Details;
|
||||
this.lvOptions.KeyDown += new System.Windows.Forms.KeyEventHandler(this.lvOptions_KeyDown);
|
||||
this.lvOptions.MouseClick += new System.Windows.Forms.MouseEventHandler(this.lvOptions_MouseClick);
|
||||
//
|
||||
// colHash
|
||||
//
|
||||
this.colHash.Text = "Hash";
|
||||
this.colHash.Width = 251;
|
||||
//
|
||||
// colStandardFilename
|
||||
//
|
||||
this.colStandardFilename.Text = "Standard Filename";
|
||||
this.colStandardFilename.Width = 175;
|
||||
//
|
||||
// colDescription
|
||||
//
|
||||
this.colDescription.Text = "Description";
|
||||
this.colDescription.Width = 214;
|
||||
//
|
||||
// colInfo
|
||||
//
|
||||
this.colInfo.Text = "Info";
|
||||
this.colInfo.Width = 165;
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.ColumnCount = 1;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel1.Controls.Add(this.label1, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.lvOptions, 0, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.btnClose, 0, 3);
|
||||
this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel1, 0, 0);
|
||||
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 4;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
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(728, 469);
|
||||
this.tableLayoutPanel1.TabIndex = 1;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(3, 13);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(122, 13);
|
||||
this.label1.TabIndex = 1;
|
||||
this.label1.Text = "Options for this firmware:";
|
||||
//
|
||||
// btnClose
|
||||
//
|
||||
this.btnClose.Anchor = System.Windows.Forms.AnchorStyles.Right;
|
||||
this.btnClose.AutoSize = true;
|
||||
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnClose.Location = new System.Drawing.Point(669, 440);
|
||||
this.btnClose.Margin = new System.Windows.Forms.Padding(6);
|
||||
this.btnClose.Name = "btnClose";
|
||||
this.btnClose.Size = new System.Drawing.Size(53, 23);
|
||||
this.btnClose.TabIndex = 2;
|
||||
this.btnClose.Text = "Close";
|
||||
this.btnClose.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// flowLayoutPanel1
|
||||
//
|
||||
this.flowLayoutPanel1.AutoSize = true;
|
||||
this.flowLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||
this.flowLayoutPanel1.Controls.Add(this.label2);
|
||||
this.flowLayoutPanel1.Controls.Add(this.lblFirmware);
|
||||
this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
|
||||
this.flowLayoutPanel1.Size = new System.Drawing.Size(99, 13);
|
||||
this.flowLayoutPanel1.TabIndex = 3;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(3, 0);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(52, 13);
|
||||
this.label2.TabIndex = 0;
|
||||
this.label2.Text = "Firmware:";
|
||||
//
|
||||
// lblFirmware
|
||||
//
|
||||
this.lblFirmware.AutoSize = true;
|
||||
this.lblFirmware.Location = new System.Drawing.Point(61, 0);
|
||||
this.lblFirmware.Name = "lblFirmware";
|
||||
this.lblFirmware.Size = new System.Drawing.Size(35, 13);
|
||||
this.lblFirmware.TabIndex = 1;
|
||||
this.lblFirmware.Text = "label3";
|
||||
//
|
||||
// lvmiOptionsContextMenuStrip
|
||||
//
|
||||
this.lvmiOptionsContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.tsmiOptionsCopy});
|
||||
this.lvmiOptionsContextMenuStrip.Name = "lvmiOptionsContextMenuStrip";
|
||||
this.lvmiOptionsContextMenuStrip.Size = new System.Drawing.Size(100, 26);
|
||||
//
|
||||
// tsmiOptionsCopy
|
||||
//
|
||||
this.tsmiOptionsCopy.Name = "tsmiOptionsCopy";
|
||||
this.tsmiOptionsCopy.Size = new System.Drawing.Size(152, 22);
|
||||
this.tsmiOptionsCopy.Text = "&Copy";
|
||||
this.tsmiOptionsCopy.Click += new System.EventHandler(this.tsmiOptionsCopy_Click);
|
||||
//
|
||||
// FirmwaresConfigInfo
|
||||
//
|
||||
this.AcceptButton = this.btnClose;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.btnClose;
|
||||
this.ClientSize = new System.Drawing.Size(654, 469);
|
||||
this.Controls.Add(this.tableLayoutPanel1);
|
||||
this.Name = "FirmwaresConfigInfo";
|
||||
this.ShowIcon = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Firmware Info";
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.PerformLayout();
|
||||
this.flowLayoutPanel1.ResumeLayout(false);
|
||||
this.flowLayoutPanel1.PerformLayout();
|
||||
this.lvmiOptionsContextMenuStrip.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.lvmiOptionsContextMenuStrip.Name = "lvmiOptionsContextMenuStrip";
|
||||
this.lvmiOptionsContextMenuStrip.Size = new System.Drawing.Size(100, 26);
|
||||
//
|
||||
// tsmiOptionsCopy
|
||||
//
|
||||
this.tsmiOptionsCopy.Name = "tsmiOptionsCopy";
|
||||
this.tsmiOptionsCopy.Size = new System.Drawing.Size(99, 22);
|
||||
this.tsmiOptionsCopy.Text = "&Copy";
|
||||
this.tsmiOptionsCopy.Click += new System.EventHandler(this.tsmiOptionsCopy_Click);
|
||||
//
|
||||
// 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;
|
||||
//
|
||||
// FirmwaresConfigInfo
|
||||
//
|
||||
this.AcceptButton = this.btnClose;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.btnClose;
|
||||
this.ClientSize = new System.Drawing.Size(728, 469);
|
||||
this.Controls.Add(this.tableLayoutPanel1);
|
||||
this.Name = "FirmwaresConfigInfo";
|
||||
this.ShowIcon = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Firmware Info";
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.PerformLayout();
|
||||
this.flowLayoutPanel1.ResumeLayout(false);
|
||||
this.flowLayoutPanel1.PerformLayout();
|
||||
this.lvmiOptionsContextMenuStrip.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
|
@ -199,5 +214,7 @@
|
|||
public System.Windows.Forms.Label lblFirmware;
|
||||
private System.Windows.Forms.ContextMenuStrip lvmiOptionsContextMenuStrip;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiOptionsCopy;
|
||||
private System.Windows.Forms.ColumnHeader colInfo;
|
||||
private System.Windows.Forms.ImageList imageList1;
|
||||
}
|
||||
}
|
|
@ -15,9 +15,18 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
public partial class FirmwaresConfigInfo : Form
|
||||
{
|
||||
|
||||
public const int idIdeal = 0;
|
||||
public const int idAcceptable = 1;
|
||||
public const int idUnacceptable = 2;
|
||||
public const int idBad = 3;
|
||||
|
||||
public FirmwaresConfigInfo()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
//prep imagelist for listview with 4 item states for (ideal, acceptable, unacceptable, bad)
|
||||
imageList1.Images.AddRange(new[] { EmuHawk.Properties.Resources.GreenCheck, EmuHawk.Properties.Resources.Freeze, EmuHawk.Properties.Resources.thumbsdown, EmuHawk.Properties.Resources.ExclamationRed });
|
||||
}
|
||||
|
||||
private void lvOptions_KeyDown(object sender, KeyEventArgs e)
|
||||
|
|
|
@ -117,6 +117,9 @@
|
|||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>215, 17</value>
|
||||
</metadata>
|
||||
<metadata name="lvmiOptionsContextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 991 KiB |
Binary file not shown.
After Width: | Height: | Size: 49 KiB |
Binary file not shown.
After Width: | Height: | Size: 556 B |
|
@ -114,10 +114,69 @@ namespace BizHawk.Emulation.Common
|
|||
Option("SMS", "Japan", sms_jp_21);
|
||||
|
||||
//PSX
|
||||
//http://forum.fobby.net/index.php?t=msg&goto=2763&
|
||||
FirmwareAndOption("0555C6FAE8906F3F09BAF5988F00E55F88E9F30B", "PSX", "U", "scph5501.bin", "BIOS (U)");
|
||||
FirmwareAndOption("B05DEF971D8EC59F346F2D9AC21FB742E3EB6917", "PSX", "J", "scph5500.bin", "BIOS (J)");
|
||||
FirmwareAndOption("F8DE9325FC36FCFA4B29124D291C9251094F2E54", "PSX", "E", "scph5502.bin", "BIOS (E)");
|
||||
//http://forum.fobby.net/index.php?t=msg&goto=2763 [f]
|
||||
//http://www.psxdev.net/forum/viewtopic.php?f=69&t=56 [p]
|
||||
//https://en.wikipedia.org/wiki/PlayStation_models#Comparison_of_models [w]
|
||||
//https://github.com/petrockblog/RetroPie-Setup/wiki/PCSX-Core-Playstation-1 [g]
|
||||
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_20j = File("649895EFD79D14790EABB362E94EB0622093DFB9", "ps-20j.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].");
|
||||
|
||||
ps_22j_bad.bad = ps_30e_bad.bad = true;
|
||||
|
||||
Firmware("PSX", "U", "BIOS (U)");
|
||||
Firmware("PSX", "J", "BIOS (J)");
|
||||
Firmware("PSX", "E", "BIOS (E)");
|
||||
|
||||
Option("PSX", "U", ps_30a);
|
||||
Option("PSX", "J", ps_30j);
|
||||
Option("PSX", "E", ps_30e);
|
||||
//in general, alternates arent allowed.. their quality isnt known.
|
||||
//we have this comment from fobby.net: "SCPH7502 works fine for European games" (TBD)
|
||||
//however, we're sticking with the 3.0 series.
|
||||
//please note: 2.1 or 2.2 would be a better choice, as the dates are the same and the bioses are more likely to matching in terms of entrypoints and such.
|
||||
//but 3.0 is what mednafen used
|
||||
|
||||
Option("PSX", "J", ps_10j, FirmwareOptionStatus.Unacceptable);
|
||||
Option("PSX", "J", ps_11j, FirmwareOptionStatus.Unacceptable);
|
||||
Option("PSX", "J", ps_20j, FirmwareOptionStatus.Unacceptable);
|
||||
Option("PSX", "E", ps_20e, FirmwareOptionStatus.Unacceptable);
|
||||
Option("PSX", "J", ps_21j, FirmwareOptionStatus.Unacceptable);
|
||||
Option("PSX", "U", ps_21a, FirmwareOptionStatus.Unacceptable);
|
||||
Option("PSX", "E", ps_21e, FirmwareOptionStatus.Unacceptable);
|
||||
Option("PSX", "J", ps_22j, FirmwareOptionStatus.Unacceptable);
|
||||
Option("PSX", "J", ps_22j_bad, FirmwareOptionStatus.Bad);
|
||||
Option("PSX", "U", ps_22a, FirmwareOptionStatus.Unacceptable);
|
||||
Option("PSX", "E", ps_22e, FirmwareOptionStatus.Unacceptable);
|
||||
Option("PSX", "E", ps_30e_bad, FirmwareOptionStatus.Bad);
|
||||
Option("PSX", "J", ps_40j, FirmwareOptionStatus.Unacceptable);
|
||||
Option("PSX", "U", ps_41a, FirmwareOptionStatus.Unacceptable);
|
||||
Option("PSX", "E", ps_41e, FirmwareOptionStatus.Unacceptable);
|
||||
Option("PSX", "J", psone_43j, FirmwareOptionStatus.Unacceptable);
|
||||
Option("PSX", "U", psone_45a, FirmwareOptionStatus.Unacceptable);
|
||||
Option("PSX", "E", psone_r5e, FirmwareOptionStatus.Unacceptable);
|
||||
Option("PSX", "J", ps2_50j, FirmwareOptionStatus.Unacceptable);
|
||||
}
|
||||
|
||||
//adds a defined firmware ID to the database
|
||||
|
@ -134,26 +193,36 @@ namespace BizHawk.Emulation.Common
|
|||
}
|
||||
|
||||
//adds an acceptable option for a firmware ID to the database
|
||||
static void Option(string hash, string systemId, string id)
|
||||
static FirmwareOption Option(string hash, string systemId, string id, FirmwareOptionStatus status = FirmwareOptionStatus.Acceptable)
|
||||
{
|
||||
var fo = new FirmwareOption
|
||||
{
|
||||
systemId = systemId,
|
||||
firmwareId = id,
|
||||
hash = hash
|
||||
hash = hash,
|
||||
status = status,
|
||||
};
|
||||
|
||||
FirmwareOptions.Add(fo);
|
||||
|
||||
//first option is automatically ideal
|
||||
if (FirmwareOptions.Count == 1 && fo.status == FirmwareOptionStatus.Acceptable)
|
||||
fo.status = FirmwareOptionStatus.Ideal;
|
||||
|
||||
return fo;
|
||||
}
|
||||
|
||||
//adds an acceptable option for a firmware ID to the database
|
||||
static void Option(string systemId, string id, FirmwareFile ff)
|
||||
static FirmwareOption Option(string systemId, string id, FirmwareFile ff, FirmwareOptionStatus status = FirmwareOptionStatus.Acceptable)
|
||||
{
|
||||
Option(ff.hash, systemId, id);
|
||||
var fo = Option(ff.hash, 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)
|
||||
static FirmwareFile File(string hash, string recommendedName, string descr, string additionalInfo = "")
|
||||
{
|
||||
string hashfix = hash.ToUpperInvariant();
|
||||
|
||||
|
@ -161,7 +230,8 @@ namespace BizHawk.Emulation.Common
|
|||
{
|
||||
hash = hashfix,
|
||||
recommendedName = recommendedName,
|
||||
descr = descr
|
||||
descr = descr,
|
||||
info = additionalInfo
|
||||
};
|
||||
FirmwareFiles.Add(ff);
|
||||
FirmwareFilesByHash[hashfix] = ff;
|
||||
|
@ -172,7 +242,7 @@ namespace BizHawk.Emulation.Common
|
|||
static void FirmwareAndOption(string hash, string systemId, string id, string name, string descr)
|
||||
{
|
||||
Firmware(systemId, id, descr);
|
||||
File(hash, name, descr);
|
||||
File(hash, name, descr, "");
|
||||
Option(hash, systemId, id);
|
||||
}
|
||||
|
||||
|
@ -188,6 +258,8 @@ namespace BizHawk.Emulation.Common
|
|||
public string hash;
|
||||
public string recommendedName;
|
||||
public string descr;
|
||||
public string info;
|
||||
public bool bad;
|
||||
}
|
||||
|
||||
public class FirmwareRecord
|
||||
|
@ -198,11 +270,18 @@ namespace BizHawk.Emulation.Common
|
|||
public string ConfigKey { get { return string.Format("{0}+{1}", systemId, firmwareId); } }
|
||||
}
|
||||
|
||||
public enum FirmwareOptionStatus
|
||||
{
|
||||
Ideal, Acceptable, Unacceptable, Bad
|
||||
}
|
||||
|
||||
public class FirmwareOption
|
||||
{
|
||||
public string systemId;
|
||||
public string firmwareId;
|
||||
public string hash;
|
||||
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