mirror of
https://github.com/holub/mame
synced 2025-06-30 16:00:01 +03:00
MSM6242: Fix hang on savestate load -nw-
This commit is contained in:
parent
e72c597d45
commit
c014d27cd6
@ -104,6 +104,7 @@ void msm6242_device::device_start()
|
|||||||
save_item(NAME(m_irq_flag));
|
save_item(NAME(m_irq_flag));
|
||||||
save_item(NAME(m_irq_type));
|
save_item(NAME(m_irq_type));
|
||||||
save_item(NAME(m_tick));
|
save_item(NAME(m_tick));
|
||||||
|
save_item(NAME(m_last_update_time));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -247,32 +248,32 @@ void msm6242_device::update_rtc_registers()
|
|||||||
m_last_update_time = curtime;
|
m_last_update_time = curtime;
|
||||||
|
|
||||||
// no delta? just return
|
// no delta? just return
|
||||||
if (delta <= 0)
|
if (delta == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// ticks
|
// ticks
|
||||||
if ((m_tick % 200) != ((delta + m_tick) % 0x200))
|
if ((m_tick % 200) != ((delta + m_tick) % 0x200))
|
||||||
irq(IRQ_64THSECOND);
|
irq(IRQ_64THSECOND);
|
||||||
delta = bump(RTC_TICKS, delta, 0, 0x8000);
|
delta = bump(RTC_TICKS, delta, 0, 0x8000);
|
||||||
if (delta <= 0)
|
if (delta == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// seconds
|
// seconds
|
||||||
irq(IRQ_SECOND);
|
irq(IRQ_SECOND);
|
||||||
delta = bump(RTC_SECOND, delta, 0, 60);
|
delta = bump(RTC_SECOND, delta, 0, 60);
|
||||||
if (delta <= 0)
|
if (delta == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// minutes
|
// minutes
|
||||||
irq(IRQ_MINUTE);
|
irq(IRQ_MINUTE);
|
||||||
delta = bump(RTC_MINUTE, delta, 0, 60);
|
delta = bump(RTC_MINUTE, delta, 0, 60);
|
||||||
if (delta <= 0)
|
if (delta == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// hours
|
// hours
|
||||||
irq(IRQ_HOUR);
|
irq(IRQ_HOUR);
|
||||||
delta = bump(RTC_HOUR, delta, 0, 24);
|
delta = bump(RTC_HOUR, delta, 0, 24);
|
||||||
if (delta <= 0)
|
if (delta == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// days
|
// days
|
||||||
|
Loading…
Reference in New Issue
Block a user