Add support for Mani carts
This commit is contained in:
parent
965e623637
commit
0925b06555
@ -17,7 +17,6 @@ const GB_cartridge_t GB_cart_defs[256] = {
|
|||||||
{ GB_NO_MBC, GB_STANDARD_MBC, true , false, false, false}, // 08h ROM+RAM
|
{ GB_NO_MBC, GB_STANDARD_MBC, true , false, false, false}, // 08h ROM+RAM
|
||||||
{ GB_NO_MBC, GB_STANDARD_MBC, true , true , false, false}, // 09h ROM+RAM+BATTERY
|
{ GB_NO_MBC, GB_STANDARD_MBC, true , true , false, false}, // 09h ROM+RAM+BATTERY
|
||||||
[0xB] =
|
[0xB] =
|
||||||
/* Todo: Not supported yet */
|
|
||||||
{ GB_MMM01 , GB_STANDARD_MBC, false, false, false, false}, // 0Bh MMM01
|
{ GB_MMM01 , GB_STANDARD_MBC, false, false, false, false}, // 0Bh MMM01
|
||||||
{ GB_MMM01 , GB_STANDARD_MBC, true , false, false, false}, // 0Ch MMM01+RAM
|
{ GB_MMM01 , GB_STANDARD_MBC, true , false, false, false}, // 0Ch MMM01+RAM
|
||||||
{ GB_MMM01 , GB_STANDARD_MBC, true , true , false, false}, // 0Dh MMM01+RAM+BATTERY
|
{ GB_MMM01 , GB_STANDARD_MBC, true , true , false, false}, // 0Dh MMM01+RAM+BATTERY
|
||||||
@ -172,9 +171,15 @@ void GB_configure_cart(GB_gameboy_t *gb)
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const GB_cartridge_t *maybe_mmm01_type = &GB_cart_defs[gb->rom[gb->rom_size - 0x8000 + 0x147]];
|
const GB_cartridge_t *maybe_mmm01_type = &GB_cart_defs[gb->rom[gb->rom_size - 0x8000 + 0x147]];
|
||||||
if (maybe_mmm01_type->mbc_type == GB_MMM01 && memcmp(gb->rom + 0x104, gb->rom + gb->rom_size - 0x8000 + 0x104, 0x30) == 0) {
|
if (memcmp(gb->rom + 0x104, gb->rom + gb->rom_size - 0x8000 + 0x104, 0x30) == 0) {
|
||||||
|
if (maybe_mmm01_type->mbc_type == GB_MMM01) {
|
||||||
gb->cartridge_type = maybe_mmm01_type;
|
gb->cartridge_type = maybe_mmm01_type;
|
||||||
}
|
}
|
||||||
|
else if(gb->rom[gb->rom_size - 0x8000 + 0x147] == 0x11) {
|
||||||
|
GB_log(gb, "ROM header reports MBC3, but it appears to be an MMM01 ROM. Assuming cartridge uses MMM01.");
|
||||||
|
gb->cartridge_type = &GB_cart_defs[0xB];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gb->rom[0x147] == 0xBC &&
|
if (gb->rom[0x147] == 0xBC &&
|
||||||
|
Loading…
Reference in New Issue
Block a user