From a420cfd7985267360b68e1abe7e7b38c11f2796f Mon Sep 17 00:00:00 2001 From: Lior Halphon Date: Thu, 23 Feb 2017 00:27:08 +0200 Subject: [PATCH] =?UTF-8?q?HUC1=E2=80=99s=20RAM=20Enable=20only=20controls?= =?UTF-8?q?=20writing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core/mbc.c | 2 +- Core/memory.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Core/mbc.c b/Core/mbc.c index 4067300..c8690d1 100644 --- a/Core/mbc.c +++ b/Core/mbc.c @@ -5,7 +5,7 @@ const GB_cartridge_t GB_cart_defs[256] = { // From http://gbdev.gg8.se/wiki/articles/The_Cartridge_Header#0147_-_Cartridge_Type - /* MBC SUBTYPE RAM BAT. RTC RUMB. EXTRA */ + /* MBC SUBTYPE RAM BAT. RTC RUMB. */ { GB_NO_MBC, GB_STANDARD_MBC, false, false, false, false}, // 00h ROM ONLY { GB_MBC1 , GB_STANDARD_MBC, false, false, false, false}, // 01h MBC1 { GB_MBC1 , GB_STANDARD_MBC, true , false, false, false}, // 02h MBC1+RAM diff --git a/Core/memory.c b/Core/memory.c index 879503a..a13b374 100644 --- a/Core/memory.c +++ b/Core/memory.c @@ -75,7 +75,9 @@ 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 || !gb->mbc_ram_size) && gb->cartridge_type->mbc_subtype != GB_CAMERA) return 0xFF; + if ((!gb->mbc_ram_enable || !gb->mbc_ram_size) && + gb->cartridge_type->mbc_subtype != GB_CAMERA && + gb->cartridge_type->mbc_type != GB_HUC1) return 0xFF; if (gb->cartridge_type->has_rtc && gb->mbc_ram_bank >= 8 && gb->mbc_ram_bank <= 0xC) { /* RTC read */