mirror of
https://github.com/holub/mame
synced 2025-06-23 21:06:38 +03:00
Fix uPD7810 sound/hang regressions in some MAME drivers (nw)
This commit is contained in:
parent
7d146da231
commit
8b46b5d928
@ -1991,7 +1991,7 @@ void upd7810_device::execute_set_input(int irqline, int state)
|
||||
switch (irqline) {
|
||||
case INPUT_LINE_NMI:
|
||||
/* NMI is falling edge sensitive */
|
||||
if ( m_nmi == ASSERT_LINE && state == CLEAR_LINE )
|
||||
if ( m_nmi == CLEAR_LINE && state == ASSERT_LINE )
|
||||
IRR |= INTNMI;
|
||||
|
||||
m_nmi = state;
|
||||
@ -2005,10 +2005,12 @@ void upd7810_device::execute_set_input(int irqline, int state)
|
||||
break;
|
||||
case UPD7810_INTF2:
|
||||
/* INT2 is falling edge sensitive */
|
||||
if ( m_int2 == ASSERT_LINE && state == CLEAR_LINE )
|
||||
/* we store the physical state (inverse of the logical state) */
|
||||
/* to keep the handling of port C consistent with the upd7801 */
|
||||
if ( (!m_int2) == CLEAR_LINE && state == ASSERT_LINE )
|
||||
IRR |= INTF2;
|
||||
|
||||
m_int2 = state;
|
||||
m_int2 = !state;
|
||||
break;
|
||||
default:
|
||||
logerror("upd7810_set_irq_line invalid irq line #%d\n", irqline);
|
||||
|
@ -259,7 +259,7 @@ ADDRESS_MAP_END
|
||||
|
||||
INTERRUPT_GEN_MEMBER(fitfight_state::snd_irq)
|
||||
{
|
||||
device.execute().set_input_line(UPD7810_INTF2, HOLD_LINE);
|
||||
generic_pulse_irq_line(device.execute(), UPD7810_INTF2, 1);
|
||||
}
|
||||
|
||||
|
||||
|
@ -231,7 +231,7 @@ INTERRUPT_GEN_MEMBER(homedata_state::homedata_irq)
|
||||
|
||||
INTERRUPT_GEN_MEMBER(homedata_state::upd7807_irq)
|
||||
{
|
||||
device.execute().set_input_line(UPD7810_INTF1, HOLD_LINE);
|
||||
generic_pulse_irq_line(device.execute(), UPD7810_INTF1, 1);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user