mirror of
https://github.com/holub/mame
synced 2025-05-22 21:58:57 +03:00
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:
parent
6df8458d6f
commit
2e53eacc98
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user