mirror of
https://github.com/holub/mame
synced 2025-04-19 07:00:31 +03:00
Fixed crash when saving state of older DCS-based games.
Added save state support to the midvunit driver.
This commit is contained in:
parent
dae5e71408
commit
943026c09b
@ -892,14 +892,15 @@ static void dcs_register_state(void)
|
||||
state_save_register_global(transfer.sum);
|
||||
state_save_register_global(transfer.fifo_entries);
|
||||
|
||||
state_save_register_global_pointer(dcs_sram, 0x8000*4 / sizeof(dcs_sram[0]));
|
||||
if (dcs_sram != NULL)
|
||||
state_save_register_global_pointer(dcs_sram, 0x8000*4 / sizeof(dcs_sram[0]));
|
||||
}
|
||||
|
||||
|
||||
void dcs_init(void)
|
||||
{
|
||||
dcs_register_state();
|
||||
memset(&dcs, 0, sizeof(dcs));
|
||||
dcs_sram = NULL;
|
||||
|
||||
/* find the DCS CPU and the sound ROMs */
|
||||
dcs.cpunum = mame_find_cpu_index(Machine, "dcs");
|
||||
@ -919,6 +920,9 @@ void dcs_init(void)
|
||||
/* non-RAM based automatically acks */
|
||||
dcs.auto_ack = TRUE;
|
||||
|
||||
/* register for save states */
|
||||
dcs_register_state();
|
||||
|
||||
/* reset the system */
|
||||
dcs_reset(Machine, NULL, 0);
|
||||
}
|
||||
|
@ -56,6 +56,18 @@ static UINT32 *midvplus_misc;
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static MACHINE_START( midvunit )
|
||||
{
|
||||
state_save_register_global(cmos_protected);
|
||||
state_save_register_global(control_data);
|
||||
state_save_register_global(adc_data);
|
||||
state_save_register_global(adc_shift);
|
||||
state_save_register_global(last_port0);
|
||||
state_save_register_global(shifter_state);
|
||||
state_save_register_global(timer_rate);
|
||||
}
|
||||
|
||||
|
||||
static MACHINE_RESET( midvunit )
|
||||
{
|
||||
dcs_reset_w(1);
|
||||
@ -997,6 +1009,7 @@ static MACHINE_DRIVER_START( midvcommon )
|
||||
MDRV_CPU_ADD_TAG("main", TMS32031, CPU_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(midvunit_map,0)
|
||||
|
||||
MDRV_MACHINE_START(midvunit)
|
||||
MDRV_MACHINE_RESET(midvunit)
|
||||
MDRV_NVRAM_HANDLER(generic_1fill)
|
||||
|
||||
@ -1429,13 +1442,13 @@ static DRIVER_INIT( wargods )
|
||||
*
|
||||
*************************************/
|
||||
|
||||
GAME( 1994, crusnusa, 0, midvunit, crusnusa, crusnusa, ROT0, "Midway", "Cruis'n USA (rev L4.1)", 0 )
|
||||
GAME( 1994, crusnu40, crusnusa, midvunit, crusnusa, crusnu40, ROT0, "Midway", "Cruis'n USA (rev L4.0)", 0 )
|
||||
GAME( 1994, crusnu21, crusnusa, midvunit, crusnusa, crusnu21, ROT0, "Midway", "Cruis'n USA (rev L2.1)", 0 )
|
||||
GAME( 1996, crusnwld, 0, midvunit, crusnwld, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.4)", 0 )
|
||||
GAME( 1996, crusnw23, crusnwld, midvunit, crusnwld, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.3)", 0 )
|
||||
GAME( 1996, crusnw20, crusnwld, midvunit, crusnwld, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.0)", 0 )
|
||||
GAME( 1996, crusnw13, crusnwld, midvunit, crusnwld, crusnwld, ROT0, "Midway", "Cruis'n World (rev L1.3)", 0 )
|
||||
GAME( 1997, offroadc, 0, midvunit, offroadc, offroadc, ROT0, "Midway", "Off Road Challenge", GAME_NOT_WORKING )
|
||||
GAME( 1994, crusnusa, 0, midvunit, crusnusa, crusnusa, ROT0, "Midway", "Cruis'n USA (rev L4.1)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1994, crusnu40, crusnusa, midvunit, crusnusa, crusnu40, ROT0, "Midway", "Cruis'n USA (rev L4.0)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1994, crusnu21, crusnusa, midvunit, crusnusa, crusnu21, ROT0, "Midway", "Cruis'n USA (rev L2.1)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1996, crusnwld, 0, midvunit, crusnwld, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.4)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1996, crusnw23, crusnwld, midvunit, crusnwld, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.3)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1996, crusnw20, crusnwld, midvunit, crusnwld, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.0)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1996, crusnw13, crusnwld, midvunit, crusnwld, crusnwld, ROT0, "Midway", "Cruis'n World (rev L1.3)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1997, offroadc, 0, midvunit, offroadc, offroadc, ROT0, "Midway", "Off Road Challenge", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1995, wargods, 0, midvplus, wargods, wargods, ROT0, "Midway", "War Gods", 0 )
|
||||
GAME( 1995, wargods, 0, midvplus, wargods, wargods, ROT0, "Midway", "War Gods", GAME_SUPPORTS_SAVE )
|
||||
|
@ -79,6 +79,12 @@ VIDEO_START( midvunit )
|
||||
scanline_timer = timer_alloc(scanline_timer_cb, NULL);
|
||||
poly = poly_alloc(4000, sizeof(poly_extra_data), POLYFLAG_ALLOW_QUADS);
|
||||
add_exit_callback(machine, midvunit_exit);
|
||||
|
||||
state_save_register_global_array(video_regs);
|
||||
state_save_register_global_array(dma_data);
|
||||
state_save_register_global(dma_data_index);
|
||||
state_save_register_global(page_control);
|
||||
state_save_register_global(video_changed);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user