summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2019-10-31 20:31:04 -0400
committer AJR <ajrhacker@users.noreply.github.com>2019-10-31 20:31:06 -0400
commit58c420eeb73edc997d0e6ac3cc28389979a824fe (patch)
tree0117db5c72110daf68091ea98e30b352d6615e16
parent47d938b149bdbe1f7ea0a875f619a88928e4186e (diff)
Eliminate some dumb nmi_line_pulse usage (nw)
mainevt.cpp, superwng.cpp, zodiack.cpp: Modernize VBLANK interrupts (nw)
-rw-r--r--src/mame/drivers/espial.cpp2
-rw-r--r--src/mame/drivers/galaga.cpp2
-rw-r--r--src/mame/drivers/mainevt.cpp12
-rw-r--r--src/mame/drivers/superwng.cpp10
-rw-r--r--src/mame/drivers/zodiack.cpp11
-rw-r--r--src/mame/includes/mainevt.h2
-rw-r--r--src/mame/includes/zodiack.h2
7 files changed, 20 insertions, 21 deletions
diff --git a/src/mame/drivers/espial.cpp b/src/mame/drivers/espial.cpp
index 74d539b2225..f520ad8f89f 100644
--- a/src/mame/drivers/espial.cpp
+++ b/src/mame/drivers/espial.cpp
@@ -90,7 +90,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(espial_state::espial_scanline)
INTERRUPT_GEN_MEMBER(espial_state::espial_sound_nmi_gen)
{
if (m_sound_nmi_enabled)
- nmi_line_pulse(device);
+ m_audiocpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
diff --git a/src/mame/drivers/galaga.cpp b/src/mame/drivers/galaga.cpp
index 7599628a202..8ac7ff85a17 100644
--- a/src/mame/drivers/galaga.cpp
+++ b/src/mame/drivers/galaga.cpp
@@ -796,7 +796,7 @@ TIMER_CALLBACK_MEMBER(galaga_state::cpu3_interrupt_callback)
int scanline = param;
if(m_sub2_nmi_mask)
- nmi_line_pulse(*m_subcpu2);
+ m_subcpu2->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
scanline = scanline + 128;
if (scanline >= 272)
diff --git a/src/mame/drivers/mainevt.cpp b/src/mame/drivers/mainevt.cpp
index c793f5280af..6ea9e6fda18 100644
--- a/src/mame/drivers/mainevt.cpp
+++ b/src/mame/drivers/mainevt.cpp
@@ -52,10 +52,10 @@ WRITE8_MEMBER(mainevt_state::dv_nmienable_w)
m_nmi_enable = data;
}
-INTERRUPT_GEN_MEMBER(mainevt_state::dv_interrupt)
+WRITE_LINE_MEMBER(mainevt_state::dv_vblank_w)
{
- if (m_nmi_enable)
- nmi_line_pulse(device);
+ if (state && m_nmi_enable)
+ m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
@@ -409,13 +409,13 @@ void mainevt_state::machine_reset()
INTERRUPT_GEN_MEMBER(mainevt_state::mainevt_sound_timer_irq)
{
if(m_sound_irq_mask)
- device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero);
+ m_audiocpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
INTERRUPT_GEN_MEMBER(mainevt_state::devstors_sound_timer_irq)
{
if(m_sound_irq_mask)
- device.execute().set_input_line(0, HOLD_LINE);
+ m_audiocpu->set_input_line(0, HOLD_LINE);
}
void mainevt_state::mainevt(machine_config &config)
@@ -471,7 +471,6 @@ void mainevt_state::devstors(machine_config &config)
/* basic machine hardware */
HD6309E(config, m_maincpu, 24_MHz_XTAL / 8); // E & Q generated by 052109
m_maincpu->set_addrmap(AS_PROGRAM, &mainevt_state::devstors_map);
- m_maincpu->set_vblank_int("screen", FUNC(mainevt_state::dv_interrupt));
Z80(config, m_audiocpu, 3.579545_MHz_XTAL);
m_audiocpu->set_addrmap(AS_PROGRAM, &mainevt_state::devstors_sound_map);
@@ -486,6 +485,7 @@ void mainevt_state::devstors(machine_config &config)
screen.set_raw(XTAL(24'000'000)/3, 528, 13*8, (64-13)*8, 256, 16, 240); // measured 59.17
screen.set_screen_update(FUNC(mainevt_state::screen_update_dv));
screen.set_palette("palette");
+ screen.screen_vblank().set(FUNC(mainevt_state::dv_vblank_w));
PALETTE(config, "palette").set_format(palette_device::xBGR_555, 256).enable_shadows();
diff --git a/src/mame/drivers/superwng.cpp b/src/mame/drivers/superwng.cpp
index 1b2509ecab9..f72da263467 100644
--- a/src/mame/drivers/superwng.cpp
+++ b/src/mame/drivers/superwng.cpp
@@ -102,7 +102,7 @@ private:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
void superwng_palette(palette_device &palette) const;
uint32_t screen_update_superwng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(superwng_nmi_interrupt);
+ DECLARE_WRITE_LINE_MEMBER(main_nmi_interrupt);
INTERRUPT_GEN_MEMBER(superwng_sound_nmi_assert);
void superwng_map(address_map &map);
@@ -242,10 +242,10 @@ WRITE8_MEMBER(superwng_state::superwng_nmi_enable_w)
m_nmi_enable = data;
}
-INTERRUPT_GEN_MEMBER(superwng_state::superwng_nmi_interrupt)
+WRITE_LINE_MEMBER(superwng_state::main_nmi_interrupt)
{
- if (BIT(m_nmi_enable, 0))
- nmi_line_pulse(device);
+ if (state && BIT(m_nmi_enable, 0))
+ m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
WRITE8_MEMBER(superwng_state::superwng_sound_interrupt_w)
@@ -483,7 +483,6 @@ void superwng_state::superwng(machine_config &config)
/* basic machine hardware */
Z80(config, m_maincpu, MASTER_CLOCK/4);
m_maincpu->set_addrmap(AS_PROGRAM, &superwng_state::superwng_map);
- m_maincpu->set_vblank_int("screen", FUNC(superwng_state::superwng_nmi_interrupt));
Z80(config, m_audiocpu, MASTER_CLOCK/4);
m_audiocpu->set_addrmap(AS_PROGRAM, &superwng_state::superwng_sound_map);
@@ -497,6 +496,7 @@ void superwng_state::superwng(machine_config &config)
screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
screen.set_screen_update(FUNC(superwng_state::screen_update_superwng));
screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(superwng_state::main_nmi_interrupt));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_superwng);
diff --git a/src/mame/drivers/zodiack.cpp b/src/mame/drivers/zodiack.cpp
index 53986f7bc82..eadd2ef5267 100644
--- a/src/mame/drivers/zodiack.cpp
+++ b/src/mame/drivers/zodiack.cpp
@@ -114,16 +114,16 @@ WRITE8_MEMBER( zodiack_state::sound_nmi_enable_w )
m_sound_nmi_enabled = data & 1;
}
-INTERRUPT_GEN_MEMBER(zodiack_state::zodiack_main_nmi_gen)
+WRITE_LINE_MEMBER(zodiack_state::vblank_main_nmi_w)
{
- if (m_main_nmi_enabled)
- nmi_line_pulse(device);
+ if (state && m_main_nmi_enabled)
+ m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
INTERRUPT_GEN_MEMBER(zodiack_state::zodiack_sound_nmi_gen)
{
if (m_sound_nmi_enabled)
- nmi_line_pulse(device);
+ m_audiocpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
@@ -510,7 +510,6 @@ void zodiack_state::zodiack(machine_config &config)
/* basic machine hardware */
Z80(config, m_maincpu, XTAL(18'432'000)/6);
m_maincpu->set_addrmap(AS_PROGRAM, &zodiack_state::main_map);
- m_maincpu->set_vblank_int("screen", FUNC(zodiack_state::zodiack_main_nmi_gen));
m_maincpu->set_periodic_int(FUNC(zodiack_state::irq0_line_hold), attotime::from_hz(1*60)); // sound related - unknown source, timing is guessed
Z80(config, m_audiocpu, XTAL(18'432'000)/6);
@@ -520,7 +519,7 @@ void zodiack_state::zodiack(machine_config &config)
WATCHDOG_TIMER(config, "watchdog");
- SCREEN(config, "screen", SCREEN_TYPE_RASTER);
+ SCREEN(config, "screen", SCREEN_TYPE_RASTER).screen_vblank().set(FUNC(zodiack_state::vblank_main_nmi_w));
orca_ovg_40c_device &videopcb(ORCA_OVG_40C(config, "videopcb", 0));
videopcb.set_screen("screen");
diff --git a/src/mame/includes/mainevt.h b/src/mame/includes/mainevt.h
index 7707546427f..7368b7348b9 100644
--- a/src/mame/includes/mainevt.h
+++ b/src/mame/includes/mainevt.h
@@ -49,7 +49,7 @@ private:
DECLARE_WRITE8_MEMBER(dv_sh_bankswitch_w);
uint32_t screen_update_mainevt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint32_t screen_update_dv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(dv_interrupt);
+ DECLARE_WRITE_LINE_MEMBER(dv_vblank_w);
INTERRUPT_GEN_MEMBER(mainevt_sound_timer_irq);
INTERRUPT_GEN_MEMBER(devstors_sound_timer_irq);
DECLARE_WRITE8_MEMBER(volume_callback);
diff --git a/src/mame/includes/zodiack.h b/src/mame/includes/zodiack.h
index e55cb393411..40c6549b5d5 100644
--- a/src/mame/includes/zodiack.h
+++ b/src/mame/includes/zodiack.h
@@ -37,7 +37,7 @@ private:
uint8_t m_sound_nmi_enabled;
INTERRUPT_GEN_MEMBER(zodiack_sound_nmi_gen);
- INTERRUPT_GEN_MEMBER(zodiack_main_nmi_gen);
+ DECLARE_WRITE_LINE_MEMBER(vblank_main_nmi_w);
void io_map(address_map &map);
void main_map(address_map &map);