mirror of
https://github.com/holub/mame
synced 2025-07-03 09:06:08 +03:00
harddriv.c: separated the harddriv sound board from the driver class into a device (nw)
This commit is contained in:
parent
31abc855db
commit
a20b254ca1
@ -17,19 +17,56 @@
|
||||
#define CYCLES_PER_BIO (5000000 / BIO_FREQUENCY)
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Driver init
|
||||
*
|
||||
*************************************/
|
||||
//**************************************************************************
|
||||
// LIVE DEVICE
|
||||
//**************************************************************************
|
||||
|
||||
void harddriv_state::hdsnd_init()
|
||||
//-------------------------------------------------
|
||||
// harddriv_sound_board_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
const device_type HARDDRIV_SOUND_BOARD_DEVICE = &device_creator<harddriv_sound_board_device>;
|
||||
|
||||
harddriv_sound_board_device::harddriv_sound_board_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
device_t(mconfig, HARDDRIV_SOUND_BOARD_DEVICE, "Hard Drivin' Sound Board", tag, owner, clock, "harddriv_sound", __FILE__),
|
||||
m_soundcpu(*this, "soundcpu"),
|
||||
m_dac(*this, "dac"),
|
||||
m_sounddsp(*this, "sounddsp"),
|
||||
m_sounddsp_ram(*this, "sounddsp_ram"),
|
||||
m_soundflag(0),
|
||||
m_mainflag(0),
|
||||
m_sounddata(0),
|
||||
m_maindata(0),
|
||||
m_dacmute(0),
|
||||
m_cramen(0),
|
||||
m_irq68k(0),
|
||||
m_sound_rom_offs(0),
|
||||
m_rombase(NULL),
|
||||
m_romsize(0),
|
||||
m_last_bio_cycles(0)
|
||||
{
|
||||
m_rombase = (UINT8 *)memregion("serialroms")->base();
|
||||
m_romsize = memregion("serialroms")->bytes();
|
||||
memset(m_comram, 0 , sizeof(m_comram));
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void harddriv_sound_board_device::device_start()
|
||||
{
|
||||
m_rombase = (UINT8 *)memregion(":mainpcb:serialroms")->base();
|
||||
m_romsize = memregion(":mainpcb:serialroms")->bytes();
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_reset - device-specific reset
|
||||
//-------------------------------------------------
|
||||
|
||||
void harddriv_sound_board_device::device_reset()
|
||||
{
|
||||
m_sounddsp->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
|
||||
}
|
||||
|
||||
/*************************************
|
||||
*
|
||||
@ -37,10 +74,10 @@ void harddriv_state::hdsnd_init()
|
||||
*
|
||||
*************************************/
|
||||
|
||||
void harddriv_state::update_68k_interrupts()
|
||||
void harddriv_sound_board_device::update_68k_interrupts()
|
||||
{
|
||||
if (m_soundcpu) m_soundcpu->set_input_line(1, m_mainflag ? ASSERT_LINE : CLEAR_LINE);
|
||||
if (m_soundcpu) m_soundcpu->set_input_line(3, m_irq68k ? ASSERT_LINE : CLEAR_LINE);
|
||||
m_soundcpu->set_input_line(1, m_mainflag ? ASSERT_LINE : CLEAR_LINE);
|
||||
m_soundcpu->set_input_line(3, m_irq68k ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
||||
@ -51,7 +88,7 @@ void harddriv_state::update_68k_interrupts()
|
||||
*
|
||||
*************************************/
|
||||
|
||||
READ16_MEMBER(harddriv_state::hd68k_snd_data_r)
|
||||
READ16_MEMBER(harddriv_sound_board_device::hd68k_snd_data_r)
|
||||
{
|
||||
m_soundflag = 0;
|
||||
logerror("%06X:main read from sound=%04X\n", space.device().safe_pcbase(), m_sounddata);
|
||||
@ -59,13 +96,13 @@ READ16_MEMBER(harddriv_state::hd68k_snd_data_r)
|
||||
}
|
||||
|
||||
|
||||
READ16_MEMBER(harddriv_state::hd68k_snd_status_r)
|
||||
READ16_MEMBER(harddriv_sound_board_device::hd68k_snd_status_r)
|
||||
{
|
||||
return (m_mainflag << 15) | (m_soundflag << 14) | 0x1fff;
|
||||
}
|
||||
|
||||
|
||||
TIMER_CALLBACK_MEMBER( harddriv_state::delayed_68k_w )
|
||||
TIMER_CALLBACK_MEMBER( harddriv_sound_board_device::delayed_68k_w )
|
||||
{
|
||||
m_maindata = param;
|
||||
m_mainflag = 1;
|
||||
@ -73,17 +110,17 @@ TIMER_CALLBACK_MEMBER( harddriv_state::delayed_68k_w )
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(harddriv_state::hd68k_snd_data_w)
|
||||
WRITE16_MEMBER(harddriv_sound_board_device::hd68k_snd_data_w)
|
||||
{
|
||||
machine().scheduler().synchronize(timer_expired_delegate(FUNC(harddriv_state::delayed_68k_w), this), data);
|
||||
machine().scheduler().synchronize(timer_expired_delegate(FUNC(harddriv_sound_board_device::delayed_68k_w), this), data);
|
||||
logerror("%06X:main write to sound=%04X\n", space.device().safe_pcbase(), data);
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(harddriv_state::hd68k_snd_reset_w)
|
||||
WRITE16_MEMBER(harddriv_sound_board_device::hd68k_snd_reset_w)
|
||||
{
|
||||
if (m_soundcpu) m_soundcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
|
||||
if (m_soundcpu) m_soundcpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
|
||||
m_soundcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
|
||||
m_soundcpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
|
||||
m_mainflag = m_soundflag = 0;
|
||||
update_68k_interrupts();
|
||||
logerror("%06X:Reset sound\n", space.device().safe_pcbase());
|
||||
@ -97,7 +134,7 @@ WRITE16_MEMBER(harddriv_state::hd68k_snd_reset_w)
|
||||
*
|
||||
*************************************/
|
||||
|
||||
READ16_MEMBER(harddriv_state::hdsnd68k_data_r)
|
||||
READ16_MEMBER(harddriv_sound_board_device::hdsnd68k_data_r)
|
||||
{
|
||||
m_mainflag = 0;
|
||||
update_68k_interrupts();
|
||||
@ -106,7 +143,7 @@ READ16_MEMBER(harddriv_state::hdsnd68k_data_r)
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(harddriv_state::hdsnd68k_data_w)
|
||||
WRITE16_MEMBER(harddriv_sound_board_device::hdsnd68k_data_w)
|
||||
{
|
||||
COMBINE_DATA(&m_sounddata);
|
||||
m_soundflag = 1;
|
||||
@ -121,21 +158,21 @@ WRITE16_MEMBER(harddriv_state::hdsnd68k_data_w)
|
||||
*
|
||||
*************************************/
|
||||
|
||||
READ16_MEMBER(harddriv_state::hdsnd68k_switches_r)
|
||||
READ16_MEMBER(harddriv_sound_board_device::hdsnd68k_switches_r)
|
||||
{
|
||||
logerror("%06X:hdsnd68k_switches_r(%04X)\n", space.device().safe_pcbase(), offset);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
READ16_MEMBER(harddriv_state::hdsnd68k_320port_r)
|
||||
READ16_MEMBER(harddriv_sound_board_device::hdsnd68k_320port_r)
|
||||
{
|
||||
logerror("%06X:hdsnd68k_320port_r(%04X)\n", space.device().safe_pcbase(), offset);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
READ16_MEMBER(harddriv_state::hdsnd68k_status_r)
|
||||
READ16_MEMBER(harddriv_sound_board_device::hdsnd68k_status_r)
|
||||
{
|
||||
//FFFF 3000 R READSTAT Read Status
|
||||
// D15 = 'Main Flag'
|
||||
@ -154,7 +191,7 @@ READ16_MEMBER(harddriv_state::hdsnd68k_status_r)
|
||||
*
|
||||
*************************************/
|
||||
|
||||
WRITE16_MEMBER(harddriv_state::hdsnd68k_latches_w)
|
||||
WRITE16_MEMBER(harddriv_sound_board_device::hdsnd68k_latches_w)
|
||||
{
|
||||
/* bit 3 selects the value; data is ignored */
|
||||
data = (offset >> 3) & 1;
|
||||
@ -185,8 +222,7 @@ WRITE16_MEMBER(harddriv_state::hdsnd68k_latches_w)
|
||||
|
||||
case 4: /* RES320 */
|
||||
logerror("%06X:RES320=%d\n", space.device().safe_pcbase(), data);
|
||||
if (m_sounddsp != NULL)
|
||||
m_sounddsp->set_input_line(INPUT_LINE_HALT, data ? CLEAR_LINE : ASSERT_LINE);
|
||||
m_sounddsp->set_input_line(INPUT_LINE_HALT, data ? CLEAR_LINE : ASSERT_LINE);
|
||||
break;
|
||||
|
||||
case 7: /* LED */
|
||||
@ -195,13 +231,13 @@ WRITE16_MEMBER(harddriv_state::hdsnd68k_latches_w)
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(harddriv_state::hdsnd68k_speech_w)
|
||||
WRITE16_MEMBER(harddriv_sound_board_device::hdsnd68k_speech_w)
|
||||
{
|
||||
logerror("%06X:hdsnd68k_speech_w(%04X)=%04X\n", space.device().safe_pcbase(), offset, data);
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(harddriv_state::hdsnd68k_irqclr_w)
|
||||
WRITE16_MEMBER(harddriv_sound_board_device::hdsnd68k_irqclr_w)
|
||||
{
|
||||
m_irq68k = 0;
|
||||
update_68k_interrupts();
|
||||
@ -215,31 +251,31 @@ WRITE16_MEMBER(harddriv_state::hdsnd68k_irqclr_w)
|
||||
*
|
||||
*************************************/
|
||||
|
||||
READ16_MEMBER(harddriv_state::hdsnd68k_320ram_r)
|
||||
READ16_MEMBER(harddriv_sound_board_device::hdsnd68k_320ram_r)
|
||||
{
|
||||
return m_sounddsp_ram[offset & 0xfff];
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(harddriv_state::hdsnd68k_320ram_w)
|
||||
WRITE16_MEMBER(harddriv_sound_board_device::hdsnd68k_320ram_w)
|
||||
{
|
||||
COMBINE_DATA(&m_sounddsp_ram[offset & 0xfff]);
|
||||
}
|
||||
|
||||
|
||||
READ16_MEMBER(harddriv_state::hdsnd68k_320ports_r)
|
||||
READ16_MEMBER(harddriv_sound_board_device::hdsnd68k_320ports_r)
|
||||
{
|
||||
return m_sounddsp->space(AS_IO).read_word((offset & 7) << 1);
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(harddriv_state::hdsnd68k_320ports_w)
|
||||
WRITE16_MEMBER(harddriv_sound_board_device::hdsnd68k_320ports_w)
|
||||
{
|
||||
if (m_sounddsp) m_sounddsp->space(AS_IO).write_word((offset & 7) << 1, data);
|
||||
m_sounddsp->space(AS_IO).write_word((offset & 7) << 1, data);
|
||||
}
|
||||
|
||||
|
||||
READ16_MEMBER(harddriv_state::hdsnd68k_320com_r)
|
||||
READ16_MEMBER(harddriv_sound_board_device::hdsnd68k_320com_r)
|
||||
{
|
||||
if (m_cramen)
|
||||
return m_comram[offset & 0x1ff];
|
||||
@ -249,7 +285,7 @@ READ16_MEMBER(harddriv_state::hdsnd68k_320com_r)
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(harddriv_state::hdsnd68k_320com_w)
|
||||
WRITE16_MEMBER(harddriv_sound_board_device::hdsnd68k_320com_w)
|
||||
{
|
||||
if (m_cramen)
|
||||
COMBINE_DATA(&m_comram[offset & 0x1ff]);
|
||||
@ -265,7 +301,7 @@ WRITE16_MEMBER(harddriv_state::hdsnd68k_320com_w)
|
||||
*
|
||||
*************************************/
|
||||
|
||||
READ16_MEMBER(harddriv_state::hdsnddsp_get_bio)
|
||||
READ16_MEMBER(harddriv_sound_board_device::hdsnddsp_get_bio)
|
||||
{
|
||||
UINT64 cycles_since_last_bio = m_sounddsp->total_cycles() - m_last_bio_cycles;
|
||||
INT32 cycles_until_bio = CYCLES_PER_BIO - cycles_since_last_bio;
|
||||
@ -289,7 +325,7 @@ READ16_MEMBER(harddriv_state::hdsnddsp_get_bio)
|
||||
*
|
||||
*************************************/
|
||||
|
||||
WRITE16_MEMBER(harddriv_state::hdsnddsp_dac_w)
|
||||
WRITE16_MEMBER(harddriv_sound_board_device::hdsnddsp_dac_w)
|
||||
{
|
||||
/* DAC L */
|
||||
if (!m_dacmute)
|
||||
@ -297,14 +333,14 @@ WRITE16_MEMBER(harddriv_state::hdsnddsp_dac_w)
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(harddriv_state::hdsnddsp_comport_w)
|
||||
WRITE16_MEMBER(harddriv_sound_board_device::hdsnddsp_comport_w)
|
||||
{
|
||||
/* COM port TD0-7 */
|
||||
logerror("%06X:hdsnddsp_comport_w=%d\n", space.device().safe_pcbase(), data);
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(harddriv_state::hdsnddsp_mute_w)
|
||||
WRITE16_MEMBER(harddriv_sound_board_device::hdsnddsp_mute_w)
|
||||
{
|
||||
/* mute DAC audio, D0=1 */
|
||||
/* m_dacmute = data & 1; -- NOT STUFFED */
|
||||
@ -312,7 +348,7 @@ WRITE16_MEMBER(harddriv_state::hdsnddsp_mute_w)
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(harddriv_state::hdsnddsp_gen68kirq_w)
|
||||
WRITE16_MEMBER(harddriv_sound_board_device::hdsnddsp_gen68kirq_w)
|
||||
{
|
||||
/* generate 68k IRQ */
|
||||
m_irq68k = 1;
|
||||
@ -320,7 +356,7 @@ WRITE16_MEMBER(harddriv_state::hdsnddsp_gen68kirq_w)
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(harddriv_state::hdsnddsp_soundaddr_w)
|
||||
WRITE16_MEMBER(harddriv_sound_board_device::hdsnddsp_soundaddr_w)
|
||||
{
|
||||
if (offset == 0)
|
||||
{
|
||||
@ -335,7 +371,7 @@ WRITE16_MEMBER(harddriv_state::hdsnddsp_soundaddr_w)
|
||||
}
|
||||
|
||||
|
||||
READ16_MEMBER(harddriv_state::hdsnddsp_rom_r)
|
||||
READ16_MEMBER(harddriv_sound_board_device::hdsnddsp_rom_r)
|
||||
{
|
||||
if (m_sound_rom_offs < m_romsize)
|
||||
return m_rombase[m_sound_rom_offs++] << 7;
|
||||
@ -344,14 +380,77 @@ READ16_MEMBER(harddriv_state::hdsnddsp_rom_r)
|
||||
}
|
||||
|
||||
|
||||
READ16_MEMBER(harddriv_state::hdsnddsp_comram_r)
|
||||
READ16_MEMBER(harddriv_sound_board_device::hdsnddsp_comram_r)
|
||||
{
|
||||
return m_comram[m_sound_rom_offs++ & 0x1ff];
|
||||
}
|
||||
|
||||
|
||||
READ16_MEMBER(harddriv_state::hdsnddsp_compare_r)
|
||||
READ16_MEMBER(harddriv_sound_board_device::hdsnddsp_compare_r)
|
||||
{
|
||||
logerror("%06X:hdsnddsp_compare_r(%04X)\n", space.device().safe_pcbase(), offset);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( driversnd_68k_map, AS_PROGRAM, 16, harddriv_sound_board_device )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x000000, 0x01ffff) AM_ROM
|
||||
AM_RANGE(0xff0000, 0xff0fff) AM_READWRITE(hdsnd68k_data_r, hdsnd68k_data_w)
|
||||
AM_RANGE(0xff1000, 0xff1fff) AM_READWRITE(hdsnd68k_switches_r, hdsnd68k_latches_w)
|
||||
AM_RANGE(0xff2000, 0xff2fff) AM_READWRITE(hdsnd68k_320port_r, hdsnd68k_speech_w)
|
||||
AM_RANGE(0xff3000, 0xff3fff) AM_READWRITE(hdsnd68k_status_r, hdsnd68k_irqclr_w)
|
||||
AM_RANGE(0xff4000, 0xff5fff) AM_READWRITE(hdsnd68k_320ram_r, hdsnd68k_320ram_w)
|
||||
AM_RANGE(0xff6000, 0xff7fff) AM_READWRITE(hdsnd68k_320ports_r, hdsnd68k_320ports_w)
|
||||
AM_RANGE(0xff8000, 0xffbfff) AM_READWRITE(hdsnd68k_320com_r, hdsnd68k_320com_w)
|
||||
AM_RANGE(0xffc000, 0xffffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( driversnd_dsp_program_map, AS_PROGRAM, 16, harddriv_sound_board_device )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x000, 0xfff) AM_RAM AM_SHARE("sounddsp_ram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
/* $000 - 08F TMS32010 Internal Data RAM in Data Address Space */
|
||||
|
||||
static ADDRESS_MAP_START( driversnd_dsp_io_map, AS_IO, 16, harddriv_sound_board_device )
|
||||
AM_RANGE(0, 0) AM_READWRITE(hdsnddsp_rom_r, hdsnddsp_dac_w)
|
||||
AM_RANGE(1, 1) AM_READ(hdsnddsp_comram_r)
|
||||
AM_RANGE(2, 2) AM_READ(hdsnddsp_compare_r)
|
||||
AM_RANGE(1, 2) AM_WRITENOP
|
||||
AM_RANGE(3, 3) AM_WRITE(hdsnddsp_comport_w)
|
||||
AM_RANGE(4, 4) AM_WRITE(hdsnddsp_mute_w)
|
||||
AM_RANGE(5, 5) AM_WRITE(hdsnddsp_gen68kirq_w)
|
||||
AM_RANGE(6, 7) AM_WRITE(hdsnddsp_soundaddr_w)
|
||||
AM_RANGE(TMS32010_BIO, TMS32010_BIO) AM_READ(hdsnddsp_get_bio)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( harddriv_snd )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("soundcpu", M68000, XTAL_16MHz/2)
|
||||
MCFG_CPU_PROGRAM_MAP(driversnd_68k_map)
|
||||
|
||||
MCFG_CPU_ADD("sounddsp", TMS32010, XTAL_20MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(driversnd_dsp_program_map)
|
||||
/* Data Map is internal to the CPU */
|
||||
MCFG_CPU_IO_MAP(driversnd_dsp_io_map)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_DAC_ADD("dac")
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
//-------------------------------------------------
|
||||
// machine_config_additions - device-specific
|
||||
// machine configurations
|
||||
//-------------------------------------------------
|
||||
|
||||
machine_config_constructor harddriv_sound_board_device::device_mconfig_additions() const
|
||||
{
|
||||
return MACHINE_CONFIG_NAME( harddriv_snd );
|
||||
}
|
||||
|
@ -347,14 +347,13 @@ harddriv_state::harddriv_state(const machine_config &mconfig, const char *tag, d
|
||||
m_gsp(*this, "gsp"),
|
||||
m_msp(*this, "msp"),
|
||||
m_adsp(*this, "adsp"),
|
||||
m_soundcpu(*this, "soundcpu"),
|
||||
m_sounddsp(*this, "sounddsp"),
|
||||
m_jsacpu(*this, "jsacpu"),
|
||||
m_dsp32(*this, "dsp32"),
|
||||
m_ds3sdsp(*this, "ds3sdsp"),
|
||||
m_ds3xdsp(*this, "ds3xdsp"),
|
||||
m_ds3dac1(*this, "ds3dac1"),
|
||||
m_ds3dac2(*this, "ds3dac2"),
|
||||
m_harddriv_sound(*this, "harddriv_sound"),
|
||||
m_jsa(*this, "jsa"),
|
||||
m_hd34010_host_access(0),
|
||||
m_dsk_pio_access(0),
|
||||
@ -379,7 +378,6 @@ harddriv_state::harddriv_state(const machine_config &mconfig, const char *tag, d
|
||||
m_ds3_speedup_addr(0),
|
||||
m_ds3_speedup_pc(0),
|
||||
m_ds3_transfer_pc(0),
|
||||
m_sounddsp_ram(*this, "sounddsp_ram"),
|
||||
m_gsp_multisync(0),
|
||||
m_gsp_vram(*this, "gsp_vram", 16),
|
||||
m_gsp_control_lo(*this, "gsp_control_lo"),
|
||||
@ -445,23 +443,11 @@ harddriv_state::harddriv_state(const machine_config &mconfig, const char *tag, d
|
||||
m_st68k_sloop_bank(0),
|
||||
m_st68k_last_alt_sloop_offset(0),
|
||||
m_next_msp_sync(0),
|
||||
m_soundflag(0),
|
||||
m_mainflag(0),
|
||||
m_sounddata(0),
|
||||
m_maindata(0),
|
||||
m_dacmute(0),
|
||||
m_cramen(0),
|
||||
m_irq68k(0),
|
||||
m_sound_rom_offs(0),
|
||||
m_rombase(0),
|
||||
m_romsize(0),
|
||||
m_last_bio_cycles(0),
|
||||
m_vram_mask(0),
|
||||
m_shiftreg_enable(0),
|
||||
m_gsp_shiftreg_source(0),
|
||||
m_gfx_finescroll(0),
|
||||
m_gfx_palettebank(0),
|
||||
m_dac(*this, "dac"),
|
||||
m_duart(*this, "duartn68681"),
|
||||
m_asic65(*this, "asic65"),
|
||||
m_sound_int_state(0),
|
||||
@ -501,11 +487,6 @@ harddriv_state::harddriv_state(const machine_config &mconfig, const char *tag, d
|
||||
m_dataval[i] = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < 0x400 / 2; i++)
|
||||
{
|
||||
m_comram[i] = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < 65536 * 4; i++)
|
||||
{
|
||||
m_mask_table[i] = 0;
|
||||
@ -745,50 +726,6 @@ static ADDRESS_MAP_START( dsk2_dsp32_map, AS_PROGRAM, 32, harddriv_state )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Driver sound board memory maps
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static ADDRESS_MAP_START( driversnd_68k_map, AS_PROGRAM, 16, harddriv_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x000000, 0x01ffff) AM_ROM
|
||||
AM_RANGE(0xff0000, 0xff0fff) AM_READWRITE(hdsnd68k_data_r, hdsnd68k_data_w)
|
||||
AM_RANGE(0xff1000, 0xff1fff) AM_READWRITE(hdsnd68k_switches_r, hdsnd68k_latches_w)
|
||||
AM_RANGE(0xff2000, 0xff2fff) AM_READWRITE(hdsnd68k_320port_r, hdsnd68k_speech_w)
|
||||
AM_RANGE(0xff3000, 0xff3fff) AM_READWRITE(hdsnd68k_status_r, hdsnd68k_irqclr_w)
|
||||
AM_RANGE(0xff4000, 0xff5fff) AM_READWRITE(hdsnd68k_320ram_r, hdsnd68k_320ram_w)
|
||||
AM_RANGE(0xff6000, 0xff7fff) AM_READWRITE(hdsnd68k_320ports_r, hdsnd68k_320ports_w)
|
||||
AM_RANGE(0xff8000, 0xffbfff) AM_READWRITE(hdsnd68k_320com_r, hdsnd68k_320com_w)
|
||||
AM_RANGE(0xffc000, 0xffffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( driversnd_dsp_program_map, AS_PROGRAM, 16, harddriv_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x000, 0xfff) AM_RAM AM_SHARE("sounddsp_ram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
/* $000 - 08F TMS32010 Internal Data RAM in Data Address Space */
|
||||
|
||||
static ADDRESS_MAP_START( driversnd_dsp_io_map, AS_IO, 16, harddriv_state )
|
||||
AM_RANGE(0, 0) AM_READWRITE(hdsnddsp_rom_r, hdsnddsp_dac_w)
|
||||
AM_RANGE(1, 1) AM_READ(hdsnddsp_comram_r)
|
||||
AM_RANGE(2, 2) AM_READ(hdsnddsp_compare_r)
|
||||
AM_RANGE(1, 2) AM_WRITENOP
|
||||
AM_RANGE(3, 3) AM_WRITE(hdsnddsp_comport_w)
|
||||
AM_RANGE(4, 4) AM_WRITE(hdsnddsp_mute_w)
|
||||
AM_RANGE(5, 5) AM_WRITE(hdsnddsp_gen68kirq_w)
|
||||
AM_RANGE(6, 7) AM_WRITE(hdsnddsp_soundaddr_w)
|
||||
AM_RANGE(TMS32010_BIO, TMS32010_BIO) AM_READ(hdsnddsp_get_bio)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Port definitions
|
||||
@ -1663,32 +1600,6 @@ MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Sound board pieces
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( driversnd )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("soundcpu", M68000, XTAL_16MHz/2)
|
||||
MCFG_CPU_PROGRAM_MAP(driversnd_68k_map)
|
||||
|
||||
MCFG_CPU_ADD("sounddsp", TMS32010, XTAL_20MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(driversnd_dsp_program_map)
|
||||
/* Data Map is internal to the CPU */
|
||||
MCFG_CPU_IO_MAP(driversnd_dsp_io_map)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_DAC_ADD("dac")
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Machine drivers
|
||||
@ -1699,7 +1610,7 @@ static MACHINE_CONFIG_FRAGMENT( harddriv )
|
||||
MCFG_FRAGMENT_ADD( driver_msp )
|
||||
/* basic machine hardware */ /* original driver board with MSP */
|
||||
MCFG_FRAGMENT_ADD( adsp ) /* ADSP board */
|
||||
MCFG_FRAGMENT_ADD( driversnd ) /* driver sound board */
|
||||
MCFG_DEVICE_ADD("harddriv_sound", HARDDRIV_SOUND_BOARD_DEVICE, 0) /* driver sound board */
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( harddrivc )
|
||||
@ -1707,7 +1618,7 @@ static MACHINE_CONFIG_FRAGMENT( harddrivc )
|
||||
|
||||
/* basic machine hardware */ /* multisync board with MSP */
|
||||
MCFG_FRAGMENT_ADD( adsp ) /* ADSP board */
|
||||
MCFG_FRAGMENT_ADD( driversnd ) /* driver sound board */
|
||||
MCFG_DEVICE_ADD("harddriv_sound", HARDDRIV_SOUND_BOARD_DEVICE, 0) /* driver sound board */
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( racedriv )
|
||||
@ -1716,7 +1627,7 @@ static MACHINE_CONFIG_FRAGMENT( racedriv )
|
||||
/* basic machine hardware */ /* original driver board without MSP */
|
||||
MCFG_FRAGMENT_ADD( adsp ) /* ADSP board */
|
||||
MCFG_FRAGMENT_ADD( dsk ) /* DSK board */
|
||||
MCFG_FRAGMENT_ADD( driversnd ) /* driver sound board */
|
||||
MCFG_DEVICE_ADD("harddriv_sound", HARDDRIV_SOUND_BOARD_DEVICE, 0) /* driver sound board */
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( racedrivc )
|
||||
@ -1726,7 +1637,7 @@ static MACHINE_CONFIG_FRAGMENT( racedrivc )
|
||||
/* basic machine hardware */ /* multisync board without MSP */
|
||||
MCFG_FRAGMENT_ADD( adsp ) /* ADSP board */
|
||||
MCFG_FRAGMENT_ADD( dsk ) /* DSK board */
|
||||
MCFG_FRAGMENT_ADD( driversnd ) /* driver sound board */
|
||||
MCFG_DEVICE_ADD("harddriv_sound", HARDDRIV_SOUND_BOARD_DEVICE, 0) /* driver sound board */
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -1737,7 +1648,7 @@ static MACHINE_CONFIG_FRAGMENT( racedrivc_panorama_side )
|
||||
/* basic machine hardware */ /* multisync board without MSP */
|
||||
MCFG_FRAGMENT_ADD( adsp ) /* ADSP board */
|
||||
// MCFG_FRAGMENT_ADD( dsk ) /* DSK board */
|
||||
// MCFG_FRAGMENT_ADD( driversnd ) /* driver sound board */
|
||||
// MCFG_DEVICE_ADD("sound_board", HARDDRIV_SOUND_BOARD_DEVICE, 0) /* driver sound board */
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
WRITE_LINE_MEMBER(harddriv_state::sound_int_write_line)
|
||||
@ -2134,7 +2045,7 @@ ROM_START( harddriv )
|
||||
ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) )
|
||||
ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
|
||||
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
|
||||
|
||||
@ -2170,7 +2081,7 @@ ROM_START( harddrivg )
|
||||
ROM_LOAD16_BYTE( "136052-4211.200x", 0x0c0000, 0x010000, CRC(20d1b3d5) SHA1(b7c4a2cf6ba729530c24980704989b3a3efb343b) )
|
||||
ROM_LOAD16_BYTE( "136052-4219.210x", 0x0c0001, 0x010000, CRC(105e7052) SHA1(a8d13c35418e58410cfd74c243b74963f1553068) )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
|
||||
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
|
||||
|
||||
@ -2207,7 +2118,7 @@ ROM_START( harddrivj )
|
||||
ROM_LOAD16_BYTE( "136052-6811.200x", 0x0c0000, 0x010000, CRC(7bc5c8da) SHA1(ac228d6391bc9ac4238f953f9ad6eb93b3ff9958) )
|
||||
ROM_LOAD16_BYTE( "136052-6819.210x", 0x0c0001, 0x010000, CRC(368b7e17) SHA1(e8742edec6961173df4450073a427cf3b9f3ff57) )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
|
||||
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
|
||||
|
||||
@ -2242,7 +2153,7 @@ ROM_START( harddrivb )
|
||||
ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) )
|
||||
ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
|
||||
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
|
||||
|
||||
@ -2277,7 +2188,7 @@ ROM_START( harddrivb6 )
|
||||
ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) )
|
||||
ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
|
||||
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
|
||||
|
||||
@ -2314,7 +2225,7 @@ ROM_START( harddrivj6 )
|
||||
ROM_LOAD16_BYTE( "136052-6811.200x", 0x0c0000, 0x010000, CRC(7bc5c8da) SHA1(ac228d6391bc9ac4238f953f9ad6eb93b3ff9958) )
|
||||
ROM_LOAD16_BYTE( "136052-6819.210x", 0x0c0001, 0x010000, CRC(368b7e17) SHA1(e8742edec6961173df4450073a427cf3b9f3ff57) )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
|
||||
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
|
||||
|
||||
@ -2349,7 +2260,7 @@ ROM_START( harddrivb5 )
|
||||
ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) )
|
||||
ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
|
||||
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
|
||||
|
||||
@ -2384,7 +2295,7 @@ ROM_START( harddrivg4 )
|
||||
ROM_LOAD16_BYTE( "136052-4211.200x", 0x0c0000, 0x010000, CRC(20d1b3d5) SHA1(b7c4a2cf6ba729530c24980704989b3a3efb343b) )
|
||||
ROM_LOAD16_BYTE( "136052-4219.210x", 0x0c0001, 0x010000, CRC(105e7052) SHA1(a8d13c35418e58410cfd74c243b74963f1553068) )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
|
||||
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
|
||||
|
||||
@ -2419,7 +2330,7 @@ ROM_START( harddriv3 )
|
||||
ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) )
|
||||
ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
|
||||
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
|
||||
|
||||
@ -2454,7 +2365,7 @@ ROM_START( harddriv2 )
|
||||
ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) )
|
||||
ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
|
||||
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
|
||||
|
||||
@ -2489,7 +2400,7 @@ ROM_START( harddriv1 )
|
||||
ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) )
|
||||
ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
|
||||
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
|
||||
|
||||
@ -2524,7 +2435,7 @@ ROM_START( harddrivc )
|
||||
ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) )
|
||||
ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) )
|
||||
ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) )
|
||||
|
||||
@ -2559,7 +2470,7 @@ ROM_START( harddrivcg )
|
||||
ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) )
|
||||
ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) )
|
||||
ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) )
|
||||
|
||||
@ -2594,7 +2505,7 @@ ROM_START( harddrivcb )
|
||||
ROM_LOAD16_BYTE( "136068-2914.200x", 0x0c0000, 0x010000, CRC(dd2998a5) SHA1(36c71549d114309b9072ced83ed149cad1d23646) )
|
||||
ROM_LOAD16_BYTE( "136068-2913.210x", 0x0c0001, 0x010000, CRC(a211754d) SHA1(b93d4867f664caa76f2170ef0934194de29a5516) )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) )
|
||||
ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) )
|
||||
|
||||
@ -2629,7 +2540,7 @@ ROM_START( harddrivc1 )
|
||||
ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) )
|
||||
ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) )
|
||||
ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) )
|
||||
|
||||
@ -3126,7 +3037,7 @@ ROM_START( racedriv )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -3177,7 +3088,7 @@ ROM_START( racedrivb )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -3228,7 +3139,7 @@ ROM_START( racedrivg )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -3279,7 +3190,7 @@ ROM_START( racedriv4 )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -3330,7 +3241,7 @@ ROM_START( racedrivb4 )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -3381,7 +3292,7 @@ ROM_START( racedrivg4 )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -3432,7 +3343,7 @@ ROM_START( racedriv3 )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -3483,7 +3394,7 @@ ROM_START( racedriv2 )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -3534,7 +3445,7 @@ ROM_START( racedriv1 )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -3585,7 +3496,7 @@ ROM_START( racedrivg1 )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -3636,7 +3547,7 @@ ROM_START( racedrivb1 )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -3687,7 +3598,7 @@ ROM_START( racedrivc )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -3738,7 +3649,7 @@ ROM_START( racedrivcb )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -3789,7 +3700,7 @@ ROM_START( racedrivcg )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -3840,7 +3751,7 @@ ROM_START( racedrivc4 )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -3891,7 +3802,7 @@ ROM_START( racedrivcb4 )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -3942,7 +3853,7 @@ ROM_START( racedrivcg4 )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -3993,7 +3904,7 @@ ROM_START( racedrivc2 )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -4044,7 +3955,7 @@ ROM_START( racedrivc1 )
|
||||
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
|
||||
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
|
||||
|
||||
@ -4181,7 +4092,7 @@ ROM_START( racedrivpan )
|
||||
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
|
||||
|
||||
/* ADSP board */
|
||||
ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
|
||||
ROM_LOAD16_BYTE( "rdps1032.bin", 0x000000, 0x010000, CRC(33005f2a) SHA1(e4037a76f122b271a9675d9187ab847a11738640) )
|
||||
ROM_LOAD16_BYTE( "rdps1033.bin", 0x000001, 0x010000, CRC(4fc800ac) SHA1(dd8cfdb727d6a65274f4f871a589a36796ae1e57) )
|
||||
|
||||
@ -4930,12 +4841,10 @@ void harddriv_state::init_dspcom()
|
||||
/* COMMON INIT: initialize the original "driver" sound board */
|
||||
void harddriv_state::init_driver_sound()
|
||||
{
|
||||
hdsnd_init();
|
||||
|
||||
/* install sound handlers */
|
||||
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x840000, 0x840001, read16_delegate(FUNC(harddriv_state::hd68k_snd_data_r), this), write16_delegate(FUNC(harddriv_state::hd68k_snd_data_w), this));
|
||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0x844000, 0x844001, read16_delegate(FUNC(harddriv_state::hd68k_snd_status_r), this));
|
||||
m_maincpu->space(AS_PROGRAM).install_write_handler(0x84c000, 0x84c001, write16_delegate(FUNC(harddriv_state::hd68k_snd_reset_w), this));
|
||||
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x840000, 0x840001, read16_delegate(FUNC(harddriv_sound_board_device::hd68k_snd_data_r), (harddriv_sound_board_device*)m_harddriv_sound), write16_delegate(FUNC(harddriv_sound_board_device::hd68k_snd_data_w), (harddriv_sound_board_device*)m_harddriv_sound));
|
||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0x844000, 0x844001, read16_delegate(FUNC(harddriv_sound_board_device::hd68k_snd_status_r), (harddriv_sound_board_device*)m_harddriv_sound));
|
||||
m_maincpu->space(AS_PROGRAM).install_write_handler(0x84c000, 0x84c001, write16_delegate(FUNC(harddriv_sound_board_device::hd68k_snd_reset_w), (harddriv_sound_board_device*)m_harddriv_sound));
|
||||
}
|
||||
|
||||
|
||||
|
@ -35,8 +35,11 @@ extern const device_type STEELTALP_BOARD_DEVICE;
|
||||
extern const device_type STRTDRIV_BOARD_DEVICE;
|
||||
extern const device_type HDRIVAIR_BOARD_DEVICE;
|
||||
extern const device_type HDRIVAIRP_BOARD_DEVICE;
|
||||
extern const device_type HARDDRIV_SOUND_BOARD_DEVICE;
|
||||
|
||||
|
||||
class harddriv_sound_board_device;
|
||||
|
||||
class harddriv_state : public device_t
|
||||
/* public device_video_interface */
|
||||
{
|
||||
@ -48,14 +51,13 @@ public:
|
||||
required_device<tms34010_device> m_gsp;
|
||||
optional_device<tms34010_device> m_msp;
|
||||
required_device<adsp21xx_device> m_adsp;
|
||||
optional_device<cpu_device> m_soundcpu;
|
||||
optional_device<cpu_device> m_sounddsp;
|
||||
optional_device<cpu_device> m_jsacpu;
|
||||
optional_device<dsp32c_device> m_dsp32;
|
||||
optional_device<adsp2105_device> m_ds3sdsp;
|
||||
optional_device<adsp2105_device> m_ds3xdsp;
|
||||
optional_device<dac_device> m_ds3dac1;
|
||||
optional_device<dac_device> m_ds3dac2;
|
||||
optional_device<harddriv_sound_board_device> m_harddriv_sound;
|
||||
optional_device<atari_jsa_base_device> m_jsa;
|
||||
|
||||
UINT8 m_hd34010_host_access;
|
||||
@ -97,8 +99,6 @@ public:
|
||||
UINT32 m_msp_speedup_count[4];
|
||||
UINT32 m_adsp_speedup_count[4];
|
||||
|
||||
optional_shared_ptr<UINT16> m_sounddsp_ram;
|
||||
|
||||
UINT8 m_gsp_multisync;
|
||||
optional_shared_ptr<UINT8> m_gsp_vram;
|
||||
optional_shared_ptr<UINT16> m_gsp_control_lo;
|
||||
@ -185,23 +185,6 @@ public:
|
||||
UINT32 m_dataval[MAX_MSP_SYNC];
|
||||
int m_next_msp_sync;
|
||||
|
||||
/* audio state */
|
||||
UINT8 m_soundflag;
|
||||
UINT8 m_mainflag;
|
||||
UINT16 m_sounddata;
|
||||
UINT16 m_maindata;
|
||||
|
||||
UINT8 m_dacmute;
|
||||
UINT8 m_cramen;
|
||||
UINT8 m_irq68k;
|
||||
|
||||
offs_t m_sound_rom_offs;
|
||||
|
||||
UINT8 * m_rombase;
|
||||
UINT32 m_romsize;
|
||||
UINT16 m_comram[0x400/2];
|
||||
UINT64 m_last_bio_cycles;
|
||||
|
||||
/* video state */
|
||||
offs_t m_vram_mask;
|
||||
|
||||
@ -215,32 +198,6 @@ public:
|
||||
virtual void update_interrupts();
|
||||
DECLARE_READ16_MEMBER(steeltal_dummy_r);
|
||||
DECLARE_READ32_MEMBER(rddsp_unmap_r);
|
||||
DECLARE_READ16_MEMBER(hd68k_snd_data_r);
|
||||
DECLARE_READ16_MEMBER(hd68k_snd_status_r);
|
||||
DECLARE_WRITE16_MEMBER(hd68k_snd_data_w);
|
||||
DECLARE_WRITE16_MEMBER(hd68k_snd_reset_w);
|
||||
DECLARE_READ16_MEMBER(hdsnd68k_data_r);
|
||||
DECLARE_WRITE16_MEMBER(hdsnd68k_data_w);
|
||||
DECLARE_READ16_MEMBER(hdsnd68k_switches_r);
|
||||
DECLARE_READ16_MEMBER(hdsnd68k_320port_r);
|
||||
DECLARE_READ16_MEMBER(hdsnd68k_status_r);
|
||||
DECLARE_WRITE16_MEMBER(hdsnd68k_latches_w);
|
||||
DECLARE_WRITE16_MEMBER(hdsnd68k_speech_w);
|
||||
DECLARE_WRITE16_MEMBER(hdsnd68k_irqclr_w);
|
||||
DECLARE_READ16_MEMBER(hdsnd68k_320ram_r);
|
||||
DECLARE_WRITE16_MEMBER(hdsnd68k_320ram_w);
|
||||
DECLARE_READ16_MEMBER(hdsnd68k_320ports_r);
|
||||
DECLARE_WRITE16_MEMBER(hdsnd68k_320ports_w);
|
||||
DECLARE_READ16_MEMBER(hdsnd68k_320com_r);
|
||||
DECLARE_WRITE16_MEMBER(hdsnd68k_320com_w);
|
||||
DECLARE_READ16_MEMBER(hdsnddsp_get_bio);
|
||||
DECLARE_WRITE16_MEMBER(hdsnddsp_comport_w);
|
||||
DECLARE_WRITE16_MEMBER(hdsnddsp_mute_w);
|
||||
DECLARE_WRITE16_MEMBER(hdsnddsp_gen68kirq_w);
|
||||
DECLARE_WRITE16_MEMBER(hdsnddsp_soundaddr_w);
|
||||
DECLARE_READ16_MEMBER(hdsnddsp_rom_r);
|
||||
DECLARE_READ16_MEMBER(hdsnddsp_comram_r);
|
||||
DECLARE_READ16_MEMBER(hdsnddsp_compare_r);
|
||||
void init_driver();
|
||||
void init_multisync(int compact_inputs);
|
||||
void init_adsp();
|
||||
@ -278,18 +235,10 @@ public:
|
||||
INTERRUPT_GEN_MEMBER(hd68k_irq_gen);
|
||||
TIMER_CALLBACK_MEMBER(deferred_adsp_bank_switch);
|
||||
TIMER_CALLBACK_MEMBER(rddsp32_sync_cb);
|
||||
DECLARE_WRITE16_MEMBER(hdsnddsp_dac_w);
|
||||
optional_device<dac_device> m_dac;
|
||||
required_device<mc68681_device> m_duart;
|
||||
optional_device<asic65_device> m_asic65;
|
||||
DECLARE_WRITE_LINE_MEMBER(harddriv_duart_irq_handler);
|
||||
|
||||
/*----------- defined in audio/harddriv.c -----------*/
|
||||
|
||||
void hdsnd_init();
|
||||
void update_68k_interrupts();
|
||||
TIMER_CALLBACK_MEMBER( delayed_68k_w );
|
||||
|
||||
/*----------- defined in machine/harddriv.c -----------*/
|
||||
|
||||
/* Driver/Multisync board */
|
||||
@ -477,6 +426,74 @@ protected:
|
||||
virtual void device_reset();
|
||||
};
|
||||
|
||||
class harddriv_sound_board_device : public device_t
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
harddriv_sound_board_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
~harddriv_sound_board_device() {}
|
||||
|
||||
DECLARE_READ16_MEMBER(hd68k_snd_data_r);
|
||||
DECLARE_READ16_MEMBER(hd68k_snd_status_r);
|
||||
DECLARE_WRITE16_MEMBER(hd68k_snd_data_w);
|
||||
DECLARE_WRITE16_MEMBER(hd68k_snd_reset_w);
|
||||
|
||||
DECLARE_READ16_MEMBER(hdsnd68k_data_r);
|
||||
DECLARE_WRITE16_MEMBER(hdsnd68k_data_w);
|
||||
DECLARE_READ16_MEMBER(hdsnd68k_switches_r);
|
||||
DECLARE_READ16_MEMBER(hdsnd68k_320port_r);
|
||||
DECLARE_READ16_MEMBER(hdsnd68k_status_r);
|
||||
DECLARE_WRITE16_MEMBER(hdsnd68k_latches_w);
|
||||
DECLARE_WRITE16_MEMBER(hdsnd68k_speech_w);
|
||||
DECLARE_WRITE16_MEMBER(hdsnd68k_irqclr_w);
|
||||
DECLARE_READ16_MEMBER(hdsnd68k_320ram_r);
|
||||
DECLARE_WRITE16_MEMBER(hdsnd68k_320ram_w);
|
||||
DECLARE_READ16_MEMBER(hdsnd68k_320ports_r);
|
||||
DECLARE_WRITE16_MEMBER(hdsnd68k_320ports_w);
|
||||
DECLARE_READ16_MEMBER(hdsnd68k_320com_r);
|
||||
DECLARE_WRITE16_MEMBER(hdsnd68k_320com_w);
|
||||
DECLARE_READ16_MEMBER(hdsnddsp_get_bio);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(hdsnddsp_dac_w);
|
||||
DECLARE_WRITE16_MEMBER(hdsnddsp_comport_w);
|
||||
DECLARE_WRITE16_MEMBER(hdsnddsp_mute_w);
|
||||
DECLARE_WRITE16_MEMBER(hdsnddsp_gen68kirq_w);
|
||||
DECLARE_WRITE16_MEMBER(hdsnddsp_soundaddr_w);
|
||||
DECLARE_READ16_MEMBER(hdsnddsp_rom_r);
|
||||
DECLARE_READ16_MEMBER(hdsnddsp_comram_r);
|
||||
DECLARE_READ16_MEMBER(hdsnddsp_compare_r);
|
||||
|
||||
protected:
|
||||
virtual void device_start();
|
||||
virtual void device_reset();
|
||||
virtual machine_config_constructor device_mconfig_additions() const;
|
||||
|
||||
private:
|
||||
optional_device<cpu_device> m_soundcpu;
|
||||
optional_device<dac_device> m_dac;
|
||||
optional_device<cpu_device> m_sounddsp;
|
||||
optional_shared_ptr<UINT16> m_sounddsp_ram;
|
||||
|
||||
UINT8 m_soundflag;
|
||||
UINT8 m_mainflag;
|
||||
UINT16 m_sounddata;
|
||||
UINT16 m_maindata;
|
||||
|
||||
UINT8 m_dacmute;
|
||||
UINT8 m_cramen;
|
||||
UINT8 m_irq68k;
|
||||
|
||||
offs_t m_sound_rom_offs;
|
||||
|
||||
UINT8 * m_rombase;
|
||||
UINT32 m_romsize;
|
||||
UINT16 m_comram[0x400/2];
|
||||
UINT64 m_last_bio_cycles;
|
||||
|
||||
void update_68k_interrupts();
|
||||
TIMER_CALLBACK_MEMBER( delayed_68k_w );
|
||||
};
|
||||
|
||||
/* Hard Drivin' */
|
||||
|
||||
class harddriv_board_device_state : public harddriv_state
|
||||
|
@ -59,7 +59,6 @@ void harddriv_state::device_reset()
|
||||
/* halt several of the DSPs to start */
|
||||
if (m_adsp != NULL) m_adsp->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
|
||||
if (m_dsp32 != NULL) m_dsp32->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
|
||||
if (m_sounddsp != NULL) m_sounddsp->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
|
||||
|
||||
m_last_gsp_shiftreg = 0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user