From 7033010412c36bc4d99a92dcf6d91a5c19a8bd1f Mon Sep 17 00:00:00 2001 From: EkeEke Date: Tue, 9 Jul 2013 00:36:44 +0200 Subject: [PATCH] [Core/MD] disable cartridge backup RAM when mapped as volatile RAM over internal RAM ("Feng Kuang Tao Hua Yuan" crash) --- core/cart_hw/sram.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/core/cart_hw/sram.c b/core/cart_hw/sram.c index 382cf13..ed8bea9 100644 --- a/core/cart_hw/sram.c +++ b/core/cart_hw/sram.c @@ -77,6 +77,9 @@ void sram_init() /* backup RAM detected */ sram.detected = 1; + /* enable backup RAM */ + sram.on = 1; + /* retrieve backup RAM start & end addresses */ sram.start = READ_WORD_LONG(cart.rom, 0x1b4); sram.end = READ_WORD_LONG(cart.rom, 0x1b8); @@ -89,14 +92,18 @@ void sram_init() sram.end = 0x203fff; } + /* fixe games indicating internal RAM as volatile external RAM (Feng Kuang Tao Hua Yuan) */ + else if (sram.start == 0xff0000) + { + /* backup RAM should be disabled */ + sram.on = 0; + } + /* fixe other bad header informations */ else if ((sram.start > sram.end) || ((sram.end - sram.start) >= 0x10000)) { sram.end = sram.start + 0xffff; } - - /* enable backup RAM */ - sram.on = 1; } else {