Revert "Fix YM synchronization in Seibu sound device."

This reverts commit c89cbcd0e5.
This commit is contained in:
Aaron Giles 2021-03-02 09:22:50 -08:00
parent 5f52046250
commit ce02c7d478
4 changed files with 1 additions and 19 deletions

View File

@ -1261,7 +1261,6 @@ ymfm_engine_base<RegisterType>::ymfm_engine_base(device_t &device) :
m_irq_mask(STATUS_TIMERA | STATUS_TIMERB),
m_irq_state(0),
m_busy_end(attotime::zero),
m_last_irq_update(attotime::zero),
m_timer{ nullptr, nullptr },
m_irq_handler(device),
m_regdata(RegisterType::REGISTERS),
@ -1633,17 +1632,7 @@ void ymfm_engine_base<RegisterType>::check_interrupts()
// if changed, signal the new state
if (old_state != m_irq_state && !m_irq_handler.isnull())
{
// if writes to registers aren't synchronized, it is possible to induce
// scheduling errors handling IRQs; ensure that all IRQ handler updates
// are monotonically increasing in time
attotime curtime = m_device.machine().time();
if (m_last_irq_update > curtime)
fatalerror("IRQ signalling time went backwards; writes need to be synchronized");
m_last_irq_update = curtime;
m_irq_handler(m_irq_state ? ASSERT_LINE : CLEAR_LINE);
}
}

View File

@ -799,7 +799,6 @@ private:
u8 m_irq_mask; // mask of which bits signal IRQs
u8 m_irq_state; // current IRQ state
attotime m_busy_end; // end of the busy time
attotime m_last_irq_update; // time of last IRQ update
emu_timer *m_timer[2]; // our two timers
devcb_write_line m_irq_handler; // IRQ callback
std::unique_ptr<ymfm_channel<RegisterType>> m_channel[RegisterType::CHANNELS]; // channel pointers

View File

@ -196,14 +196,9 @@ u8 seibu_sound_device::ym_r(offs_t offset)
return m_ym_read_cb(offset);
}
TIMER_CALLBACK_MEMBER(seibu_sound_device::ym_w_synced)
{
m_ym_write_cb(param >> 8, param & 0xff);
}
void seibu_sound_device::ym_w(offs_t offset, u8 data)
{
machine().scheduler().synchronize(timer_expired_delegate(FUNC(seibu_sound_device::ym_w_synced), this), data | (offset << 8));
m_ym_write_cb(offset, data);
}
void seibu_sound_device::bank_w(u8 data)

View File

@ -80,7 +80,6 @@ protected:
private:
void update_irq_lines(int param);
TIMER_CALLBACK_MEMBER(update_irq_synced);
TIMER_CALLBACK_MEMBER(ym_w_synced);
// device callbacks
devcb_write_line m_int_cb;