GB: Allow use of CGB-E and AGB-0 BIOS versions (closes #3427)

This commit is contained in:
Vicki Pfau 2025-02-27 02:38:04 -08:00
parent 9923d1b3a1
commit abb46602ca
2 changed files with 9 additions and 0 deletions

View File

@ -44,6 +44,7 @@ Misc:
- Core: Add MD5 hashing for ROMs
- Core: Add support for specifying an arbitrary portable directory
- GB: Prevent incompatible BIOSes from being used on differing models
- GB: Allow use of CGB-E and AGB-0 BIOS versions (closes mgba.io/i/3427)
- GB Serialize: Add missing savestate support for MBC6 and NT (newer)
- GBA: Improve detection of valid ELF ROMs
- GBA Audio: Remove broken XQ audio pending rewrite

View File

@ -35,7 +35,9 @@ static const uint8_t _registeredTrademark[] = {0x3C, 0x42, 0xB9, 0xA5, 0xB9, 0xA
#define SGB2_BIOS_CHECKSUM 0X53D0DD63
#define CGB_BIOS_CHECKSUM 0x41884E46
#define CGB0_BIOS_CHECKSUM 0xE8EF5318
#define CGBE_BIOS_CHECKSUM 0xE95DC95D
#define AGB_BIOS_CHECKSUM 0xFFD6B0F1
#define AGB0_BIOS_CHECKSUM 0x570337EA
mLOG_DEFINE_CATEGORY(GB, "GB", "gb");
@ -550,7 +552,9 @@ bool GBIsBIOS(struct VFile* vf) {
case SGB2_BIOS_CHECKSUM:
case CGB_BIOS_CHECKSUM:
case CGB0_BIOS_CHECKSUM:
case CGBE_BIOS_CHECKSUM:
case AGB_BIOS_CHECKSUM:
case AGB0_BIOS_CHECKSUM:
return true;
default:
return false;
@ -567,7 +571,9 @@ bool GBIsCompatibleBIOS(struct VFile* vf, enum GBModel model) {
return model < GB_MODEL_CGB;
case CGB_BIOS_CHECKSUM:
case CGB0_BIOS_CHECKSUM:
case CGBE_BIOS_CHECKSUM:
case AGB_BIOS_CHECKSUM:
case AGB0_BIOS_CHECKSUM:
return model >= GB_MODEL_CGB;
default:
return false;
@ -862,9 +868,11 @@ void GBDetectModel(struct GB* gb) {
break;
case CGB_BIOS_CHECKSUM:
case CGB0_BIOS_CHECKSUM:
case CGBE_BIOS_CHECKSUM:
gb->model = GB_MODEL_CGB;
break;
case AGB_BIOS_CHECKSUM:
case AGB0_BIOS_CHECKSUM:
gb->model = GB_MODEL_AGB;
break;
default: