cyberbal: modernize slapstic hookup

This commit is contained in:
Olivier Galibert 2020-12-10 14:11:28 +01:00
parent fb12a1b358
commit 1a6664ca74
2 changed files with 16 additions and 0 deletions

View File

@ -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);
}

View File

@ -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<atari_slapstic_device> m_slapstic;
optional_memory_bank m_slapstic_bank;
required_device<cpu_device> m_extracpu;
required_device<atari_sac_device> m_sac;
required_device<tilemap_device> m_playfield2;