mirror of
https://github.com/holub/mame
synced 2025-06-06 12:53:46 +03:00
metlclsh: Remove tag lookup for RAM bank and fix save state loading
This commit is contained in:
parent
5b92ad399c
commit
18e363ae60
@ -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");
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user