scud: Hooked up Z80 digital sound board [R. Belmont]

This commit is contained in:
R. Belmont 2012-12-31 22:50:24 +00:00
parent d3570cf176
commit 069f37798a
2 changed files with 29 additions and 15 deletions

View File

@ -1636,6 +1636,11 @@ WRITE8_MEMBER(model3_state::model3_sound_w)
// clear the interrupt
model3_set_irq_line(machine(), 0x40, CLEAR_LINE);
if (m_dsbz80 != NULL)
{
m_dsbz80->latch_w(space, 0, data&0xff);
}
// send to the sound board
scsp_midi_in(machine().device("scsp1"), space, 0, data, 0);
@ -2258,10 +2263,10 @@ ROM_START( scud ) /* step 1.5, Sega game ID# is 833-13041, ROM board ID# 834-130
ROM_LOAD( "mpr-19670.22", 0x000000, 0x400000, CRC(bd31cc06) SHA1(d1c85d0cf79b92de5bcbe20dfb8b626ad72de019) )
ROM_LOAD( "mpr-19671.24", 0x400000, 0x400000, CRC(8e8526ab) SHA1(3d2cbb09bd185660feea4dd80bee5af2e2a19aa6) )
ROM_REGION( 0x20000, "cpu2", 0 ) /* Z80 code */
ROM_REGION( 0x20000, "mpegcpu", 0 ) /* Z80 code */
ROM_LOAD( "epr-19612.2", 0x000000, 0x20000, CRC(13978fd4) SHA1(bb597914a34308376239afab6e04fc231e39e379) )
ROM_REGION( 0x800000, "dsb", 0 ) /* DSB samples */
ROM_REGION( 0x800000, "mpeg", 0 ) /* DSB samples */
ROM_LOAD( "mpr-19603.57", 0x000000, 0x200000, CRC(b1b1765f) SHA1(cdcb4d6e6507322f84ac5153b386c3eb5d031e22) )
ROM_LOAD( "mpr-19604.58", 0x200000, 0x200000, CRC(6ac85b49) SHA1(3e74ae6e9ac7b208e2cd5ebdf80bb3cee19d436d) )
ROM_LOAD( "mpr-19605.59", 0x400000, 0x200000, CRC(bec891eb) SHA1(357849d2842ac77f9945eb4a0ca89253e474f617) )
@ -2333,10 +2338,10 @@ ROM_START( scudj ) /* step 1.5, Sega game ID# is 833-13041, ROM board ID# 12934
ROM_LOAD( "mpr-19601.22", 0x000000, 0x400000, CRC(ba350fcc) SHA1(b85a9d45e06e048c3e777cbb190d20b5ef72d1b3) )
ROM_LOAD( "mpr-19602.24", 0x400000, 0x400000, CRC(a92231c1) SHA1(9ecf97dce0a2184dc31906c6090c27494188384c) )
ROM_REGION( 0x20000, "cpu2", 0 ) /* Z80 code */
ROM_REGION( 0x20000, "mpegcpu", 0 ) /* Z80 code */
ROM_LOAD( "epr-19612.2", 0x000000, 0x20000, CRC(13978fd4) SHA1(bb597914a34308376239afab6e04fc231e39e379) )
ROM_REGION( 0x800000, "dsb", 0 ) /* DSB samples */
ROM_REGION( 0x800000, "mpeg", 0 ) /* DSB samples */
ROM_LOAD( "mpr-19603.57", 0x000000, 0x200000, CRC(b1b1765f) SHA1(cdcb4d6e6507322f84ac5153b386c3eb5d031e22) )
ROM_LOAD( "mpr-19604.58", 0x200000, 0x200000, CRC(6ac85b49) SHA1(3e74ae6e9ac7b208e2cd5ebdf80bb3cee19d436d) )
ROM_LOAD( "mpr-19605.59", 0x400000, 0x200000, CRC(bec891eb) SHA1(357849d2842ac77f9945eb4a0ca89253e474f617) )
@ -2408,10 +2413,10 @@ ROM_START( scuda ) /* step 1.5, Sega game ID# is 833-13041, ROM board ID# 834-13
ROM_LOAD( "mpr-19670.22", 0x000000, 0x400000, CRC(bd31cc06) SHA1(d1c85d0cf79b92de5bcbe20dfb8b626ad72de019) )
ROM_LOAD( "mpr-19671.24", 0x400000, 0x400000, CRC(8e8526ab) SHA1(3d2cbb09bd185660feea4dd80bee5af2e2a19aa6) )
ROM_REGION( 0x20000, "cpu2", 0 ) /* Z80 code */
ROM_REGION( 0x20000, "mpegcpu", 0 ) /* Z80 code */
ROM_LOAD( "epr-19612.2", 0x000000, 0x20000, CRC(13978fd4) SHA1(bb597914a34308376239afab6e04fc231e39e379) )
ROM_REGION( 0x800000, "dsb", 0 ) /* DSB samples */
ROM_REGION( 0x800000, "mpeg", 0 ) /* DSB samples */
ROM_LOAD( "mpr-19603.57", 0x000000, 0x200000, CRC(b1b1765f) SHA1(cdcb4d6e6507322f84ac5153b386c3eb5d031e22) )
ROM_LOAD( "mpr-19604.58", 0x200000, 0x200000, CRC(6ac85b49) SHA1(3e74ae6e9ac7b208e2cd5ebdf80bb3cee19d436d) )
ROM_LOAD( "mpr-19605.59", 0x400000, 0x200000, CRC(bec891eb) SHA1(357849d2842ac77f9945eb4a0ca89253e474f617) )
@ -2489,10 +2494,10 @@ ROM_START( scudplus ) /* step 1.5, Sega game ID# is 833-13260 SCUD PLUS, ROM boa
ROM_LOAD( "mpr-19670.22", 0x000000, 0x400000, CRC(bd31cc06) SHA1(d1c85d0cf79b92de5bcbe20dfb8b626ad72de019) )
ROM_LOAD( "mpr-20101.24", 0x400000, 0x400000, CRC(66d1e31f) SHA1(cbc06e9aebcdf82f14bef1c35cbb3203530ef6ae) )
ROM_REGION( 0x20000, "cpu2", 0 ) /* Z80 code */
ROM_REGION( 0x20000, "mpegcpu", 0 ) /* Z80 code */
ROM_LOAD( "epr-19612.2", 0x000000, 0x20000, CRC(13978fd4) SHA1(bb597914a34308376239afab6e04fc231e39e379) )
ROM_REGION( 0x800000, "dsb", 0 ) /* DSB samples */
ROM_REGION( 0x800000, "mpeg", 0 ) /* DSB samples */
ROM_LOAD( "mpr-19603.57", 0x000000, 0x200000, CRC(b1b1765f) SHA1(cdcb4d6e6507322f84ac5153b386c3eb5d031e22) )
ROM_LOAD( "mpr-19604.58", 0x200000, 0x200000, CRC(6ac85b49) SHA1(3e74ae6e9ac7b208e2cd5ebdf80bb3cee19d436d) )
ROM_LOAD( "mpr-19605.59", 0x400000, 0x200000, CRC(bec891eb) SHA1(357849d2842ac77f9945eb4a0ca89253e474f617) )
@ -2570,10 +2575,10 @@ ROM_START( scudplusa ) /* step 1.5, Sega game ID# is 833-13260 SCUD PLUS, ROM bo
ROM_LOAD( "mpr-19670.22", 0x000000, 0x400000, CRC(bd31cc06) SHA1(d1c85d0cf79b92de5bcbe20dfb8b626ad72de019) )
ROM_LOAD( "mpr-20101.24", 0x400000, 0x400000, CRC(66d1e31f) SHA1(cbc06e9aebcdf82f14bef1c35cbb3203530ef6ae) )
ROM_REGION( 0x20000, "cpu2", 0 ) /* Z80 code */
ROM_REGION( 0x20000, "mpegcpu", 0 ) /* Z80 code */
ROM_LOAD( "epr-19612.2", 0x000000, 0x20000, CRC(13978fd4) SHA1(bb597914a34308376239afab6e04fc231e39e379) )
ROM_REGION( 0x800000, "dsb", 0 ) /* DSB samples */
ROM_REGION( 0x800000, "mpeg", 0 ) /* DSB samples */
ROM_LOAD( "mpr-19603.57", 0x000000, 0x200000, CRC(b1b1765f) SHA1(cdcb4d6e6507322f84ac5153b386c3eb5d031e22) )
ROM_LOAD( "mpr-19604.58", 0x200000, 0x200000, CRC(6ac85b49) SHA1(3e74ae6e9ac7b208e2cd5ebdf80bb3cee19d436d) )
ROM_LOAD( "mpr-19605.59", 0x400000, 0x200000, CRC(bec891eb) SHA1(357849d2842ac77f9945eb4a0ca89253e474f617) )
@ -5438,6 +5443,12 @@ static MACHINE_CONFIG_START( model3_15, model3_state )
MCFG_LSI53C810_ADD( "scsi:lsi53c810", lsi53c810_intf)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED(scud, model3_15)
MCFG_DSBZ80_ADD(DSBZ80_TAG)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( model3_20, model3_state )
MCFG_CPU_ADD("maincpu", PPC603R, 166000000)
MCFG_CPU_CONFIG(model3_2x)
@ -5967,11 +5978,11 @@ GAME( 1997, bassdx, bass, model3_10, bass, model3_state, getbass, ROT0
GAME( 1997, getbass, bass, model3_10, bass, model3_state, getbass, ROT0, "Sega", "Get Bass", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
/* Model 3 Step 1.5 */
GAME( 1996, scud, 0, model3_15, scud, model3_state, scud, ROT0, "Sega", "Scud Race Twin (Australia)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1996, scudj, scud, model3_15, scud, model3_state, scud, ROT0, "Sega", "Scud Race Deluxe (Japan)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1996, scuda, scud, model3_15, scud, model3_state, scud, ROT0, "Sega", "Scud Race Twin (Export)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1997, scudplus, scud, model3_15, scud, model3_state, scudplus, ROT0, "Sega", "Scud Race Plus (Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1997, scudplusa, scud, model3_15, scud, model3_state, scudplusa, ROT0, "Sega", "Scud Race Plus", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1996, scud, 0, scud, scud, model3_state, scud, ROT0, "Sega", "Scud Race Twin (Australia)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1996, scudj, scud, scud, scud, model3_state, scud, ROT0, "Sega", "Scud Race Deluxe (Japan)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1996, scuda, scud, scud, scud, model3_state, scud, ROT0, "Sega", "Scud Race Twin (Export)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1997, scudplus, scud, scud, scud, model3_state, scudplus, ROT0, "Sega", "Scud Race Plus (Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1997, scudplusa, scud, scud, scud, model3_state, scudplusa, ROT0, "Sega", "Scud Race Plus", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1997, lostwsga, 0, model3_15, lostwsga, model3_state, lostwsga, ROT0, "Sega", "The Lost World", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1997, vs215, vs2, model3_15, model3, model3_state, vs215, ROT0, "Sega", "Virtua Striker 2 (Step 1.5)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
GAME( 1997, vs215o, vs2, model3_15, model3, model3_state, vs215, ROT0, "Sega", "Virtua Striker 2 (Step 1.5, older)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )

View File

@ -1,6 +1,7 @@
#include "video/poly.h"
#include "machine/scsibus.h"
#include "machine/53c810.h"
#include "audio/dsbz80.h"
typedef float MATRIX[4][4];
typedef float VECTOR[4];
@ -21,6 +22,7 @@ public:
m_lsi53c810(*this, "scsi:lsi53c810"),
m_work_ram(*this, "work_ram"),
m_paletteram64(*this, "paletteram64"),
m_dsbz80(*this, DSBZ80_TAG),
m_soundram(*this, "soundram"){ }
required_device<cpu_device> m_maincpu;
@ -28,6 +30,7 @@ public:
required_shared_ptr<UINT64> m_work_ram;
required_shared_ptr<UINT64> m_paletteram64;
optional_device<dsbz80_device> m_dsbz80; // Z80-based MPEG Digital Sound Board
required_shared_ptr<UINT16> m_soundram;
int m_sound_irq_enable;