mirror of
https://github.com/holub/mame
synced 2025-05-30 17:41:47 +03:00
Modernized Sega Model 1 sound board; now shared instead of copy/pasted. [R. Belmont]
New Clone Added --------------- Manx TT Superbike - DX (Revision D) [ShouTime, The Dumping Union, R. Belmont, Brian Troha]
This commit is contained in:
parent
d5dde1a9d3
commit
aef8991fff
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -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
|
||||
|
175
src/mame/audio/segam1audio.c
Normal file
175
src/mame/audio/segam1audio.c
Normal file
@ -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<segam1audio_device>;
|
||||
|
||||
//-------------------------------------------------
|
||||
// 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);
|
||||
}
|
||||
|
62
src/mame/audio/segam1audio.h
Normal file
62
src/mame/audio/segam1audio.h
Normal file
@ -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<cpu_device> m_audiocpu;
|
||||
required_device<multipcm_device> m_multipcm_1;
|
||||
required_device<multipcm_device> m_multipcm_2;
|
||||
required_device<ym3438_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__ */
|
@ -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 )
|
||||
|
@ -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<model2_state>();
|
||||
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<model2_state>();
|
||||
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 )
|
||||
|
@ -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<cpu_device> m_maincpu; // V60
|
||||
required_device<cpu_device> m_audiocpu; // sound 68000
|
||||
required_device<multipcm_device> m_multipcm_1;
|
||||
required_device<multipcm_device> m_multipcm_2;
|
||||
required_device<segam1audio_device> m_m1audio; // Model 1 standard sound board
|
||||
optional_device<dsbz80_device> m_dsbz80; // Digital Sound Board
|
||||
optional_device<mb86233_cpu_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;
|
||||
|
@ -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<i960_cpu_device> m_maincpu;
|
||||
optional_device<dsbz80_device> m_dsbz80; // Z80-based MPEG Digital Sound Board
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
optional_device<multipcm_device> m_multipcm_1;
|
||||
optional_device<multipcm_device> m_multipcm_2;
|
||||
optional_device<segam1audio_device> m_m1audio; // Model 1 standard sound board
|
||||
optional_device<cpu_device> m_audiocpu;
|
||||
optional_device<cpu_device> m_tgp;
|
||||
optional_device<cpu_device> m_dsp;
|
||||
optional_device<cpu_device> m_drivecpu;
|
||||
|
@ -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)
|
||||
|
@ -602,6 +602,7 @@ $(MAMEOBJ)/shared.a: \
|
||||
$(MACHINE)/ticket.o \
|
||||
$(VIDEO)/avgdvg.o \
|
||||
$(AUDIO)/decobsmt.o \
|
||||
$(AUDIO)/segam1audio.o \
|
||||
|
||||
#-------------------------------------------------
|
||||
# manufacturer-specific groupings for drivers
|
||||
|
Loading…
Reference in New Issue
Block a user