diff --git a/src/mame/audio/n8080.cpp b/src/mame/audio/n8080.cpp index d566198c3e6..f3a27c3869c 100644 --- a/src/mame/audio/n8080.cpp +++ b/src/mame/audio/n8080.cpp @@ -129,10 +129,9 @@ void n8080_state::spacefev_sound_pins_changed() { start_mono_flop(2, attotime::from_usec(550 * 22 * 33)); } - if (changes & ((1 << 0x2) | (1 << 0x3) | (1 << 0x5))) - { - generic_pulse_irq_line(*m_audiocpu, 0, 2); - } + + bool irq_active = (~m_curr_sound_pins & ((1 << 0x2) | (1 << 0x3) | (1 << 0x5))) != 0; + m_audiocpu->set_input_line(INPUT_LINE_IRQ0, irq_active ? ASSERT_LINE : CLEAR_LINE); } @@ -152,25 +151,22 @@ void n8080_state::sheriff_sound_pins_changed() { start_mono_flop(1, attotime::from_usec(550 * 33 * 33)); } - if (changes & ((1 << 0x2) | (1 << 0x3) | (1 << 0x5))) - { - generic_pulse_irq_line(*m_audiocpu, 0, 2); - } + + bool irq_active = (~m_curr_sound_pins & ((1 << 0x2) | (1 << 0x3) | (1 << 0x5))) != 0; + m_audiocpu->set_input_line(INPUT_LINE_IRQ0, irq_active ? ASSERT_LINE : CLEAR_LINE); } void n8080_state::helifire_sound_pins_changed() { - uint16_t changes = ~m_curr_sound_pins & m_prev_sound_pins; + //uint16_t changes = ~m_curr_sound_pins & m_prev_sound_pins; /* ((m_curr_sound_pins >> 0xa) & 1) not emulated */ /* ((m_curr_sound_pins >> 0xb) & 1) not emulated */ /* ((m_curr_sound_pins >> 0xc) & 1) not emulated */ - if (changes & (1 << 6)) - { - generic_pulse_irq_line(*m_audiocpu, 0, 2); - } + bool irq_active = (~m_curr_sound_pins & (1 << 6)) != 0; + m_audiocpu->set_input_line(INPUT_LINE_IRQ0, irq_active ? ASSERT_LINE : CLEAR_LINE); }