From 42c01a21b21a4c8984e2cfe7922348739e7f33bf Mon Sep 17 00:00:00 2001 From: Lior Halphon Date: Thu, 22 Sep 2016 01:52:40 +0300 Subject: [PATCH] Fixed crash when accessing MBC RAM on a cartridge that "has RAM", but it's 0-sized. --- Core/memory.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Core/memory.c b/Core/memory.c index 8faa0df..cef9559 100644 --- a/Core/memory.c +++ b/Core/memory.c @@ -74,7 +74,7 @@ static uint8_t read_vram(GB_gameboy_t *gb, uint16_t addr) static uint8_t read_mbc_ram(GB_gameboy_t *gb, uint16_t addr) { - if (!gb->mbc_ram_enable) return 0xFF; + if (!gb->mbc_ram_enable || !gb->mbc_ram_size) return 0xFF; if (gb->cartridge_type->has_rtc && gb->mbc_ram_bank >= 8 && gb->mbc_ram_bank <= 0xC) { /* RTC read */ @@ -314,7 +314,7 @@ static void write_vram(GB_gameboy_t *gb, uint16_t addr, uint8_t value) static void write_mbc_ram(GB_gameboy_t *gb, uint16_t addr, uint8_t value) { - if (!gb->mbc_ram_enable) return; + if (!gb->mbc_ram_enable || !gb->mbc_ram_size) return; if (gb->cartridge_type->has_rtc && gb->mbc_ram_bank >= 8 && gb->mbc_ram_bank <= 0xC) { /* RTC read */