diff --git a/Core/CartTypes.h b/Core/CartTypes.h index 07e4b12..9222824 100644 --- a/Core/CartTypes.h +++ b/Core/CartTypes.h @@ -63,7 +63,8 @@ enum class FirmwareType Satellaview, Gameboy, GameboyColor, - SgbGameboyCpu, + Sgb1GameboyCpu, + Sgb2GameboyCpu, SGB1, SGB2 }; diff --git a/Core/FirmwareHelper.h b/Core/FirmwareHelper.h index 7bdcee9..7cebe62 100644 --- a/Core/FirmwareHelper.h +++ b/Core/FirmwareHelper.h @@ -136,7 +136,8 @@ public: default: case FirmwareType::Gameboy: filename = "dmg_boot.bin"; break; case FirmwareType::GameboyColor: filename = "cgb_boot.bin"; break; - case FirmwareType::SgbGameboyCpu: filename = "sgb_boot.bin"; break; + case FirmwareType::Sgb1GameboyCpu: filename = "sgb_boot.bin"; break; + case FirmwareType::Sgb2GameboyCpu: filename = "sgb2_boot.bin"; break; } uint32_t size = type == FirmwareType::GameboyColor ? 2304 : 256; diff --git a/Core/Gameboy.cpp b/Core/Gameboy.cpp index bb63432..b391258 100644 --- a/Core/Gameboy.cpp +++ b/Core/Gameboy.cpp @@ -93,7 +93,7 @@ void Gameboy::Init(Console* console, GbCart* cart, std::vector& romData FirmwareType type = FirmwareType::Gameboy; if(_model == GameboyModel::SuperGameboy) { - type = FirmwareType::SgbGameboyCpu; + type = cfg.UseSgb2 ? FirmwareType::Sgb2GameboyCpu : FirmwareType::Sgb1GameboyCpu; } else if(_model == GameboyModel::GameboyColor) { type = FirmwareType::GameboyColor; } diff --git a/UI/Interop/EmuApi.cs b/UI/Interop/EmuApi.cs index 482c8da..5187a73 100644 --- a/UI/Interop/EmuApi.cs +++ b/UI/Interop/EmuApi.cs @@ -236,7 +236,7 @@ namespace Mesen.GUI } } - public enum FirmwareType + public enum FirmwareType { CX4, DSP1, @@ -250,7 +250,8 @@ namespace Mesen.GUI Satellaview, Gameboy, GameboyColor, - SgbGameboyCpu, + Sgb1GameboyCpu, + Sgb2GameboyCpu, SGB1, SGB2, } diff --git a/UI/Utilities/FirmwareHelper.cs b/UI/Utilities/FirmwareHelper.cs index 0720f17..3c00486 100644 --- a/UI/Utilities/FirmwareHelper.cs +++ b/UI/Utilities/FirmwareHelper.cs @@ -48,10 +48,9 @@ namespace Mesen.GUI.Utilities }; case FirmwareType.Gameboy: return new List() { "CF053ECCB4CCAFFF9E67339D4E78E98DCE7D1ED59BE819D2A1BA2232C6FCE1C7", "26E71CF01E301E5DC40E987CD2ECBF6D0276245890AC829DB2A25323DA86818E" }; case FirmwareType.GameboyColor: return new List() { "B4F2E416A35EEF52CBA161B159C7C8523A92594FACB924B3EDE0D722867C50C7", "3A307A41689BEE99A9A32EA021BF45136906C86B2E4F06C806738398E4F92E45" }; - case FirmwareType.SgbGameboyCpu: return new List() { - "0E4DDFF32FC9D1EEAAE812A157DD246459B00C9E14F2F61751F661F32361E360", //SGB1 - "FD243C4FB27008986316CE3DF29E9CFBCDC0CD52704970555A8BB76EDBEC3988" //SGB2 - }; + case FirmwareType.Sgb1GameboyCpu: return new List() { "0E4DDFF32FC9D1EEAAE812A157DD246459B00C9E14F2F61751F661F32361E360" }; + case FirmwareType.Sgb2GameboyCpu: return new List() { "FD243C4FB27008986316CE3DF29E9CFBCDC0CD52704970555A8BB76EDBEC3988" }; + case FirmwareType.SGB1: return new List() { "BBA9C269273BEDB9B38BD5EB23BFAA6E509B8DECC7CB80BB5513905AF04F4CEB", //Rev 0 (Japan) "C6C4DAAB5C899B69900C460787DE6089EDABE94B760F96D9F583D30CC0A5BB30", //Rev 1 (Japan+USA)