From 724153e5efd45d8886c504691a2456fb697abf27 Mon Sep 17 00:00:00 2001 From: Lior Halphon Date: Fri, 24 Feb 2017 15:14:47 +0200 Subject: [PATCH] Minimal attempt to be compatible with ROMs without correct headers --- Core/mbc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Core/mbc.c b/Core/mbc.c index c8690d1..850d0be 100644 --- a/Core/mbc.c +++ b/Core/mbc.c @@ -109,8 +109,12 @@ void GB_update_mbc_mappings(GB_gameboy_t *gb) void GB_configure_cart(GB_gameboy_t *gb) { gb->cartridge_type = &GB_cart_defs[gb->rom[0x147]]; - - if (gb->rom[0x147] != 0 && memcmp(gb->cartridge_type, &GB_cart_defs[0], sizeof(GB_cart_defs[0])) == 0) { + + if (gb->rom[0x147] == 0 && gb->rom_size > 0x8000) { + GB_log(gb, "ROM header reports no MBC, but file size is over 32Kb. Assuming cartridge uses MBC3.\n"); + gb->cartridge_type = &GB_cart_defs[0x11]; + } + else if (gb->rom[0x147] != 0 && memcmp(gb->cartridge_type, &GB_cart_defs[0], sizeof(GB_cart_defs[0])) == 0) { GB_log(gb, "Cartridge type %02x is not yet supported.\n", gb->rom[0x147]); }