diff --git a/src/BizHawk.Client.EmuHawk/config/FirmwaresConfig.cs b/src/BizHawk.Client.EmuHawk/config/FirmwaresConfig.cs index ece03ac5fb..cf00427e4f 100644 --- a/src/BizHawk.Client.EmuHawk/config/FirmwaresConfig.cs +++ b/src/BizHawk.Client.EmuHawk/config/FirmwaresConfig.cs @@ -545,9 +545,7 @@ namespace BizHawk.Client.EmuHawk olvi.SubItems.Add(new ListViewItem.ListViewSubItem()); olvi.SubItems.Add(new ListViewItem.ListViewSubItem()); olvi.SubItems.Add(new ListViewItem.ListViewSubItem()); - var ff = o.Hash is SHA1Checksum.Dummy - ? FirmwareDatabase.FirmwareFilesWithDummyHash[o] - : FirmwareDatabase.FirmwareFilesByHash[o.Hash]; + var ff = FirmwareDatabase.FirmwareFilesByOption[o]; olvi.ImageIndex = (int) (o.Status is FirmwareOptionStatus.Bad ? FirmwareOptionStatus.Unset : o.Status); // if bad, use unset's red '!' to differentiate from unacceptable olvi.ToolTipText = StatusDescs[o.Status]; olvi.SubItems[0].Text = ff.Size.ToString(); diff --git a/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs b/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs index 00a8c9ff55..a4419e8b37 100644 --- a/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs +++ b/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs @@ -16,7 +16,7 @@ namespace BizHawk.Emulation.Common public static readonly IReadOnlyDictionary FirmwareFilesByHash; - public static readonly IReadOnlyDictionary FirmwareFilesWithDummyHash; + public static readonly IReadOnlyDictionary FirmwareFilesByOption; public static readonly IReadOnlyCollection FirmwareOptions; @@ -28,7 +28,7 @@ namespace BizHawk.Emulation.Common { List allPatches = new(); Dictionary filesByHash = new(); - Dictionary filesWithDummyHash = new(); + Dictionary filesByOption = new(); List options = new(); List records = new(); @@ -49,13 +49,9 @@ namespace BizHawk.Emulation.Common void Option(string systemId, string id, in FirmwareFile ff, FirmwareOptionStatus status = FirmwareOptionStatus.Acceptable) { - options.Add(new(new(systemId, id), ff.Hash, ff.Size, ff.IsBad ? FirmwareOptionStatus.Bad : status)); - if (ff.Hash is SHA1Checksum.Dummy) - { - // these shouldn't have more than 1 option - // as these files represent an impossible to hash firmware - filesWithDummyHash[options[options.Count - 1]] = ff; - } + var option = new FirmwareOption(new(systemId, id), ff.Hash, ff.Size, ff.IsBad ? FirmwareOptionStatus.Bad : status); + options.Add(option); + filesByOption[option] = ff; } void Firmware(string systemId, string id, string desc) @@ -474,7 +470,7 @@ namespace BizHawk.Emulation.Common AllPatches = allPatches; FirmwareFilesByHash = filesByHash; - FirmwareFilesWithDummyHash = filesWithDummyHash; + FirmwareFilesByOption = filesByOption; FirmwareOptions = options; FirmwareRecords = records; }