summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-03-28 21:28:30 -0400
committer AJR <ajrhacker@users.noreply.github.com>2018-03-28 21:28:30 -0400
commit293c6bd627fb5fec423c80e690ff87322a7e07c3 (patch)
tree194997206f9be4d528cef9f99f0bf69bc9daaa5e
parent28e8cc6674b643406257bb98af0f8e4037cfa38a (diff)
galaga.cpp, pacland.cpp, tceptor.cpp: Replace MCFG_CPU_VBLANK_INT with line callbacks (nw)
-rw-r--r--src/mame/drivers/galaga.cpp30
-rw-r--r--src/mame/drivers/pacland.cpp12
-rw-r--r--src/mame/drivers/tceptor.cpp25
-rw-r--r--src/mame/includes/pacland.h3
-rw-r--r--src/mame/includes/tceptor.h4
-rw-r--r--src/mame/includes/xevious.h2
-rw-r--r--src/mame/machine/xevious.cpp5
-rw-r--r--src/mame/video/tceptor.cpp13
8 files changed, 39 insertions, 55 deletions
diff --git a/src/mame/drivers/galaga.cpp b/src/mame/drivers/galaga.cpp
index f0c530e5516..c486bd6cba0 100644
--- a/src/mame/drivers/galaga.cpp
+++ b/src/mame/drivers/galaga.cpp
@@ -1553,16 +1553,13 @@ static const char *const battles_sample_names[] =
nullptr /* end of array */
};
-INTERRUPT_GEN_MEMBER(galaga_state::main_vblank_irq)
+WRITE_LINE_MEMBER(galaga_state::vblank_irq)
{
- if(m_main_irq_mask)
- device.execute().set_input_line(0, ASSERT_LINE);
-}
+ if (state && m_main_irq_mask)
+ m_maincpu->set_input_line(0, ASSERT_LINE);
-INTERRUPT_GEN_MEMBER(galaga_state::sub_vblank_irq)
-{
- if(m_sub_irq_mask)
- device.execute().set_input_line(0, ASSERT_LINE);
+ if (state && m_sub_irq_mask)
+ m_subcpu->set_input_line(0, ASSERT_LINE);
}
MACHINE_CONFIG_START(bosco_state::bosco)
@@ -1570,11 +1567,9 @@ MACHINE_CONFIG_START(bosco_state::bosco)
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(bosco_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", galaga_state, main_vblank_irq)
MCFG_CPU_ADD("sub", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(bosco_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", galaga_state, sub_vblank_irq)
MCFG_CPU_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(bosco_map)
@@ -1643,6 +1638,7 @@ MACHINE_CONFIG_START(bosco_state::bosco)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 16, 224+16)
MCFG_SCREEN_UPDATE_DRIVER(bosco_state, screen_update_bosco)
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(bosco_state, screen_vblank_bosco))
+ MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE(galaga_state, vblank_irq))
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", bosco)
@@ -1669,11 +1665,9 @@ MACHINE_CONFIG_START(galaga_state::galaga)
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(galaga_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", galaga_state, main_vblank_irq)
MCFG_CPU_ADD("sub", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(galaga_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", galaga_state, sub_vblank_irq)
MCFG_CPU_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(galaga_map)
@@ -1720,6 +1714,7 @@ MACHINE_CONFIG_START(galaga_state::galaga)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224)
MCFG_SCREEN_UPDATE_DRIVER(galaga_state, screen_update_galaga)
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(galaga_state, screen_vblank_galaga))
+ MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE(galaga_state, vblank_irq))
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", galaga)
@@ -1776,11 +1771,9 @@ MACHINE_CONFIG_START(xevious_state::xevious)
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(xevious_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", galaga_state, main_vblank_irq)
MCFG_CPU_ADD("sub", Z80,MASTER_CLOCK/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(xevious_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", galaga_state, sub_vblank_irq)
MCFG_CPU_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(xevious_map)
@@ -1828,6 +1821,7 @@ MACHINE_CONFIG_START(xevious_state::xevious)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224)
MCFG_SCREEN_UPDATE_DRIVER(xevious_state, screen_update_xevious)
MCFG_SCREEN_PALETTE("palette")
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(galaga_state, vblank_irq))
MCFG_GFXDECODE_ADD("gfxdecode", "palette", xevious)
MCFG_PALETTE_ADD("palette", 128*4+64*8+64*2)
@@ -1865,7 +1859,10 @@ MACHINE_CONFIG_START(xevious_state::battles)
MCFG_CPU_ADD("sub3", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(battles_mem4)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", xevious_state, battles_interrupt_4)
+
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(galaga_state, vblank_irq))
+ MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE(xevious_state, battles_interrupt_4))
MCFG_TIMER_DRIVER_ADD("battles_nmi", xevious_state, battles_nmi_generate)
@@ -1885,11 +1882,9 @@ MACHINE_CONFIG_START(digdug_state::digdug)
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(digdug_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", galaga_state, main_vblank_irq)
MCFG_CPU_ADD("sub", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(digdug_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", galaga_state, sub_vblank_irq)
MCFG_CPU_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(digdug_map)
@@ -1948,6 +1943,7 @@ MACHINE_CONFIG_START(digdug_state::digdug)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224)
MCFG_SCREEN_UPDATE_DRIVER(digdug_state, screen_update_digdug)
MCFG_SCREEN_PALETTE("palette")
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(galaga_state, vblank_irq))
MCFG_GFXDECODE_ADD("gfxdecode", "palette", digdug)
MCFG_PALETTE_ADD("palette", 16*2+64*4+64*4)
diff --git a/src/mame/drivers/pacland.cpp b/src/mame/drivers/pacland.cpp
index 643bf6226ae..fdde347492f 100644
--- a/src/mame/drivers/pacland.cpp
+++ b/src/mame/drivers/pacland.cpp
@@ -416,15 +416,12 @@ static GFXDECODE_START( pacland )
GFXDECODE_END
-INTERRUPT_GEN_MEMBER(pacland_state::main_vblank_irq)
+WRITE_LINE_MEMBER(pacland_state::vblank_irq)
{
- if(m_main_irq_mask)
+ if (state && m_main_irq_mask)
m_maincpu->set_input_line(0, ASSERT_LINE);
-}
-INTERRUPT_GEN_MEMBER(pacland_state::mcu_vblank_irq)
-{
- if(m_mcu_irq_mask)
+ if (state && m_mcu_irq_mask)
m_mcu->set_input_line(0, ASSERT_LINE);
}
@@ -433,12 +430,10 @@ MACHINE_CONFIG_START(pacland_state::pacland)
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", MC6809E, XTAL(49'152'000)/32) /* 1.536 MHz */
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", pacland_state, main_vblank_irq)
MCFG_CPU_ADD("mcu", HD63701, XTAL(49'152'000)/8) /* 6.144 MHz? */
MCFG_CPU_PROGRAM_MAP(mcu_map)
MCFG_CPU_IO_MAP(mcu_port_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", pacland_state, mcu_vblank_irq)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* we need heavy synching between the MCU and the CPU */
@@ -449,6 +444,7 @@ MACHINE_CONFIG_START(pacland_state::pacland)
MCFG_SCREEN_RAW_PARAMS(XTAL(49'152'000)/8, 384, 3*8, 39*8, 264, 2*8, 30*8)
MCFG_SCREEN_UPDATE_DRIVER(pacland_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(pacland_state, vblank_irq))
MCFG_GFXDECODE_ADD("gfxdecode", "palette", pacland)
MCFG_PALETTE_ADD("palette", 256*4+256*4+64*16)
diff --git a/src/mame/drivers/tceptor.cpp b/src/mame/drivers/tceptor.cpp
index 0a03fffce8c..534007c564f 100644
--- a/src/mame/drivers/tceptor.cpp
+++ b/src/mame/drivers/tceptor.cpp
@@ -40,14 +40,6 @@ WRITE8_MEMBER(tceptor_state::m68k_shared_w)
/*******************************************************************/
-INTERRUPT_GEN_MEMBER(tceptor_state::m6809_vb_interrupt)
-{
- if (m_m6809_irq_enable)
- device.execute().set_input_line(0, HOLD_LINE);
- else
- m_m6809_irq_enable = 1;
-}
-
WRITE8_MEMBER(tceptor_state::m6809_irq_enable_w)
{
m_m6809_irq_enable = 1;
@@ -59,26 +51,12 @@ WRITE8_MEMBER(tceptor_state::m6809_irq_disable_w)
}
-INTERRUPT_GEN_MEMBER(tceptor_state::m68k_vb_interrupt)
-{
- if (m_m68k_irq_enable)
- device.execute().set_input_line(M68K_IRQ_1, HOLD_LINE);
-}
-
WRITE16_MEMBER(tceptor_state::m68k_irq_enable_w)
{
m_m68k_irq_enable = data;
}
-INTERRUPT_GEN_MEMBER(tceptor_state::mcu_vb_interrupt)
-{
- if (m_mcu_irq_enable)
- device.execute().set_input_line(0, HOLD_LINE);
- else
- m_mcu_irq_enable = 1;
-}
-
WRITE8_MEMBER(tceptor_state::mcu_irq_enable_w)
{
m_mcu_irq_enable = 1;
@@ -350,7 +328,6 @@ MACHINE_CONFIG_START(tceptor_state::tceptor)
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6809, XTAL(49'152'000)/32)
MCFG_CPU_PROGRAM_MAP(m6809_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", tceptor_state, m6809_vb_interrupt)
MCFG_CPU_ADD("audiocpu", M65C02, XTAL(49'152'000)/24)
MCFG_CPU_PROGRAM_MAP(m6502_a_map)
@@ -360,12 +337,10 @@ MACHINE_CONFIG_START(tceptor_state::tceptor)
MCFG_CPU_ADD("sub", M68000, XTAL(49'152'000)/4)
MCFG_CPU_PROGRAM_MAP(m68k_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", tceptor_state, m68k_vb_interrupt)
MCFG_CPU_ADD("mcu", HD63701, XTAL(49'152'000)/8) // or compatible 6808 with extra instructions
MCFG_CPU_PROGRAM_MAP(mcu_map)
MCFG_CPU_IO_MAP(mcu_io_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", tceptor_state, mcu_vb_interrupt)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
diff --git a/src/mame/includes/pacland.h b/src/mame/includes/pacland.h
index 8f2f2866305..05ce1b8da59 100644
--- a/src/mame/includes/pacland.h
+++ b/src/mame/includes/pacland.h
@@ -63,8 +63,7 @@ public:
virtual void video_start() override;
DECLARE_PALETTE_INIT(pacland);
- INTERRUPT_GEN_MEMBER(main_vblank_irq);
- INTERRUPT_GEN_MEMBER(mcu_vblank_irq);
+ DECLARE_WRITE_LINE_MEMBER(vblank_irq);
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void switch_palette();
diff --git a/src/mame/includes/tceptor.h b/src/mame/includes/tceptor.h
index b904882d0ac..4a4d5098812 100644
--- a/src/mame/includes/tceptor.h
+++ b/src/mame/includes/tceptor.h
@@ -10,6 +10,8 @@ public:
tceptor_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
+ m_subcpu(*this, "sub"),
+ m_mcu(*this, "mcu"),
m_cus30(*this, "namco"),
m_tile_ram(*this, "tile_ram"),
m_tile_attr(*this, "tile_attr"),
@@ -25,6 +27,8 @@ public:
uint8_t m_m68k_irq_enable;
uint8_t m_mcu_irq_enable;
required_device<cpu_device> m_maincpu;
+ required_device<cpu_device> m_subcpu;
+ required_device<cpu_device> m_mcu;
required_device<namco_cus30_device> m_cus30;
required_shared_ptr<uint8_t> m_tile_ram;
required_shared_ptr<uint8_t> m_tile_attr;
diff --git a/src/mame/includes/xevious.h b/src/mame/includes/xevious.h
index 6c3b8079163..1c296fcc21a 100644
--- a/src/mame/includes/xevious.h
+++ b/src/mame/includes/xevious.h
@@ -38,7 +38,7 @@ public:
DECLARE_MACHINE_RESET(xevios);
DECLARE_MACHINE_RESET(battles);
uint32_t screen_update_xevious(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(battles_interrupt_4);
+ DECLARE_WRITE_LINE_MEMBER(battles_interrupt_4);
TIMER_DEVICE_CALLBACK_MEMBER(battles_nmi_generate);
void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
DECLARE_WRITE8_MEMBER( xevious_fg_videoram_w );
diff --git a/src/mame/machine/xevious.cpp b/src/mame/machine/xevious.cpp
index 57104d93912..833c352eee2 100644
--- a/src/mame/machine/xevious.cpp
+++ b/src/mame/machine/xevious.cpp
@@ -175,7 +175,8 @@ READ8_MEMBER( xevious_state::battles_input_port_r )
}
-INTERRUPT_GEN_MEMBER(xevious_state::battles_interrupt_4)
+WRITE_LINE_MEMBER(xevious_state::battles_interrupt_4)
{
- device.execute().set_input_line(0, HOLD_LINE);
+ if (state)
+ m_subcpu3->set_input_line(0, HOLD_LINE);
}
diff --git a/src/mame/video/tceptor.cpp b/src/mame/video/tceptor.cpp
index 3e344fbd576..c627be26dee 100644
--- a/src/mame/video/tceptor.cpp
+++ b/src/mame/video/tceptor.cpp
@@ -535,6 +535,19 @@ WRITE_LINE_MEMBER(tceptor_state::screen_vblank_tceptor)
if (state)
{
memcpy(m_sprite_ram_buffered.get(), m_sprite_ram, 0x200);
+
+ if (m_m6809_irq_enable)
+ m_maincpu->set_input_line(0, HOLD_LINE);
+ else
+ m_m6809_irq_enable = 1;
+
+ if (m_m68k_irq_enable)
+ m_subcpu->set_input_line(1, HOLD_LINE);
+
+ if (m_mcu_irq_enable)
+ m_mcu->set_input_line(0, HOLD_LINE);
+ else
+ m_mcu_irq_enable = 1;
}
}