summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/mame/drivers/metlclsh.cpp2
-rw-r--r--src/mame/includes/metlclsh.h2
-rw-r--r--src/mame/video/metlclsh.cpp11
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);
}