diff options
Diffstat (limited to 'src/mame/drivers/exidy.c')
-rw-r--r-- | src/mame/drivers/exidy.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/mame/drivers/exidy.c b/src/mame/drivers/exidy.c index ad391b2f1e8..4d88d4ef512 100644 --- a/src/mame/drivers/exidy.c +++ b/src/mame/drivers/exidy.c @@ -186,11 +186,18 @@ CUSTOM_INPUT_MEMBER(exidy_state::teetert_input_r) WRITE8_MEMBER(exidy_state::fax_bank_select_w) { + m_fax_bank = data; + + fax_bank_restore(); +} + +void exidy_state::fax_bank_restore() +{ UINT8 *RAM = memregion("maincpu")->base(); - membank("bank1")->set_base(&RAM[0x10000 + (0x2000 * (data & 0x1f))]); - if ((data & 0x1f) > 0x17) - logerror("Banking to unpopulated ROM bank %02X!\n",data & 0x1f); + membank("bank1")->set_base(&RAM[0x10000 + (0x2000 * (m_fax_bank & 0x1f))]); + if ((m_fax_bank & 0x1f) > 0x17) + logerror("Banking to unpopulated ROM bank %02X!\n", m_fax_bank & 0x1f); } @@ -1543,6 +1550,9 @@ DRIVER_INIT_MEMBER(exidy_state,fax) /* reset the ROM bank */ fax_bank_select_w(space,0,0); + + save_item(NAME(m_fax_bank)); + machine().save().register_postload(save_prepost_delegate(FUNC(exidy_state::fax_bank_restore), this)); } |