diff options
Diffstat (limited to 'src/mame/drivers/galaxold.cpp')
-rw-r--r-- | src/mame/drivers/galaxold.cpp | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/src/mame/drivers/galaxold.cpp b/src/mame/drivers/galaxold.cpp index 3396ffdc94b..b66bdceb980 100644 --- a/src/mame/drivers/galaxold.cpp +++ b/src/mame/drivers/galaxold.cpp @@ -102,6 +102,7 @@ Stephh's notes (based on the games Z80 code and some tests) for other games : #include "emu.h" #include "cpu/z80/z80.h" #include "cpu/s2650/s2650.h" +#include "machine/watchdog.h" #include "sound/ay8910.h" #include "sound/sn76496.h" #include "sound/dac.h" @@ -167,7 +168,7 @@ static ADDRESS_MAP_START( galaxold_map, AS_PROGRAM, 8, galaxold_state ) AM_RANGE(0x7004, 0x7004) AM_WRITE(galaxold_stars_enable_w) AM_RANGE(0x7006, 0x7006) AM_WRITE(galaxold_flip_screen_x_w) AM_RANGE(0x7007, 0x7007) AM_WRITE(galaxold_flip_screen_y_w) - AM_RANGE(0x7800, 0x7fff) AM_READ(watchdog_reset_r) + AM_RANGE(0x7800, 0x7fff) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_RANGE(0x7800, 0x7800) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) AM_RANGE(0xfffc, 0xffff) AM_RAM ADDRESS_MAP_END @@ -195,7 +196,7 @@ static ADDRESS_MAP_START( mooncrst_map, AS_PROGRAM, 8, galaxold_state ) AM_RANGE(0xb004, 0xb004) AM_WRITE(galaxold_stars_enable_w) AM_RANGE(0xb006, 0xb006) AM_WRITE(galaxold_flip_screen_x_w) AM_RANGE(0xb007, 0xb007) AM_WRITE(galaxold_flip_screen_y_w) - AM_RANGE(0xb800, 0xb800) AM_READ(watchdog_reset_r) + AM_RANGE(0xb800, 0xb800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_RANGE(0xb800, 0xb800) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) ADDRESS_MAP_END @@ -215,7 +216,7 @@ static ADDRESS_MAP_START( hustlerb3_map, AS_PROGRAM, 8, galaxold_state ) AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0") AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN1") AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW0") - AM_RANGE(0xb800, 0xb800) AM_READ(watchdog_reset_r) + AM_RANGE(0xb800, 0xb800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_RANGE(0xa004, 0xa007) AM_DEVWRITE("cust", galaxian_sound_device, lfo_freq_w) AM_RANGE(0xa800, 0xa802) AM_DEVWRITE("cust", galaxian_sound_device, background_enable_w) @@ -253,7 +254,7 @@ static ADDRESS_MAP_START( rockclim_map, AS_PROGRAM, 8, galaxold_state ) AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW0") AM_WRITE(galaxold_nmi_enable_w) AM_RANGE(0xb006, 0xb006) AM_WRITE(galaxold_flip_screen_x_w) AM_RANGE(0xb007, 0xb007) AM_WRITE(galaxold_flip_screen_y_w) - AM_RANGE(0xb800, 0xb800) AM_READ(watchdog_reset_r) + AM_RANGE(0xb800, 0xb800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_RANGE(0xb800, 0xb800) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) ADDRESS_MAP_END @@ -281,7 +282,7 @@ static ADDRESS_MAP_START( ckongg_map, AS_PROGRAM, 8, galaxold_state ) AM_RANGE(0xc804, 0xc804) AM_WRITENOP // link cut AM_RANGE(0xc806, 0xc806) AM_WRITE(galaxold_flip_screen_x_w) AM_RANGE(0xc807, 0xc807) AM_WRITE(galaxold_flip_screen_y_w) - AM_RANGE(0xcc00, 0xcc00) AM_READ(watchdog_reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) + AM_RANGE(0xcc00, 0xcc00) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) ADDRESS_MAP_END /* Memory map based on mooncrst_map according to Z80 code - seems to be good but needs further checking */ @@ -308,7 +309,7 @@ static ADDRESS_MAP_START( ckongmc_map, AS_PROGRAM, 8, galaxold_state ) AM_RANGE(0xb004, 0xb004) AM_WRITENOP /* AM_WRITE(galaxold_stars_enable_w) */ AM_RANGE(0xb006, 0xb006) AM_WRITE(galaxold_flip_screen_x_w) /* GUESS */ AM_RANGE(0xb007, 0xb007) AM_WRITE(galaxold_flip_screen_y_w) /* GUESS */ - AM_RANGE(0xb800, 0xb800) AM_READ(watchdog_reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) /* GUESS */ + AM_RANGE(0xb800, 0xb800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) /* GUESS */ ADDRESS_MAP_END @@ -336,7 +337,7 @@ static ADDRESS_MAP_START( scramblb_map, AS_PROGRAM, 8, galaxold_state ) AM_RANGE(0x7004, 0x7004) AM_WRITE(galaxold_stars_enable_w) AM_RANGE(0x7006, 0x7006) AM_WRITE(galaxold_flip_screen_x_w) AM_RANGE(0x7007, 0x7007) AM_WRITE(galaxold_flip_screen_y_w) - AM_RANGE(0x7800, 0x7800) AM_READ(watchdog_reset_r) + AM_RANGE(0x7800, 0x7800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_RANGE(0x7800, 0x7800) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) AM_RANGE(0x8102, 0x8102) AM_READ(scramblb_protection_1_r) AM_RANGE(0x8202, 0x8202) AM_READ(scramblb_protection_2_r) @@ -364,7 +365,7 @@ static ADDRESS_MAP_START( scramb2_map, AS_PROGRAM, 8, galaxold_state ) AM_RANGE(0x6804, 0x6804) AM_WRITE(galaxold_stars_enable_w) AM_RANGE(0x6806, 0x6806) AM_WRITE(galaxold_flip_screen_x_w) AM_RANGE(0x6807, 0x6807) AM_WRITE(galaxold_flip_screen_y_w) - AM_RANGE(0x7000, 0x7007) AM_READ(watchdog_reset_r) + AM_RANGE(0x7000, 0x7007) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_RANGE(0x7006, 0x7006) AM_WRITENOP AM_RANGE(0x7007, 0x7007) AM_WRITENOP AM_RANGE(0x7800, 0x7807) AM_READ(scramb2_port2_r) // reads from 8 addresses, 1 bit per address @@ -406,7 +407,7 @@ static ADDRESS_MAP_START( scrambler_map, AS_PROGRAM, 8, galaxold_state ) AM_RANGE(0x7004, 0x7004) AM_WRITE(galaxold_stars_enable_w) AM_RANGE(0x7006, 0x7006) AM_WRITE(galaxold_flip_screen_x_w) AM_RANGE(0x7007, 0x7007) AM_WRITE(galaxold_flip_screen_y_w) - AM_RANGE(0x7800, 0x7800) AM_READ(watchdog_reset_r) + AM_RANGE(0x7800, 0x7800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_RANGE(0x7800, 0x7800) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) // AM_RANGE(0x8102, 0x8102) AM_READ(scramblb_protection_1_r) AM_RANGE(0x8202, 0x8202) AM_READ(scrambler_protection_2_r) @@ -451,7 +452,7 @@ static ADDRESS_MAP_START( guttang_map, AS_PROGRAM, 8, galaxold_state ) AM_RANGE(0x7000, 0x7000) AM_READ_PORT("IN2") AM_RANGE(0x7001, 0x7001) AM_WRITE(galaxold_nmi_enable_w) - AM_RANGE(0x7800, 0x7800) AM_READ(watchdog_reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) + AM_RANGE(0x7800, 0x7800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) ADDRESS_MAP_END @@ -480,7 +481,7 @@ static ADDRESS_MAP_START( _4in1_map, AS_PROGRAM, 8, galaxold_state ) AM_RANGE(0x7004, 0x7004) AM_WRITE(galaxold_stars_enable_w) AM_RANGE(0x7006, 0x7006) AM_WRITE(galaxold_flip_screen_x_w) AM_RANGE(0x7007, 0x7007) AM_WRITE(galaxold_flip_screen_y_w) - AM_RANGE(0x7800, 0x78ff) AM_READ(watchdog_reset_r) + AM_RANGE(0x7800, 0x78ff) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_RANGE(0x7800, 0x78ff) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) AM_RANGE(0x8000, 0x8000) AM_WRITE(_4in1_bank_w) AM_RANGE(0xc000, 0xdfff) AM_ROM /* fixed menu code */ @@ -505,7 +506,7 @@ static ADDRESS_MAP_START( bagmanmc_map, AS_PROGRAM, 8, galaxold_state ) AM_RANGE(0xb002, 0xb002) AM_WRITE(galaxold_gfxbank_w) AM_RANGE(0xb006, 0xb006) AM_WRITE(galaxold_flip_screen_x_w) AM_RANGE(0xb007, 0xb007) AM_WRITE(galaxold_flip_screen_y_w) - AM_RANGE(0xb800, 0xb800) AM_READ(watchdog_reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) + AM_RANGE(0xb800, 0xb800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) ADDRESS_MAP_END @@ -531,7 +532,7 @@ static ADDRESS_MAP_START( dkongjrm_map, AS_PROGRAM, 8, galaxold_state ) //AM_RANGE(0xb004, 0xb004) AM_WRITE(galaxold_stars_enable_w) AM_RANGE(0xb006, 0xb006) AM_WRITE(galaxold_flip_screen_x_w) AM_RANGE(0xb007, 0xb007) AM_WRITE(galaxold_flip_screen_y_w) - AM_RANGE(0xb800, 0xb800) AM_READ(watchdog_reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) + AM_RANGE(0xb800, 0xb800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) ADDRESS_MAP_END @@ -544,7 +545,7 @@ static ADDRESS_MAP_START( tazzmang, AS_PROGRAM, 8, galaxold_state ) AM_RANGE(0x8860, 0x887f) AM_RAM AM_SHARE("bulletsram") AM_RANGE(0x8880, 0x8bff) AM_WRITENOP AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram") - AM_RANGE(0x9800, 0x9800) AM_READ(watchdog_reset_r) + AM_RANGE(0x9800, 0x9800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0") AM_RANGE(0xa7ff, 0xa7ff) AM_READ_PORT("IN0") /* mirror */ AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN1") AM_DEVWRITE("cust", galaxian_sound_device, background_enable_w) @@ -556,7 +557,7 @@ static ADDRESS_MAP_START( tazzmang, AS_PROGRAM, 8, galaxold_state ) AM_RANGE(0xb004, 0xb004) AM_WRITE(galaxold_stars_enable_w) AM_RANGE(0xb006, 0xb006) AM_WRITE(galaxold_flip_screen_x_w) AM_RANGE(0xb007, 0xb007) AM_WRITE(galaxold_flip_screen_y_w) - AM_RANGE(0xb800, 0xb800) AM_READ(watchdog_reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) + AM_RANGE(0xb800, 0xb800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) ADDRESS_MAP_END @@ -576,7 +577,7 @@ static ADDRESS_MAP_START( bongo, AS_PROGRAM, 8, galaxold_state ) AM_RANGE(0xb004, 0xb004) AM_WRITE(galaxold_stars_enable_w) AM_RANGE(0xb006, 0xb006) AM_WRITE(galaxold_flip_screen_x_w) AM_RANGE(0xb007, 0xb007) AM_WRITE(galaxold_flip_screen_y_w) - AM_RANGE(0xb800, 0xb800) AM_READ(watchdog_reset_r) AM_WRITENOP + AM_RANGE(0xb800, 0xb800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_WRITENOP ADDRESS_MAP_END static ADDRESS_MAP_START( bongo_io, AS_IO, 8, galaxold_state ) @@ -629,7 +630,7 @@ static ADDRESS_MAP_START( hunchbkg, AS_PROGRAM, 8, galaxold_state ) AM_RANGE(0x1604, 0x1604) AM_MIRROR(0x6000) AM_WRITE(galaxold_stars_enable_w) AM_RANGE(0x1606, 0x1606) AM_MIRROR(0x6000) AM_WRITE(galaxold_flip_screen_x_w) AM_RANGE(0x1607, 0x1607) AM_MIRROR(0x6000) AM_WRITE(galaxold_flip_screen_y_w) - AM_RANGE(0x1680, 0x1680) AM_MIRROR(0x6000) AM_READ(watchdog_reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) + AM_RANGE(0x1680, 0x1680) AM_MIRROR(0x6000) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_WRITE(galaxold_videoram_w) AM_SHARE("videoram") AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM AM_RANGE(0x2000, 0x2fff) AM_ROM @@ -653,7 +654,7 @@ static ADDRESS_MAP_START( spcwarp, AS_PROGRAM, 8, galaxold_state ) AM_RANGE(0x1585, 0x1585) AM_MIRROR(0x6000) AM_DEVWRITE("cust", galaxian_sound_device, fire_enable_w) AM_RANGE(0x1586, 0x1587) AM_MIRROR(0x6000) AM_DEVWRITE("cust", galaxian_sound_device, vol_w) // everything else in the $16xx range is moved to $17xx - AM_RANGE(0x1680, 0x1680) AM_MIRROR(0x6000) AM_READ(watchdog_reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) + AM_RANGE(0x1680, 0x1680) AM_MIRROR(0x6000) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w) AM_RANGE(0x1700, 0x1700) AM_MIRROR(0x6000) AM_READ_PORT("DSW0") AM_RANGE(0x1701, 0x1701) AM_MIRROR(0x6000) AM_WRITE(galaxold_nmi_enable_w) AM_RANGE(0x1704, 0x1704) AM_MIRROR(0x6000) AM_WRITE(galaxold_stars_enable_w) @@ -2223,6 +2224,8 @@ static MACHINE_CONFIG_START( galaxold_base, galaxold_state ) MCFG_TIMER_DRIVER_ADD("int_timer", galaxold_state, galaxold_interrupt_timer) + MCFG_WATCHDOG_ADD("watchdog") + /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", "palette", galaxian) MCFG_PALETTE_ADD("palette", 32+2+64) /* 32 for the characters, 2 for the bullets, 64 for the stars */ |