diff options
Diffstat (limited to 'src/emu/schedule.cpp')
| -rw-r--r-- | src/emu/schedule.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/emu/schedule.cpp b/src/emu/schedule.cpp index e32afb68f00..4f140590560 100644 --- a/src/emu/schedule.cpp +++ b/src/emu/schedule.cpp @@ -262,12 +262,13 @@ void emu_timer::register_save() index++; } - // save the bits - machine().save().save_item(m_device, "timer", name.c_str(), index, NAME(m_param)); - machine().save().save_item(m_device, "timer", name.c_str(), index, NAME(m_enabled)); - machine().save().save_item(m_device, "timer", name.c_str(), index, NAME(m_period)); - machine().save().save_item(m_device, "timer", name.c_str(), index, NAME(m_start)); - machine().save().save_item(m_device, "timer", name.c_str(), index, NAME(m_expire)); + // save the bits in their own container + save_registrar container(machine().scheduler().m_scheduler_container, string_format("timer:%s[%d]", name.c_str(), index).c_str()); + container.reg(NAME(m_param)) + .reg(NAME(m_enabled)) + .reg(NAME(m_period)) + .reg(NAME(m_start)) + .reg(NAME(m_expire)); } @@ -337,14 +338,15 @@ device_scheduler::device_scheduler(running_machine &machine) : m_callback_timer_modified(false), m_callback_timer_expire_time(attotime::zero), m_suspend_changes_pending(true), - m_quantum_minimum(ATTOSECONDS_IN_NSEC(1) / 1000) + m_quantum_minimum(ATTOSECONDS_IN_NSEC(1) / 1000), + m_scheduler_container(machine.save().root_registrar(), "scheduler") { // append a single never-expiring timer so there is always one in the list m_timer_list = &m_timer_allocator.alloc()->init(machine, timer_expired_delegate(), nullptr, true); m_timer_list->adjust(attotime::never); // register global states - machine.save().save_item(NAME(m_basetime)); + m_scheduler_container.reg(NAME(m_basetime)); machine.save().register_presave(save_prepost_delegate(FUNC(device_scheduler::presave), this)); machine.save().register_postload(save_prepost_delegate(FUNC(device_scheduler::postload), this)); } |
