From 35cdc22c801b2d4a2c79c89eba94da15f8169e1b Mon Sep 17 00:00:00 2001 From: andrew-gardner Date: Wed, 4 Mar 2015 16:51:57 +0100 Subject: More set_base removal (entitled 'I just convert what's there - no matter how weird it is') (nw) --- src/mame/drivers/srmp2.c | 30 ++++++++++++++---------------- src/mame/drivers/srmp5.c | 8 +++++++- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/mame/drivers/srmp2.c b/src/mame/drivers/srmp2.c index 8a2670f699d..4cc5e40e0c6 100644 --- a/src/mame/drivers/srmp2.c +++ b/src/mame/drivers/srmp2.c @@ -94,6 +94,8 @@ MACHINE_START_MEMBER(srmp2_state,srmp3) iox.protcheck[1] = 0x4c; iox.protlatch[1] = 0x00; iox.protcheck[2] = 0x1c; iox.protlatch[2] = 0x04; iox.protcheck[3] = 0x45; iox.protlatch[3] = 0x00; + + membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x8000, 0x2000); } MACHINE_START_MEMBER(srmp2_state,rmgoldyh) @@ -107,6 +109,8 @@ MACHINE_START_MEMBER(srmp2_state,rmgoldyh) iox.protcheck[1] = 0x45; iox.protlatch[1] = 0x00; iox.protcheck[2] = -1; iox.protlatch[2] = -1; iox.protcheck[3] = -1; iox.protlatch[3] = -1; + + membank("bank1")->configure_entries(0, 32, memregion("maincpu")->base() + 0x8000, 0x2000); } /*************************************************************************** @@ -349,16 +353,14 @@ WRITE8_MEMBER(srmp2_state::srmp3_rombank_w) ---x xxxx : MAIN ROM bank xxx- ---- : ADPCM ROM bank */ - - UINT8 *ROM = memregion("maincpu")->base(); - int addr; - m_adpcm_bank = ((data & 0xe0) >> 5); - if (data & 0x1f) addr = ((0x10000 + (0x2000 * (data & 0x0f))) - 0x8000); - else addr = 0x10000; - - membank("bank1")->set_base(&ROM[addr]); + // TODO: Check this code (and the corresponding configure_entires), + // as it seems to be inconsistent with the notes at the head of this function + if (data & 0x1f) + membank("bank1")->set_entry(data & 0x0f); + else + membank("bank1")->set_entry(8); } /************************************************************************** @@ -499,16 +501,12 @@ WRITE8_MEMBER(srmp2_state::rmgoldyh_rombank_w) ---x xxxx : MAIN ROM bank xxx- ---- : ADPCM ROM bank */ - - UINT8 *ROM = memregion("maincpu")->base(); - int addr; - m_adpcm_bank = ((data & 0xe0) >> 5); - if (data & 0x1f) addr = ((0x10000 + (0x2000 * (data & 0x1f))) - 0x8000); - else addr = 0x10000; - - membank("bank1")->set_base(&ROM[addr]); + if (data & 0x1f) + membank("bank1")->set_entry(data & 0x1f); + else + membank("bank1")->set_entry(8); } static ADDRESS_MAP_START( rmgoldyh_io_map, AS_IO, 8, srmp2_state ) diff --git a/src/mame/drivers/srmp5.c b/src/mame/drivers/srmp5.c index 37a7f69a81d..ab4bf6885dc 100644 --- a/src/mame/drivers/srmp5.c +++ b/src/mame/drivers/srmp5.c @@ -114,6 +114,7 @@ public: DECLARE_READ8_MEMBER(cmd1_r); DECLARE_READ8_MEMBER(cmd2_r); DECLARE_READ8_MEMBER(cmd_stat8_r); + virtual void machine_start(); DECLARE_DRIVER_INIT(srmp5); UINT32 screen_update_srmp5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); @@ -237,6 +238,11 @@ UINT32 srmp5_state::screen_update_srmp5(screen_device &screen, bitmap_rgb32 &bit return 0; } +void srmp5_state::machine_start() +{ + membank("bank1")->configure_entries(0, 256, memregion("maincpu")->base(), 0x4000); +} + WRITE32_MEMBER(srmp5_state::bank_w) { m_chrbank = ((data & 0xf0) >> 4) * (0x100000 / sizeof(UINT16)); @@ -394,7 +400,7 @@ READ8_MEMBER(srmp5_state::cmd_stat8_r) // common rombank? should go in machine/st0016 with larger address space exposed? WRITE8_MEMBER(srmp5_state::st0016_rom_bank_w) { - membank("bank1")->set_base(memregion("maincpu")->base() + (data* 0x4000)); + membank("bank1")->set_entry(data); } -- cgit v1.2.3