From 7e401aa36a97689240de08b7a184b7e8c98f40f4 Mon Sep 17 00:00:00 2001 From: Ryan Holtz Date: Tue, 6 Jan 2009 03:41:48 +0000 Subject: [PATCH] Added savestate support to the games in 8080bw.c, ace.c, actfancr.c, aerofgt.c, airbustr.c, ajax.c and alpha68k.c: [MooglyGuy] - sitv, sicv, sisv, sisv2, galxwars, galxwar2, galxwart, starw, lrescue, mlander, lrescuem, grescue, dsterth, invadpt2, invaddlx, cosmo, schaser, schasrcv, sflush, lupin3, polaris, polarisa, ballbomb, indianbt, searthin, searthia, invadrmr, spaceatt, spaceat2, sinvzen, sinvemag, tst_invd, alieninv, spceking, spcewars, astropal, spacewr3, invaderl, invader4, jspecter, jspectr2, cosmicmo, cosmicm2, superinv, invasion, darthvdr, moonbase, invrvnge, invrvnga, spclaser, laser, spcewarl, rollingc, ozmawars, ozmawar2, solfight, spaceph, yosakdon, yosakdoa, shuttlei, ace, actfancr, actfanc1, actfancj, triothep, triothej, spinlbrk, spinlbru, spinlbrj, pspikes, pspikesk, svolly91, pspikesb, spikes91, pspikesc, karatblz, karatblu, karatblj, turbofrc, aerofgt, aerofgtb, aerofgtc, sonicwi, aerfboot, aerfboo2, wbbc97, airbustr, airbustj, airbusb, ajax, typhoon, ajaxj, sstingry, kyros, kyrosj, jongbou, paddlema, timesold, timesol1, btlfield, btlfildb, skysoldr, goldmedl, goldmeda, goldmedb, skyadvnt, skyadvnu, skyadvnj, gangwars, gangwarb, sbasebal, tnexspce --- src/mame/audio/8080bw.c | 36 ++++++++ src/mame/drivers/8080bw.c | 159 ++++++++++++++++++++++-------------- src/mame/drivers/ace.c | 8 +- src/mame/drivers/actfancr.c | 19 +++-- src/mame/drivers/aeroboto.c | 11 ++- src/mame/drivers/aerofgt.c | 53 +++++++----- src/mame/drivers/airbustr.c | 15 +++- src/mame/drivers/ajax.c | 7 +- src/mame/drivers/alpha68k.c | 76 +++++++++++------ src/mame/includes/8080bw.h | 5 +- src/mame/includes/ajax.h | 1 + src/mame/machine/ajax.c | 4 + src/mame/video/8080bw.c | 10 +++ src/mame/video/aeroboto.c | 3 + src/mame/video/aerofgt.c | 26 ++++++ src/mame/video/airbustr.c | 1 + src/mame/video/ajax.c | 1 + src/mame/video/alpha68k.c | 10 +++ src/mame/video/kan_pand.c | 4 + 19 files changed, 327 insertions(+), 122 deletions(-) diff --git a/src/mame/audio/8080bw.c b/src/mame/audio/8080bw.c index 65f168106dc..a0537f96f0e 100644 --- a/src/mame/audio/8080bw.c +++ b/src/mame/audio/8080bw.c @@ -11,12 +11,25 @@ static emu_timer *schaser_effect_555_timer; static attotime schaser_effect_555_time_remain; +static INT32 schaser_effect_555_time_remain_savable; static int schaser_effect_555_is_low; static int schaser_explosion; static UINT8 port_1_last = 0; static UINT8 port_2_last = 0; static UINT8 port_3_last = 0; +/*******************************************************/ +/* */ +/* Global state registration */ +/* */ +/*******************************************************/ + +MACHINE_START( extra_8080bw_sh ) +{ + state_save_register_global(machine, port_1_last); + state_save_register_global(machine, port_2_last); + state_save_register_global(machine, port_3_last); +} /*******************************************************/ /* */ @@ -783,6 +796,7 @@ WRITE8_HANDLER( schaser_sh_port_1_w ) bit 4 - Effect Sound C (SX4) bit 5 - Explosion (SX5) */ + //printf( "schaser_sh_port_1_w: %02x\n", data ); discrete_sound_w(space, SCHASER_DOT_EN, data & 0x01); discrete_sound_w(space, SCHASER_DOT_SEL, data & 0x02); @@ -815,6 +829,7 @@ WRITE8_HANDLER( schaser_sh_port_1_w ) if (!schaser_effect_555_is_low) { schaser_effect_555_time_remain = timer_timeleft(schaser_effect_555_timer); + schaser_effect_555_time_remain_savable = attotime_to_double(schaser_effect_555_time_remain); timer_adjust_oneshot(schaser_effect_555_timer, attotime_never, 0); } } @@ -844,6 +859,8 @@ WRITE8_HANDLER( schaser_sh_port_2_w ) bit 4 - Field Control B (SX10) bit 5 - Flip Screen */ + printf( "schaser_sh_port_2_w: %02x\n", data ); + discrete_sound_w(space, SCHASER_MUSIC_BIT, data & 0x01); discrete_sound_w(space, SCHASER_SND_EN, data & 0x02); @@ -854,6 +871,8 @@ WRITE8_HANDLER( schaser_sh_port_2_w ) schaser_background_control_w(data & 0x18); c8080bw_flip_screen_w(space, data & 0x20); + + port_2_last = data; } @@ -864,6 +883,7 @@ static TIMER_CALLBACK( schaser_effect_555_cb ) /* Toggle 555 output */ schaser_effect_555_is_low = !schaser_effect_555_is_low; schaser_effect_555_time_remain = attotime_zero; + schaser_effect_555_time_remain_savable = attotime_to_double(schaser_effect_555_time_remain); if (schaser_effect_555_is_low) new_time = attotime_div(PERIOD_OF_555_ASTABLE(0, RES_K(20), CAP_U(1)), 2); @@ -880,10 +900,25 @@ static TIMER_CALLBACK( schaser_effect_555_cb ) } +static STATE_POSTLOAD( schaser_reinit_555_time_remain ) +{ + const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM); + schaser_effect_555_time_remain = double_to_attotime(schaser_effect_555_time_remain_savable); + schaser_sh_port_2_w(space, 0, port_2_last); +} + + MACHINE_START( schaser ) { schaser_effect_555_timer = timer_alloc(machine, schaser_effect_555_cb, NULL); + state_save_register_global(machine, schaser_explosion); + state_save_register_global(machine, schaser_effect_555_is_low); + state_save_register_global(machine, schaser_effect_555_time_remain_savable); + state_save_register_global(machine, port_2_last); + state_save_register_postload(machine, schaser_reinit_555_time_remain, NULL); + + MACHINE_START_CALL(extra_8080bw_vh); MACHINE_START_CALL(mw8080bw); } @@ -896,6 +931,7 @@ MACHINE_RESET( schaser ) schaser_sh_port_1_w(space, 0, 0); schaser_sh_port_2_w(space, 0, 0); schaser_effect_555_time_remain = attotime_zero; + schaser_effect_555_time_remain_savable = attotime_to_double(schaser_effect_555_time_remain); MACHINE_RESET_CALL(mw8080bw); } diff --git a/src/mame/drivers/8080bw.c b/src/mame/drivers/8080bw.c index 5b567d4524a..98ff878fce3 100644 --- a/src/mame/drivers/8080bw.c +++ b/src/mame/drivers/8080bw.c @@ -97,6 +97,19 @@ #include "invrvnge.lh" #include "shuttlei.lh" +/*******************************************************/ +/* */ +/* Games with additional sound / video hardware */ +/* */ +/*******************************************************/ + +static MACHINE_START( extra_8080bw ) +{ + MACHINE_START_CALL(extra_8080bw_sh); + MACHINE_START_CALL(extra_8080bw_vh); + MACHINE_START_CALL(mw8080bw); +} + /*******************************************************/ /* */ /* Space Invaders CV Version (Taito) */ @@ -230,6 +243,7 @@ static MACHINE_DRIVER_START( invadpt2 ) MDRV_IMPORT_FROM(mw8080bw_root) MDRV_CPU_MODIFY("main") MDRV_CPU_IO_MAP(invadpt2_io_map,0) + MDRV_MACHINE_START(extra_8080bw) /* 60 Hz signal clocks two LS161. Ripple carry will */ /* reset circuit, if LS161 not cleared before. */ @@ -285,6 +299,7 @@ static MACHINE_DRIVER_START( spcewars ) MDRV_IMPORT_FROM(mw8080bw_root) MDRV_CPU_MODIFY("main") MDRV_CPU_IO_MAP(spcewars_io_map,0) + MDRV_MACHINE_START(extra_8080bw) /* sound hardware */ MDRV_IMPORT_FROM(invaders_samples_audio) @@ -407,6 +422,7 @@ static MACHINE_DRIVER_START( cosmo ) MDRV_CPU_MODIFY("main") MDRV_CPU_PROGRAM_MAP(cosmo_map, 0) MDRV_CPU_IO_MAP(cosmo_io_map, 0) + MDRV_MACHINE_START(extra_8080bw) /* video hardware */ MDRV_VIDEO_UPDATE(cosmo) @@ -631,6 +647,7 @@ static MACHINE_DRIVER_START( lrescue ) MDRV_IMPORT_FROM(mw8080bw_root) MDRV_CPU_MODIFY("main") MDRV_CPU_IO_MAP(lrescue_io_map,0) + MDRV_MACHINE_START(extra_8080bw) /* video hardware */ MDRV_VIDEO_UPDATE(invadpt2) @@ -943,6 +960,7 @@ static MACHINE_DRIVER_START( schasrcv ) MDRV_CPU_MODIFY("main") MDRV_CPU_PROGRAM_MAP(schaser_map,0) MDRV_CPU_IO_MAP(schasrcv_io_map,0) + MDRV_MACHINE_START(extra_8080bw) /* video hardware */ MDRV_VIDEO_UPDATE(schasrcv) @@ -971,6 +989,13 @@ static CUSTOM_INPUT( sflush_80_r ) return sfl_int; } +static MACHINE_START( sflush ) +{ + state_save_register_global(machine, sfl_int); + + MACHINE_START_CALL(mw8080bw); +} + static ADDRESS_MAP_START( sflush_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x1fff) AM_RAM AM_RANGE(0x4000, 0x5fff) AM_RAM AM_BASE(&mw8080bw_ram) AM_SIZE(&mw8080bw_ram_size) @@ -994,6 +1019,7 @@ static MACHINE_DRIVER_START( sflush ) MDRV_CPU_REPLACE("main",M6800,2000000) /* ?? */ MDRV_CPU_PROGRAM_MAP(sflush_map,0) MDRV_CPU_VBLANK_INT_HACK(irq0_line_pulse,2) + MDRV_MACHINE_START(sflush) /* video hardware */ MDRV_VIDEO_UPDATE(sflush) @@ -1095,6 +1121,7 @@ static MACHINE_DRIVER_START( lupin3 ) MDRV_CPU_MODIFY("main") MDRV_CPU_PROGRAM_MAP(schaser_map,0) MDRV_CPU_IO_MAP(lupin3_io_map,0) + MDRV_MACHINE_START(extra_8080bw) /* video hardware */ MDRV_VIDEO_UPDATE(lupin3) @@ -1133,6 +1160,13 @@ UINT8 polaris_get_cloud_pos(void) return polaris_cloud_pos; } +static MACHINE_START( polaris ) +{ + state_save_register_global(machine, polaris_cloud_speed); + state_save_register_global(machine, polaris_cloud_pos); + + MACHINE_START_CALL(mw8080bw); +} // Port 5 is used to reset the watchdog timer. // This port is also written to when the boss plane is going up and down. @@ -1214,6 +1248,7 @@ static MACHINE_DRIVER_START( polaris ) MDRV_CPU_IO_MAP(polaris_io_map,0) MDRV_WATCHDOG_VBLANK_INIT(255) MDRV_CPU_VBLANK_INT("main", polaris_interrupt) + MDRV_MACHINE_START(polaris) /* video hardware */ MDRV_VIDEO_UPDATE(polaris) @@ -1336,6 +1371,7 @@ static MACHINE_DRIVER_START( ballbomb ) MDRV_IMPORT_FROM(mw8080bw_root) MDRV_CPU_MODIFY("main") MDRV_CPU_IO_MAP(ballbomb_io_map,0) + MDRV_MACHINE_START(extra_8080bw) /* video hardware */ MDRV_VIDEO_UPDATE(ballbomb) @@ -1410,6 +1446,7 @@ static MACHINE_DRIVER_START( yosakdon ) MDRV_CPU_MODIFY("main") MDRV_CPU_PROGRAM_MAP(yosakdon_map,0) MDRV_CPU_IO_MAP(yosakdon_io_map,0) + MDRV_MACHINE_START(extra_8080bw) /* sound hardware */ MDRV_IMPORT_FROM(invaders_samples_audio) @@ -1506,6 +1543,7 @@ static MACHINE_DRIVER_START( indianbt ) MDRV_IMPORT_FROM(mw8080bw_root) MDRV_CPU_MODIFY("main") MDRV_CPU_IO_MAP(indianbt_io_map,0) + MDRV_MACHINE_START(extra_8080bw) /* video hardware */ MDRV_VIDEO_UPDATE(indianbt) @@ -1603,6 +1641,7 @@ static MACHINE_DRIVER_START( shuttlei ) MDRV_CPU_MODIFY("main") MDRV_CPU_PROGRAM_MAP(shuttlei_map,0) MDRV_CPU_IO_MAP(shuttlei_io_map,0) + MDRV_MACHINE_START(extra_8080bw) /* video hardware */ MDRV_SCREEN_MODIFY("main") @@ -2492,66 +2531,66 @@ ROM_END /* board # rom parent machine inp */ /* Taito games */ -GAMEL(1978, sitv, invaders, invaders, sitv, 0, ROT270, "Taito", "Space Invaders (TV Version)", 0, layout_invaders ) -GAME( 1979, sicv, invaders, invadpt2, sicv, 0, ROT270, "Taito", "Space Invaders (CV Version)", 0 ) -GAME( 1978, sisv, invaders, invadpt2, sicv, 0, ROT270, "Taito", "Space Invaders (SV Version)", 0 ) -GAME( 1978, sisv2, invaders, invadpt2, sicv, 0, ROT270, "Taito", "Space Invaders (SV Version 2)", 0 ) -GAMEL(1979, galxwars, 0, invaders, galxwars, 0, ROT270, "Universal", "Galaxy Wars (Universal set 1)", 0, layout_invaders ) -GAMEL(1979, galxwar2, galxwars, invaders, galxwars, 0, ROT270, "Universal", "Galaxy Wars (Universal set 2)", 0, layout_invaders ) -GAMEL(1979, galxwart, galxwars, invaders, galxwars, 0, ROT270, "Taito?", "Galaxy Wars (Taito?)" , 0, layout_invaders) /* Copyright Not Displayed */ -GAMEL(1979, starw, galxwars, invaders, galxwars, 0, ROT270, "bootleg", "Star Wars", 0, layout_invaders ) -GAME( 1979, lrescue, 0, lrescue, lrescue, 0, ROT270, "Taito", "Lunar Rescue", 0 ) -GAME( 1980, mlander, lrescue, invaders, lrescue, 0, ROT270, "[Taito] (Leisure Time Electronics bootleg)", "Moon Lander (bootleg of Lunar Rescue)", 0 ) -GAME( 1978, lrescuem, lrescue, lrescue, lrescue, 0, ROT270, "Taito (Model Racing bootleg)", "Lunar Rescue (Model Racing bootleg)", 0 ) -GAME( 1979, grescue, lrescue, lrescue, lrescue, 0, ROT270, "Taito (Universal license?)", "Galaxy Rescue", 0 ) -GAME( 1979, desterth, lrescue, lrescue, invrvnge, 0, ROT270, "bootleg", "Destination Earth", 0 ) -GAME( 1979, invadpt2, 0, invadpt2, invadpt2, 0, ROT270, "Taito", "Space Invaders Part II (Taito)", 0 ) -GAME( 1980, invaddlx, invadpt2, invaders, invadpt2, 0, ROT270, "Midway", "Space Invaders Deluxe", 0 ) -GAME( 1979, cosmo, 0, cosmo, cosmo, 0, ROT90, "TDS & Mints", "Cosmo", GAME_IMPERFECT_SOUND ) -GAME( 1979, schaser, 0, schaser, schaser, 0, ROT270, "Taito", "Space Chaser", GAME_IMPERFECT_COLORS ) -GAME( 1979, schasrcv, schaser, schasrcv, schasrcv, 0, ROT270, "Taito", "Space Chaser (CV version)", GAME_IMPERFECT_COLORS ) -GAME( 1979, sflush, 0, sflush, sflush, 0, ROT270, "Taito", "Straight Flush",GAME_NO_SOUND| GAME_IMPERFECT_COLORS | GAME_NO_COCKTAIL) -GAME( 1980, lupin3, 0, lupin3, lupin3, 0, ROT270, "Taito", "Lupin III", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1980, polaris, 0, polaris, polaris, 0, ROT270, "Taito", "Polaris (set 1)", 0 ) -GAME( 1980, polarisa, polaris, polaris, polaris, 0, ROT270, "Taito", "Polaris (set 2)", 0 ) -GAME( 1980, ballbomb, 0, ballbomb, ballbomb, 0, ROT270, "Taito", "Balloon Bomber", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) /* missing clouds */ -GAME( 1980, indianbt, 0, indianbt, indianbt, 0, ROT270, "Taito", "Indian Battle", 0 ) +GAMEL(1978, sitv, invaders, invaders, sitv, 0, ROT270, "Taito", "Space Invaders (TV Version)", GAME_SUPPORTS_SAVE, layout_invaders ) +GAME( 1979, sicv, invaders, invadpt2, sicv, 0, ROT270, "Taito", "Space Invaders (CV Version)", GAME_SUPPORTS_SAVE ) +GAME( 1978, sisv, invaders, invadpt2, sicv, 0, ROT270, "Taito", "Space Invaders (SV Version)", GAME_SUPPORTS_SAVE ) +GAME( 1978, sisv2, invaders, invadpt2, sicv, 0, ROT270, "Taito", "Space Invaders (SV Version 2)", GAME_SUPPORTS_SAVE ) +GAMEL(1979, galxwars, 0, invaders, galxwars, 0, ROT270, "Universal", "Galaxy Wars (Universal set 1)", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1979, galxwar2, galxwars, invaders, galxwars, 0, ROT270, "Universal", "Galaxy Wars (Universal set 2)", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1979, galxwart, galxwars, invaders, galxwars, 0, ROT270, "Taito?", "Galaxy Wars (Taito?)" , GAME_SUPPORTS_SAVE, layout_invaders) /* Copyright Not Displayed */ +GAMEL(1979, starw, galxwars, invaders, galxwars, 0, ROT270, "bootleg", "Star Wars", GAME_SUPPORTS_SAVE, layout_invaders ) +GAME( 1979, lrescue, 0, lrescue, lrescue, 0, ROT270, "Taito", "Lunar Rescue", GAME_SUPPORTS_SAVE ) +GAME( 1980, mlander, lrescue, invaders, lrescue, 0, ROT270, "[Taito] (Leisure Time Electronics bootleg)", "Moon Lander (bootleg of Lunar Rescue)", GAME_SUPPORTS_SAVE ) +GAME( 1978, lrescuem, lrescue, lrescue, lrescue, 0, ROT270, "Taito (Model Racing bootleg)", "Lunar Rescue (Model Racing bootleg)", GAME_SUPPORTS_SAVE ) +GAME( 1979, grescue, lrescue, lrescue, lrescue, 0, ROT270, "Taito (Universal license?)", "Galaxy Rescue", GAME_SUPPORTS_SAVE ) +GAME( 1979, desterth, lrescue, lrescue, invrvnge, 0, ROT270, "bootleg", "Destination Earth", GAME_SUPPORTS_SAVE ) +GAME( 1979, invadpt2, 0, invadpt2, invadpt2, 0, ROT270, "Taito", "Space Invaders Part II (Taito)", GAME_SUPPORTS_SAVE ) +GAME( 1980, invaddlx, invadpt2, invaders, invadpt2, 0, ROT270, "Midway", "Space Invaders Deluxe", GAME_SUPPORTS_SAVE ) +GAME( 1979, cosmo, 0, cosmo, cosmo, 0, ROT90, "TDS & Mints", "Cosmo", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND ) +GAME( 1979, schaser, 0, schaser, schaser, 0, ROT270, "Taito", "Space Chaser", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_COLORS ) +GAME( 1979, schasrcv, schaser, schasrcv, schasrcv, 0, ROT270, "Taito", "Space Chaser (CV version)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_COLORS ) +GAME( 1979, sflush, 0, sflush, sflush, 0, ROT270, "Taito", "Straight Flush",GAME_SUPPORTS_SAVE | GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_NO_COCKTAIL) +GAME( 1980, lupin3, 0, lupin3, lupin3, 0, ROT270, "Taito", "Lupin III", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) +GAME( 1980, polaris, 0, polaris, polaris, 0, ROT270, "Taito", "Polaris (set 1)", GAME_SUPPORTS_SAVE ) +GAME( 1980, polarisa, polaris, polaris, polaris, 0, ROT270, "Taito", "Polaris (set 2)", GAME_SUPPORTS_SAVE ) +GAME( 1980, ballbomb, 0, ballbomb, ballbomb, 0, ROT270, "Taito", "Balloon Bomber", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) /* missing clouds */ +GAME( 1980, indianbt, 0, indianbt, indianbt, 0, ROT270, "Taito", "Indian Battle", GAME_SUPPORTS_SAVE ) /* Misc. manufacturers */ -GAMEL(1980, searthin, invaders, invaders, searthin, 0, ROT270, "bootleg", "Super Earth Invasion (set 1)", 0, layout_invaders ) -GAMEL(1980, searthia, invaders, invaders, searthin, 0, ROT270, "bootleg", "Super Earth Invasion (set 2)", 0, layout_invaders ) -GAMEL(1978, invadrmr, invaders, invaders, invadrmr, 0, ROT270, "Model Racing", "Space Invaders (Model Racing)", 0, layout_invaders ) -GAMEL(1978, spaceatt, invaders, invaders, sicv, 0, ROT270, "Video Games GMBH", "Space Attack", 0, layout_invaders ) -GAMEL(1980, spaceat2, invaders, invaders, spaceatt, 0, ROT270, "Zenitone-Microsec Ltd", "Space Attack II", 0, layout_invaders ) -GAMEL(19??, sinvzen, invaders, invaders, spaceatt, 0, ROT270, "Zenitone-Microsec Ltd", "Super Invaders (Zenitone-Microsec)", 0, layout_invaders ) -GAMEL(19??, sinvemag, invaders, invaders, sinvemag, 0, ROT270, "bootleg", "Super Invaders (EMAG)", 0, layout_invaders ) -GAMEL(19??, tst_invd, invaders, invaders, sicv, 0, ROT0, "Test ROM", "Space Invaders Test ROM", 0, layout_invaders ) -GAMEL(19??, alieninv, invaders, invaders, searthin, 0, ROT270, "bootleg", "Alien Invasion Part II", 0, layout_invaders ) -GAMEL(1978, spceking, invaders, invaders, sicv, 0, ROT270, "Leijac Corporation (Konami)","Space King", 0, layout_invaders ) -GAMEL(1978, spcewars, invaders, spcewars, spcewars, 0, ROT270, "Sanritsu", "Space War (Sanritsu)", 0, layout_invaders ) -GAME (19??, astropal, 0, astropal, astropal, 0, ROT0, "Sidam?", "Astropal", GAME_IMPERFECT_SOUND ) -GAMEL(1978, spacewr3, invaders, spcewars, sicv, 0, ROT270, "bootleg", "Space War Part 3", 0, layout_invaders ) -GAMEL(1978, invaderl, invaders, invaders, sicv, 0, ROT270, "Logitec", "Space Invaders (Logitec)", 0, layout_invaders ) -GAMEL(1978, invader4, invaders, invaders, sicv, 0, ROT270, "bootleg", "Space Invaders Part Four", 0, layout_invaders ) -GAMEL(1979, jspecter, invaders, invaders, jspecter, 0, ROT270, "Jatre", "Jatre Specter (set 1)", 0, layout_invaders ) -GAMEL(1979, jspectr2, invaders, invaders, jspecter, 0, ROT270, "Jatre", "Jatre Specter (set 2)", 0, layout_invaders ) -GAMEL(1979, cosmicmo, invaders, invaders, cosmicmo, 0, ROT270, "Universal", "Cosmic Monsters", 0, layout_invaders ) -GAMEL(1979, cosmicm2, invaders, invaders, cosmicmo, 0, ROT270, "Universal", "Cosmic Monsters 2", 0, layout_invaders ) -GAMEL(19??, superinv, invaders, invaders, superinv, 0, ROT270, "bootleg", "Super Invaders", 0, layout_invaders ) -GAMEL(19??, invasion, invaders, invaders, invasion, 0, ROT270, "Sidam", "Invasion", 0, layout_invaders ) -GAME( 19??, darthvdr, invaders, darthvdr, darthvdr, 0, ROT270, "bootleg", "Darth Vader", GAME_NO_SOUND ) -GAME( 1979, moonbase, invadpt2, invadpt2, invadpt2, 0, ROT270, "Nichibutsu", "Moon Base", 0 ) -GAMEL(19??, invrvnge, 0, invrvnge, invrvnge, 0, ROT270, "Zenitone-Microsec Ltd.", "Invader's Revenge", GAME_IMPERFECT_SOUND, layout_invrvnge ) -GAMEL(19??, invrvnga, invrvnge, invrvnge, invrvnge, 0, ROT270, "Zenitone-Microsec Ltd. (Dutchford license)", "Invader's Revenge (Dutchford)", GAME_IMPERFECT_SOUND, layout_invrvnge ) -GAME( 1980, spclaser, 0, invaders, spclaser, 0, ROT270, "GamePlan (Taito)", "Space Laser", 0 ) -GAME( 1980, laser, spclaser, invaders, spclaser, 0, ROT270, "Leisure Time Electronics Inc.", "Astro Laser", 0 ) -GAME( 1979, spcewarl, spclaser, invaders, spclaser, 0, ROT270, "Leijac Corporation (Konami)","Space War (Leijac Corporation)", 0 ) -GAME( 1979, rollingc, 0, rollingc, rollingc, 0, ROT270, "Nichibutsu", "Rolling Crash / Moon Base", 0 ) -GAME( 1979, ozmawars, 0, invaders, ozmawars, 0, ROT270, "SNK", "Ozma Wars (set 1)", 0 ) -GAME( 1979, ozmawar2, ozmawars, invaders, ozmawars, 0, ROT270, "SNK", "Ozma Wars (set 2)" , 0) /* Uses Taito's three board color version of Space Invaders PCB */ -GAME( 1979, solfight, ozmawars, invaders, ozmawars, 0, ROT270, "bootleg", "Solar Fight", 0 ) -GAME( 1979, spaceph, ozmawars, invaders, spaceph, 0, ROT270, "Zilec Games", "Space Phantoms", 0 ) -GAME( 1979, yosakdon, 0, yosakdon, yosakdon, 0, ROT270, "Wing", "Yosaku To Donbei (set 1)", GAME_IMPERFECT_SOUND ) /* bootleg? */ -GAME( 1979, yosakdoa, yosakdon, yosakdon, yosakdon, 0, ROT270, "Wing", "Yosaku To Donbei (set 2)", GAME_IMPERFECT_SOUND ) /* bootleg? */ -GAMEL(197?, shuttlei, 0, shuttlei, shuttlei, 0, ROT270, "Omori", "Shuttle Invader", GAME_NO_COCKTAIL, layout_shuttlei ) +GAMEL(1980, searthin, invaders, invaders, searthin, 0, ROT270, "bootleg", "Super Earth Invasion (set 1)", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1980, searthia, invaders, invaders, searthin, 0, ROT270, "bootleg", "Super Earth Invasion (set 2)", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1978, invadrmr, invaders, invaders, invadrmr, 0, ROT270, "Model Racing", "Space Invaders (Model Racing)", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1978, spaceatt, invaders, invaders, sicv, 0, ROT270, "Video Games GMBH", "Space Attack", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1980, spaceat2, invaders, invaders, spaceatt, 0, ROT270, "Zenitone-Microsec Ltd", "Space Attack II", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(19??, sinvzen, invaders, invaders, spaceatt, 0, ROT270, "Zenitone-Microsec Ltd", "Super Invaders (Zenitone-Microsec)", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(19??, sinvemag, invaders, invaders, sinvemag, 0, ROT270, "bootleg", "Super Invaders (EMAG)", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(19??, tst_invd, invaders, invaders, sicv, 0, ROT0, "Test ROM", "Space Invaders Test ROM", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(19??, alieninv, invaders, invaders, searthin, 0, ROT270, "bootleg", "Alien Invasion Part II", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1978, spceking, invaders, invaders, sicv, 0, ROT270, "Leijac Corporation (Konami)","Space King", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1978, spcewars, invaders, spcewars, spcewars, 0, ROT270, "Sanritsu", "Space War (Sanritsu)", GAME_SUPPORTS_SAVE, layout_invaders ) +GAME (19??, astropal, 0, astropal, astropal, 0, ROT0, "Sidam?", "Astropal", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND ) +GAMEL(1978, spacewr3, invaders, spcewars, sicv, 0, ROT270, "bootleg", "Space War Part 3", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1978, invaderl, invaders, invaders, sicv, 0, ROT270, "Logitec", "Space Invaders (Logitec)", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1978, invader4, invaders, invaders, sicv, 0, ROT270, "bootleg", "Space Invaders Part Four", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1979, jspecter, invaders, invaders, jspecter, 0, ROT270, "Jatre", "Jatre Specter (set 1)", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1979, jspectr2, invaders, invaders, jspecter, 0, ROT270, "Jatre", "Jatre Specter (set 2)", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1979, cosmicmo, invaders, invaders, cosmicmo, 0, ROT270, "Universal", "Cosmic Monsters", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1979, cosmicm2, invaders, invaders, cosmicmo, 0, ROT270, "Universal", "Cosmic Monsters 2", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(19??, superinv, invaders, invaders, superinv, 0, ROT270, "bootleg", "Super Invaders", GAME_SUPPORTS_SAVE, layout_invaders ) +GAMEL(19??, invasion, invaders, invaders, invasion, 0, ROT270, "Sidam", "Invasion", GAME_SUPPORTS_SAVE, layout_invaders ) +GAME( 19??, darthvdr, invaders, darthvdr, darthvdr, 0, ROT270, "bootleg", "Darth Vader", GAME_SUPPORTS_SAVE | GAME_NO_SOUND ) +GAME( 1979, moonbase, invadpt2, invadpt2, invadpt2, 0, ROT270, "Nichibutsu", "Moon Base", GAME_SUPPORTS_SAVE ) +GAMEL(19??, invrvnge, 0, invrvnge, invrvnge, 0, ROT270, "Zenitone-Microsec Ltd.", "Invader's Revenge", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND, layout_invrvnge ) +GAMEL(19??, invrvnga, invrvnge, invrvnge, invrvnge, 0, ROT270, "Zenitone-Microsec Ltd. (Dutchford license)", "Invader's Revenge (Dutchford)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND, layout_invrvnge ) +GAME( 1980, spclaser, 0, invaders, spclaser, 0, ROT270, "GamePlan (Taito)", "Space Laser", GAME_SUPPORTS_SAVE ) +GAME( 1980, laser, spclaser, invaders, spclaser, 0, ROT270, "Leisure Time Electronics Inc.", "Astro Laser", GAME_SUPPORTS_SAVE ) +GAME( 1979, spcewarl, spclaser, invaders, spclaser, 0, ROT270, "Leijac Corporation (Konami)","Space War (Leijac Corporation)", GAME_SUPPORTS_SAVE ) +GAME( 1979, rollingc, 0, rollingc, rollingc, 0, ROT270, "Nichibutsu", "Rolling Crash / Moon Base", GAME_SUPPORTS_SAVE ) +GAME( 1979, ozmawars, 0, invaders, ozmawars, 0, ROT270, "SNK", "Ozma Wars (set 1)", GAME_SUPPORTS_SAVE ) +GAME( 1979, ozmawar2, ozmawars, invaders, ozmawars, 0, ROT270, "SNK", "Ozma Wars (set 2)", GAME_SUPPORTS_SAVE ) /* Uses Taito's three board color version of Space Invaders PCB */ +GAME( 1979, solfight, ozmawars, invaders, ozmawars, 0, ROT270, "bootleg", "Solar Fight", GAME_SUPPORTS_SAVE ) +GAME( 1979, spaceph, ozmawars, invaders, spaceph, 0, ROT270, "Zilec Games", "Space Phantoms", GAME_SUPPORTS_SAVE ) +GAME( 1979, yosakdon, 0, yosakdon, yosakdon, 0, ROT270, "Wing", "Yosaku To Donbei (set 1)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND ) /* bootleg? */ +GAME( 1979, yosakdoa, yosakdon, yosakdon, yosakdon, 0, ROT270, "Wing", "Yosaku To Donbei (set 2)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND ) /* bootleg? */ +GAMEL(197?, shuttlei, 0, shuttlei, shuttlei, 0, ROT270, "Omori", "Shuttle Invader", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL, layout_shuttlei ) diff --git a/src/mame/drivers/ace.c b/src/mame/drivers/ace.c index 37eba099370..af13c7fa89a 100644 --- a/src/mame/drivers/ace.c +++ b/src/mame/drivers/ace.c @@ -303,13 +303,17 @@ static GFXDECODE_START( ace ) GFXDECODE_ENTRY( NULL , 0x8000, scorelayout, 0, 2 ) /* the game dynamically modifies this */ GFXDECODE_END - +static MACHINE_START( ace ) +{ + state_save_register_global_array(machine, objpos); +} static MACHINE_DRIVER_START( ace ) /* basic machine hardware */ MDRV_CPU_ADD("main", 8080, MASTER_CLOCK/9) /* 2 MHz ? */ MDRV_CPU_PROGRAM_MAP(main_map,0) + MDRV_MACHINE_START(ace) /* video hardware */ MDRV_SCREEN_ADD("main", RASTER) @@ -349,4 +353,4 @@ ROM_START( ace ) ROM_END -GAME( 1976, ace, 0, ace, ace, 0, ROT0, "Allied Leisure", "Ace", GAME_NO_SOUND | GAME_IMPERFECT_COLORS ) +GAME( 1976, ace, 0, ace, ace, 0, ROT0, "Allied Leisure", "Ace", GAME_SUPPORTS_SAVE | GAME_NO_SOUND | GAME_IMPERFECT_COLORS ) diff --git a/src/mame/drivers/actfancr.c b/src/mame/drivers/actfancr.c index 9d8db9bf9fb..4d211be1d9a 100644 --- a/src/mame/drivers/actfancr.c +++ b/src/mame/drivers/actfancr.c @@ -288,6 +288,13 @@ static const ym3812_interface ym3812_config = /******************************************************************************/ +static MACHINE_START( triothep ) +{ + state_save_register_global(machine, trio_control_select); +} + +/******************************************************************************/ + static MACHINE_DRIVER_START( actfancr ) /* basic machine hardware */ @@ -341,6 +348,8 @@ static MACHINE_DRIVER_START( triothep ) MDRV_CPU_ADD("audio",M6502, XTAL_12MHz/8) /* verified on pcb */ MDRV_CPU_PROGRAM_MAP(dec0_s_map,0) + MDRV_MACHINE_START(triothep) + /* video hardware */ MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM) @@ -586,8 +595,8 @@ static DRIVER_INIT( actfancj ) -GAME( 1989, actfancr, 0, actfancr, actfancr, actfancr, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (World revision 2)", 0 ) -GAME( 1989, actfanc1, actfancr, actfancr, actfancr, actfancr, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (World revision 1)", 0 ) -GAME( 1989, actfancj, actfancr, actfancr, actfancr, actfancj, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (Japan revision 1)", 0 ) -GAME( 1989, triothep, 0, triothep, triothep, 0, ROT0, "Data East Corporation", "Trio The Punch - Never Forget Me... (World)", 0 ) -GAME( 1989, triothej, triothep, triothep, triothep, 0, ROT0, "Data East Corporation", "Trio The Punch - Never Forget Me... (Japan)", 0 ) +GAME( 1989, actfancr, 0, actfancr, actfancr, actfancr, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (World revision 2)", GAME_SUPPORTS_SAVE ) +GAME( 1989, actfanc1, actfancr, actfancr, actfancr, actfancr, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (World revision 1)", GAME_SUPPORTS_SAVE ) +GAME( 1989, actfancj, actfancr, actfancr, actfancr, actfancj, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (Japan revision 1)", GAME_SUPPORTS_SAVE ) +GAME( 1989, triothep, 0, triothep, triothep, 0, ROT0, "Data East Corporation", "Trio The Punch - Never Forget Me... (World)", GAME_SUPPORTS_SAVE ) +GAME( 1989, triothej, triothep, triothep, triothep, 0, ROT0, "Data East Corporation", "Trio The Punch - Never Forget Me... (Japan)", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/aeroboto.c b/src/mame/drivers/aeroboto.c index 04ac97ff8fd..4a8e51a9330 100644 --- a/src/mame/drivers/aeroboto.c +++ b/src/mame/drivers/aeroboto.c @@ -229,6 +229,11 @@ static const ay8910_interface ay8910_config = NULL }; +static MACHINE_START( formatz ) +{ + state_save_register_global(machine, disable_irq); +} + static MACHINE_DRIVER_START( formatz ) /* basic machine hardware */ @@ -240,6 +245,8 @@ static MACHINE_DRIVER_START( formatz ) MDRV_CPU_PROGRAM_MAP(sound_map,0) MDRV_CPU_VBLANK_INT("main", irq0_line_hold) + MDRV_MACHINE_START(formatz) + /* video hardware */ MDRV_SCREEN_ADD("main", RASTER) MDRV_SCREEN_REFRESH_RATE(60) @@ -329,5 +336,5 @@ ROM_END -GAME( 1984, formatz, 0, formatz, formatz, 0, ROT0, "Jaleco", "Formation Z", GAME_IMPERFECT_GRAPHICS ) -GAME( 1984, aeroboto, formatz, formatz, formatz, 0, ROT0, "[Jaleco] (Williams license)", "Aeroboto", GAME_IMPERFECT_GRAPHICS ) +GAME( 1984, formatz, 0, formatz, formatz, 0, ROT0, "Jaleco", "Formation Z", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) +GAME( 1984, aeroboto, formatz, formatz, formatz, 0, ROT0, "[Jaleco] (Williams license)", "Aeroboto", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c index de29bb3a251..999399a0d3f 100644 --- a/src/mame/drivers/aerofgt.c +++ b/src/mame/drivers/aerofgt.c @@ -115,6 +115,11 @@ static WRITE8_HANDLER( aerofgt_sh_bankswitch_w ) memory_set_bankptr(space->machine, 1,rom + (data & 0x03) * 0x8000); } +static MACHINE_START( aerofgt ) +{ + state_save_register_global(machine, pending_command); +} + static MACHINE_RESET( aerofgt ) { const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM); @@ -1296,6 +1301,7 @@ static MACHINE_DRIVER_START( pspikes ) MDRV_CPU_IO_MAP(turbofrc_sound_portmap,0) /* IRQs are triggered by the YM2610 */ + MDRV_MACHINE_START(aerofgt) MDRV_MACHINE_RESET(aerofgt) /* video hardware */ @@ -1422,6 +1428,7 @@ static MACHINE_DRIVER_START( karatblz ) MDRV_CPU_IO_MAP(turbofrc_sound_portmap,0) /* IRQs are triggered by the YM2610 */ + MDRV_MACHINE_START(aerofgt) MDRV_MACHINE_RESET(aerofgt) /* video hardware */ @@ -1460,6 +1467,7 @@ static MACHINE_DRIVER_START( spinlbrk ) MDRV_CPU_IO_MAP(turbofrc_sound_portmap,0) /* IRQs are triggered by the YM2610 */ + MDRV_MACHINE_START(aerofgt) MDRV_MACHINE_RESET(aerofgt) /* video hardware */ @@ -1498,6 +1506,7 @@ static MACHINE_DRIVER_START( turbofrc ) MDRV_CPU_IO_MAP(turbofrc_sound_portmap,0) /* IRQs are triggered by the YM2610 */ + MDRV_MACHINE_START(aerofgt) MDRV_MACHINE_RESET(aerofgt) /* video hardware */ @@ -1536,6 +1545,7 @@ static MACHINE_DRIVER_START( aerofgtb ) MDRV_CPU_IO_MAP(aerofgt_sound_portmap,0) /* IRQs are triggered by the YM2610 */ + MDRV_MACHINE_START(aerofgt) MDRV_MACHINE_RESET(aerofgt) /* video hardware */ @@ -1575,6 +1585,7 @@ static MACHINE_DRIVER_START( aerofgt ) MDRV_CPU_IO_MAP(aerofgt_sound_portmap,0) /* IRQs are triggered by the YM2610 */ + MDRV_MACHINE_START(aerofgt) MDRV_MACHINE_RESET(aerofgt) /* video hardware */ @@ -1674,6 +1685,8 @@ static MACHINE_DRIVER_START( wbbc97 ) MDRV_CPU_PROGRAM_MAP(wbbc97_sound_map,0) /* IRQs are triggered by the YM3812 */ + MDRV_MACHINE_START(aerofgt) + /* video hardware */ MDRV_SCREEN_ADD("main", RASTER) MDRV_SCREEN_REFRESH_RATE(60) @@ -2407,23 +2420,23 @@ ROM_START( wbbc97 ) ROM_END -GAME( 1990, spinlbrk, 0, spinlbrk, spinlbrk, 0, ROT0, "V-System Co.", "Spinal Breakers (World)", GAME_NO_COCKTAIL ) -GAME( 1990, spinlbru, spinlbrk, spinlbrk, spinlbru, 0, ROT0, "V-System Co.", "Spinal Breakers (US)", GAME_NO_COCKTAIL ) -GAME( 1990, spinlbrj, spinlbrk, spinlbrk, spinlbrk, 0, ROT0, "V-System Co.", "Spinal Breakers (Japan)", GAME_NO_COCKTAIL ) -GAME( 1991, pspikes, 0, pspikes, pspikes, 0, ROT0, "Video System Co.", "Power Spikes (World)", GAME_NO_COCKTAIL ) -GAME( 1991, pspikesk, pspikes, pspikes, pspikes, 0, ROT0, "Video System Co.", "Power Spikes (Korea)", GAME_NO_COCKTAIL ) -GAME( 1991, svolly91, pspikes, pspikes, pspikes, 0, ROT0, "Video System Co.", "Super Volley '91 (Japan)", GAME_NO_COCKTAIL ) -GAME( 1991, pspikesb, pspikes, pspikesb, pspikesb, 0, ROT0, "bootleg", "Power Spikes (bootleg)", GAME_NO_COCKTAIL ) -GAME( 1991, spikes91, pspikes, spikes91, pspikes, 0, ROT0, "bootleg", "1991 Spikes (Italian bootleg)", GAME_NO_SOUND | GAME_NO_COCKTAIL ) -GAME( 1991, pspikesc, pspikes, pspikesc, pspikesc, 0, ROT0, "bootleg", "Power Spikes (China)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND ) -GAME( 1991, karatblz, 0, karatblz, karatblz, 0, ROT0, "Video System Co.", "Karate Blazers (World)", GAME_NO_COCKTAIL ) -GAME( 1991, karatblu, karatblz, karatblz, karatblz, 0, ROT0, "Video System Co.", "Karate Blazers (US)", GAME_NO_COCKTAIL ) -GAME( 1991, karatblj, karatblz, karatblz, karatblz, 0, ROT0, "Video System Co.", "Karate Blazers (Japan)", GAME_NO_COCKTAIL ) -GAME( 1991, turbofrc, 0, turbofrc, turbofrc, 0, ROT270, "Video System Co.", "Turbo Force", GAME_NO_COCKTAIL ) -GAME( 1992, aerofgt, 0, aerofgt, aerofgt, 0, ROT270, "Video System Co.", "Aero Fighters", GAME_NO_COCKTAIL ) -GAME( 1992, aerofgtb, aerofgt, aerofgtb, aerofgtb, 0, ROT270, "Video System Co.", "Aero Fighters (Turbo Force hardware set 1)", GAME_NO_COCKTAIL ) -GAME( 1992, aerofgtc, aerofgt, aerofgtb, aerofgtb, 0, ROT270, "Video System Co.", "Aero Fighters (Turbo Force hardware set 2)", GAME_NO_COCKTAIL ) -GAME( 1992, sonicwi, aerofgt, aerofgtb, aerofgtb, 0, ROT270, "Video System Co.", "Sonic Wings (Japan)", GAME_NO_COCKTAIL ) -GAME( 1992, aerfboot, aerofgt, aerfboot, aerofgtb, 0, ROT270, "bootleg", "Aero Fighters (bootleg set 1)", GAME_NO_COCKTAIL | GAME_NO_SOUND ) -GAME( 1992, aerfboo2, aerofgt, aerfboo2, aerofgtb, 0, ROT270, "bootleg", "Aero Fighters (bootleg set 2)", GAME_NO_COCKTAIL | GAME_NO_SOUND ) -GAME( 1997, wbbc97, 0, wbbc97, wbbc97, 0, ROT0, "Comad", "Beach Festival World Championship 1997", GAME_NO_COCKTAIL ) +GAME( 1990, spinlbrk, 0, spinlbrk, spinlbrk, 0, ROT0, "V-System Co.", "Spinal Breakers (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1990, spinlbru, spinlbrk, spinlbrk, spinlbru, 0, ROT0, "V-System Co.", "Spinal Breakers (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1990, spinlbrj, spinlbrk, spinlbrk, spinlbrk, 0, ROT0, "V-System Co.", "Spinal Breakers (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1991, pspikes, 0, pspikes, pspikes, 0, ROT0, "Video System Co.", "Power Spikes (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1991, pspikesk, pspikes, pspikes, pspikes, 0, ROT0, "Video System Co.", "Power Spikes (Korea)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1991, svolly91, pspikes, pspikes, pspikes, 0, ROT0, "Video System Co.", "Super Volley '91 (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1991, pspikesb, pspikes, pspikesb, pspikesb, 0, ROT0, "bootleg", "Power Spikes (bootleg)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1991, spikes91, pspikes, spikes91, pspikes, 0, ROT0, "bootleg", "1991 Spikes (Italian bootleg)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND | GAME_NO_COCKTAIL ) +GAME( 1991, pspikesc, pspikes, pspikesc, pspikesc, 0, ROT0, "bootleg", "Power Spikes (China)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND ) +GAME( 1991, karatblz, 0, karatblz, karatblz, 0, ROT0, "Video System Co.", "Karate Blazers (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1991, karatblu, karatblz, karatblz, karatblz, 0, ROT0, "Video System Co.", "Karate Blazers (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1991, karatblj, karatblz, karatblz, karatblz, 0, ROT0, "Video System Co.", "Karate Blazers (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1991, turbofrc, 0, turbofrc, turbofrc, 0, ROT270, "Video System Co.", "Turbo Force", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1992, aerofgt, 0, aerofgt, aerofgt, 0, ROT270, "Video System Co.", "Aero Fighters", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1992, aerofgtb, aerofgt, aerofgtb, aerofgtb, 0, ROT270, "Video System Co.", "Aero Fighters (Turbo Force hardware set 1)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1992, aerofgtc, aerofgt, aerofgtb, aerofgtb, 0, ROT270, "Video System Co.", "Aero Fighters (Turbo Force hardware set 2)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1992, sonicwi, aerofgt, aerofgtb, aerofgtb, 0, ROT270, "Video System Co.", "Sonic Wings (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1992, aerfboot, aerofgt, aerfboot, aerofgtb, 0, ROT270, "bootleg", "Aero Fighters (bootleg set 1)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_NO_SOUND ) +GAME( 1992, aerfboo2, aerofgt, aerfboo2, aerofgtb, 0, ROT270, "bootleg", "Aero Fighters (bootleg set 2)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_NO_SOUND ) +GAME( 1997, wbbc97, 0, wbbc97, wbbc97, 0, ROT0, "Comad", "Beach Festival World Championship 1997", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) diff --git a/src/mame/drivers/airbustr.c b/src/mame/drivers/airbustr.c index 2569e57ed4b..be430266d59 100644 --- a/src/mame/drivers/airbustr.c +++ b/src/mame/drivers/airbustr.c @@ -589,6 +589,14 @@ static INTERRUPT_GEN( slave_interrupt ) /* Machine Initialization */ +static MACHINE_START( airbustr ) +{ + state_save_register_global(machine, soundlatch_status); + state_save_register_global(machine, soundlatch2_status); + state_save_register_global(machine, master_addr); + state_save_register_global(machine, slave_addr); +} + static MACHINE_RESET( airbustr ) { const address_space *space = cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM); @@ -621,6 +629,7 @@ static MACHINE_DRIVER_START( airbustr ) MDRV_QUANTUM_TIME(HZ(6000)) // Palette RAM is filled by sub cpu with data supplied by main cpu // Maybe a high value is safer in order to avoid glitches + MDRV_MACHINE_START(airbustr) MDRV_MACHINE_RESET(airbustr) MDRV_WATCHDOG_TIME_INIT(SEC(3)) /* a guess, and certainly wrong */ @@ -768,6 +777,6 @@ static DRIVER_INIT( airbustr ) /* Game Drivers */ -GAME( 1990, airbustr, 0, airbustr, airbustr, airbustr, ROT0, "Kaneko (Namco license)", "Air Buster: Trouble Specialty Raid Unit (World)" , 0) // 891220 -GAME( 1990, airbustj, airbustr, airbustr, airbustj, airbustr, ROT0, "Kaneko (Namco license)", "Air Buster: Trouble Specialty Raid Unit (Japan)" , 0) // 891229 -GAME( 1990, airbusb, airbustr, airbusb, airbustj, 0, ROT0, "bootleg", "Air Buster: Trouble Specialty Raid Unit (bootleg)" , 0) // based on Japan set (891229) +GAME( 1990, airbustr, 0, airbustr, airbustr, airbustr, ROT0, "Kaneko (Namco license)", "Air Buster: Trouble Specialty Raid Unit (World)", GAME_SUPPORTS_SAVE ) // 891220 +GAME( 1990, airbustj, airbustr, airbustr, airbustj, airbustr, ROT0, "Kaneko (Namco license)", "Air Buster: Trouble Specialty Raid Unit (Japan)", GAME_SUPPORTS_SAVE) // 891229 +GAME( 1990, airbusb, airbustr, airbusb, airbustj, 0, ROT0, "bootleg", "Air Buster: Trouble Specialty Raid Unit (bootleg)", GAME_SUPPORTS_SAVE) // based on Japan set (891229) diff --git a/src/mame/drivers/ajax.c b/src/mame/drivers/ajax.c index 61c999e69ad..c7868aa6991 100644 --- a/src/mame/drivers/ajax.c +++ b/src/mame/drivers/ajax.c @@ -242,6 +242,7 @@ static MACHINE_DRIVER_START( ajax ) MDRV_QUANTUM_TIME(HZ(600)) MDRV_MACHINE_RESET(ajax) + MDRV_MACHINE_START(ajax) /* video hardware */ MDRV_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) @@ -436,6 +437,6 @@ static DRIVER_INIT( ajax ) -GAME( 1987, ajax, 0, ajax, ajax, ajax, ROT90, "Konami", "Ajax", 0 ) -GAME( 1987, typhoon, ajax, ajax, ajax, ajax, ROT90, "Konami", "Typhoon", 0 ) -GAME( 1987, ajaxj, ajax, ajax, ajax, ajax, ROT90, "Konami", "Ajax (Japan)", 0 ) +GAME( 1987, ajax, 0, ajax, ajax, ajax, ROT90, "Konami", "Ajax", GAME_SUPPORTS_SAVE ) +GAME( 1987, typhoon, ajax, ajax, ajax, ajax, ROT90, "Konami", "Typhoon", GAME_SUPPORTS_SAVE ) +GAME( 1987, ajaxj, ajax, ajax, ajax, ajax, ROT90, "Konami", "Ajax (Japan)", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/alpha68k.c b/src/mame/drivers/alpha68k.c index 2599f1a4264..8db9de0f081 100644 --- a/src/mame/drivers/alpha68k.c +++ b/src/mame/drivers/alpha68k.c @@ -196,6 +196,7 @@ DIP locations verified from manuals for: PALETTE_INIT( kyros ); PALETTE_INIT( paddlem ); +VIDEO_START( alpha68k_common_vh ); VIDEO_START( alpha68k ); VIDEO_UPDATE( kyros ); VIDEO_UPDATE( sstingry ); @@ -238,6 +239,14 @@ static MACHINE_RESET( tnexspce ) alpha68k_flipscreen_w(0); } +static MACHINE_START( common ) +{ + state_save_register_global(machine, trigstate); + state_save_register_global(machine, deposits1); + state_save_register_global(machine, deposits2); + state_save_register_global(machine, credits); +} + /******************************************************************************/ static WRITE16_HANDLER( tnexspce_coin_counters_w ) @@ -362,18 +371,29 @@ static WRITE16_HANDLER( tnexspce_soundlatch_w ) //ZT /******************************************************************************/ +static unsigned coinvalue = 0; +static unsigned microcontroller_data = 0; +static int latch; + /* Kyros, Super Stingray, Mahjong Block Jongbou */ +static MACHINE_START( kyros ) +{ + state_save_register_global(machine, coinvalue); + state_save_register_global(machine, microcontroller_data); + state_save_register_global(machine, latch); + + MACHINE_START_CALL( common ); +} + static READ16_HANDLER( kyros_alpha_trigger_r ) { /* possible jump codes: - Kyros : 0x22 - Super Stingray : 0x21,0x22,0x23,0x24,0x34,0x37,0x3a,0x3d,0x40,0x43,0x46,0x49 */ - static unsigned coinvalue = 0, microcontroller_data = 0; static const UINT8 coinage1[8][2]={{1,1}, {1,5}, {1,3}, {2,3}, {1,2}, {1,6}, {1,4}, {3,2}}; static const UINT8 coinage2[8][2]={{1,1}, {5,1}, {3,1}, {7,1}, {2,1}, {6,1}, {4,1}, {8,1}}; - static int latch; int source = shared_ram[offset]; switch (offset) { @@ -451,11 +471,9 @@ static READ16_HANDLER( alpha_II_trigger_r ) - Sky Soldiers : 0x21,0x22,0x23,0x24,0x34,0x37,0x3a,0x3d,0x40,0x43,0x46,0x49 - Gold Medalist : 0x21,0x23,0x24,0x5b */ - static unsigned coinvalue = 0, microcontroller_data = 0; static const UINT8 coinage1[8][2] = {{1,1}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}, {2,3}, {3,2}}; static const UINT8 coinage2[8][2] = {{1,1}, {2,1}, {3,1}, {4,1}, {5,1}, {6,1}, {7,1}, {8,1}}; - static int latch; int source = shared_ram[offset]; switch (offset) @@ -547,11 +565,9 @@ static READ16_HANDLER( alpha_V_trigger_r ) - Gang Wars : 0x21,0x23,0x24,0x54 - Super Champion Baseball : 0x21,0x23,0x24 */ - static unsigned coinvalue = 0, microcontroller_data = 0; static const UINT8 coinage1[8][2] = {{1,1}, {1,5}, {1,3}, {2,3}, {1,2}, {1,6}, {1,4}, {3,2}}; static const UINT8 coinage2[8][2] = {{1,1}, {5,1}, {3,1}, {7,1}, {2,1}, {6,1}, {4,1}, {8,1}}; - static int latch; int source = shared_ram[offset]; switch (offset) @@ -1912,6 +1928,7 @@ static MACHINE_DRIVER_START( sstingry ) MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 4000) //ZT + MDRV_MACHINE_START(kyros) MDRV_MACHINE_RESET(common) /* video hardware */ @@ -1926,6 +1943,7 @@ static MACHINE_DRIVER_START( sstingry ) //AT MDRV_PALETTE_INIT(kyros) //ZT + MDRV_VIDEO_START(alpha68k_common_vh) MDRV_VIDEO_UPDATE(sstingry) /* sound hardware */ @@ -1961,6 +1979,7 @@ static MACHINE_DRIVER_START( kyros ) MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 4000) //ZT + MDRV_MACHINE_START(kyros) MDRV_MACHINE_RESET(common) /* video hardware */ @@ -1974,6 +1993,7 @@ static MACHINE_DRIVER_START( kyros ) MDRV_PALETTE_LENGTH(256 + 1) MDRV_PALETTE_INIT(kyros) + MDRV_VIDEO_START(alpha68k_common_vh) MDRV_VIDEO_UPDATE(kyros) /* sound hardware */ @@ -2006,6 +2026,7 @@ static MACHINE_DRIVER_START( jongbou ) MDRV_CPU_IO_MAP(jongbou_sound_portmap,0) MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold, 160) // guess, controls sound speed + MDRV_MACHINE_START(kyros) MDRV_MACHINE_RESET(common) /* video hardware */ @@ -2019,6 +2040,7 @@ static MACHINE_DRIVER_START( jongbou ) MDRV_PALETTE_LENGTH(256 + 1) MDRV_PALETTE_INIT(kyros) + MDRV_VIDEO_START(alpha68k_common_vh) MDRV_VIDEO_UPDATE(kyros) /* sound hardware */ @@ -2051,6 +2073,7 @@ static MACHINE_DRIVER_START( alpha68k_I ) MDRV_PALETTE_LENGTH(1024) MDRV_PALETTE_INIT(paddlem) //ZT + MDRV_VIDEO_START(alpha68k_common_vh) MDRV_VIDEO_UPDATE(alpha68k_I) /* sound hardware */ @@ -2257,6 +2280,7 @@ static MACHINE_DRIVER_START( tnexspce ) MDRV_PALETTE_LENGTH(1024) MDRV_PALETTE_INIT(paddlem) + MDRV_VIDEO_START(alpha68k_common_vh) MDRV_VIDEO_UPDATE(alpha68k_I) /* sound hardware */ @@ -3266,27 +3290,27 @@ static DRIVER_INIT( tnexspce ) /******************************************************************************/ -GAME( 1986, sstingry, 0, sstingry, sstingry, sstingry, ROT90, "Alpha Denshi Co.", "Super Stingray", 0 ) -GAME( 1987, kyros, 0, kyros, kyros, kyros, ROT90, "World Games Inc", "Kyros", 0 ) -GAME( 1986, kyrosj, kyros, kyros, kyros, kyros, ROT90, "Alpha Denshi Co.", "Kyros No Yakata (Japan)", 0 ) -GAME( 1987, jongbou, 0, jongbou, jongbou, jongbou, ROT90, "SNK", "Mahjong Block Jongbou (Japan)", 0 ) -GAME( 1988, paddlema, 0, alpha68k_I, paddlema, paddlema, ROT90, "SNK", "Paddle Mania", 0 ) -GAME( 1987, timesold, 0, alpha68k_II, timesold, timesold, ROT90, "[Alpha Denshi Co.] (SNK/Romstar license)", "Time Soldiers (US Rev 3)", 0 ) -GAME( 1987, timesol1, timesold, alpha68k_II, timesold, timesol1, ROT90, "[Alpha Denshi Co.] (SNK/Romstar license)", "Time Soldiers (US Rev 1)", 0 ) -GAME( 1987, btlfield, timesold, alpha68k_II, btlfield, btlfield, ROT90, "[Alpha Denshi Co.] (SNK license)", "Battle Field (Japan)", 0 ) -GAME( 1987, btlfildb, timesold, btlfildb, btlfildb, btlfildb, ROT90, "bootleg", "Battle Field (bootleg)", 0 ) -GAME( 1988, skysoldr, 0, alpha68k_II, skysoldr, skysoldr, ROT90, "[Alpha Denshi Co.] (SNK of America/Romstar license)", "Sky Soldiers (US)", 0 ) -GAME( 1988, goldmedl, 0, alpha68k_II_gm,goldmedl, goldmedl, ROT0, "SNK", "Gold Medalist", 0 ) -GAME( 1988, goldmeda, goldmedl, alpha68k_II_gm,goldmedl, goldmeda, ROT0, "SNK", "Gold Medalist (alt)", 0 ) +GAME( 1986, sstingry, 0, sstingry, sstingry, sstingry, ROT90, "Alpha Denshi Co.", "Super Stingray", GAME_SUPPORTS_SAVE ) +GAME( 1987, kyros, 0, kyros, kyros, kyros, ROT90, "World Games Inc", "Kyros", GAME_SUPPORTS_SAVE ) +GAME( 1986, kyrosj, kyros, kyros, kyros, kyros, ROT90, "Alpha Denshi Co.", "Kyros No Yakata (Japan)", GAME_SUPPORTS_SAVE ) +GAME( 1987, jongbou, 0, jongbou, jongbou, jongbou, ROT90, "SNK", "Mahjong Block Jongbou (Japan)", GAME_SUPPORTS_SAVE ) +GAME( 1988, paddlema, 0, alpha68k_I, paddlema, paddlema, ROT90, "SNK", "Paddle Mania", GAME_SUPPORTS_SAVE ) +GAME( 1987, timesold, 0, alpha68k_II, timesold, timesold, ROT90, "[Alpha Denshi Co.] (SNK/Romstar license)", "Time Soldiers (US Rev 3)", GAME_SUPPORTS_SAVE ) +GAME( 1987, timesol1, timesold, alpha68k_II, timesold, timesol1, ROT90, "[Alpha Denshi Co.] (SNK/Romstar license)", "Time Soldiers (US Rev 1)", GAME_SUPPORTS_SAVE ) +GAME( 1987, btlfield, timesold, alpha68k_II, btlfield, btlfield, ROT90, "[Alpha Denshi Co.] (SNK license)", "Battle Field (Japan)", GAME_SUPPORTS_SAVE ) +GAME( 1987, btlfildb, timesold, btlfildb, btlfildb, btlfildb, ROT90, "bootleg", "Battle Field (bootleg)", GAME_SUPPORTS_SAVE ) +GAME( 1988, skysoldr, 0, alpha68k_II, skysoldr, skysoldr, ROT90, "[Alpha Denshi Co.] (SNK of America/Romstar license)", "Sky Soldiers (US)", GAME_SUPPORTS_SAVE ) +GAME( 1988, goldmedl, 0, alpha68k_II_gm,goldmedl, goldmedl, ROT0, "SNK", "Gold Medalist", GAME_SUPPORTS_SAVE ) +GAME( 1988, goldmeda, goldmedl, alpha68k_II_gm,goldmedl, goldmeda, ROT0, "SNK", "Gold Medalist (alt)", GAME_SUPPORTS_SAVE ) GAME( 1988, goldmedb, goldmedl, alpha68k_II_gm,goldmedl, goldmeda, ROT0, "bootleg", "Gold Medalist (bootleg)", GAME_NOT_WORKING ) -GAME( 1989, skyadvnt, 0, alpha68k_V, skyadvnt, skyadvnt, ROT90, "Alpha Denshi Co.", "Sky Adventure (World)", 0 ) -GAME( 1989, skyadvnu, skyadvnt, alpha68k_V, skyadvnu, skyadvnu, ROT90, "Alpha Denshi Co. (SNK of America license)", "Sky Adventure (US)", 0 ) -GAME( 1989, skyadvnj, skyadvnt, alpha68k_V, skyadvnt, skyadvnt, ROT90, "Alpha Denshi Co.", "Sky Adventure (Japan)", 0 ) -GAME( 1989, gangwars, 0, alpha68k_V, gangwars, gangwars, ROT0, "Alpha Denshi Co.", "Gang Wars (US)", 0 ) -GAME( 1989, gangwarb, gangwars, alpha68k_V, gangwarb, gangwarb, ROT0, "bootleg", "Gang Wars (bootleg)", 0 ) +GAME( 1989, skyadvnt, 0, alpha68k_V, skyadvnt, skyadvnt, ROT90, "Alpha Denshi Co.", "Sky Adventure (World)", GAME_SUPPORTS_SAVE ) +GAME( 1989, skyadvnu, skyadvnt, alpha68k_V, skyadvnu, skyadvnu, ROT90, "Alpha Denshi Co. (SNK of America license)", "Sky Adventure (US)", GAME_SUPPORTS_SAVE ) +GAME( 1989, skyadvnj, skyadvnt, alpha68k_V, skyadvnt, skyadvnt, ROT90, "Alpha Denshi Co.", "Sky Adventure (Japan)", GAME_SUPPORTS_SAVE ) +GAME( 1989, gangwars, 0, alpha68k_V, gangwars, gangwars, ROT0, "Alpha Denshi Co.", "Gang Wars (US)", GAME_SUPPORTS_SAVE ) +GAME( 1989, gangwarb, gangwars, alpha68k_V, gangwarb, gangwarb, ROT0, "bootleg", "Gang Wars (bootleg)", GAME_SUPPORTS_SAVE ) #if SBASEBAL_HACK -GAME( 1989, sbasebal, 0, alpha68k_V_sb, sbasebal, sbasebal, ROT0, "Alpha Denshi Co.", "Super Champion Baseball (Japan)", 0 ) +GAME( 1989, sbasebal, 0, alpha68k_V_sb, sbasebal, sbasebal, ROT0, "Alpha Denshi Co.", "Super Champion Baseball (Japan)", GAME_SUPPORTS_SAVE ) #else -GAME( 1989, sbasebal, 0, alpha68k_V_sb, sbasebal, sbasebal, ROT0, "Alpha Denshi Co. (SNK of America license)", "Super Champion Baseball (US)", 0 ) +GAME( 1989, sbasebal, 0, alpha68k_V_sb, sbasebal, sbasebal, ROT0, "Alpha Denshi Co. (SNK of America license)", "Super Champion Baseball (US)", GAME_SUPPORTS_SAVE ) #endif -GAME( 1989, tnexspce, 0, tnexspce, tnexspce, tnexspce, ROT90, "SNK", "The Next Space", GAME_NO_COCKTAIL ) +GAME( 1989, tnexspce, 0, tnexspce, tnexspce, tnexspce, ROT90, "SNK", "The Next Space", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) diff --git a/src/mame/includes/8080bw.h b/src/mame/includes/8080bw.h index ce8ea30e6a5..c5149589d1e 100644 --- a/src/mame/includes/8080bw.h +++ b/src/mame/includes/8080bw.h @@ -21,6 +21,8 @@ UINT8 polaris_get_cloud_pos(void); /*----------- defined in audio/8080bw.c -----------*/ +MACHINE_START( extra_8080bw_sh ); + WRITE8_HANDLER( invadpt2_sh_port_1_w ); WRITE8_HANDLER( invadpt2_sh_port_2_w ); @@ -68,11 +70,12 @@ WRITE8_HANDLER( yosakdon_sh_port_2_w ); WRITE8_HANDLER( shuttlei_sh_port_1_w ); WRITE8_HANDLER( shuttlei_sh_port_2_w ); - /*----------- defined in video/8080bw.c -----------*/ extern UINT8 *c8080bw_colorram; +MACHINE_START( extra_8080bw_vh ); + void c8080bw_flip_screen_w(const address_space *space, int data); void c8080bw_screen_red_w(int data); void schaser_background_control_w(int data); diff --git a/src/mame/includes/ajax.h b/src/mame/includes/ajax.h index 2ee79c79bc8..874e8cd33e4 100644 --- a/src/mame/includes/ajax.h +++ b/src/mame/includes/ajax.h @@ -3,6 +3,7 @@ WRITE8_HANDLER( ajax_bankswitch_2_w ); READ8_HANDLER( ajax_ls138_f10_r ); WRITE8_HANDLER( ajax_ls138_f10_w ); +MACHINE_START( ajax ); MACHINE_RESET( ajax ); INTERRUPT_GEN( ajax_interrupt ); diff --git a/src/mame/machine/ajax.c b/src/mame/machine/ajax.c index 2dff564dbe6..88f94766ad7 100644 --- a/src/mame/machine/ajax.c +++ b/src/mame/machine/ajax.c @@ -197,6 +197,10 @@ WRITE8_HANDLER( ajax_bankswitch_2_w ) memory_set_bankptr(space->machine, 1,&RAM[bankaddress]); } +MACHINE_START( ajax ) +{ + state_save_register_global(machine, firq_enable); +} MACHINE_RESET( ajax ) { diff --git a/src/mame/video/8080bw.c b/src/mame/video/8080bw.c index 2b46c696825..d4855f5a5ab 100644 --- a/src/mame/video/8080bw.c +++ b/src/mame/video/8080bw.c @@ -22,7 +22,17 @@ static UINT8 screen_red; static UINT8 schaser_background_disable; static UINT8 schaser_background_select; +MACHINE_START( extra_8080bw_vh ) +{ + state_save_register_global(machine, c8080bw_flip_screen); + state_save_register_global(machine, color_map); + state_save_register_global(machine, screen_red); + // These two only belong to schaser, but for simplicity's sake let's waste + // two bytes in other drivers' .sta files. + state_save_register_global(machine, schaser_background_disable); + state_save_register_global(machine, schaser_background_select); +} void c8080bw_flip_screen_w(const address_space *space, int data) { diff --git a/src/mame/video/aeroboto.c b/src/mame/video/aeroboto.c index acec8a7caa4..f8b759ad323 100644 --- a/src/mame/video/aeroboto.c +++ b/src/mame/video/aeroboto.c @@ -48,6 +48,9 @@ VIDEO_START( aeroboto ) tilemap_set_scroll_rows(bg_tilemap,64); + state_save_register_global(machine, aeroboto_charbank); + state_save_register_global(machine, aeroboto_starsoff); + #if STARS_LAYOUT { UINT8 *rom, *temp; diff --git a/src/mame/video/aerofgt.c b/src/mame/video/aerofgt.c index 078b9ef547b..29fd02ec0bb 100644 --- a/src/mame/video/aerofgt.c +++ b/src/mame/video/aerofgt.c @@ -95,12 +95,26 @@ static TILE_GET_INFO( get_bg2_tile_info ) ***************************************************************************/ +static void aerofgt_register_state_globals(running_machine *machine) +{ + state_save_register_global_array(machine, gfxbank); + state_save_register_global(machine, bg1scrollx); + state_save_register_global(machine, bg1scrolly); + state_save_register_global(machine, bg2scrollx); + state_save_register_global(machine, bg2scrolly); + state_save_register_global(machine, charpalettebank); + state_save_register_global(machine, spritepalettebank); +} + VIDEO_START( pspikes ) { bg1_tilemap = tilemap_create(machine, get_pspikes_tile_info,tilemap_scan_rows,8,8,64,32); /* no bg2 in this game */ sprite_gfx = 1; + + aerofgt_register_state_globals(machine); + state_save_register_global(machine, spikes91_lookup); } @@ -114,6 +128,8 @@ VIDEO_START( karatblz ) spritepalettebank = 0; sprite_gfx = 2; + + aerofgt_register_state_globals(machine); } VIDEO_START( spinlbrk ) @@ -140,7 +156,11 @@ VIDEO_START( spinlbrk ) aerofgt_spriteram1 = aerofgt_spriteram2 + aerofgt_spriteram2_size/2; aerofgt_spriteram1_size = 0x4000; for (i = 0;i < aerofgt_spriteram1_size/2;i++) + { aerofgt_spriteram1[i] = i; + } + + aerofgt_register_state_globals(machine); } VIDEO_START( turbofrc ) @@ -153,6 +173,8 @@ VIDEO_START( turbofrc ) spritepalettebank = 0; sprite_gfx = 2; + + aerofgt_register_state_globals(machine); } VIDEO_START( wbbc97 ) @@ -163,6 +185,10 @@ VIDEO_START( wbbc97 ) tilemap_set_transparent_pen(bg1_tilemap,15); sprite_gfx = 1; + + aerofgt_register_state_globals(machine); + + state_save_register_global(machine, wbbc97_bitmap_enable); } /*************************************************************************** diff --git a/src/mame/video/airbustr.c b/src/mame/video/airbustr.c index a68fa71ba25..9b03cd0e4a4 100644 --- a/src/mame/video/airbustr.c +++ b/src/mame/video/airbustr.c @@ -119,6 +119,7 @@ VIDEO_START( airbustr ) fg_tilemap = tilemap_create(machine, get_fg_tile_info, tilemap_scan_rows, 16, 16, 32, 32); sprites_bitmap = video_screen_auto_bitmap_alloc(machine->primary_screen); + state_save_register_global_bitmap(machine, sprites_bitmap); tilemap_set_transparent_pen(fg_tilemap, 0); pandora_start(machine,1,0,0); diff --git a/src/mame/video/ajax.c b/src/mame/video/ajax.c index a8c8245bc19..7923eab6304 100644 --- a/src/mame/video/ajax.c +++ b/src/mame/video/ajax.c @@ -79,6 +79,7 @@ VIDEO_START( ajax ) K052109_vh_start(machine,"gfx1",NORMAL_PLANE_ORDER,tile_callback); K051960_vh_start(machine,"gfx2",NORMAL_PLANE_ORDER,sprite_callback); K051316_vh_start_0(machine,"gfx3",7,FALSE,0,zoom_callback); + state_save_register_global(machine, ajax_priority); } diff --git a/src/mame/video/alpha68k.c b/src/mame/video/alpha68k.c index 032dc0486f5..652a868823b 100644 --- a/src/mame/video/alpha68k.c +++ b/src/mame/video/alpha68k.c @@ -15,6 +15,11 @@ extern int alpha68k_microcontroller_id; /******************************************************************************/ +VIDEO_START( alpha68k_common_vh ) +{ + state_save_register_global(machine, flipscreen); +} + void alpha68k_flipscreen_w(int flip) { flipscreen = flip; @@ -71,9 +76,14 @@ VIDEO_START( alpha68k ) fix_tilemap = tilemap_create(machine, get_tile_info,tilemap_scan_cols,8,8,32,32); tilemap_set_transparent_pen(fix_tilemap,0); + + state_save_register_global(machine, bank_base); + + VIDEO_START_CALL(alpha68k_common_vh); } /******************************************************************************/ + //AT static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int j, int s, int e) { diff --git a/src/mame/video/kan_pand.c b/src/mame/video/kan_pand.c index aac400de824..331675c0329 100644 --- a/src/mame/video/kan_pand.c +++ b/src/mame/video/kan_pand.c @@ -171,6 +171,10 @@ void pandora_start(running_machine *machine, UINT8 region, int x, int y) pandora_sprites_bitmap = video_screen_auto_bitmap_alloc(machine->primary_screen); pandora_clear_bitmap = 1; + + state_save_register_global(machine, pandora_clear_bitmap); + state_save_register_global_pointer(machine, pandora_spriteram, 0x1000); + state_save_register_global_bitmap(machine, pandora_sprites_bitmap); }