diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c index 54163ffea74..be840817506 100644 --- a/src/mame/drivers/model2.c +++ b/src/mame/drivers/model2.c @@ -1013,6 +1013,11 @@ WRITE32_MEMBER(model2_state::model2_serial_w) { if (ACCESSING_BITS_0_7 && (offset == 0)) { + if (m_dsbz80 != NULL) + { + m_dsbz80->latch_w(space, 0, data&0xff); + } + scsp_midi_in(machine().device("scsp"), space, 0, data&0xff, 0); // give the 68k time to notice @@ -2220,6 +2225,12 @@ static MACHINE_CONFIG_START( model2c, model2_state ) MCFG_SOUND_ROUTE(0, "rspeaker", 2.0) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( stcc, model2c ) + MCFG_DSBZ80_ADD(DSBZ80_TAG) + MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) +MACHINE_CONFIG_END + /* ROM definitions */ /* @@ -3379,8 +3390,8 @@ ROM_START( stcc ) /* Sega Touring Car Championship, Model 2C - Defaults to Japan ROM_REGION( 0x100000, "audiocpu", 0 ) // Sound program ROM_LOAD16_WORD_SWAP("epr-19274.31", 0x080000, 0x20000, CRC(2dcc08ae) SHA1(bad26e2c994f2d4db5d9be0e34cf21a8bf5aa7e9) ) - ROM_REGION( 0x20000, "cpu3", 0) // DSB program - ROM_LOAD16_WORD_SWAP("epr-19275.2s", 0x000000, 0x20000, CRC(ee809d3f) SHA1(347080858fbfe9955002f382603a1b86a52d26d5) ) + ROM_REGION( 0x20000, "mpegcpu", 0) // DSB program + ROM_LOAD("epr-19275.2s", 0x000000, 0x20000, CRC(ee809d3f) SHA1(347080858fbfe9955002f382603a1b86a52d26d5) ) ROM_REGION( 0x20000, "cpu4", 0) // Communication program ROM_LOAD16_WORD_SWAP("epr-18643a.7", 0x000000, 0x20000, CRC(b5e048ec) SHA1(8182e05a2ffebd590a936c1359c81e60caa79c2a)) @@ -3438,8 +3449,8 @@ ROM_START( stcca ) /* Sega Touring Car Championship Revision A, Model 2C - Defau ROM_REGION( 0x100000, "audiocpu", 0 ) // Sound program ROM_LOAD16_WORD_SWAP("epr-19274.31", 0x080000, 0x20000, CRC(2dcc08ae) SHA1(bad26e2c994f2d4db5d9be0e34cf21a8bf5aa7e9) ) - ROM_REGION( 0x20000, "cpu3", 0) // DSB program - ROM_LOAD16_WORD_SWAP("epr-19275.2s", 0x000000, 0x20000, CRC(ee809d3f) SHA1(347080858fbfe9955002f382603a1b86a52d26d5) ) + ROM_REGION( 0x20000, "mpegcpu", 0) // DSB program + ROM_LOAD("epr-19275.2s", 0x000000, 0x20000, CRC(ee809d3f) SHA1(347080858fbfe9955002f382603a1b86a52d26d5) ) ROM_REGION( 0x20000, "cpu4", 0) // Communication program ROM_LOAD16_WORD_SWAP("epr-18643a.7", 0x000000, 0x20000, CRC(b5e048ec) SHA1(8182e05a2ffebd590a936c1359c81e60caa79c2a)) @@ -3497,7 +3508,7 @@ ROM_START( stccb ) /* Sega Touring Car Championship Revision unknown, Model 2C - ROM_REGION( 0x100000, "audiocpu", 0 ) // Sound program ROM_LOAD16_WORD_SWAP("epr-19274.31", 0x080000, 0x20000, CRC(2dcc08ae) SHA1(bad26e2c994f2d4db5d9be0e34cf21a8bf5aa7e9) ) - ROM_REGION( 0x20000, "cpu3", 0) // DSB program + ROM_REGION( 0x20000, "mpegcpu", 0) // DSB program ROM_LOAD16_WORD_SWAP("epr-19275.2s", 0x000000, 0x20000, CRC(ee809d3f) SHA1(347080858fbfe9955002f382603a1b86a52d26d5) ) ROM_REGION( 0x20000, "cpu4", 0) // Communication program @@ -5379,9 +5390,9 @@ GAME( 1995, rchase2, 0, model2b, rchase2, model2_state,rchase2, ROT0, "S // Model 2C-CRX (TGPx4, SCSP sound board) GAME( 1996, skisuprg, 0, model2c, model2, driver_device, 0, ROT0, "Sega", "Sega Ski Super G", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, stcc, 0, model2c, model2, driver_device, 0, ROT0, "Sega", "Sega Touring Car Championship", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, stcca, stcc, model2c, model2, driver_device, 0, ROT0, "Sega", "Sega Touring Car Championship (Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, stccb, stcc, model2c, model2, driver_device, 0, ROT0, "Sega", "Sega Touring Car Championship (Unknown Revision)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) +GAME( 1996, stcc, 0, stcc, model2, driver_device, 0, ROT0, "Sega", "Sega Touring Car Championship", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) +GAME( 1996, stcca, stcc, stcc, model2, driver_device, 0, ROT0, "Sega", "Sega Touring Car Championship (Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) +GAME( 1996, stccb, stcc, stcc, model2, driver_device, 0, ROT0, "Sega", "Sega Touring Car Championship (Unknown Revision)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) GAME( 1996, waverunr, 0, model2c, model2, driver_device, 0, ROT0, "Sega", "Wave Runner (Japan, Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) GAME( 1997, hotd, 0, model2c, model2, driver_device, 0, ROT0, "Sega", "House of the Dead", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) GAME( 1997, overrev, 0, model2c, srallyc, model2_state,overrev, ROT0, "Jaleco", "Over Rev (Model 2C, Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) diff --git a/src/mame/includes/model2.h b/src/mame/includes/model2.h index 0bcb3ae50c7..fafbe394507 100644 --- a/src/mame/includes/model2.h +++ b/src/mame/includes/model2.h @@ -1,5 +1,5 @@ #include "video/poly.h" - +#include "audio/dsbz80.h" struct raster_state; struct geo_state; @@ -19,6 +19,7 @@ public: m_textureram1(*this, "textureram1"), m_lumaram(*this, "lumaram"), m_soundram(*this, "soundram"), + m_dsbz80(*this, DSBZ80_TAG), m_tgp_program(*this, "tgp_program"){ } required_device m_maincpu; @@ -30,6 +31,7 @@ public: required_shared_ptr m_textureram1; required_shared_ptr m_lumaram; optional_shared_ptr m_soundram; + optional_device m_dsbz80; // Z80-based MPEG Digital Sound Board optional_shared_ptr m_tgp_program; UINT32 m_intreq;