From f50806540979413d06aedc47a195e3fa4ba8bde6 Mon Sep 17 00:00:00 2001 From: notaz Date: Mon, 25 Sep 2017 23:37:54 +0300 Subject: [PATCH] relax the bank check there is 512K padding on load --- pico/carthw/carthw.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/pico/carthw/carthw.c b/pico/carthw/carthw.c index 0d6b9c5c..a8b4333f 100644 --- a/pico/carthw/carthw.c +++ b/pico/carthw/carthw.c @@ -11,6 +11,16 @@ #include "eeprom_spi.h" +static int have_bank(u32 base) +{ + // the loader allocs in 512K quantities + if (base >= Pico.romsize) { + elprintf(EL_ANOMALY|EL_STATUS, "carthw: missing bank @ %06x", base); + return 0; + } + return 1; +} + /* The SSFII mapper */ static unsigned char ssf2_banks[8]; @@ -36,10 +46,8 @@ static void carthw_ssf2_write8(u32 a, u32 d) ssf2_banks[a >> 1] = d; base = d << 19; target = a << 18; - if (base + 0x80000 > Pico.romsize) { - elprintf(EL_ANOMALY|EL_STATUS, "ssf2: missing bank @ %06x", base); + if (!have_bank(base)) return; - } cpu68k_map_set(m68k_read8_map, target, target + 0x80000 - 1, Pico.rom + base, 0); cpu68k_map_set(m68k_read16_map, target, target + 0x80000 - 1, Pico.rom + base, 0); @@ -324,10 +332,9 @@ static void carthw_pier_write8(u32 a, u32 d) return; do_map: - if (base + 0x80000 > Pico.romsize) { - elprintf(EL_ANOMALY|EL_STATUS, "pier: missing bank @ %06x", base); + if (!have_bank(base)) return; - } + cpu68k_map_set(m68k_read8_map, target, target + 0x80000 - 1, Pico.rom + base, 0); cpu68k_map_set(m68k_read16_map, target, target + 0x80000 - 1, Pico.rom + base, 0); } -- 2.39.5