From e119bdda399826b4fb2ec675ba3402b4c787aa2d Mon Sep 17 00:00:00 2001 From: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com> Date: Wed, 8 Nov 2023 10:26:01 -0800 Subject: [PATCH] fix up firmware entries which had spaces in the id --- .../Database/FirmwareDatabase.cs | 27 ++++++++++--------- .../Consoles/Nintendo/Ares64/Ares64.cs | 6 ++--- .../Consoles/Nintendo/NDS/MelonDS.cs | 16 +++++------ 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs b/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs index 5f65ab4d0a..f385711397 100644 --- a/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs +++ b/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs @@ -47,6 +47,8 @@ namespace BizHawk.Emulation.Common additionalInfo: additionalInfo, isBad: isBad); + // make sure id doesn't have a space, it is stored in the (space delimited) movie header! + void Option(string systemId, string id, in FirmwareFile ff, FirmwareOptionStatus status = FirmwareOptionStatus.Acceptable) { var option = new FirmwareOption(new(systemId, id), ff.Hash, ff.Size, ff.IsBad ? FirmwareOptionStatus.Bad : status); @@ -141,6 +143,7 @@ namespace BizHawk.Emulation.Common FirmwareAndOption("719B9EEF33692406D7170FF526069615759C4DFC", 65536, "NDS", "bios9i", "NDS_Bios9i.bin", "ARM9i BIOS"); Firmware("NDS", "firmware", "NDS Firmware"); // throwing a ton of hashes from various reported firmwares + // TODO: Probably should just add in no-intro hashes var knownhack1 = File("22A7547DBC302BCBFB4005CFB5A2D426D3F85AC6", 262144, "NDS_Firmware [b1].bin", "NDS Firmware", "known hack", true); var knownhack2 = File("AE22DE59FBF3F35CCFBEACAEBA6FA87AC5E7B14B", 262144, "NDS_Firmware [b2].bin", "NDS Firmware", "known hack", true); var knownhack3 = File("1CF9E67C2C703BB9961BBCDD39CD2C7E319A803B", 262144, "NDS_Firmware [b3].bin", "NDS Firmware", "known hack", true); @@ -158,12 +161,12 @@ namespace BizHawk.Emulation.Common FirmwareAndOption(SHA1Checksum.Dummy, 131072, "NDS", "firmwarei", "DSi_Firmware.bin", "DSi Firmware"); // options for each region due to region locking of the DSi // also, the sizes include the "nocash footer" which contains the eMMC CID and CPU/Console ID - FirmwareAndOption(SHA1Checksum.Dummy, 251658240 + 64, "NDS", "NAND (JPN)", "DSi_Nand_JPN.bin", "DSi NAND (Japan)"); - FirmwareAndOption(SHA1Checksum.Dummy, 251658240 + 64, "NDS", "NAND (EUR)", "DSi_Nand_EUR.bin", "DSi NAND (Europe)"); - FirmwareAndOption(SHA1Checksum.Dummy, 251658240 + 64, "NDS", "NAND (USA)", "DSi_Nand_USA.bin", "DSi NAND (USA)"); - FirmwareAndOption(SHA1Checksum.Dummy, 251658240 + 64, "NDS", "NAND (AUS)", "DSi_Nand_AUS.bin", "DSi NAND (Australia)"); - FirmwareAndOption(SHA1Checksum.Dummy, 251658240 + 64, "NDS", "NAND (CHN)", "DSi_Nand_CHN.bin", "DSi NAND (China)"); - FirmwareAndOption(SHA1Checksum.Dummy, 251658240 + 64, "NDS", "NAND (KOR)", "DSi_Nand_KOR.bin", "DSi NAND (Korea)"); + FirmwareAndOption(SHA1Checksum.Dummy, 251658240 + 64, "NDS", "NAND_JPN", "DSi_Nand_JPN.bin", "DSi NAND (Japan)"); + FirmwareAndOption(SHA1Checksum.Dummy, 251658240 + 64, "NDS", "NAND_EUR", "DSi_Nand_EUR.bin", "DSi NAND (Europe)"); + FirmwareAndOption(SHA1Checksum.Dummy, 251658240 + 64, "NDS", "NAND_USA", "DSi_Nand_USA.bin", "DSi NAND (USA)"); + FirmwareAndOption(SHA1Checksum.Dummy, 251658240 + 64, "NDS", "NAND_AUS", "DSi_Nand_AUS.bin", "DSi NAND (Australia)"); + FirmwareAndOption(SHA1Checksum.Dummy, 251658240 + 64, "NDS", "NAND_CHN", "DSi_Nand_CHN.bin", "DSi NAND (China)"); + FirmwareAndOption(SHA1Checksum.Dummy, 251658240 + 64, "NDS", "NAND_KOR", "DSi_Nand_KOR.bin", "DSi NAND (Korea)"); // bleh, undefined hash AND size... FirmwareAndOption(SHA1Checksum.Dummy, 0, "3DS", "aes_keys", "aes_keys.txt", "AES Keys"); @@ -486,15 +489,15 @@ namespace BizHawk.Emulation.Common var fxscsi = File("65482A23AC5C10A6095AEE1DB5824CCA54EAD6E5", 512 * 1024, "PCFX_fx-scsi.rom", "PCFX SCSI ROM"); Option("PCFX", "SCSIROM", in fxscsi); - Firmware("N64DD", "IPL JPN", "N64DD Japan IPL"); + Firmware("N64DD", "IPL_JPN", "N64DD Japan IPL"); var ddv10 = File("58670C0063793A8F3BE957D71D937B618829BA9E", 4 * 1024 * 1024, "64DD_IPL_v10_JPN.bin", "N64DD JPN IPL v1.0 (Beta)"); var ddv11 = File("B3E26DBB4E945F78C918FABC5B9E60FCF262C47B", 4 * 1024 * 1024, "64DD_IPL_v11_JPN.bin", "N64DD JPN IPL v1.1 (Beta)"); var ddv12 = File("BF861922DCB78C316360E3E742F4F70FF63C9BC3", 4 * 1024 * 1024, "64DD_IPL_v12_JPN.bin", "N64DD JPN IPL v1.2 (Retail)"); - Option("N64DD", "IPL JPN", in ddv10, FirmwareOptionStatus.Unacceptable); - Option("N64DD", "IPL JPN", in ddv11, FirmwareOptionStatus.Unacceptable); - Option("N64DD", "IPL JPN", in ddv12, FirmwareOptionStatus.Ideal); - FirmwareAndOption("10C4173C2A7EB09C6579818F72EF18FA0B6D32DE", 4 * 1024 * 1024, "N64DD", "IPL DEV", "64DD_IPL_DEV.bin", "N64DD Development IPL"); - FirmwareAndOption("3C5B93CA231550C68693A14F03CEA8D5DBD1BE9E", 4 * 1024 * 1024, "N64DD", "IPL USA", "64DD_IPL_USA.bin", "N64DD Prototype USA IPL"); + Option("N64DD", "IPL_JPN", in ddv10, FirmwareOptionStatus.Unacceptable); + Option("N64DD", "IPL_JPN", in ddv11, FirmwareOptionStatus.Unacceptable); + Option("N64DD", "IPL_JPN", in ddv12, FirmwareOptionStatus.Ideal); + FirmwareAndOption("10C4173C2A7EB09C6579818F72EF18FA0B6D32DE", 4 * 1024 * 1024, "N64DD", "IPL_DEV", "64DD_IPL_DEV.bin", "N64DD Development IPL"); + FirmwareAndOption("3C5B93CA231550C68693A14F03CEA8D5DBD1BE9E", 4 * 1024 * 1024, "N64DD", "IPL_USA", "64DD_IPL_USA.bin", "N64DD Prototype USA IPL"); /*Firmware("PS2", "BIOS", "PS2 Bios"); Option("PS2", "BIOS", File("FBD54BFC020AF34008B317DCB80B812DD29B3759", 4 * 1024 * 1024, "ps2-0230j-20080220.bin", "PS2 Bios")); diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/Ares64/Ares64.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/Ares64/Ares64.cs index d0f9ef0c41..c4a280c8d0 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/Ares64/Ares64.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/Ares64/Ares64.cs @@ -110,9 +110,9 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.Ares64 { ipl = _syncSettings.IPLVersion switch { - LibAres64.IplVer.Japan => lp.Comm.CoreFileProvider.GetFirmwareOrThrow(new("N64DD", "IPL JPN")), - LibAres64.IplVer.Dev => lp.Comm.CoreFileProvider.GetFirmwareOrThrow(new("N64DD", "IPL DEV")), - LibAres64.IplVer.USA => lp.Comm.CoreFileProvider.GetFirmwareOrThrow(new("N64DD", "IPL USA")), + LibAres64.IplVer.Japan => lp.Comm.CoreFileProvider.GetFirmwareOrThrow(new("N64DD", "IPL_JPN")), + LibAres64.IplVer.Dev => lp.Comm.CoreFileProvider.GetFirmwareOrThrow(new("N64DD", "IPL_DEV")), + LibAres64.IplVer.USA => lp.Comm.CoreFileProvider.GetFirmwareOrThrow(new("N64DD", "IPL_USA")), _ => throw new InvalidOperationException(), }; } diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/NDS/MelonDS.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/NDS/MelonDS.cs index 07ea32e015..397abec1f5 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/NDS/MelonDS.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/NDS/MelonDS.cs @@ -355,21 +355,21 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.NDS private static byte[] DecideNAND(ICoreFileProvider cfp, bool isDSiEnhanced, byte regionFlags) { // TODO: priority settings? - var nandOptions = new List { "NAND (JPN)", "NAND (USA)", "NAND (EUR)", "NAND (AUS)", "NAND (CHN)", "NAND (KOR)" }; + var nandOptions = new List { "JPN", "USA", "EUR", "AUS", "CHN", "KOR" }; if (isDSiEnhanced) // NB: Core makes cartridges region free regardless, DSiWare must follow DSi region locking however (we'll enforce it regardless) { nandOptions.Clear(); - if (regionFlags.Bit(0)) nandOptions.Add("NAND (JPN)"); - if (regionFlags.Bit(1)) nandOptions.Add("NAND (USA)"); - if (regionFlags.Bit(2)) nandOptions.Add("NAND (EUR)"); - if (regionFlags.Bit(3)) nandOptions.Add("NAND (AUS)"); - if (regionFlags.Bit(4)) nandOptions.Add("NAND (CHN)"); - if (regionFlags.Bit(5)) nandOptions.Add("NAND (KOR)"); + if (regionFlags.Bit(0)) nandOptions.Add("JPN"); + if (regionFlags.Bit(1)) nandOptions.Add("USA"); + if (regionFlags.Bit(2)) nandOptions.Add("EUR"); + if (regionFlags.Bit(3)) nandOptions.Add("AUS"); + if (regionFlags.Bit(4)) nandOptions.Add("CHN"); + if (regionFlags.Bit(5)) nandOptions.Add("KOR"); } foreach (var option in nandOptions) { - var ret = cfp.GetFirmware(new("NDS", option)); + var ret = cfp.GetFirmware(new("NDS", $"NAND_{option}")); if (ret is not null) return ret; }