From 58c420eeb73edc997d0e6ac3cc28389979a824fe Mon Sep 17 00:00:00 2001 From: AJR Date: Thu, 31 Oct 2019 20:31:04 -0400 Subject: Eliminate some dumb nmi_line_pulse usage (nw) mainevt.cpp, superwng.cpp, zodiack.cpp: Modernize VBLANK interrupts (nw) --- src/mame/drivers/espial.cpp | 2 +- src/mame/drivers/galaga.cpp | 2 +- src/mame/drivers/mainevt.cpp | 12 ++++++------ src/mame/drivers/superwng.cpp | 10 +++++----- src/mame/drivers/zodiack.cpp | 11 +++++------ src/mame/includes/mainevt.h | 2 +- src/mame/includes/zodiack.h | 2 +- 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); -- cgit v1.2.3