From c640819179b9ef6f441bd97327634bd70c8842a8 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Fri, 20 Nov 2020 00:35:52 -0800 Subject: [PATCH] GB: Downgrade DMG-only ROMs from CGB mode even without boot ROM --- CHANGES | 1 + src/gb/gb.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/CHANGES b/CHANGES index 04c6d9c66..aba1aa345 100644 --- a/CHANGES +++ b/CHANGES @@ -17,6 +17,7 @@ Emulation fixes: - ARM: Fix STR storing PC after address calculation - ARM: Fix Addressing mode 1 shifter on rs == pc (fixes mgba.io/i/1926) - GB: Partially fix timing for skipped BIOS + - GB: Downgrade DMG-only ROMs from CGB mode even without boot ROM - GB Audio: Fix serializing sweep time - GB MBC: Fix MBC1 mode changing behavior - GB MBC: Fix some MBC3 bit masking diff --git a/src/gb/gb.c b/src/gb/gb.c index 8e24a21a1..9c13b795b 100644 --- a/src/gb/gb.c +++ b/src/gb/gb.c @@ -489,6 +489,11 @@ void GBSkipBIOS(struct GB* gb) { const struct GBCartridge* cart = (const struct GBCartridge*) &gb->memory.rom[0x100]; int nextDiv = 0; + if (gb->model >= GB_MODEL_CGB && !(cart->cgb & 0x80)) { + gb->model = GB_MODEL_DMG; + GBVideoDisableCGB(&gb->video); + } + switch (gb->model) { case GB_MODEL_AUTODETECT: // Silence warnings gb->model = GB_MODEL_DMG;