(MESS) fixed crash with no cart for 3 drivers (nw)

- gameking, svision, advision
- only affects my build
- See forum post for details
This commit is contained in:
Robert 2014-12-20 11:28:57 +11:00
parent 4878a6643a
commit 2d3aede494
3 changed files with 14 additions and 5 deletions

View File

@ -121,7 +121,11 @@ void gameking_state::machine_start()
astring region_tag; astring region_tag;
m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG)); m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
if (!m_cart_rom) printf("No Rom\n"); if (!m_cart_rom)
{
printf("No Rom\n");
return;
}
m_bank4000 = membank("bank4000"); m_bank4000 = membank("bank4000");
m_bank8000 = membank("bank8000"); m_bank8000 = membank("bank8000");

View File

@ -475,9 +475,13 @@ void svision_state::machine_start()
m_bank1 = membank("bank1"); m_bank1 = membank("bank1");
m_bank2 = membank("bank2"); m_bank2 = membank("bank2");
// bank1 is set to the first bank // bank1 is set to the first bank
// do not crash if no cart
if (num_banks)
{
m_bank1->set_base(m_cart_rom->base()); m_bank1->set_base(m_cart_rom->base());
// bank2 is set to the last bank // bank2 is set to the last bank
m_bank2->set_base(m_cart_rom->base() + (num_banks - 1) * 0x4000); m_bank2->set_base(m_cart_rom->base() + (num_banks - 1) * 0x4000);
}
} }
void svision_state::machine_reset() void svision_state::machine_reset()

View File

@ -76,6 +76,7 @@ WRITE8_MEMBER( advision_state::bankswitch_w )
m_rambank = (data & 0x03) << 8; m_rambank = (data & 0x03) << 8;
m_maincpu->set_input_line(MCS48_INPUT_EA, m_ea_bank ? ASSERT_LINE : CLEAR_LINE); m_maincpu->set_input_line(MCS48_INPUT_EA, m_ea_bank ? ASSERT_LINE : CLEAR_LINE);
if (m_cart_rom)
m_bank1->set_entry(m_ea_bank); m_bank1->set_entry(m_ea_bank);
} }