diff options
author | 2022-06-16 12:47:52 +0200 | |
---|---|---|
committer | 2025-04-29 23:06:41 +0200 | |
commit | 45d4cd52a8194f2ef9e0383cfb2e2a35634af6ff (patch) | |
tree | 4e8d8fcb7382a5e9e0bce5ec59939bcfbe67155a /src/emu/save.h | |
parent | 5c14bcdfcb4aefb71b5b62387c4ad05dbeb3814e (diff) |
full xtal conversionxtal
Diffstat (limited to 'src/emu/save.h')
-rw-r--r-- | src/emu/save.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/emu/save.h b/src/emu/save.h index 677f127853a..330533d07cd 100644 --- a/src/emu/save.h +++ b/src/emu/save.h @@ -285,6 +285,43 @@ public: save_item(device, module, tag, index, value, &attotime::m_seconds, tempstr.c_str(), count); } + // specializations for XTAL + template <typename ItemType> + std::enable_if_t<std::is_same<typename save_manager::array_unwrap<ItemType>::underlying_type, XTAL>::value> save_item(device_t *device, const char *module, const char *tag, int index, ItemType &value, const char *valname) + { + std::string tempstr; + tempstr.assign(valname).append(".base_clock"); + save_item(device, module, tag, index, value, &XTAL::m_base_clock, tempstr.c_str()); + tempstr.assign(valname).append(".current_clock"); + save_item(device, module, tag, index, value, &XTAL::m_current_clock, tempstr.c_str()); + tempstr.assign(valname).append(".disable_validation"); + save_item(device, module, tag, index, value, &XTAL::m_disable_validation, tempstr.c_str()); + } + + template <typename ItemType> + std::enable_if_t<std::is_same<typename save_manager::array_unwrap<ItemType>::underlying_type, XTAL>::value> save_pointer(device_t *device, const char *module, const char *tag, int index, ItemType *value, const char *valname, u32 count) + { + std::string tempstr; + tempstr.assign(valname).append(".base_clock"); + save_item(device, module, tag, index, value, &XTAL::m_base_clock, tempstr.c_str()); + tempstr.assign(valname).append(".current_clock"); + save_item(device, module, tag, index, value, &XTAL::m_current_clock, tempstr.c_str()); + tempstr.assign(valname).append(".disable_validation"); + save_item(device, module, tag, index, value, &XTAL::m_disable_validation, tempstr.c_str()); + } + + template <typename ItemType> + std::enable_if_t<std::is_same<typename save_manager::array_unwrap<ItemType>::underlying_type, XTAL>::value> save_pointer(device_t *device, const char *module, const char *tag, int index, const std::unique_ptr<ItemType []> &value, const char *valname, u32 count) + { + std::string tempstr; + tempstr.assign(valname).append(".base_clock"); + save_item(device, module, tag, index, value, &XTAL::m_base_clock, tempstr.c_str()); + tempstr.assign(valname).append(".current_clock"); + save_item(device, module, tag, index, value, &XTAL::m_current_clock, tempstr.c_str()); + tempstr.assign(valname).append(".disable_validation"); + save_item(device, module, tag, index, value, &XTAL::m_disable_validation, tempstr.c_str()); + } + // global memory registration template <typename ItemType> void save_item(ItemType &value, const char *valname, int index = 0) |