summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/malzak.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/malzak.cpp')
-rw-r--r--src/mame/drivers/malzak.cpp40
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)