fix ymf278b irq regression

This commit is contained in:
Michaël Banaan Ananas 2013-05-29 17:20:20 +00:00
parent ee4c06f902
commit 9ab5eeb6fb
3 changed files with 9 additions and 6 deletions

View File

@ -333,8 +333,8 @@ void ymf278b_device::sound_stream_update(sound_stream &stream, stream_sample_t *
void ymf278b_device::irq_check()
{
int prev_line = m_irq_line;
m_irq_line = m_current_irq ? ASSERT_LINE : CLEAR_LINE;
if(m_irq_line != prev_line && !m_irq_handler.isnull())
m_irq_line = m_current_irq ? 1 : 0;
if (m_irq_line != prev_line && !m_irq_handler.isnull())
m_irq_handler(m_irq_line);
}
@ -756,7 +756,7 @@ READ8_MEMBER( ymf278b_device::read )
if (m_exp & 2)
newbits = (m_status_ld << 1) | m_status_busy;
ret = newbits | m_current_irq | (m_irq_line == ASSERT_LINE ? 0x80 : 0x00);
ret = newbits | m_current_irq | (m_irq_line ? 0x80 : 0x00);
break;
}
@ -850,7 +850,10 @@ void ymf278b_device::device_reset()
m_timer_busy->reset(); m_status_busy = 0;
m_timer_ld->reset(); m_status_ld = 0;
m_irq_line = CLEAR_LINE;
m_irq_line = 0;
m_current_irq = 0;
if (!m_irq_handler.isnull())
m_irq_handler(0);
}
void ymf278b_device::precompute_rate_tables()

View File

@ -662,7 +662,7 @@ static I8255A_INTERFACE( aliencha_ppi8255_1_intf )
WRITE_LINE_MEMBER(lordgun_state::soundirq)
{
m_soundcpu->set_input_line(INPUT_LINE_IRQ0, state);
m_soundcpu->set_input_line(INPUT_LINE_IRQ0, state ? ASSERT_LINE : CLEAR_LINE);
}
static MACHINE_CONFIG_START( lordgun, lordgun_state )

View File

@ -254,7 +254,7 @@ INTERRUPT_GEN_MEMBER(metro_state::puzzlet_interrupt)
WRITE_LINE_MEMBER(metro_state::ymf278b_interrupt)
{
m_maincpu->set_input_line(2, state);
m_maincpu->set_input_line(2, state ? ASSERT_LINE : CLEAR_LINE);
}