n8080.cpp: Directly set 8035 IRQ line rather than generate fake pulses (restores some sounds in helifire)

This commit is contained in:
AJR 2017-10-29 18:30:11 -04:00
parent 13077ed2ae
commit 5cd4c55b9b

View File

@ -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);
}