mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
Eliminate some dumb nmi_line_pulse usage (nw)
mainevt.cpp, superwng.cpp, zodiack.cpp: Modernize VBLANK interrupts (nw)
This commit is contained in:
parent
47d938b149
commit
58c420eeb7
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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");
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user