diff options
Diffstat (limited to 'src/mame/drivers/malzak.cpp')
-rw-r--r-- | src/mame/drivers/malzak.cpp | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/src/mame/drivers/malzak.cpp b/src/mame/drivers/malzak.cpp index cf82cac7b81..a9994e627a5 100644 --- a/src/mame/drivers/malzak.cpp +++ b/src/mame/drivers/malzak.cpp @@ -70,13 +70,12 @@ #include "cpu/s2650/s2650.h" #include "machine/nvram.h" #include "sound/sn76477.h" -#include "video/saa5050.h" #include "speaker.h" READ8_MEMBER(malzak_state::fake_VRLE_r) { - return (m_s2636_0->read_data(space, 0xcb) & 0x3f) + (m_screen->vblank() ? 0x40 : 0x00); + return (m_s2636[0]->read_data(space, 0xcb) & 0x3f) + (m_screen->vblank() ? 0x40 : 0x00); } READ8_MEMBER(malzak_state::s2636_portA_r) @@ -103,14 +102,14 @@ void malzak_state::malzak_map(address_map &map) { map.global_mask(0x7fff); map(0x0000, 0x0bff).rom(); - map(0x0c00, 0x0fff).bankr("bank1"); + map(0x0c00, 0x0fff).bankr("mainbank"); map(0x1000, 0x10ff).mirror(0x6000).ram(); map(0x1100, 0x11ff).mirror(0x6000).ram(); map(0x1200, 0x12ff).mirror(0x6000).ram(); map(0x1300, 0x13ff).mirror(0x6000).ram(); - map(0x1400, 0x14ff).mirror(0x6000).rw(m_s2636_0, FUNC(s2636_device::read_data), FUNC(s2636_device::write_data)); + map(0x1400, 0x14ff).mirror(0x6000).rw(m_s2636[0], FUNC(s2636_device::read_data), FUNC(s2636_device::write_data)); map(0x14cb, 0x14cb).mirror(0x6000).r(this, FUNC(malzak_state::fake_VRLE_r)); - map(0x1500, 0x15ff).mirror(0x6000).rw(m_s2636_1, FUNC(s2636_device::read_data), FUNC(s2636_device::write_data)); + map(0x1500, 0x15ff).mirror(0x6000).rw(m_s2636[1], FUNC(s2636_device::read_data), FUNC(s2636_device::write_data)); map(0x1600, 0x16ff).mirror(0x6000).ram().w(this, FUNC(malzak_state::malzak_playfield_w)); map(0x1700, 0x17ff).mirror(0x6000).ram(); map(0x1800, 0x1fff).mirror(0x6000).ram().share("videoram"); @@ -124,15 +123,15 @@ void malzak_state::malzak2_map(address_map &map) { map.global_mask(0x7fff); map(0x0000, 0x0bff).rom(); - map(0x0c00, 0x0fff).bankr("bank1"); + map(0x0c00, 0x0fff).bankr("mainbank"); map(0x1000, 0x10ff).mirror(0x6000).ram(); map(0x1100, 0x11ff).mirror(0x6000).ram(); map(0x1200, 0x12ff).mirror(0x6000).ram(); map(0x1300, 0x13ff).mirror(0x6000).ram(); - map(0x1400, 0x14ff).mirror(0x6000).rw(m_s2636_0, FUNC(s2636_device::read_data), FUNC(s2636_device::write_data)); + map(0x1400, 0x14ff).mirror(0x6000).rw(m_s2636[0], FUNC(s2636_device::read_data), FUNC(s2636_device::write_data)); map(0x14cb, 0x14cb).mirror(0x6000).r(this, FUNC(malzak_state::fake_VRLE_r)); map(0x14cc, 0x14cc).mirror(0x6000).r(this, FUNC(malzak_state::s2636_portA_r)); - map(0x1500, 0x15ff).mirror(0x6000).rw(m_s2636_1, FUNC(s2636_device::read_data), FUNC(s2636_device::write_data)); + map(0x1500, 0x15ff).mirror(0x6000).rw(m_s2636[1], FUNC(s2636_device::read_data), FUNC(s2636_device::write_data)); map(0x1600, 0x16ff).mirror(0x6000).ram().w(this, FUNC(malzak_state::malzak_playfield_w)); map(0x1700, 0x17ff).mirror(0x6000).ram().share("nvram"); map(0x1800, 0x1fff).mirror(0x6000).ram().share("videoram"); @@ -157,7 +156,7 @@ WRITE8_MEMBER(malzak_state::port40_w) // Bit 6 is used only in Malzak II, and is set high after checking // the selected version // logerror("%s S2650: port 0x40 write: 0x%02x\n", machine().describe_context(), data); - membank("bank1")->set_entry((data & 0x40) >> 6); + m_mainbank->set_entry((data & 0x40) >> 6); } WRITE8_MEMBER(malzak_state::port60_w) @@ -282,13 +281,12 @@ READ8_MEMBER(malzak_state::videoram_r) void malzak_state::machine_start() { - membank("bank1")->configure_entries(0, 2, memregion("user2")->base(), 0x400); - - m_saa5050 = machine().device("saa5050"); + m_mainbank->configure_entries(0, 2, memregion("user2")->base(), 0x400); save_item(NAME(m_playfield_code)); save_item(NAME(m_malzak_x)); save_item(NAME(m_malzak_y)); + save_item(NAME(m_collision_counter)); } void malzak_state::machine_reset() @@ -302,33 +300,33 @@ void malzak_state::machine_reset() MACHINE_CONFIG_START(malzak_state::malzak) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", S2650, 3800000/4) + MCFG_DEVICE_ADD(m_maincpu, S2650, 3800000/4) MCFG_DEVICE_PROGRAM_MAP(malzak_map) MCFG_DEVICE_IO_MAP(malzak_io_map) MCFG_DEVICE_DATA_MAP(malzak_data_map) - MCFG_S2650_SENSE_INPUT(READLINE("screen", screen_device, vblank)) + MCFG_S2650_SENSE_INPUT(READLINE(m_screen, screen_device, vblank)) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_ADD(m_screen, RASTER) MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) MCFG_SCREEN_SIZE(480, 512) /* vert size is a guess */ MCFG_SCREEN_VISIBLE_AREA(0, 479, 0, 479) - MCFG_SCREEN_UPDATE_DRIVER(malzak_state, screen_update_malzak) + MCFG_SCREEN_UPDATE_DRIVER(malzak_state, screen_update) - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_malzak) - MCFG_PALETTE_ADD("palette", 128) + MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_malzak) + MCFG_PALETTE_ADD(m_palette, 128) MCFG_PALETTE_INIT_OWNER(malzak_state, malzak) - MCFG_DEVICE_ADD("s2636_0", S2636, 0) + MCFG_DEVICE_ADD(m_s2636[0], S2636, 0) MCFG_S2636_OFFSETS(0, -16) // -8, -16 MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MCFG_DEVICE_ADD("s2636_1", S2636, 0) + MCFG_DEVICE_ADD(m_s2636[1], S2636, 0) MCFG_S2636_OFFSETS(0, -16) // -9, -16 MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MCFG_DEVICE_ADD("saa5050", SAA5050, 6000000) + MCFG_DEVICE_ADD(m_trom, SAA5050, 6000000) MCFG_SAA5050_D_CALLBACK(READ8(*this, malzak_state, videoram_r)) MCFG_SAA5050_SCREEN_SIZE(42, 24, 64) |