diff options
author | 2020-12-20 17:50:50 -0500 | |
---|---|---|
committer | 2020-12-20 17:50:50 -0500 | |
commit | 18e363ae602cf1d37edc94e2bc69db16dc2c8480 (patch) | |
tree | 874c0c0158b62916c183620855607c119c6f6813 /src | |
parent | 5b92ad399c372b0ecb6d4f7873be70a0d2d6ce66 (diff) |
metlclsh: Remove tag lookup for RAM bank and fix save state loading
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/metlclsh.cpp | 2 | ||||
-rw-r--r-- | src/mame/includes/metlclsh.h | 2 | ||||
-rw-r--r-- | src/mame/video/metlclsh.cpp | 11 |
3 files changed, 8 insertions, 7 deletions
diff --git a/src/mame/drivers/metlclsh.cpp b/src/mame/drivers/metlclsh.cpp index f2d831a0e43..510c7ed5afd 100644 --- a/src/mame/drivers/metlclsh.cpp +++ b/src/mame/drivers/metlclsh.cpp @@ -117,7 +117,7 @@ void metlclsh_state::metlclsh_slave_map(address_map &map) map(0xc003, 0xc003).portr("DSW"); map(0xc0c0, 0xc0c0).w(FUNC(metlclsh_state::metlclsh_cause_nmi2)); // cause nmi on cpu #1 map(0xc0c1, 0xc0c1).w(FUNC(metlclsh_state::metlclsh_ack_irq2)); // irq ack - map(0xd000, 0xd7ff).bankr("bank1").w(FUNC(metlclsh_state::metlclsh_bgram_w)).share("bgram"); // this is banked + map(0xd000, 0xd7ff).bankr("rambank").w(FUNC(metlclsh_state::metlclsh_bgram_w)).share("bgram"); // this is banked map(0xe301, 0xe301).w(FUNC(metlclsh_state::metlclsh_flipscreen_w)); // 0/1 map(0xe401, 0xe401).w(FUNC(metlclsh_state::metlclsh_rambank_w)); map(0xe402, 0xe403).writeonly().share("scrollx"); diff --git a/src/mame/includes/metlclsh.h b/src/mame/includes/metlclsh.h index 8eb2f518124..a9e50881a7a 100644 --- a/src/mame/includes/metlclsh.h +++ b/src/mame/includes/metlclsh.h @@ -18,6 +18,7 @@ public: m_spriteram(*this, "spriteram"), m_bgram(*this, "bgram"), m_scrollx(*this, "scrollx"), + m_rambank(*this, "rambank"), m_maincpu(*this, "maincpu"), m_subcpu(*this, "sub"), m_gfxdecode(*this, "gfxdecode"), @@ -33,6 +34,7 @@ private: required_shared_ptr<uint8_t> m_spriteram; required_shared_ptr<uint8_t> m_bgram; required_shared_ptr<uint8_t> m_scrollx; + required_memory_bank m_rambank; std::unique_ptr<uint8_t[]> m_otherram; /* video-related */ diff --git a/src/mame/video/metlclsh.cpp b/src/mame/video/metlclsh.cpp index bba011a5c65..327d690c3ca 100644 --- a/src/mame/video/metlclsh.cpp +++ b/src/mame/video/metlclsh.cpp @@ -26,16 +26,11 @@ void metlclsh_state::metlclsh_rambank_w(uint8_t data) { + m_rambank->set_entry(data & 1); if (data & 1) - { m_write_mask = 0; - membank("bank1")->set_base(m_bgram); - } else - { m_write_mask = 1 << (data >> 1); - membank("bank1")->set_base(m_otherram.get()); - } } void metlclsh_state::metlclsh_gfxbank_w(uint8_t data) @@ -141,6 +136,10 @@ void metlclsh_state::video_start() m_bg_tilemap->set_transparent_pen(0); m_fg_tilemap->set_transparent_pen(0); + m_rambank->configure_entry(0, m_otherram.get()); + m_rambank->configure_entry(1, m_bgram.target()); + m_rambank->set_entry(0); + save_pointer(NAME(m_otherram), 0x800); } |