* bublbobl.diff

- emulated CPU1 (slave) <-> AUDIOCPU communications even if they are not used at all
- emulated AUDIOCPU reset at startup, previously this was disabled

* rranger.diff
- added samples emulation to Rough Ranger (V2.0), write ports A & B of YM2203 are used

* seibu.diff
- hooked up music in SD Gundam Psycho Salamander, this doesn't affect any other game
This commit is contained in:
Aaron Giles 2009-03-28 18:10:38 +00:00
parent 5f4f289e76
commit c1d571c4f2
8 changed files with 78 additions and 39 deletions

View File

@ -406,6 +406,8 @@ WRITE16_HANDLER( seibu_main_word_w )
main2sub[offset] = data; main2sub[offset] = data;
break; break;
case 4: case 4:
if (strcmp(space->machine->gamedrv->name, "sdgndmps") == 0)
update_irq_lines(space->machine, RST10_ASSERT);
update_irq_lines(space->machine, RST18_ASSERT); update_irq_lines(space->machine, RST18_ASSERT);
break; break;
case 6: case 6:

View File

@ -29,6 +29,17 @@ WRITE8_DEVICE_HANDLER( suna8_play_samples_w )
} }
} }
WRITE8_DEVICE_HANDLER( rranger_play_samples_w )
{
if( data )
{
if(( sample != 0 ) && ( ~data & 0x30 )) // don't play sample zero when the bit is active
{
sample_start_raw(device, 0, &samplebuf[0x800*sample], 0x0800, 4000, 0);
}
}
}
WRITE8_DEVICE_HANDLER( suna8_samples_number_w ) WRITE8_DEVICE_HANDLER( suna8_samples_number_w )
{ {
sample = data & 0xf; sample = data & 0xf;

View File

@ -259,8 +259,6 @@ TODO:
(similar to the HD63701). I've just mapped the I/O ports since that's the only (similar to the HD63701). I've just mapped the I/O ports since that's the only
thing required for normal operation, but the program does use some of the thing required for normal operation, but the program does use some of the
additional features in its special "test" mode. additional features in its special "test" mode.
- emulate the CPU #1 <-> sound CPU communication status flags (which are not used)
- why does emulating the sound CPU reset port (fa03) cause sound to stop working?
- tokio: doesn't work due to missing MCU protection emulation. - tokio: doesn't work due to missing MCU protection emulation.
- tokio: sound support is probably incomplete. There are a couple of unknown - tokio: sound support is probably incomplete. There are a couple of unknown
accesses done by the CPU, including to the YM2203 I/O ports. At the accesses done by the CPU, including to the YM2203 I/O ports. At the
@ -280,13 +278,6 @@ TODO:
#define MAIN_XTAL XTAL_24MHz #define MAIN_XTAL XTAL_24MHz
#if 0 // doesn't work for some reason
static WRITE8_HANDLER(soundcpu_reset_w)
{
cpu_set_input_line(space->machine->cpu[2], INPUT_LINE_RESET, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE);
}
#endif
static ADDRESS_MAP_START( master_map, ADDRESS_SPACE_PROGRAM, 8 ) static ADDRESS_MAP_START( master_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x0000, 0x7fff) AM_ROM
@ -295,8 +286,8 @@ static ADDRESS_MAP_START( master_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_BASE(&bublbobl_objectram) AM_SIZE(&bublbobl_objectram_size) AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_BASE(&bublbobl_objectram) AM_SIZE(&bublbobl_objectram_size)
AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE(1) AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE(1)
AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE(&paletteram) AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE(&paletteram)
AM_RANGE(0xfa00, 0xfa00) AM_WRITE(bublbobl_sound_command_w) AM_RANGE(0xfa00, 0xfa00) AM_READWRITE(sound_status_r, bublbobl_sound_command_w)
// AM_RANGE(0xfa03, 0xfa03) AM_WRITE(soundcpu_reset_w) // doesn't work for some reason AM_RANGE(0xfa03, 0xfa03) AM_WRITE(soundcpu_reset_w)
AM_RANGE(0xfa80, 0xfa80) AM_WRITE(watchdog_reset_w) AM_RANGE(0xfa80, 0xfa80) AM_WRITE(watchdog_reset_w)
AM_RANGE(0xfb40, 0xfb40) AM_WRITE(bublbobl_bankswitch_w) AM_RANGE(0xfb40, 0xfb40) AM_WRITE(bublbobl_bankswitch_w)
AM_RANGE(0xfc00, 0xffff) AM_RAM AM_BASE(&bublbobl_mcu_sharedram) AM_RANGE(0xfc00, 0xffff) AM_RAM AM_BASE(&bublbobl_mcu_sharedram)
@ -312,7 +303,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8000, 0x8fff) AM_RAM AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w) AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ym2", ym3526_r, ym3526_w) AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ym2", ym3526_r, ym3526_w)
AM_RANGE(0xb000, 0xb000) AM_READ(soundlatch_r) AM_WRITENOP AM_RANGE(0xb000, 0xb000) AM_READWRITE(soundlatch_r, sound_status_w)
AM_RANGE(0xb001, 0xb001) AM_WRITE(bublbobl_sh_nmi_enable_w) AM_READNOP AM_RANGE(0xb001, 0xb001) AM_WRITE(bublbobl_sh_nmi_enable_w) AM_READNOP
AM_RANGE(0xb002, 0xb002) AM_WRITE(bublbobl_sh_nmi_disable_w) AM_RANGE(0xb002, 0xb002) AM_WRITE(bublbobl_sh_nmi_disable_w)
AM_RANGE(0xe000, 0xffff) AM_ROM // space for diagnostic ROM? AM_RANGE(0xe000, 0xffff) AM_ROM // space for diagnostic ROM?
@ -351,8 +342,8 @@ static ADDRESS_MAP_START( bootleg_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_BASE(&bublbobl_objectram) AM_SIZE(&bublbobl_objectram_size) AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_BASE(&bublbobl_objectram) AM_SIZE(&bublbobl_objectram_size)
AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE(1) AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE(1)
AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE(&paletteram) AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE(&paletteram)
AM_RANGE(0xfa00, 0xfa00) AM_WRITE(bublbobl_sound_command_w) AM_RANGE(0xfa00, 0xfa00) AM_READWRITE(sound_status_r, bublbobl_sound_command_w)
AM_RANGE(0xfa03, 0xfa03) AM_WRITENOP // sound cpu reset AM_RANGE(0xfa03, 0xfa03) AM_WRITE(soundcpu_reset_w)
AM_RANGE(0xfa80, 0xfa80) AM_WRITENOP // ??? AM_RANGE(0xfa80, 0xfa80) AM_WRITENOP // ???
AM_RANGE(0xfb40, 0xfb40) AM_WRITE(bublbobl_bankswitch_w) AM_RANGE(0xfb40, 0xfb40) AM_WRITE(bublbobl_bankswitch_w)
AM_RANGE(0xfc00, 0xfcff) AM_RAM AM_RANGE(0xfc00, 0xfcff) AM_RAM
@ -384,7 +375,7 @@ static ADDRESS_MAP_START( tokio_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xfa80, 0xfa80) AM_WRITE(tokio_bankswitch_w) AM_RANGE(0xfa80, 0xfa80) AM_WRITE(tokio_bankswitch_w)
AM_RANGE(0xfb00, 0xfb00) AM_WRITE(tokio_videoctrl_w) AM_RANGE(0xfb00, 0xfb00) AM_WRITE(tokio_videoctrl_w)
AM_RANGE(0xfb80, 0xfb80) AM_WRITE(bublbobl_nmitrigger_w) AM_RANGE(0xfb80, 0xfb80) AM_WRITE(bublbobl_nmitrigger_w)
AM_RANGE(0xfc00, 0xfc00) AM_READNOP AM_WRITE(bublbobl_sound_command_w) // ??? AM_RANGE(0xfc00, 0xfc00) AM_READWRITE(sound_status_r, bublbobl_sound_command_w)
AM_RANGE(0xfe00, 0xfe00) AM_READ(tokio_mcu_r) AM_WRITENOP // ??? AM_RANGE(0xfe00, 0xfe00) AM_READ(tokio_mcu_r) AM_WRITENOP // ???
ADDRESS_MAP_END ADDRESS_MAP_END
@ -396,7 +387,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tokio_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) static ADDRESS_MAP_START( tokio_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_READ(soundlatch_r) AM_WRITENOP // ??? AM_RANGE(0x9000, 0x9000) AM_READWRITE(soundlatch_r, sound_status_w)
AM_RANGE(0x9800, 0x9800) AM_READNOP // ??? AM_RANGE(0x9800, 0x9800) AM_READNOP // ???
AM_RANGE(0xa000, 0xa000) AM_WRITE(bublbobl_sh_nmi_disable_w) AM_RANGE(0xa000, 0xa000) AM_WRITE(bublbobl_sh_nmi_disable_w)
AM_RANGE(0xa800, 0xa800) AM_WRITE(bublbobl_sh_nmi_enable_w) AM_RANGE(0xa800, 0xa800) AM_WRITE(bublbobl_sh_nmi_enable_w)
@ -1282,11 +1273,9 @@ static DRIVER_INIT( tokio )
static DRIVER_INIT( tokiob ) static DRIVER_INIT( tokiob )
{ {
configure_banks(machine); DRIVER_INIT_CALL(tokio);
memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xfe00, 0xfe00, 0, 0, tokiob_mcu_r ); memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xfe00, 0xfe00, 0, 0, tokiob_mcu_r );
DRIVER_INIT_CALL(tokio);
} }

View File

@ -369,9 +369,10 @@ ROM_START( sdgndmps )
ROM_LOAD16_BYTE( "911-a03.27", 0x40000, 0x20000, CRC(6c24b4f2) SHA1(e9fb82884f47694bebcad9254cb57a0b01dcd9c8) ) ROM_LOAD16_BYTE( "911-a03.27", 0x40000, 0x20000, CRC(6c24b4f2) SHA1(e9fb82884f47694bebcad9254cb57a0b01dcd9c8) )
ROM_LOAD16_BYTE( "911-a04.28", 0x40001, 0x20000, CRC(6ff9d716) SHA1(303faec19a84afd6cbcf3ca5d4877693c11d406e) ) ROM_LOAD16_BYTE( "911-a04.28", 0x40001, 0x20000, CRC(6ff9d716) SHA1(303faec19a84afd6cbcf3ca5d4877693c11d406e) )
ROM_REGION( 0x20000*2, "audiocpu", 0 ) /* Z80 code, banked data */ ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 code, banked data */
ROM_LOAD( "911-a05.010", 0x00000, 0x08000, CRC(90455406) SHA1(dd2c5b96ac4b51251a3d34d97cc9af360afaa38c) ) ROM_LOAD( "911-a05.010", 0x00000, 0x08000, CRC(90455406) SHA1(dd2c5b96ac4b51251a3d34d97cc9af360afaa38c) )
ROM_CONTINUE( 0x10000, 0x08000 ) ROM_CONTINUE( 0x10000, 0x08000 )
ROM_COPY( "audiocpu", 0, 0x18000, 0x08000 )
ROM_REGION( 0x020000, "gfx1", ROMREGION_DISPOSE ) ROM_REGION( 0x020000, "gfx1", ROMREGION_DISPOSE )
ROM_LOAD( "911-a08.66", 0x000000, 0x10000, CRC(e7e04823) SHA1(d9b1ace5cd8218d5a4767cf5adbc267dce7c0668) ) /* chars */ ROM_LOAD( "911-a08.66", 0x000000, 0x10000, CRC(e7e04823) SHA1(d9b1ace5cd8218d5a4767cf5adbc267dce7c0668) ) /* chars */

View File

@ -23,7 +23,7 @@ Year + Game Game PCB Epoxy CPU Notes
To Do: To Do:
- Samples playing in rranger, starfigh, sparkman (AY8910 ports A&B) - Samples playing in starfigh, sparkman (AY8910 ports A&B)
Notes: Notes:
@ -576,6 +576,7 @@ static WRITE8_HANDLER( rranger_bankswitch_w )
*/ */
static READ8_HANDLER( rranger_soundstatus_r ) static READ8_HANDLER( rranger_soundstatus_r )
{ {
soundlatch2_r(space, offset);
return 0x02; return 0x02;
} }
@ -996,9 +997,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( rranger_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) static ADDRESS_MAP_START( rranger_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM ) // ROM AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM ) // ROM
AM_RANGE(0xc000, 0xc7ff) AM_WRITE(SMH_RAM ) // RAM AM_RANGE(0xc000, 0xc7ff) AM_WRITE(SMH_RAM ) // RAM
AM_RANGE(0xd000, 0xd000) AM_WRITE(soundlatch2_w ) // AM_RANGE(0xd000, 0xd000) AM_WRITE(soundlatch2_w ) // To Sound CPU
AM_RANGE(0xa000, 0xa001) AM_DEVWRITE("ym1", ym2203_w ) AM_RANGE(0xa000, 0xa001) AM_DEVWRITE("ym1", ym2203_w ) // Samples + Music
AM_RANGE(0xa002, 0xa003) AM_DEVWRITE("ym2", ym2203_w ) AM_RANGE(0xa002, 0xa003) AM_DEVWRITE("ym2", ym2203_w ) // Music + FX
ADDRESS_MAP_END ADDRESS_MAP_END
@ -1530,6 +1531,18 @@ MACHINE_DRIVER_END
/* 1 x 24 MHz crystal */ /* 1 x 24 MHz crystal */
static const ym2203_interface rranger_ym2203_interface =
{
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_HANDLER("samples", rranger_play_samples_w),
DEVCB_DEVICE_HANDLER("samples", suna8_samples_number_w),
}
};
/* 2203 + 8910 */ /* 2203 + 8910 */
static MACHINE_DRIVER_START( rranger ) static MACHINE_DRIVER_START( rranger )
@ -1561,10 +1574,16 @@ static MACHINE_DRIVER_START( rranger )
MDRV_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MDRV_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MDRV_SOUND_ADD("ym1", YM2203, SUNA8_MASTER_CLOCK / 6) MDRV_SOUND_ADD("ym1", YM2203, SUNA8_MASTER_CLOCK / 6)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MDRV_SOUND_CONFIG(rranger_ym2203_interface)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MDRV_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.90)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.90)
MDRV_SOUND_ADD("ym2", YM2203, SUNA8_MASTER_CLOCK / 6) MDRV_SOUND_ADD("ym2", YM2203, SUNA8_MASTER_CLOCK / 6)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.90)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.90)
MDRV_SOUND_ADD("samples", SAMPLES, 0)
MDRV_SOUND_CONFIG(suna8_samples_interface)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MDRV_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
MACHINE_DRIVER_END MACHINE_DRIVER_END
@ -2323,18 +2342,18 @@ static DRIVER_INIT( suna8 )
} }
/* Working Games */ /* Working Games */
GAME( 1988, rranger, 0, rranger, rranger, suna8, ROT0, "SunA (Sharp Image license)", "Rough Ranger (v2.0)", GAME_IMPERFECT_SOUND ) GAME( 1988, rranger, 0, rranger, rranger, suna8, ROT0, "SunA (Sharp Image license)", "Rough Ranger (v2.0)", 0)
GAME( 1988, hardhead, 0, hardhead, hardhead, hardhead, ROT0, "SunA", "Hard Head" , 0) GAME( 1988, hardhead, 0, hardhead, hardhead, hardhead, ROT0, "SunA", "Hard Head" , 0)
GAME( 1988, hardhedb, hardhead, hardhead, hardhead, hardhedb, ROT0, "bootleg", "Hard Head (bootleg)" , 0) GAME( 1988, hardhedb, hardhead, hardhead, hardhead, hardhedb, ROT0, "bootleg", "Hard Head (bootleg)" , 0)
GAME( 1988, pop_hh, hardhead, hardhead, hardhead, hardhedb, ROT0, "bootleg", "Popper (Hard Head bootleg)" , 0) GAME( 1988, pop_hh, hardhead, hardhead, hardhead, hardhedb, ROT0, "bootleg", "Popper (Hard Head bootleg)" , 0)
GAME( 1991, hardhea2, 0, hardhea2, hardhea2, hardhea2, ROT0, "SunA", "Hard Head 2 (v2.0)" , 0 ) GAME( 1991, hardhea2, 0, hardhea2, hardhea2, hardhea2, ROT0, "SunA", "Hard Head 2 (v2.0)" , 0 )
/* Non Working Games */ /* Non Working Games */
GAME( 1988, sranger, rranger, rranger, rranger, suna8, ROT0, "SunA", "Super Ranger (v2.0)", GAME_NOT_WORKING ) GAME( 1988, sranger, rranger, rranger, rranger, suna8, ROT0, "SunA", "Super Ranger (v2.0)", GAME_NOT_WORKING )
GAME( 1988, srangerb, rranger, rranger, rranger, suna8, ROT0, "bootleg", "Super Ranger (bootleg)", GAME_NOT_WORKING ) GAME( 1988, srangerb, rranger, rranger, rranger, suna8, ROT0, "bootleg", "Super Ranger (bootleg)", GAME_NOT_WORKING )
GAME( 1988, srangerw, rranger, rranger, rranger, suna8, ROT0, "SunA (WDK license)", "Super Ranger (WDK)", GAME_NOT_WORKING ) GAME( 1988, srangerw, rranger, rranger, rranger, suna8, ROT0, "SunA (WDK license)", "Super Ranger (WDK)", GAME_NOT_WORKING )
GAME( 1989, sparkman, 0, sparkman, sparkman, sparkman, ROT0, "SunA", "Spark Man (v 2.0)", GAME_NOT_WORKING ) GAME( 1989, sparkman, 0, sparkman, sparkman, sparkman, ROT0, "SunA", "Spark Man (v 2.0)", GAME_NOT_WORKING )
GAME( 1990, starfigh, 0, starfigh, hardhea2, starfigh, ROT90, "SunA", "Star Fighter (v1)", GAME_NOT_WORKING ) GAME( 1990, starfigh, 0, starfigh, hardhea2, starfigh, ROT90, "SunA", "Star Fighter (v1)", GAME_NOT_WORKING )
GAME( 1992, brickzn, 0, brickzn, brickzn, brickzn, ROT90, "SunA", "Brick Zone (v5.0)", GAME_NOT_WORKING ) GAME( 1992, brickzn, 0, brickzn, brickzn, brickzn, ROT90, "SunA", "Brick Zone (v5.0)", GAME_NOT_WORKING )
GAME( 1992, brickzn3, brickzn, brickzn, brickzn, brickzn3, ROT90, "SunA", "Brick Zone (v4.0)", GAME_NOT_WORKING ) GAME( 1992, brickzn3, brickzn, brickzn, brickzn, brickzn3, ROT90, "SunA", "Brick Zone (v4.0)", GAME_NOT_WORKING )

View File

@ -11,6 +11,9 @@ READ8_HANDLER( tokiob_mcu_r );
WRITE8_HANDLER( bublbobl_sound_command_w ); WRITE8_HANDLER( bublbobl_sound_command_w );
WRITE8_HANDLER( bublbobl_sh_nmi_disable_w ); WRITE8_HANDLER( bublbobl_sh_nmi_disable_w );
WRITE8_HANDLER( bublbobl_sh_nmi_enable_w ); WRITE8_HANDLER( bublbobl_sh_nmi_enable_w );
WRITE8_HANDLER( soundcpu_reset_w );
WRITE8_HANDLER( sound_status_w );
READ8_HANDLER( sound_status_r );
READ8_HANDLER( boblbobl_ic43_a_r ); READ8_HANDLER( boblbobl_ic43_a_r );
WRITE8_HANDLER( boblbobl_ic43_a_w ); WRITE8_HANDLER( boblbobl_ic43_a_w );
READ8_HANDLER( boblbobl_ic43_b_r ); READ8_HANDLER( boblbobl_ic43_b_r );

View File

@ -3,6 +3,7 @@
/*----------- defined in audio/suna8.c -----------*/ /*----------- defined in audio/suna8.c -----------*/
WRITE8_DEVICE_HANDLER( suna8_play_samples_w ); WRITE8_DEVICE_HANDLER( suna8_play_samples_w );
WRITE8_DEVICE_HANDLER( rranger_play_samples_w );
WRITE8_DEVICE_HANDLER( suna8_samples_number_w ); WRITE8_DEVICE_HANDLER( suna8_samples_number_w );
SAMPLES_START( suna8_sh_start ); SAMPLES_START( suna8_sh_start );

View File

@ -90,7 +90,7 @@ READ8_HANDLER( tokiob_mcu_r )
static int sound_nmi_enable,pending_nmi; static int sound_nmi_enable,pending_nmi,sound_status;
static TIMER_CALLBACK( nmi_callback ) static TIMER_CALLBACK( nmi_callback )
{ {
@ -119,7 +119,20 @@ WRITE8_HANDLER( bublbobl_sh_nmi_enable_w )
} }
} }
WRITE8_HANDLER(soundcpu_reset_w)
{
cpu_set_input_line(space->machine->cpu[2], INPUT_LINE_RESET, data ? ASSERT_LINE : CLEAR_LINE);
}
READ8_HANDLER( sound_status_r )
{
return sound_status;
}
WRITE8_HANDLER( sound_status_w )
{
sound_status = data;
}