save_manager::save_manager(running_machine &machine) : m_machine(machine), m_reg_allowed(true), m_illegal_regs(0), m_entry_list(machine.respool()), m_presave_list(machine.respool()), m_postload_list(machine.respool()) { }
cheat_manager::cheat_manager(running_machine &machine) : m_machine(machine), m_cheatlist(machine.respool()), m_disabled(true), m_symtable(&machine) { // if the cheat engine is disabled, we're done if (!machine.options().cheat()) return; // request a callback machine.add_notifier(MACHINE_NOTIFY_FRAME, machine_notify_delegate(FUNC(cheat_manager::frame_update), this)); // create a global symbol table m_symtable.add("frame", symbol_table::READ_ONLY, &m_framecount); m_symtable.add("frombcd", NULL, 1, 1, execute_frombcd); m_symtable.add("tobcd", NULL, 1, 1, execute_tobcd); // we rely on the debugger expression callbacks; if the debugger isn't // enabled, we must jumpstart them manually if ((machine.debug_flags & DEBUG_FLAG_ENABLED) == 0) debug_cpu_init(machine); // configure for memory access (shared with debugger) debug_cpu_configure_memory(machine, m_symtable); // load the cheats reload(); }
device_scheduler::device_scheduler(running_machine &machine) : m_machine(machine), m_executing_device(NULL), m_execute_list(NULL), m_basetime(attotime::zero), m_timer_list(NULL), m_timer_allocator(machine.respool()), m_callback_timer(NULL), m_callback_timer_modified(false), m_callback_timer_expire_time(attotime::zero), m_quantum_list(machine.respool()), m_quantum_allocator(machine.respool()), m_quantum_minimum(ATTOSECONDS_IN_NSEC(1) / 1000) { // 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(), NULL, true); m_timer_list->adjust(attotime::never); // register global states machine.save().save_item(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)); }