summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/schedule.cpp
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2021-04-15 09:25:42 -0700
committer Aaron Giles <aaron@aarongiles.com>2021-04-15 09:25:42 -0700
commit2024b61079509b9f1ef692ff3f9e63007a831f6f (patch)
tree7c43de9fb0afc17e74e94272dce8e66dbbfac9b1 /src/emu/schedule.cpp
parent98e8ed32043d8d47fe63b6565c452dc61182fd02 (diff)
g update:
* Removed old saving mechanism entirely, including internal lists of items. * Removed old logic saving to streams/buffers/files. * Removed old state item iterator; a new mechanism will need to be created for this. Stubbed out debugger and LUA calls to it for now. * Replaced the streams/buffers saves with the new binary save; these are presumed to be 100% internal, so there is no header checking or other associated logic. * Stubbed in incomplete file handling for JSON-based saves; large arrays are identified and referenced as external, though ZIP writing has not been done yet. * Redid JSON generation using an internal buffer and helpers for speed. * Added sorting and pruning of save items after registration. * Added detection of duplicate entries. * Fixed display of long names in save window. * Moved timers into their own container.
Diffstat (limited to 'src/emu/schedule.cpp')
-rw-r--r--src/emu/schedule.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/emu/schedule.cpp b/src/emu/schedule.cpp
index 4f140590560..6d63392123a 100644
--- a/src/emu/schedule.cpp
+++ b/src/emu/schedule.cpp
@@ -263,7 +263,7 @@ void emu_timer::register_save()
}
// 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());
+ save_registrar container(machine().scheduler().m_timer_registrar, string_format("%s[%d]", name.c_str(), index).c_str());
container.reg(NAME(m_param))
.reg(NAME(m_enabled))
.reg(NAME(m_period))
@@ -339,14 +339,15 @@ device_scheduler::device_scheduler(running_machine &machine) :
m_callback_timer_expire_time(attotime::zero),
m_suspend_changes_pending(true),
m_quantum_minimum(ATTOSECONDS_IN_NSEC(1) / 1000),
- m_scheduler_container(machine.save().root_registrar(), "scheduler")
+ m_scheduler_registrar(machine.save().root_registrar(), "scheduler"),
+ m_timer_registrar(m_scheduler_registrar, "timers")
{
// 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
- m_scheduler_container.reg(NAME(m_basetime));
+ m_scheduler_registrar.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));
}