From 1a6664ca74bfb41d9b3f378a4e884bb3df119ac8 Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Thu, 10 Dec 2020 14:11:28 +0100 Subject: [PATCH] cyberbal: modernize slapstic hookup --- src/mame/drivers/cyberbal.cpp | 13 +++++++++++++ src/mame/includes/cyberbal.h | 3 +++ 2 files changed, 16 insertions(+) diff --git a/src/mame/drivers/cyberbal.cpp b/src/mame/drivers/cyberbal.cpp index b856ea9e91b..f9465a401ee 100644 --- a/src/mame/drivers/cyberbal.cpp +++ b/src/mame/drivers/cyberbal.cpp @@ -143,6 +143,12 @@ void cyberbal_state::main_map(address_map &map) map(0xffc000, 0xffffff).ram().share("mainram"); } +void cyberbal_state::tournament_map(address_map &map) +{ + main_map(map); + map(0x018000, 0x01ffff).bankr(m_slapstic_bank); +} + /************************************* @@ -415,6 +421,8 @@ void cyberbal_state::cyberbalt(machine_config &config) EEPROM_2816(config, "eeprom").lock_after_write(true); SLAPSTIC(config, m_slapstic, 116, true); + m_slapstic->set_bank(m_slapstic_bank); + m_maincpu->set_addrmap(AS_PROGRAM, &cyberbal_state::tournament_map); } void cyberbal2p_state::cyberbal2p(machine_config &config) @@ -993,6 +1001,11 @@ ROM_END void cyberbal_state::init_cyberbalt() { + m_slapstic_bank->configure_entries(0, 4, memregion("maincpu")->base() + 0x18000, 0x2000); + m_maincpu->space(AS_PROGRAM).install_readwrite_tap(0x18000, 0x1ffff, 0, "slapstic", + [this](offs_t offset, u16 &data, u16 mem_mask) { m_slapstic->tweak(m_maincpu->space(), offset >> 1); }, + [this](offs_t offset, u16 &data, u16 mem_mask) { m_slapstic->tweak(m_maincpu->space(), offset >> 1); }); + m_slapstic->legacy_configure(*m_maincpu, 0x018000, 0, memregion("maincpu")->base() + 0x18000); } diff --git a/src/mame/includes/cyberbal.h b/src/mame/includes/cyberbal.h index 26525a1cabb..b6de3991a9e 100644 --- a/src/mame/includes/cyberbal.h +++ b/src/mame/includes/cyberbal.h @@ -95,6 +95,7 @@ public: cyberbal_state(const machine_config &mconfig, device_type type, const char *tag) : cyberbal_base_state(mconfig, type, tag), m_slapstic(*this, "slapstic"), + m_slapstic_bank(*this, "slapstic_bank"), m_extracpu(*this, "extra"), m_sac(*this, "sac"), m_playfield2(*this, "playfield2"), @@ -123,6 +124,7 @@ protected: // memory maps void main_map(address_map &map); + void tournament_map(address_map &map); void extra_map(address_map &map); private: @@ -132,6 +134,7 @@ private: TIMER_DEVICE_CALLBACK_MEMBER(scanline_update); optional_device m_slapstic; + optional_memory_bank m_slapstic_bank; required_device m_extracpu; required_device m_sac; required_device m_playfield2;