diff --git a/.gitattributes b/.gitattributes index 2f616d77805..8319e3edfed 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2682,6 +2682,8 @@ src/mame/audio/redbaron.h svneol=native#text/plain src/mame/audio/scramble.c svneol=native#text/plain src/mame/audio/segag80r.c svneol=native#text/plain src/mame/audio/segag80v.c svneol=native#text/plain +src/mame/audio/segam1audio.c svneol=native#text/plain +src/mame/audio/segam1audio.h svneol=native#text/plain src/mame/audio/segasnd.c svneol=native#text/plain src/mame/audio/segasnd.h svneol=native#text/plain src/mame/audio/seibu.c svneol=native#text/plain diff --git a/src/mame/audio/segam1audio.c b/src/mame/audio/segam1audio.c new file mode 100644 index 00000000000..5a36f98dfae --- /dev/null +++ b/src/mame/audio/segam1audio.c @@ -0,0 +1,175 @@ +/*************************************************************************** + + Sega Model 1 sound board (68000 + 2x 315-5560 "MultiPCM") + + used for Model 1 and early Model 2 games + +***************************************************************************/ + +#include "audio/segam1audio.h" + +#define M68000_TAG "m1sndcpu" +#define MULTIPCM_1_TAG "m1pcm1" +#define MULTIPCM_2_TAG "m1pcm2" +#define YM3438_TAG "m1ym" + +static ADDRESS_MAP_START( segam1audio_map, AS_PROGRAM, 16, segam1audio_device ) + AM_RANGE(0x000000, 0x0bffff) AM_ROM AM_REGION(":m1sndcpu", 0) + AM_RANGE(0xc20000, 0xc20001) AM_READWRITE(m1_snd_68k_latch_r, m1_snd_68k_latch1_w ) + AM_RANGE(0xc20002, 0xc20003) AM_READWRITE(m1_snd_v60_ready_r, m1_snd_68k_latch2_w ) + AM_RANGE(0xc40000, 0xc40007) AM_DEVREADWRITE8(MULTIPCM_1_TAG, multipcm_device, read, write, 0x00ff ) + AM_RANGE(0xc40012, 0xc40013) AM_WRITENOP + AM_RANGE(0xc50000, 0xc50001) AM_WRITE(m1_snd_mpcm_bnk1_w ) + AM_RANGE(0xc60000, 0xc60007) AM_DEVREADWRITE8(MULTIPCM_1_TAG, multipcm_device, read, write, 0x00ff ) + AM_RANGE(0xc70000, 0xc70001) AM_WRITE(m1_snd_mpcm_bnk2_w ) + AM_RANGE(0xd00000, 0xd00007) AM_DEVREADWRITE8(YM3438_TAG, ym3438_device, read, write, 0x00ff ) + AM_RANGE(0xf00000, 0xf0ffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( mpcm1_map, AS_0, 8, segam1audio_device ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM AM_REGION(":m1pcm1", 0) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( mpcm2_map, AS_0, 8, segam1audio_device ) + AM_RANGE(0x000000, 0x3fffff) AM_ROM AM_REGION(":m1pcm2", 0) +ADDRESS_MAP_END + +MACHINE_CONFIG_FRAGMENT( segam1audio ) + MCFG_CPU_ADD(M68000_TAG, M68000, 10000000) // verified on real h/w + MCFG_CPU_PROGRAM_MAP(segam1audio_map) + + MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") + + MCFG_SOUND_ADD(YM3438_TAG, YM3438, 8000000) + MCFG_SOUND_ROUTE(0, "lspeaker", 0.60) + MCFG_SOUND_ROUTE(1, "rspeaker", 0.60) + + MCFG_SOUND_ADD(MULTIPCM_1_TAG, MULTIPCM, 8000000) + MCFG_DEVICE_ADDRESS_MAP(AS_0, mpcm1_map) + MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) + + MCFG_SOUND_ADD(MULTIPCM_2_TAG, MULTIPCM, 8000000) + MCFG_DEVICE_ADDRESS_MAP(AS_0, mpcm2_map) + MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) +MACHINE_CONFIG_END + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +const device_type SEGAM1AUDIO = &device_creator; + +//------------------------------------------------- +// machine_config_additions - device-specific +// machine configurations +//------------------------------------------------- + +machine_config_constructor segam1audio_device::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( segam1audio ); +} + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// segam1audio_device - constructor +//------------------------------------------------- + +segam1audio_device::segam1audio_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : + device_t(mconfig, SEGAM1AUDIO, "Sega Model 1 Sound Board", tag, owner, clock, "segam1audio", __FILE__), + m_audiocpu(*this, M68000_TAG), + m_multipcm_1(*this, MULTIPCM_1_TAG), + m_multipcm_2(*this, MULTIPCM_2_TAG), + m_ym(*this, YM3438_TAG) +{ +} + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void segam1audio_device::device_start() +{ +} + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void segam1audio_device::device_reset() +{ + // init the sound FIFO + m_fifo_rptr = m_fifo_wptr = 0; + memset(m_to_68k, 0, sizeof(m_to_68k)); +} + +READ16_MEMBER(segam1audio_device::m1_snd_68k_latch_r) +{ + UINT16 retval; + + retval = m_to_68k[m_fifo_rptr]; + + m_fifo_rptr++; + if (m_fifo_rptr >= ARRAY_LENGTH(m_to_68k)) m_fifo_rptr = 0; + + return retval; +} + +READ16_MEMBER(segam1audio_device::m1_snd_v60_ready_r) +{ + return 1; +} + +WRITE16_MEMBER(segam1audio_device::m1_snd_mpcm_bnk1_w) +{ + m_multipcm_1->set_bank(0x100000 * (data & 3), 0x100000 * (data & 3)); +} + +WRITE16_MEMBER(segam1audio_device::m1_snd_mpcm_bnk2_w) +{ + m_multipcm_2->set_bank(0x100000 * (data & 3), 0x100000 * (data & 3)); +} + +WRITE16_MEMBER(segam1audio_device::m1_snd_68k_latch1_w) +{ +} + +WRITE16_MEMBER(segam1audio_device::m1_snd_68k_latch2_w) +{ +} + +READ16_MEMBER(segam1audio_device::ready_r) +{ + int sr = m_audiocpu->state_int(M68K_SR); + + if ((sr & 0x0700) > 0x0100) + { + return 0; + } + + return 0xff; +} + +void segam1audio_device::check_fifo_irq() +{ + // if the FIFO has something in it, signal the 68k + if (m_fifo_rptr != m_fifo_wptr) + { + m_audiocpu->set_input_line(2, HOLD_LINE); + } +} + +void segam1audio_device::write_fifo(UINT8 data) +{ + m_to_68k[m_fifo_wptr] = data; + m_fifo_wptr++; + if (m_fifo_wptr >= ARRAY_LENGTH(m_to_68k)) m_fifo_wptr = 0; + + // signal the 68000 that there's data waiting + m_audiocpu->set_input_line(2, HOLD_LINE); +} + diff --git a/src/mame/audio/segam1audio.h b/src/mame/audio/segam1audio.h new file mode 100644 index 00000000000..ae01a23504e --- /dev/null +++ b/src/mame/audio/segam1audio.h @@ -0,0 +1,62 @@ +#pragma once + +#ifndef __SEGAM1AUDIO_H__ +#define __SEGAM1AUDIO_H__ + +#include "emu.h" +#include "cpu/m68000/m68000.h" +#include "sound/2612intf.h" +#include "sound/multipcm.h" + +#define M1AUDIO_CPU_REGION "m1sndcpu" +#define M1AUDIO_MPCM1_REGION "m1pcm1" +#define M1AUDIO_MPCM2_REGION "m1pcm2" + +#define MCFG_SEGAM1AUDIO_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, SEGAM1AUDIO, 0) + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +class segam1audio_device : public device_t +{ +public: + // construction/destruction + segam1audio_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const; + + required_device m_audiocpu; + required_device m_multipcm_1; + required_device m_multipcm_2; + required_device m_ym; + + DECLARE_READ16_MEMBER(m1_snd_68k_latch_r); + DECLARE_READ16_MEMBER(m1_snd_v60_ready_r); + DECLARE_WRITE16_MEMBER(m1_snd_mpcm_bnk1_w); + DECLARE_WRITE16_MEMBER(m1_snd_mpcm_bnk2_w); + DECLARE_WRITE16_MEMBER(m1_snd_68k_latch1_w); + DECLARE_WRITE16_MEMBER(m1_snd_68k_latch2_w); + DECLARE_READ16_MEMBER(ready_r); + + void check_fifo_irq(); + void write_fifo(UINT8 data); + +protected: + // device-level overrides + virtual void device_start(); + virtual void device_reset(); + +private: + int m_to_68k[8]; + int m_fifo_rptr; + int m_fifo_wptr; +}; + + +// device type definition +extern const device_type SEGAM1AUDIO; + +#endif /* __SEGAM1AUDIO_H__ */ diff --git a/src/mame/drivers/model1.c b/src/mame/drivers/model1.c index 471828975f0..14dbfffb12f 100644 --- a/src/mame/drivers/model1.c +++ b/src/mame/drivers/model1.c @@ -627,9 +627,7 @@ Notes: #include "emu.h" #include "cpu/v60/v60.h" #include "video/segaic24.h" -#include "cpu/m68000/m68000.h" #include "cpu/mb86233/mb86233.h" -#include "sound/2612intf.h" #include "machine/nvram.h" #include "includes/model1.h" @@ -742,11 +740,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(model1_state::model1_interrupt) { irq_raise(m_sound_irq); - // if the FIFO has something in it, signal the 68k too - if (m_fifo_rptr != m_fifo_wptr) - { - m_audiocpu->set_input_line(2, HOLD_LINE); - } + m_m1audio->check_fifo_irq(); } } @@ -763,10 +757,6 @@ MACHINE_RESET_MEMBER(model1_state,model1) { m_sound_irq = 3; } - - // init the sound FIFO - m_fifo_rptr = m_fifo_wptr = 0; - memset(m_to_68k, 0, sizeof(m_to_68k)); } MACHINE_RESET_MEMBER(model1_state,model1_vr) @@ -775,10 +765,6 @@ MACHINE_RESET_MEMBER(model1_state,model1_vr) irq_init(); model1_vr_tgp_reset(machine()); m_sound_irq = 3; - - // init the sound FIFO - m_fifo_rptr = m_fifo_wptr = 0; - memset(m_to_68k, 0, sizeof(m_to_68k)); } READ16_MEMBER(model1_state::network_ctl_r) @@ -852,12 +838,10 @@ WRITE16_MEMBER(model1_state::mr2_w) READ16_MEMBER(model1_state::snd_68k_ready_r) { - int sr = m_audiocpu->state_int(M68K_SR); - - if ((sr & 0x0700) > 0x0100) + if (m_m1audio->ready_r(space, 0) == 0) { space.device().execute().spin_until_time(attotime::from_usec(40)); - return 0; // not ready yet, interrupts disabled + return 0; } return 0xff; @@ -865,9 +849,7 @@ READ16_MEMBER(model1_state::snd_68k_ready_r) WRITE16_MEMBER(model1_state::snd_latch_to_68k_w) { - m_to_68k[m_fifo_wptr] = data; - m_fifo_wptr++; - if (m_fifo_wptr >= ARRAY_LENGTH(m_to_68k)) m_fifo_wptr = 0; + m_m1audio->write_fifo(data); if (data == 0xae) { @@ -891,8 +873,6 @@ WRITE16_MEMBER(model1_state::snd_latch_to_68k_w) m_last_snd_cmd = data; m_snd_cmd_state++; - // signal the 68000 that there's data waiting - m_audiocpu->set_input_line(2, HOLD_LINE); // give the 68k time to reply space.device().execute().spin_until_time(attotime::from_usec(40)); } @@ -993,53 +973,6 @@ static ADDRESS_MAP_START( model1_vr_io, AS_IO, 16, model1_state ) AM_RANGE(0xd80000, 0xd80003) AM_READ(model1_vr_tgp_r) ADDRESS_MAP_END -READ16_MEMBER(model1_state::m1_snd_68k_latch_r) -{ - UINT16 retval; - - retval = m_to_68k[m_fifo_rptr]; - - m_fifo_rptr++; - if (m_fifo_rptr >= ARRAY_LENGTH(m_to_68k)) m_fifo_rptr = 0; - - return retval; -} - -READ16_MEMBER(model1_state::m1_snd_v60_ready_r) -{ - return 1; -} - -WRITE16_MEMBER(model1_state::m1_snd_mpcm_bnk1_w) -{ - m_multipcm_1->set_bank(0x100000 * (data & 3), 0x100000 * (data & 3)); -} -WRITE16_MEMBER(model1_state::m1_snd_mpcm_bnk2_w) -{ - m_multipcm_2->set_bank(0x100000 * (data & 3), 0x100000 * (data & 3)); -} -WRITE16_MEMBER(model1_state::m1_snd_68k_latch1_w) -{ -} - -WRITE16_MEMBER(model1_state::m1_snd_68k_latch2_w) -{ -} - -static ADDRESS_MAP_START( model1_snd, AS_PROGRAM, 16, model1_state ) - AM_RANGE(0x000000, 0x0bffff) AM_ROM - AM_RANGE(0xc20000, 0xc20001) AM_READWRITE(m1_snd_68k_latch_r, m1_snd_68k_latch1_w ) - AM_RANGE(0xc20002, 0xc20003) AM_READWRITE(m1_snd_v60_ready_r, m1_snd_68k_latch2_w ) - AM_RANGE(0xc40000, 0xc40007) AM_DEVREADWRITE8("sega1", multipcm_device, read, write, 0x00ff ) - AM_RANGE(0xc40012, 0xc40013) AM_WRITENOP - AM_RANGE(0xc50000, 0xc50001) AM_WRITE(m1_snd_mpcm_bnk1_w ) - AM_RANGE(0xc60000, 0xc60007) AM_DEVREADWRITE8("sega2", multipcm_device, read, write, 0x00ff ) - AM_RANGE(0xc70000, 0xc70001) AM_WRITE(m1_snd_mpcm_bnk2_w ) - AM_RANGE(0xd00000, 0xd00007) AM_DEVREADWRITE8("ymsnd", ym3438_device, read, write, 0x00ff ) - AM_RANGE(0xf00000, 0xf0ffff) AM_RAM -ADDRESS_MAP_END - - static INPUT_PORTS_START( vf ) PORT_START("IN0") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) @@ -1217,16 +1150,16 @@ ROM_START( vf ) ROM_LOAD16_BYTE( "mpr-16090.12", 0x1300000, 0x80000, CRC(90c76831) SHA1(5a3c25f2a131cfbb2ad067bef1ab7b1c95645d41) ) ROM_LOAD16_BYTE( "mpr-16091.13", 0x1300001, 0x80000, CRC(53115448) SHA1(af798d5b1fcb720d7288a5ac48839d9ace16a2f2) ) - ROM_REGION( 0xc0000, "audiocpu", 0 ) /* 68K code */ + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ ROM_LOAD16_WORD_SWAP( "epr-16120.7", 0x00000, 0x20000, CRC(2bff8378) SHA1(854b08ab983e4e98cb666f2f44de9a6829b1eb52) ) ROM_LOAD16_WORD_SWAP( "epr-16121.8", 0x20000, 0x20000, CRC(ff6723f9) SHA1(53498b8c103745883657dfd6efe27edfd48b356f) ) ROM_RELOAD( 0x80000, 0x20000) - ROM_REGION( 0x400000, "sega1", 0 ) /* Samples */ + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) /* Samples */ ROM_LOAD( "mpr-16122.32", 0x000000, 0x200000, CRC(568bc64e) SHA1(31fd0ef8319efe258011b4621adebb790b620770) ) ROM_LOAD( "mpr-16123.33", 0x200000, 0x200000, CRC(15d78844) SHA1(37c17e38604cf7004a951408024941cd06b1d93e) ) - ROM_REGION( 0x400000, "sega2", 0 ) /* Samples */ + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */ ROM_LOAD( "mpr-16124.4", 0x000000, 0x200000, CRC(45520ba1) SHA1(c33e3c12639961016e5fa6b5025d0a67dff28907) ) ROM_LOAD( "mpr-16125.5", 0x200000, 0x200000, CRC(9b4998b6) SHA1(0418d9b0acf79f35d0f7575c21f1be9a0ea343da) ) @@ -1260,13 +1193,13 @@ ROM_START( vr ) ROM_LOAD16_BYTE( "mpr-14888.12", 0x1300000, 0x80000, CRC(04BFDC5B) SHA1(bb8788a761620d0440a62ae51c3b41f70a04b5e4) ) ROM_LOAD16_BYTE( "mpr-14889.13", 0x1300001, 0x80000, CRC(C49F0486) SHA1(cc2bb9059c016ba2c4f6e7508bd1687df07b8b48) ) - ROM_REGION( 0xc0000, "audiocpu", 0 ) /* 68K code */ + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ ROM_LOAD16_WORD_SWAP( "epr-14870a.7", 0x00000, 0x20000, CRC(919d9b75) SHA1(27be79881cc9a2b5cf37e18f1e2d87251426b428) ) - ROM_REGION( 0x400000, "sega1", 0 ) /* Samples */ + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) /* Samples */ ROM_LOAD( "mpr-14873.32", 0x000000, 0x200000, CRC(b1965190) SHA1(fc47e9ed4a44d48477bd9a35e42c26508c0f4a0c) ) - ROM_REGION( 0x400000, "sega2", 0 ) /* Samples */ + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */ ROM_LOAD( "mpr-14876.4", 0x000000, 0x200000, CRC(ba6b2327) SHA1(02285520624a4e612cb4b65510e3458b13b1c6ba) ) ROM_REGION32_LE( 0x1000000, "user1", 0 ) /* TGP model roms */ @@ -1313,13 +1246,13 @@ ROM_START( vformula ) ROM_LOAD16_BYTE( "mpr-14888.12", 0x1300000, 0x80000, CRC(04BFDC5B) SHA1(bb8788a761620d0440a62ae51c3b41f70a04b5e4) ) ROM_LOAD16_BYTE( "mpr-14889.13", 0x1300001, 0x80000, CRC(C49F0486) SHA1(cc2bb9059c016ba2c4f6e7508bd1687df07b8b48) ) - ROM_REGION( 0xc0000, "audiocpu", 0 ) /* 68K code */ + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ ROM_LOAD16_WORD_SWAP( "epr-14870a.7", 0x00000, 0x20000, CRC(919d9b75) SHA1(27be79881cc9a2b5cf37e18f1e2d87251426b428) ) - ROM_REGION( 0x400000, "sega1", 0 ) /* Samples */ + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) /* Samples */ ROM_LOAD( "mpr-14873.32", 0x000000, 0x200000, CRC(b1965190) SHA1(fc47e9ed4a44d48477bd9a35e42c26508c0f4a0c) ) - ROM_REGION( 0x400000, "sega2", 0 ) /* Samples */ + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */ ROM_LOAD( "mpr-14876.4", 0x000000, 0x200000, CRC(ba6b2327) SHA1(02285520624a4e612cb4b65510e3458b13b1c6ba) ) ROM_REGION32_LE( 0x1000000, "user1", 0 ) /* TGP model roms */ @@ -1357,15 +1290,15 @@ ROM_START( swa ) ROM_RELOAD( 0x000000, 0x80000 ) ROM_RELOAD( 0x080000, 0x80000 ) - ROM_REGION( 0xc0000, "audiocpu", 0 ) /* 68K code */ + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ ROM_LOAD16_WORD_SWAP( "epr-16470.bin", 0x000000, 0x020000, CRC(7da18cf7) SHA1(bd432d882d217277faee120e2577357a32eb4a6e) ) ROM_RELOAD(0x80000, 0x20000) - ROM_REGION( 0x400000, "sega1", 0 ) /* Samples */ + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) /* Samples */ ROM_LOAD( "mpr-16486.bin", 0x000000, 0x200000, CRC(7df50533) SHA1(f2fb876738e37d70eb9005e5629a9ae89aa413a8) ) ROM_LOAD( "mpr-16487.bin", 0x200000, 0x200000, CRC(31b28dfa) SHA1(bd1ac11bf2f9161f61f8af3b9ff4c2709b7ee700) ) - ROM_REGION( 0x400000, "sega2", 0 ) /* Samples */ + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */ ROM_LOAD( "mpr-16484.bin", 0x000000, 0x200000, CRC(9d4c334d) SHA1(8b4d903f14559fed425d225bb23ccfe8da23cbd3) ) ROM_LOAD( "mpr-16485.bin", 0x200000, 0x200000, CRC(95aadcad) SHA1(4276db655db9834692c3843eb96a3e3a89cb7252) ) @@ -1412,16 +1345,16 @@ ROM_START( wingwar ) ROM_LOAD16_BYTE( "mpr-16734.10", 0x1200000, 0x80000, CRC(f76371c1) SHA1(0ff082db3877383d0dd977dc60c932b725e3d164) ) ROM_LOAD16_BYTE( "mpr-16733.11", 0x1200001, 0x80000, CRC(e105847b) SHA1(8489a6c91fd6d1e9ba81e8eaf36c514da30dccbe) ) - ROM_REGION( 0xc0000, "audiocpu", 0 ) /* 68K code */ + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ ROM_LOAD16_WORD_SWAP("epr-17126.7", 0x000000, 0x20000, CRC(50178e40) SHA1(fb01aecfbe4e90adc997de0d45a63c16ef353b37) ) ROM_LOAD16_WORD_SWAP("epr-16752.8", 0x020000, 0x20000, CRC(6541c48f) SHA1(9341eff160e31a8574b9545fafc1c4059323fa0c) ) ROM_RELOAD(0x80000, 0x20000) - ROM_REGION( 0x400000, "sega1", 0 ) /* Samples */ + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) /* Samples */ ROM_LOAD("mpr-16753.32", 0x000000, 0x200000, CRC(324a8333) SHA1(960342e08db637c6f72615d49cffd9fb0889620b) ) ROM_LOAD("mpr-16754.33", 0x200000, 0x200000, CRC(144f3cf5) SHA1(d2f8cc9086affbbc5ef2195272200230f724e5d1) ) - ROM_REGION( 0x400000, "sega2", 0 ) /* Samples */ + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */ ROM_LOAD("mpr-16755.4", 0x000000, 0x200000, CRC(4baaf878) SHA1(661d4ea9be6a4952852d0ef94becee7ed42bf4a1) ) ROM_LOAD("mpr-16756.5", 0x200000, 0x200000, CRC(d9c40672) SHA1(83e6f1156b30888d3a00103f079dc74f4fca8446) ) @@ -1459,16 +1392,16 @@ ROM_START( wingwaru ) ROM_LOAD16_BYTE( "mpr-16734.10", 0x1200000, 0x80000, CRC(f76371c1) SHA1(0ff082db3877383d0dd977dc60c932b725e3d164) ) ROM_LOAD16_BYTE( "mpr-16733.11", 0x1200001, 0x80000, CRC(e105847b) SHA1(8489a6c91fd6d1e9ba81e8eaf36c514da30dccbe) ) - ROM_REGION( 0xc0000, "audiocpu", 0 ) /* 68K code */ + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ ROM_LOAD16_WORD_SWAP("epr-16751.7", 0x000000, 0x20000, CRC(23ba5ebc) SHA1(b98aab546c5e980baeedbada4e7472eb4c588260) ) ROM_LOAD16_WORD_SWAP("epr-16752.8", 0x020000, 0x20000, CRC(6541c48f) SHA1(9341eff160e31a8574b9545fafc1c4059323fa0c) ) ROM_RELOAD(0x80000, 0x20000) - ROM_REGION( 0x400000, "sega1", 0 ) /* Samples */ + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) /* Samples */ ROM_LOAD("mpr-16753.32", 0x000000, 0x200000, CRC(324a8333) SHA1(960342e08db637c6f72615d49cffd9fb0889620b) ) ROM_LOAD("mpr-16754.33", 0x200000, 0x200000, CRC(144f3cf5) SHA1(d2f8cc9086affbbc5ef2195272200230f724e5d1) ) - ROM_REGION( 0x400000, "sega2", 0 ) /* Samples */ + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */ ROM_LOAD("mpr-16755.4", 0x000000, 0x200000, CRC(4baaf878) SHA1(661d4ea9be6a4952852d0ef94becee7ed42bf4a1) ) ROM_LOAD("mpr-16756.5", 0x200000, 0x200000, CRC(d9c40672) SHA1(83e6f1156b30888d3a00103f079dc74f4fca8446) ) @@ -1506,16 +1439,16 @@ ROM_START( wingwarj ) ROM_LOAD16_BYTE( "mpr-16734.10", 0x1200000, 0x80000, CRC(f76371c1) SHA1(0ff082db3877383d0dd977dc60c932b725e3d164) ) ROM_LOAD16_BYTE( "mpr-16733.11", 0x1200001, 0x80000, CRC(e105847b) SHA1(8489a6c91fd6d1e9ba81e8eaf36c514da30dccbe) ) - ROM_REGION( 0xc0000, "audiocpu", 0 ) /* 68K code */ + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ ROM_LOAD16_WORD_SWAP("epr-16751.7", 0x000000, 0x20000, CRC(23ba5ebc) SHA1(b98aab546c5e980baeedbada4e7472eb4c588260) ) ROM_LOAD16_WORD_SWAP("epr-16752.8", 0x020000, 0x20000, CRC(6541c48f) SHA1(9341eff160e31a8574b9545fafc1c4059323fa0c) ) ROM_RELOAD(0x80000, 0x20000) - ROM_REGION( 0x400000, "sega1", 0 ) /* Samples */ + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) /* Samples */ ROM_LOAD("mpr-16753.32", 0x000000, 0x200000, CRC(324a8333) SHA1(960342e08db637c6f72615d49cffd9fb0889620b) ) ROM_LOAD("mpr-16754.33", 0x200000, 0x200000, CRC(144f3cf5) SHA1(d2f8cc9086affbbc5ef2195272200230f724e5d1) ) - ROM_REGION( 0x400000, "sega2", 0 ) /* Samples */ + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */ ROM_LOAD("mpr-16755.4", 0x000000, 0x200000, CRC(4baaf878) SHA1(661d4ea9be6a4952852d0ef94becee7ed42bf4a1) ) ROM_LOAD("mpr-16756.5", 0x200000, 0x200000, CRC(d9c40672) SHA1(83e6f1156b30888d3a00103f079dc74f4fca8446) ) @@ -1543,9 +1476,6 @@ static MACHINE_CONFIG_START( model1, model1_state ) MCFG_CPU_IO_MAP(model1_io) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", model1_state, model1_interrupt, "screen", 0, 1) - MCFG_CPU_ADD("audiocpu", M68000, 10000000) // verified on real h/w - MCFG_CPU_PROGRAM_MAP(model1_snd) - MCFG_MACHINE_START_OVERRIDE(model1_state,model1) MCFG_MACHINE_RESET_OVERRIDE(model1_state,model1) MCFG_NVRAM_ADD_0FILL("nvram") @@ -1563,25 +1493,14 @@ static MACHINE_CONFIG_START( model1, model1_state ) MCFG_VIDEO_START_OVERRIDE(model1_state,model1) - MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - - MCFG_SOUND_ADD("ymsnd", YM3438, 8000000) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.60) - MCFG_SOUND_ROUTE(1, "rspeaker", 0.60) - - MCFG_SOUND_ADD("sega1", MULTIPCM, 8000000) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - - MCFG_SOUND_ADD("sega2", MULTIPCM, 8000000) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) + MCFG_SEGAM1AUDIO_ADD("m1audio") MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED(swa, model1) + MCFG_SPEAKER_STANDARD_STEREO("dleft", "dright") MCFG_DSBZ80_ADD(DSBZ80_TAG) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) + MCFG_SOUND_ROUTE(0, "dleft", 1.0) + MCFG_SOUND_ROUTE(1, "dright", 1.0) MACHINE_CONFIG_END static MACHINE_CONFIG_START( model1_vr, model1_state ) @@ -1590,9 +1509,6 @@ static MACHINE_CONFIG_START( model1_vr, model1_state ) MCFG_CPU_IO_MAP(model1_vr_io) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", model1_state, model1_interrupt, "screen", 0, 1) - MCFG_CPU_ADD("audiocpu", M68000, 10000000) // verified on real h/w - MCFG_CPU_PROGRAM_MAP(model1_snd) - MCFG_CPU_ADD("tgp", MB86233, 16000000) MCFG_CPU_PROGRAM_MAP(model1_vr_tgp_map) MCFG_MB86233_FIFO_READ_CB(READ32(model1_state,copro_fifoin_pop)) @@ -1617,19 +1533,7 @@ static MACHINE_CONFIG_START( model1_vr, model1_state ) MCFG_VIDEO_START_OVERRIDE(model1_state,model1) - MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - - MCFG_SOUND_ADD("ymsnd", YM3438, 8000000) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.60) - MCFG_SOUND_ROUTE(1, "rspeaker", 0.60) - - MCFG_SOUND_ADD("sega1", MULTIPCM, 8000000) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - - MCFG_SOUND_ADD("sega2", MULTIPCM, 8000000) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) + MCFG_SEGAM1AUDIO_ADD("m1audio") MACHINE_CONFIG_END GAME( 1993, vf, 0, model1, vf, driver_device, 0, ROT0, "Sega", "Virtua Fighter", GAME_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c index e737ac6d0da..bf2dcd655d3 100644 --- a/src/mame/drivers/model2.c +++ b/src/mame/drivers/model2.c @@ -1003,37 +1003,6 @@ WRITE32_MEMBER(model2_state::model2_irq_w) m_intreq &= data; } - -static int snd_68k_ready_r(address_space &space) -{ - model2_state *state = space.machine().driver_data(); - int sr = state->m_audiocpu->state_int(M68K_SR); - - if ((sr & 0x0700) > 0x0100) - { - space.device().execute().spin_until_time(attotime::from_usec(40)); - return 0; // not ready yet, interrupts disabled - } - - return 0xff; -} - -static void snd_latch_to_68k_w(address_space &space, int data) -{ - model2_state *state = space.machine().driver_data(); - if (!snd_68k_ready_r(space)) - { - space.device().execute().spin_until_time(attotime::from_usec(40)); - } - - state->m_to_68k = data; - - state->m_audiocpu->set_input_line(2, HOLD_LINE); - - // give the 68k time to notice - space.device().execute().spin_until_time(attotime::from_usec(40)); -} - READ32_MEMBER(model2_state::model2_serial_r) { if ((offset == 0) && (mem_mask == 0xffff0000)) @@ -1048,7 +1017,15 @@ WRITE32_MEMBER(model2_state::model2o_serial_w) { if (mem_mask == 0x0000ffff) { - snd_latch_to_68k_w(space, data&0xff); + if (!m_m1audio->ready_r(space, 0)) + { + space.device().execute().spin_until_time(attotime::from_usec(40)); + } + + m_m1audio->write_fifo(data & 0xff); + + // give the 68k time to notice + space.device().execute().spin_until_time(attotime::from_usec(40)); } } @@ -1061,6 +1038,17 @@ WRITE32_MEMBER(model2_state::model2_serial_w) m_dsbz80->latch_w(space, 0, data&0xff); } + // for Manx TT DX + if (m_m1audio != NULL) + { + if (!m_m1audio->ready_r(space, 0)) + { + space.device().execute().spin_until_time(attotime::from_usec(40)); + } + + m_m1audio->write_fifo(data & 0xff); + } + scsp_midi_in(machine().device("scsp"), space, 0, data&0xff, 0); // give the 68k time to notice @@ -1838,50 +1826,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(model2_state::model2c_interrupt) } } -/* Model 1 sound board emulation */ - -READ16_MEMBER(model2_state::m1_snd_68k_latch_r) -{ - return m_to_68k; -} - -READ16_MEMBER(model2_state::m1_snd_v60_ready_r) -{ - return 1; -} - -WRITE16_MEMBER(model2_state::m1_snd_mpcm_bnk1_w) -{ - m_multipcm_1->set_bank(0x100000 * (data & 0xf), 0x100000 * (data & 0xf)); -} - -WRITE16_MEMBER(model2_state::m1_snd_mpcm_bnk2_w) -{ - m_multipcm_2->set_bank(0x100000 * (data & 0xf), 0x100000 * (data & 0xf)); -} - -WRITE16_MEMBER(model2_state::m1_snd_68k_latch1_w) -{ -} - -WRITE16_MEMBER(model2_state::m1_snd_68k_latch2_w) -{ -} - -static ADDRESS_MAP_START( model1_snd, AS_PROGRAM, 16, model2_state ) - AM_RANGE(0x000000, 0x07ffff) AM_ROM - AM_RANGE(0x080000, 0x0bffff) AM_ROM AM_REGION("audiocpu", 0x20000) // mirror of second program ROM - AM_RANGE(0xc20000, 0xc20001) AM_READWRITE(m1_snd_68k_latch_r, m1_snd_68k_latch1_w ) - AM_RANGE(0xc20002, 0xc20003) AM_READWRITE(m1_snd_v60_ready_r, m1_snd_68k_latch2_w ) - AM_RANGE(0xc40000, 0xc40007) AM_DEVREADWRITE8("sega1", multipcm_device, read, write, 0x00ff ) - AM_RANGE(0xc40012, 0xc40013) AM_WRITENOP - AM_RANGE(0xc50000, 0xc50001) AM_WRITE(m1_snd_mpcm_bnk1_w ) - AM_RANGE(0xc60000, 0xc60007) AM_DEVREADWRITE8("sega2", multipcm_device, read, write, 0x00ff ) - AM_RANGE(0xc70000, 0xc70001) AM_WRITE(m1_snd_mpcm_bnk2_w ) - AM_RANGE(0xd00000, 0xd00007) AM_DEVREADWRITE8("ymsnd", ym3438_device, read, write, 0x00ff ) - AM_RANGE(0xf00000, 0xf0ffff) AM_RAM -ADDRESS_MAP_END - /* Model 2 sound board emulation */ WRITE16_MEMBER(model2_state::model2snd_ctrl) @@ -2002,9 +1946,6 @@ static MACHINE_CONFIG_START( model2o, model2_state ) MCFG_CPU_PROGRAM_MAP(model2o_mem) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", model2_state, model2_interrupt, "screen", 0, 1) - MCFG_CPU_ADD("audiocpu", M68000, 10000000) - MCFG_CPU_PROGRAM_MAP(model1_snd) - MCFG_CPU_ADD("tgp", MB86233, 16000000) MCFG_CPU_PROGRAM_MAP(copro_tgp_map) MCFG_MB86233_FIFO_READ_CB(READ32(model2_state,copro_tgp_fifoin_pop)) @@ -2012,7 +1953,6 @@ static MACHINE_CONFIG_START( model2o, model2_state ) MCFG_MB86233_FIFO_WRITE_CB(WRITE32(model2_state,copro_tgp_fifoout_push)) MCFG_MB86233_TABLE_REGION("user5") - MCFG_MACHINE_START_OVERRIDE(model2_state,model2) MCFG_MACHINE_RESET_OVERRIDE(model2_state,model2o) @@ -2044,19 +1984,7 @@ static MACHINE_CONFIG_START( model2o, model2_state ) MCFG_VIDEO_START_OVERRIDE(model2_state,model2) - MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - - MCFG_SOUND_ADD("ymsnd", YM3438, 8000000) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.60) - MCFG_SOUND_ROUTE(1, "rspeaker", 0.60) - - MCFG_SOUND_ADD("sega1", MULTIPCM, 8000000) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - - MCFG_SOUND_ADD("sega2", MULTIPCM, 8000000) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) + MCFG_SEGAM1AUDIO_ADD("m1audio") MACHINE_CONFIG_END /* 2A-CRX */ @@ -2114,6 +2042,10 @@ static MACHINE_CONFIG_START( model2a, model2_state ) MCFG_SOUND_ROUTE(0, "rspeaker", 2.0) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( manxttdx, model2a ) /* Includes a Model 1 Sound board for additional sounds - Deluxe version only */ + MCFG_SEGAM1AUDIO_ADD("m1audio") +MACHINE_CONFIG_END + READ8_MEMBER(model2_state::driveio_port_r) { return m_driveio_comm_data; @@ -2819,7 +2751,67 @@ EPR-18763.31 & alt sound CPU code EPR-18924a.30 are dumped */ -ROM_START( manxtt ) /* Manx TT Superbike Twin Revision C, Model 2A */ +ROM_START( manxtt ) /* Manx TT Superbike Twin Revision D, Model 2A - Can be set to Twin or Deluxe - Found in DX setup */ + ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program + ROM_LOAD32_WORD( "epr-18822d.12", 0x000000, 0x020000, CRC(4f435990) SHA1(0fcf64598384012caea27394280de89a9348a47d) ) + ROM_LOAD32_WORD( "epr-18823d.13", 0x000002, 0x020000, CRC(b8eddb5c) SHA1(7e3b97e3370e68d92922e8999246064196610270) ) + ROM_LOAD32_WORD( "epr-18824d.14", 0x040000, 0x020000, CRC(aca9f61f) SHA1(629db70371ea9986ef75557044b5e98329712418) ) + ROM_LOAD32_WORD( "epr-18825d.15", 0x040002, 0x020000, CRC(5a1d7799) SHA1(bb5e8a5a3b766b5dc4285ecba330094caf8a71e6) ) + + ROM_REGION32_LE( 0x2400000, "user1", 0 ) // Data + ROM_LOAD32_WORD( "mpr-18751.10", 0x000000, 0x200000, CRC(773ad43d) SHA1(4d1601dc08a08b724e33e7cd90a4f22e18cfed9c) ) + ROM_LOAD32_WORD( "mpr-18752.11", 0x000002, 0x200000, CRC(4da3719e) SHA1(24007e4ae3ba1a06321328d14e2bd6002fa1936e) ) + ROM_LOAD32_WORD( "mpr-18749.8", 0x400000, 0x200000, CRC(c3fe0eea) SHA1(ada21405a136935ac4da1a3535c25fccf903f2d1) ) + ROM_LOAD32_WORD( "mpr-18750.9", 0x400002, 0x200000, CRC(40b55494) SHA1(d98ae5518c5d31b155b1a7c4f7d9d67f44d7beae) ) + ROM_LOAD32_WORD( "mpr-18747.6", 0x800000, 0x200000, CRC(a65ec1e8) SHA1(92636bdff0ae4cdb43dfc2986fad2d1b59469323) ) + ROM_LOAD32_WORD( "mpr-18748.7", 0x800002, 0x200000, CRC(375e3748) SHA1(6c2e903dd073b130bcabb347631b876dc868b494) ) + ROM_LOAD32_WORD( "epr-18862.4", 0xc00000, 0x080000, CRC(9adc3a30) SHA1(029db946338f8e0eccace8590082cc96bdf13e31) ) + ROM_LOAD32_WORD( "epr-18863.5", 0xc00002, 0x080000, CRC(603742e9) SHA1(f78a5f7e582d313880c734158bb0fa68b256a58a) ) + ROM_COPY( "user1", 0xc00000, 0xd00000, 0x100000 ) + ROM_COPY( "user1", 0xc00000, 0xe00000, 0x100000 ) + ROM_COPY( "user1", 0xc00000, 0xf00000, 0x100000 ) + + ROM_REGION( 0x2000000, "user2", 0 ) // Models + ROM_LOAD32_WORD( "mpr-18753.16", 0x000000, 0x200000, CRC(33ddaa0d) SHA1(26f643d6b9cecf08bd249290a670a0edea1b5be4) ) + ROM_LOAD32_WORD( "mpr-18756.20", 0x000002, 0x200000, CRC(28713617) SHA1(fc2a6258387a1bc3fae2109b2dae6dd2a1984ab5) ) + ROM_LOAD32_WORD( "mpr-18754.17", 0x400000, 0x200000, CRC(09aabde5) SHA1(e50646efb2ca59792833ce91398c4efa861ad6d1) ) + ROM_LOAD32_WORD( "mpr-18757.21", 0x400004, 0x200000, CRC(25fc92e9) SHA1(226c4c7289b3b6009c1ffea4a171e3fb4e31a67c) ) + ROM_LOAD32_WORD( "mpr-18755.18", 0x000000, 0x200000, CRC(bf094d9e) SHA1(2cd7130b226a28098191a6caf6fd761bb0bfac7b) ) + ROM_LOAD32_WORD( "mpr-18758.22", 0x800002, 0x200000, CRC(1b5473d0) SHA1(658e33503f6990f4d9a954c63efad5f53d15f3a4) ) + + ROM_REGION( 0x800000, "tgp", 0 ) // TGP program? (COPRO socket) + ROM_LOAD32_WORD( "mpr-18761.28", 0x000000, 0x200000, CRC(4e39ec05) SHA1(50696cd320f1a6492e0c193713acbce085d959cd) ) + ROM_LOAD32_WORD( "mpr-18762.29", 0x000002, 0x200000, CRC(4ab165d8) SHA1(7ff42a4c7236fec76f94f2d0c5537e503bcc98e5) ) + + ROM_REGION( 0x1000000, "user3", 0 ) // Textures + ROM_LOAD32_WORD( "mpr-18760.25", 0x000000, 0x200000, CRC(4e3a4a89) SHA1(bba6cd2a15b3f963388a3a87880da86b10f6e0a2) ) + ROM_LOAD32_WORD( "mpr-18759.24", 0x000002, 0x200000, CRC(278d8742) SHA1(5f285fc8cfe88c00ba2bbe1b509b49abd38e00ec) ) + + ROM_REGION( 0x100000, "audiocpu", 0 ) // Sound program + ROM_LOAD16_WORD_SWAP( "epr-18924a.30", 0x080000, 0x040000, CRC(ad6f40ec) SHA1(27aa0477dc325162766d459ffe95b61ee65dd28f) ) /* Sound program for DX set */ + + ROM_REGION( 0x800000, "scsp", 0 ) // Samples + ROM_LOAD( "mpr-18763.31", 0x000000, 0x200000, CRC(1bcb2283) SHA1(a4a8a2f8f0901bfb57778351210ccfc421cacbd4) ) /* Sound sample for DX set */ + ROM_LOAD( "mpr-18764.32", 0x200000, 0x200000, CRC(0dc6a860) SHA1(cb2ada0f8a592940de11ee781ad4beb5095c3b37) ) + ROM_LOAD( "mpr-18765.36", 0x400000, 0x200000, CRC(ca4a803c) SHA1(70b59da8f2532a02e980caba5bb86ec13a4d7ab5) ) + ROM_LOAD( "mpr-18766.37", 0x600000, 0x200000, CRC(e41892ea) SHA1(9ef5e26db4abf0ed36df63fc246b568e1c5d6cfa) ) + + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ + ROM_LOAD16_WORD_SWAP("epr-18742.7", 0x000000, 0x020000, CRC(1b78da74) SHA1(939b0f2413ae3c11fac11b49ab8b0de2c5e35e61) ) + + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) // Samples + ROM_LOAD("mpr-18743.32", 0x000000, 0x200000, CRC(17e84e15) SHA1(8437cddc4c4d729e886a5ab076885a54bb7a30d0) ) + + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, ROMREGION_ERASE00 ) // Samples + + ROM_REGION( 0x20000, "cpu4", 0) // Communication program + ROM_LOAD16_WORD_SWAP( "epr-18643a.7", 0x000000, 0x020000, CRC(b5e048ec) SHA1(8182e05a2ffebd590a936c1359c81e60caa79c2a) ) + + MODEL2_CPU_BOARD + MODEL2A_VID_BOARD +ROM_END + +ROM_START( manxttc ) /* Manx TT Superbike Twin Revision C, Model 2A */ ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program ROM_LOAD32_WORD( "epr-18822c.12", 0x000000, 0x020000, CRC(c7b3e45a) SHA1(d3a6910bf6efc138e0e40332219b90dea7d6ea56) ) ROM_LOAD32_WORD( "epr-18823c.13", 0x000002, 0x020000, CRC(6b0c1dfb) SHA1(6da5c071e3ce842a99f928f473d4ccf7165785ac) ) @@ -4865,15 +4857,15 @@ ROM_START( daytona ) /* Daytona USA (Japan, Revision A), Original Model 2 w/Mode ROM_REGION( 0x20000, "cpu3", 0) // Communication program ROM_LOAD( "epr-16726.bin", 0x000000, 0x020000, CRC(c179b8c7) SHA1(86d3e65c77fb53b1d380b629348f4ab5b3d39228) ) - ROM_REGION( 0x80000, "audiocpu", 0 ) // Sound program + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ ROM_LOAD16_WORD_SWAP("epr-16720.7", 0x000000, 0x020000, CRC(8e73cffd) SHA1(9933ccc0757e8c86e0adb938d1c89210b26841ea) ) ROM_LOAD16_WORD_SWAP("epr-16721.8", 0x020000, 0x020000, CRC(1bb3b7b7) SHA1(ee2fd1480e535fc37e9932e6fe4e31344559fc87) ) - ROM_REGION( 0x400000, "sega1", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) // Samples ROM_LOAD("mpr-16491.32", 0x000000, 0x200000, CRC(89920903) SHA1(06d1d55470ae99f8de0f8c88c694f34c4eb13668) ) ROM_LOAD("mpr-16492.33", 0x200000, 0x200000, CRC(459e701b) SHA1(2054f69cecad677eb00c6a3051f5b5d90885e19b) ) - ROM_REGION( 0x400000, "sega2", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) // Samples ROM_LOAD("mpr-16493.4", 0x000000, 0x200000, CRC(9990db15) SHA1(ea9a8b45a07dccaae62be7cf095532ce7596a70c) ) ROM_LOAD("mpr-16494.5", 0x200000, 0x200000, CRC(600e1d6c) SHA1(d4e246fc57a16ff562bbcbccf6a739b706f58696) ) @@ -4926,15 +4918,15 @@ ROM_START( daytonase ) /* Daytona USA (Japan, Revision A), Original Model 2 w/Mo ROM_REGION( 0x20000, "cpu3", 0) // Communication program ROM_LOAD( "epr-16726.bin", 0x000000, 0x020000, CRC(c179b8c7) SHA1(86d3e65c77fb53b1d380b629348f4ab5b3d39228) ) - ROM_REGION( 0x80000, "audiocpu", 0 ) // Sound program + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ ROM_LOAD16_WORD_SWAP("epr-16720.7", 0x000000, 0x020000, CRC(8e73cffd) SHA1(9933ccc0757e8c86e0adb938d1c89210b26841ea) ) ROM_LOAD16_WORD_SWAP("epr-16721.8", 0x020000, 0x020000, CRC(1bb3b7b7) SHA1(ee2fd1480e535fc37e9932e6fe4e31344559fc87) ) - ROM_REGION( 0x400000, "sega1", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) // Samples ROM_LOAD("mpr-16491.32", 0x000000, 0x200000, CRC(89920903) SHA1(06d1d55470ae99f8de0f8c88c694f34c4eb13668) ) ROM_LOAD("mpr-16492.33", 0x200000, 0x200000, CRC(459e701b) SHA1(2054f69cecad677eb00c6a3051f5b5d90885e19b) ) - ROM_REGION( 0x400000, "sega2", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) // Samples ROM_LOAD("mpr-16493.4", 0x000000, 0x200000, CRC(9990db15) SHA1(ea9a8b45a07dccaae62be7cf095532ce7596a70c) ) ROM_LOAD("mpr-16494.5", 0x200000, 0x200000, CRC(600e1d6c) SHA1(d4e246fc57a16ff562bbcbccf6a739b706f58696) ) @@ -4986,15 +4978,15 @@ ROM_START( daytona93 ) /* Daytona USA Deluxe '93 version (There is said to be a ROM_REGION( 0x20000, "cpu3", 0) // Communication program ROM_LOAD( "epr-16726.bin", 0x000000, 0x020000, CRC(c179b8c7) SHA1(86d3e65c77fb53b1d380b629348f4ab5b3d39228) ) - ROM_REGION( 0x80000, "audiocpu", 0 ) // Sound program + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ ROM_LOAD16_WORD_SWAP("epr-16720.7", 0x000000, 0x020000, CRC(8e73cffd) SHA1(9933ccc0757e8c86e0adb938d1c89210b26841ea) ) ROM_LOAD16_WORD_SWAP("epr-16721.8", 0x020000, 0x020000, CRC(1bb3b7b7) SHA1(ee2fd1480e535fc37e9932e6fe4e31344559fc87) ) - ROM_REGION( 0x400000, "sega1", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) // Samples ROM_LOAD("mpr-16491.32", 0x000000, 0x200000, CRC(89920903) SHA1(06d1d55470ae99f8de0f8c88c694f34c4eb13668) ) ROM_LOAD("mpr-16492.33", 0x200000, 0x200000, CRC(459e701b) SHA1(2054f69cecad677eb00c6a3051f5b5d90885e19b) ) - ROM_REGION( 0x400000, "sega2", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) // Samples ROM_LOAD("mpr-16493.4", 0x000000, 0x200000, CRC(9990db15) SHA1(ea9a8b45a07dccaae62be7cf095532ce7596a70c) ) ROM_LOAD("mpr-16494.5", 0x200000, 0x200000, CRC(600e1d6c) SHA1(d4e246fc57a16ff562bbcbccf6a739b706f58696) ) @@ -5047,15 +5039,15 @@ ROM_START( daytonas ) /* Daytona USA (With Saturn Adverts) */ ROM_REGION( 0x20000, "cpu3", 0) // Communication program ROM_LOAD( "epr-16726.bin", 0x000000, 0x020000, CRC(c179b8c7) SHA1(86d3e65c77fb53b1d380b629348f4ab5b3d39228) ) - ROM_REGION( 0x80000, "audiocpu", 0 ) // Sound program + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ ROM_LOAD16_WORD_SWAP("epr-16720.7", 0x000000, 0x020000, CRC(8e73cffd) SHA1(9933ccc0757e8c86e0adb938d1c89210b26841ea) ) ROM_LOAD16_WORD_SWAP("epr-16721.8", 0x020000, 0x020000, CRC(1bb3b7b7) SHA1(ee2fd1480e535fc37e9932e6fe4e31344559fc87) ) - ROM_REGION( 0x400000, "sega1", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) // Samples ROM_LOAD("mpr-16491.32", 0x000000, 0x200000, CRC(89920903) SHA1(06d1d55470ae99f8de0f8c88c694f34c4eb13668) ) ROM_LOAD("mpr-16492.33", 0x200000, 0x200000, CRC(459e701b) SHA1(2054f69cecad677eb00c6a3051f5b5d90885e19b) ) - ROM_REGION( 0x400000, "sega2", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) // Samples ROM_LOAD("mpr-16493.4", 0x000000, 0x200000, CRC(9990db15) SHA1(ea9a8b45a07dccaae62be7cf095532ce7596a70c) ) ROM_LOAD("mpr-16494.5", 0x200000, 0x200000, CRC(600e1d6c) SHA1(d4e246fc57a16ff562bbcbccf6a739b706f58696) ) @@ -5110,15 +5102,15 @@ ROM_START( daytonat )/* Daytona USA (Japan, Turbo hack) */ ROM_REGION( 0x20000, "cpu3", 0) // Communication program ROM_LOAD( "epr-16726.bin", 0x000000, 0x020000, CRC(c179b8c7) SHA1(86d3e65c77fb53b1d380b629348f4ab5b3d39228) ) - ROM_REGION( 0x80000, "audiocpu", 0 ) // Sound program + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ ROM_LOAD16_WORD_SWAP("epr-16720.7", 0x000000, 0x020000, CRC(8e73cffd) SHA1(9933ccc0757e8c86e0adb938d1c89210b26841ea) ) ROM_LOAD16_WORD_SWAP("epr-16721.8", 0x020000, 0x020000, CRC(1bb3b7b7) SHA1(ee2fd1480e535fc37e9932e6fe4e31344559fc87) ) - ROM_REGION( 0x400000, "sega1", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) // Samples ROM_LOAD("mpr-16491.32", 0x000000, 0x200000, CRC(89920903) SHA1(06d1d55470ae99f8de0f8c88c694f34c4eb13668) ) ROM_LOAD("mpr-16492.33", 0x200000, 0x200000, CRC(459e701b) SHA1(2054f69cecad677eb00c6a3051f5b5d90885e19b) ) - ROM_REGION( 0x400000, "sega2", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) // Samples ROM_LOAD("mpr-16493.4", 0x000000, 0x200000, CRC(9990db15) SHA1(ea9a8b45a07dccaae62be7cf095532ce7596a70c) ) ROM_LOAD("mpr-16494.5", 0x200000, 0x200000, CRC(600e1d6c) SHA1(d4e246fc57a16ff562bbcbccf6a739b706f58696) ) @@ -5171,15 +5163,15 @@ ROM_START( daytonata )/* Daytona USA (Japan, Turbo hack) */ ROM_REGION( 0x20000, "cpu3", 0) // Communication program ROM_LOAD( "epr-16726.bin", 0x000000, 0x020000, CRC(c179b8c7) SHA1(86d3e65c77fb53b1d380b629348f4ab5b3d39228) ) - ROM_REGION( 0x80000, "audiocpu", 0 ) // Sound program + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ ROM_LOAD16_WORD_SWAP("epr-16720.7", 0x000000, 0x020000, CRC(8e73cffd) SHA1(9933ccc0757e8c86e0adb938d1c89210b26841ea) ) ROM_LOAD16_WORD_SWAP("epr-16721.8", 0x020000, 0x020000, CRC(1bb3b7b7) SHA1(ee2fd1480e535fc37e9932e6fe4e31344559fc87) ) - ROM_REGION( 0x400000, "sega1", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) // Samples ROM_LOAD("mpr-16491.32", 0x000000, 0x200000, CRC(89920903) SHA1(06d1d55470ae99f8de0f8c88c694f34c4eb13668) ) ROM_LOAD("mpr-16492.33", 0x200000, 0x200000, CRC(459e701b) SHA1(2054f69cecad677eb00c6a3051f5b5d90885e19b) ) - ROM_REGION( 0x400000, "sega2", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) // Samples ROM_LOAD("mpr-16493.4", 0x000000, 0x200000, CRC(9990db15) SHA1(ea9a8b45a07dccaae62be7cf095532ce7596a70c) ) ROM_LOAD("mpr-16494.5", 0x200000, 0x200000, CRC(600e1d6c) SHA1(d4e246fc57a16ff562bbcbccf6a739b706f58696) ) @@ -5243,15 +5235,15 @@ ROM_START( daytonam ) /* Daytona USA (Japan, To The MAXX) */ ROM_REGION( 0x20000, "cpu3", 0) // Communication program ROM_LOAD( "epr-16726.bin", 0x000000, 0x020000, CRC(c179b8c7) SHA1(86d3e65c77fb53b1d380b629348f4ab5b3d39228) ) - ROM_REGION( 0x80000, "audiocpu", 0 ) // Sound program + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ ROM_LOAD16_WORD_SWAP("epr-16720.7", 0x000000, 0x020000, CRC(8e73cffd) SHA1(9933ccc0757e8c86e0adb938d1c89210b26841ea) ) ROM_LOAD16_WORD_SWAP("epr-16721.8", 0x020000, 0x020000, CRC(1bb3b7b7) SHA1(ee2fd1480e535fc37e9932e6fe4e31344559fc87) ) - ROM_REGION( 0x400000, "sega1", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) // Samples ROM_LOAD("mpr-16491.32", 0x000000, 0x200000, CRC(89920903) SHA1(06d1d55470ae99f8de0f8c88c694f34c4eb13668) ) ROM_LOAD("mpr-16492.33", 0x200000, 0x200000, CRC(459e701b) SHA1(2054f69cecad677eb00c6a3051f5b5d90885e19b) ) - ROM_REGION( 0x400000, "sega2", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) // Samples ROM_LOAD("mpr-16493.4", 0x000000, 0x200000, CRC(9990db15) SHA1(ea9a8b45a07dccaae62be7cf095532ce7596a70c) ) ROM_LOAD("mpr-16494.5", 0x200000, 0x200000, CRC(600e1d6c) SHA1(d4e246fc57a16ff562bbcbccf6a739b706f58696) ) @@ -5289,15 +5281,15 @@ ROM_START( vcop ) /* Virtua Cop Revision B, Model 2 */ ROM_REGION( 0x20000, "cpu4", 0) // Communication program ROM_LOAD32_WORD( "epr-17181.6", 0x000000, 0x010000, CRC(1add2b82) SHA1(81892251d466f630a96af25bde652c20e47d7ede) ) - ROM_REGION( 0x80000, "audiocpu", 0 ) // Sound program + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ ROM_LOAD16_WORD_SWAP( "epr-17170.7", 0x000000, 0x020000, CRC(06a38ae2) SHA1(a2c3d14d9266449ebfc6d976a956e0a8a602cfb0) ) ROM_LOAD16_WORD_SWAP( "epr-17171.8", 0x020000, 0x020000, CRC(b5e436f8) SHA1(1da3cb52d64f52d03a8de9954afffbc6e1549a5b) ) - ROM_REGION( 0x400000, "sega1", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) // Samples ROM_LOAD( "mpr-17172.32", 0x000000, 0x100000, CRC(ab22cac3) SHA1(0e872158faeb8c0404b10cdf0a3fa36f89a5093e) ) ROM_LOAD( "mpr-17173.33", 0x200000, 0x100000, CRC(3cb4005c) SHA1(a56f436ea6dfe0968b73ae7bc92bb2f4c612460d) ) - ROM_REGION( 0x400000, "sega2", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) // Samples ROM_LOAD( "mpr-17174.4", 0x000000, 0x200000, CRC(a50369cc) SHA1(69807157baf6e3679adc95633c82b0236db01247) ) ROM_LOAD( "mpr-17175.5", 0x200000, 0x200000, CRC(9136d43c) SHA1(741f80a8ff8165ffe171dc568e0da4ad0bde4809) ) @@ -5332,15 +5324,15 @@ ROM_START( vcopa ) /* Virtua Cop Revision A, Model 2 */ ROM_REGION( 0x20000, "cpu4", 0) // Communication program ROM_LOAD32_WORD( "epr-17181.6", 0x000000, 0x010000, CRC(1add2b82) SHA1(81892251d466f630a96af25bde652c20e47d7ede) ) - ROM_REGION( 0x80000, "audiocpu", 0 ) // Sound program + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ ROM_LOAD16_WORD_SWAP( "epr-17170.7", 0x000000, 0x020000, CRC(06a38ae2) SHA1(a2c3d14d9266449ebfc6d976a956e0a8a602cfb0) ) ROM_LOAD16_WORD_SWAP( "epr-17171.8", 0x020000, 0x020000, CRC(b5e436f8) SHA1(1da3cb52d64f52d03a8de9954afffbc6e1549a5b) ) - ROM_REGION( 0x400000, "sega1", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) // Samples ROM_LOAD( "mpr-17172.32", 0x000000, 0x100000, CRC(ab22cac3) SHA1(0e872158faeb8c0404b10cdf0a3fa36f89a5093e) ) ROM_LOAD( "mpr-17173.33", 0x200000, 0x100000, CRC(3cb4005c) SHA1(a56f436ea6dfe0968b73ae7bc92bb2f4c612460d) ) - ROM_REGION( 0x400000, "sega2", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) // Samples ROM_LOAD( "mpr-17174.4", 0x000000, 0x200000, CRC(a50369cc) SHA1(69807157baf6e3679adc95633c82b0236db01247) ) ROM_LOAD( "mpr-17175.5", 0x200000, 0x200000, CRC(9136d43c) SHA1(741f80a8ff8165ffe171dc568e0da4ad0bde4809) ) @@ -5378,13 +5370,13 @@ ROM_START( desert ) /* Desert Tank, Model 2 */ ROM_REGION( 0x20000, "cpu4", ROMREGION_ERASE00 ) // Communication program - ROM_REGION( 0x80000, "audiocpu", 0 ) // Sound program + ROM_REGION( 0xc0000, M1AUDIO_CPU_REGION, ROMREGION_BE|ROMREGION_16BIT ) /* 68K code */ ROM_LOAD16_WORD_SWAP("epr-16985.7", 0x000000, 0x20000, CRC(8c4d9056) SHA1(785752d761c648d1177c5f0cfa3e9fa44135d6dc) ) - ROM_REGION( 0x400000, "sega1", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM1_REGION, 0 ) // Samples ROM_LOAD("mpr-16986.32", 0x000000, 0x200000, CRC(559612f9) SHA1(33bcaddfc7d8fe899707e663299e8f04e9004d51) ) - ROM_REGION( 0x400000, "sega2", 0 ) // Samples + ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) // Samples ROM_LOAD("mpr-16988.4", 0x000000, 0x200000, CRC(bc705875) SHA1(5351c6bd2d75df57ff92960e7f90493d95d9dfb9) ) ROM_LOAD("mpr-16989.5", 0x200000, 0x200000, CRC(1b616b31) SHA1(35bd2bfd08514ba6f235cda2605c171cd51fd78e) ) @@ -5506,7 +5498,8 @@ GAME( 1994, vcop, 0, model2o, daytona, driver_device, 0, ROT0, GAME( 1994, vcopa, 0, model2o, daytona, driver_device, 0, ROT0, "Sega", "Virtua Cop (Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) // Model 2A-CRX (TGPs, SCSP sound board) -GAME( 1995, manxtt, 0, model2a, model2, driver_device, 0, ROT0, "Sega", "Manx TT Superbike - Twin (Revision C)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) +GAME( 1995, manxtt, 0, manxttdx,model2, driver_device, 0, ROT0, "Sega", "Manx TT Superbike - DX (Revision D)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) +GAME( 1995, manxttc, 0, model2a, model2, driver_device, 0, ROT0, "Sega", "Manx TT Superbike - Twin (Revision C)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) GAME( 1995, srallyc, 0, srallyc, srallyc, model2_state, srallyc, ROT0, "Sega", "Sega Rally Championship - TWIN (Revision C)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) GAME( 1995, srallycb, srallyc, srallyc, srallyc, model2_state, srallyc, ROT0, "Sega", "Sega Rally Championship - TWIN (Revision B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) GAME( 1995, srallyca, srallyc, srallyc, srallyc, model2_state, srallyc, ROT0, "Sega", "Sega Rally Championship - DX (Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) diff --git a/src/mame/includes/model1.h b/src/mame/includes/model1.h index ab2b215554f..3ff3bd14fe1 100644 --- a/src/mame/includes/model1.h +++ b/src/mame/includes/model1.h @@ -1,5 +1,5 @@ #include "audio/dsbz80.h" -#include "sound/multipcm.h" +#include "audio/segam1audio.h" typedef void (*tgp_func)(running_machine &machine); @@ -12,9 +12,7 @@ public: model1_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), - m_audiocpu(*this, "audiocpu"), - m_multipcm_1(*this, "sega1"), - m_multipcm_2(*this, "sega2"), + m_m1audio(*this, "m1audio"), m_dsbz80(*this, DSBZ80_TAG), m_tgp(*this, "tgp"), m_mr2(*this, "mr2"), @@ -24,9 +22,7 @@ public: m_color_xlat(*this, "color_xlat"){ } required_device m_maincpu; // V60 - required_device m_audiocpu; // sound 68000 - required_device m_multipcm_1; - required_device m_multipcm_2; + required_device m_m1audio; // Model 1 standard sound board optional_device m_dsbz80; // Digital Sound Board optional_device m_tgp; @@ -43,11 +39,8 @@ public: struct quad_m1 *m_quadpt; struct quad_m1 **m_quadind; int m_sound_irq; - int m_to_68k[8]; UINT8 m_last_snd_cmd; int m_snd_cmd_state; - int m_fifo_wptr; - int m_fifo_rptr; int m_last_irq; int m_dump; offs_t m_pushpc; diff --git a/src/mame/includes/model2.h b/src/mame/includes/model2.h index d5c0376b9db..d8406a33aec 100644 --- a/src/mame/includes/model2.h +++ b/src/mame/includes/model2.h @@ -1,7 +1,7 @@ #include "video/poly.h" #include "audio/dsbz80.h" +#include "audio/segam1audio.h" #include "machine/eepromser.h" -#include "sound/multipcm.h" #include "cpu/i960/i960.h" struct raster_state; @@ -24,9 +24,8 @@ public: m_tgp_program(*this, "tgp_program"), m_maincpu(*this,"maincpu"), m_dsbz80(*this, DSBZ80_TAG), + m_m1audio(*this, "m1audio"), m_audiocpu(*this, "audiocpu"), - m_multipcm_1(*this, "sega1"), - m_multipcm_2(*this, "sega2"), m_tgp(*this, "tgp"), m_dsp(*this, "dsp"), m_drivecpu(*this, "drivecpu"), @@ -44,9 +43,8 @@ public: required_device m_maincpu; optional_device m_dsbz80; // Z80-based MPEG Digital Sound Board - required_device m_audiocpu; - optional_device m_multipcm_1; - optional_device m_multipcm_2; + optional_device m_m1audio; // Model 1 standard sound board + optional_device m_audiocpu; optional_device m_tgp; optional_device m_dsp; optional_device m_drivecpu; diff --git a/src/mame/mame.lst b/src/mame/mame.lst index ee5b5032edb..bb37da52d75 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -4790,7 +4790,8 @@ srallyca // 1995.02 Sega Rally Championship DX (Revision A) vcop2 // 1995.09 Virtua Cop 2 vf2 // 1995.09 Virtua Fighter (Version 2.1) skytargt // 1995.10 Sky Target -manxtt // 1995.11 Manx T.T. (Revision C) +manxtt // 1995.11 Manx T.T. DX (Revision D) +manxttc // 1995.11 Manx T.T. (Revision C) doaa // 1996.11 Dead or Alive (Revision A) motoraid // 1997.10 Motor Raid zeroguna // 1997.12 Zero Gunner (Export) diff --git a/src/mame/mame.mak b/src/mame/mame.mak index 03f62a63ade..70f21c2de8c 100644 --- a/src/mame/mame.mak +++ b/src/mame/mame.mak @@ -602,6 +602,7 @@ $(MAMEOBJ)/shared.a: \ $(MACHINE)/ticket.o \ $(VIDEO)/avgdvg.o \ $(AUDIO)/decobsmt.o \ + $(AUDIO)/segam1audio.o \ #------------------------------------------------- # manufacturer-specific groupings for drivers