03755: soldivid: No music after loading savestate (or -autosave) [Phil Bennett]

Added missing save-state registration entries to the SH-2 core [Phil Bennett]
This commit is contained in:
Phil Bennett 2010-08-18 23:40:14 +00:00
parent 6df8458d6f
commit 2e53eacc98

View File

@ -702,6 +702,7 @@ void sh2_exception(sh2_state *sh2, const char *message, int irqline)
void sh2_common_init(sh2_state *sh2, legacy_cpu_device *device, device_irq_callback irqcallback) void sh2_common_init(sh2_state *sh2, legacy_cpu_device *device, device_irq_callback irqcallback)
{ {
const sh2_cpu_core *conf = (const sh2_cpu_core *)device->baseconfig().static_config(); const sh2_cpu_core *conf = (const sh2_cpu_core *)device->baseconfig().static_config();
int i;
sh2->timer = timer_alloc(device->machine, sh2_timer_callback, sh2); sh2->timer = timer_alloc(device->machine, sh2_timer_callback, sh2);
timer_adjust_oneshot(sh2->timer, attotime_never, 0); timer_adjust_oneshot(sh2->timer, attotime_never, 0);
@ -731,28 +732,47 @@ void sh2_common_init(sh2_state *sh2, legacy_cpu_device *device, device_irq_callb
sh2->internal = device->space(AS_PROGRAM); sh2->internal = device->space(AS_PROGRAM);
state_save_register_device_item(device, 0, sh2->pc); state_save_register_device_item(device, 0, sh2->pc);
state_save_register_device_item(device, 0, sh2->r[15]);
state_save_register_device_item(device, 0, sh2->sr); state_save_register_device_item(device, 0, sh2->sr);
state_save_register_device_item(device, 0, sh2->pr); state_save_register_device_item(device, 0, sh2->pr);
state_save_register_device_item(device, 0, sh2->gbr); state_save_register_device_item(device, 0, sh2->gbr);
state_save_register_device_item(device, 0, sh2->vbr); state_save_register_device_item(device, 0, sh2->vbr);
state_save_register_device_item(device, 0, sh2->mach); state_save_register_device_item(device, 0, sh2->mach);
state_save_register_device_item(device, 0, sh2->macl); state_save_register_device_item(device, 0, sh2->macl);
state_save_register_device_item(device, 0, sh2->r[ 0]); state_save_register_device_item_array(device, 0, sh2->r);
state_save_register_device_item(device, 0, sh2->r[ 1]);
state_save_register_device_item(device, 0, sh2->r[ 2]);
state_save_register_device_item(device, 0, sh2->r[ 3]);
state_save_register_device_item(device, 0, sh2->r[ 4]);
state_save_register_device_item(device, 0, sh2->r[ 5]);
state_save_register_device_item(device, 0, sh2->r[ 6]);
state_save_register_device_item(device, 0, sh2->r[ 7]);
state_save_register_device_item(device, 0, sh2->r[ 8]);
state_save_register_device_item(device, 0, sh2->r[ 9]);
state_save_register_device_item(device, 0, sh2->r[10]);
state_save_register_device_item(device, 0, sh2->r[11]);
state_save_register_device_item(device, 0, sh2->r[12]);
state_save_register_device_item(device, 0, sh2->r[13]);
state_save_register_device_item(device, 0, sh2->r[14]);
state_save_register_device_item(device, 0, sh2->ea); state_save_register_device_item(device, 0, sh2->ea);
state_save_register_device_item(device, 0, sh2->delay);
state_save_register_device_item(device, 0, sh2->cpu_off);
state_save_register_device_item(device, 0, sh2->dvsr);
state_save_register_device_item(device, 0, sh2->dvdnth);
state_save_register_device_item(device, 0, sh2->dvdntl);
state_save_register_device_item(device, 0, sh2->dvcr);
state_save_register_device_item(device, 0, sh2->pending_irq);
state_save_register_device_item(device, 0, sh2->test_irq);
state_save_register_device_item(device, 0, sh2->pending_nmi);
state_save_register_device_item(device, 0, sh2->irqline);
state_save_register_device_item(device, 0, sh2->evec);
state_save_register_device_item(device, 0, sh2->irqsr);
state_save_register_device_item(device, 0, sh2->target);
for (i = 0; i < 16; ++i)
{
state_save_register_device_item(device, i, sh2->irq_queue[i].irq_vector);
state_save_register_device_item(device, i, sh2->irq_queue[i].irq_priority);
}
state_save_register_device_item(device, 0, sh2->pcfsel);
state_save_register_device_item(device, 0, sh2->maxpcfsel);
state_save_register_device_item_array(device, 0, sh2->pcflushes);
state_save_register_device_item_array(device, 0, sh2->irq_line_state);
state_save_register_device_item_pointer(device, 0, sh2->m, 0x200/4);
state_save_register_device_item(device, 0, sh2->nmi_line_state);
state_save_register_device_item(device, 0, sh2->frc);
state_save_register_device_item(device, 0, sh2->ocra);
state_save_register_device_item(device, 0, sh2->ocrb);
state_save_register_device_item(device, 0, sh2->icr);
state_save_register_device_item(device, 0, sh2->frc_base);
state_save_register_device_item(device, 0, sh2->frt_input);
state_save_register_device_item(device, 0, sh2->internal_irq_level);
state_save_register_device_item(device, 0, sh2->internal_irq_vector);
state_save_register_device_item(device, 0, sh2->icount);
state_save_register_device_item_array(device, 0, sh2->dma_timer_active);
} }