summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/schedule.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/schedule.cpp')
-rw-r--r--src/emu/schedule.cpp18
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));
}