From ad56c328694a76393e505d7293cc1ba4a2f8f599 Mon Sep 17 00:00:00 2001 From: Fabio Priuli Date: Fri, 7 Aug 2009 21:10:13 +0000 Subject: [PATCH] Fix for MT 3881: pc_moglf, pc_mtoid: Crashes with access violation a short time after boot. [hap] --- src/mame/machine/playch10.c | 14 +++++++++++--- src/mame/machine/vsnes.c | 5 +++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/mame/machine/playch10.c b/src/mame/machine/playch10.c index d661d43b64c..4a072085df1 100644 --- a/src/mame/machine/playch10.c +++ b/src/mame/machine/playch10.c @@ -555,12 +555,20 @@ static WRITE8_HANDLER( mmc1_rom_switch_w ) break; case 1: /* video rom banking - bank 0 - 4k or 8k */ - pc10_set_videorom_bank(space->machine, 0, (vrom4k) ? 4 : 8, (mmc1_shiftreg & 0x1f), 4); + if (vram) + set_videoram_bank(space->machine, 0, (vrom4k) ? 4 : 8, (mmc1_shiftreg & 0x1f), 4); + else + pc10_set_videorom_bank(space->machine, 0, (vrom4k) ? 4 : 8, (mmc1_shiftreg & 0x1f), 4); break; case 2: /* video rom banking - bank 1 - 4k only */ - if (vrom4k) - pc10_set_videorom_bank(space->machine, 4, 4, (mmc1_shiftreg & 0x1f), 4); + if (vrom4k) + { + if (vram) + set_videoram_bank(space->machine, 0, (vrom4k) ? 4 : 8, (mmc1_shiftreg & 0x1f), 4); + else + pc10_set_videorom_bank(space->machine, 4, 4, (mmc1_shiftreg & 0x1f), 4); + } break; case 3: /* program banking */ diff --git a/src/mame/machine/vsnes.c b/src/mame/machine/vsnes.c index 7ff46173833..0b7ef668e8b 100644 --- a/src/mame/machine/vsnes.c +++ b/src/mame/machine/vsnes.c @@ -783,11 +783,12 @@ static WRITE8_HANDLER( drmario_rom_banking ) break; case 1: /* video rom banking - bank 0 - 4k or 8k */ - v_set_videorom_bank(space->machine, 0, (vrom4k) ? 4 : 8, drmario_shiftreg, (vrom4k) ? 4 : 8); + if (!vram) + v_set_videorom_bank(space->machine, 0, (vrom4k) ? 4 : 8, drmario_shiftreg, (vrom4k) ? 4 : 8); break; case 2: /* video rom banking - bank 1 - 4k only */ - if (vrom4k) + if (vrom4k && !vram) v_set_videorom_bank(space->machine, 4, 4, drmario_shiftreg, 4); break;