diff --git a/src/mame/audio/snes_snd.c b/src/mame/audio/snes_snd.c index a7c8e2b77d3..5d1e8dfb3aa 100644 --- a/src/mame/audio/snes_snd.c +++ b/src/mame/audio/snes_snd.c @@ -1335,7 +1335,7 @@ static DEVICE_START( snes_sound ) device->save_pointer(NAME(spc700->ram), SNES_SPCRAM_SIZE); } -static DEVICE_RESET( snes_sound ) +void spc700_reset(device_t *device) { snes_sound_state *spc700 = get_safe_token(device); int ii; @@ -1353,6 +1353,12 @@ static DEVICE_RESET( snes_sound ) dsp_reset(device); } + +static DEVICE_RESET( snes_sound ) +{ + spc700_reset(device); +} + /*------------------------------------------------- Device definition -------------------------------------------------*/ diff --git a/src/mame/audio/snes_snd.h b/src/mame/audio/snes_snd.h index 55582d88dd7..1d69c58ec37 100644 --- a/src/mame/audio/snes_snd.h +++ b/src/mame/audio/snes_snd.h @@ -32,5 +32,6 @@ WRITE8_DEVICE_HANDLER( spc_port_in ); UINT8 *spc_get_ram(device_t *device); void spc700_set_volume(device_t *device,int volume); +void spc700_reset(device_t *device); #endif /* __SNES_SPC_H__ */ diff --git a/src/mame/drivers/nss.c b/src/mame/drivers/nss.c index 632796519c4..7d9c426d636 100644 --- a/src/mame/drivers/nss.c +++ b/src/mame/drivers/nss.c @@ -560,8 +560,9 @@ WRITE8_MEMBER(nss_state::port_01_w) device_set_input_line(m_soundcpu, INPUT_LINE_HALT, (data & 2) ? CLEAR_LINE : ASSERT_LINE); device_set_input_line(m_maincpu, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); device_set_input_line(m_soundcpu, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); - -// printf("%02x\n",data); + /* also reset the device */ + if((data & 1) == 0) + spc700_reset(machine().device("spc700")); } WRITE8_MEMBER(nss_state::port_02_w)