Move the Cheap Squeak Deluxe sound board to its own file and give it

its's correct name.
This commit is contained in:
Dirk Best 2016-12-18 21:39:24 +01:00
parent ff06acd560
commit 0295ac745d
9 changed files with 298 additions and 259 deletions

View File

@ -2556,6 +2556,8 @@ files {
MAME_DIR .. "src/mame/machine/midwayic.h",
MAME_DIR .. "src/mame/audio/midway.cpp",
MAME_DIR .. "src/mame/audio/midway.h",
MAME_DIR .. "src/mame/audio/csd.cpp",
MAME_DIR .. "src/mame/audio/csd.h",
}
createMAMEProjects(_target, _subtarget, "namco")

211
src/mame/audio/csd.cpp Normal file
View File

@ -0,0 +1,211 @@
// license: BSD-3-Clause
// copyright-holders: Aaron Giles
/***************************************************************************
Cheap Squeak Deluxe / Artificial Artist Sound Board
***************************************************************************/
#include "csd.h"
#include "sound/volt_reg.h"
//**************************************************************************
// DEVICE DEFINITIONS
//**************************************************************************
extern const device_type MIDWAY_CHEAP_SQUEAK_DELUXE = &device_creator<midway_cheap_squeak_deluxe_device>;
//-------------------------------------------------
// midway_cheap_squeak_deluxe_device - constructor
//-------------------------------------------------
midway_cheap_squeak_deluxe_device::midway_cheap_squeak_deluxe_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, MIDWAY_CHEAP_SQUEAK_DELUXE, "Cheap Squeak Deluxe Sound Board", tag, owner, clock, "midcsd", __FILE__),
device_mixer_interface(mconfig, *this),
m_cpu(*this, "cpu"),
m_pia(*this, "pia"),
m_dac(*this, "dac"),
m_status(0),
m_dacval(0)
{
}
//-------------------------------------------------
// read - return the status value
//-------------------------------------------------
READ8_MEMBER(midway_cheap_squeak_deluxe_device::read)
{
return m_status;
}
//-------------------------------------------------
// write - handle an external write to the input
// latch
//-------------------------------------------------
WRITE8_MEMBER(midway_cheap_squeak_deluxe_device::write)
{
synchronize(0, data);
}
//-------------------------------------------------
// reset_write - write to the reset line
//-------------------------------------------------
WRITE_LINE_MEMBER(midway_cheap_squeak_deluxe_device::reset_write)
{
m_cpu->set_input_line(INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE);
}
//-------------------------------------------------
// porta_w - PIA port A writes
//-------------------------------------------------
WRITE8_MEMBER(midway_cheap_squeak_deluxe_device::porta_w)
{
m_dacval = (data << 2) | (m_dacval & 3);
m_dac->write(m_dacval);
}
//-------------------------------------------------
// portb_w - PIA port B writes
//-------------------------------------------------
WRITE8_MEMBER(midway_cheap_squeak_deluxe_device::portb_w)
{
m_dacval = (m_dacval & ~3) | (data >> 6);
m_dac->write(m_dacval);
uint8_t z_mask = m_pia->port_b_z_mask();
if (~z_mask & 0x10) m_status = (m_status & ~1) | ((data >> 4) & 1);
if (~z_mask & 0x20) m_status = (m_status & ~2) | ((data >> 4) & 2);
}
//-------------------------------------------------
// irq_w - IRQ line state changes
//-------------------------------------------------
WRITE_LINE_MEMBER(midway_cheap_squeak_deluxe_device::irq_w)
{
int combined_state = m_pia->irq_a_state() | m_pia->irq_b_state();
m_cpu->set_input_line(4, combined_state ? ASSERT_LINE : CLEAR_LINE);
}
//-------------------------------------------------
// pia_r - PIA read access
//-------------------------------------------------
READ16_MEMBER(midway_cheap_squeak_deluxe_device::pia_r)
{
// Spy Hunter accesses the MSB; Turbo Tag access via the LSB
// My guess is that Turbo Tag works through a fluke, whereby the 68000
// using the MOVEP instruction outputs the same value on the high and
// low bytes.
if (ACCESSING_BITS_8_15)
return m_pia->read_alt(space, offset) << 8;
else
return m_pia->read_alt(space, offset);
}
//-------------------------------------------------
// pia_w - PIA write access
//-------------------------------------------------
WRITE16_MEMBER(midway_cheap_squeak_deluxe_device::pia_w)
{
if (ACCESSING_BITS_8_15)
m_pia->write_alt(space, offset, data >> 8);
else
m_pia->write_alt(space, offset, data);
}
//-------------------------------------------------
// audio CPU map
//-------------------------------------------------
// address map determined by PAL; not verified
static ADDRESS_MAP_START( csdeluxe_map, AS_PROGRAM, 16, midway_cheap_squeak_deluxe_device )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x1ffff)
AM_RANGE(0x000000, 0x007fff) AM_ROM
AM_RANGE(0x018000, 0x018007) AM_READWRITE(pia_r, pia_w)
AM_RANGE(0x01c000, 0x01cfff) AM_RAM
ADDRESS_MAP_END
//-------------------------------------------------
// machine configuration
//-------------------------------------------------
static MACHINE_CONFIG_FRAGMENT(midway_cheap_squeak_deluxe)
MCFG_CPU_ADD("cpu", M68000, XTAL_16MHz/2)
MCFG_CPU_PROGRAM_MAP(csdeluxe_map)
MCFG_DEVICE_ADD("pia", PIA6821, 0)
MCFG_PIA_WRITEPA_HANDLER(WRITE8(midway_cheap_squeak_deluxe_device, porta_w))
MCFG_PIA_WRITEPB_HANDLER(WRITE8(midway_cheap_squeak_deluxe_device, portb_w))
MCFG_PIA_IRQA_HANDLER(WRITELINE(midway_cheap_squeak_deluxe_device, irq_w))
MCFG_PIA_IRQB_HANDLER(WRITELINE(midway_cheap_squeak_deluxe_device, irq_w))
MCFG_SOUND_ADD("dac", AD7533, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 1.0)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
//-------------------------------------------------
// device_mconfig_additions - return a pointer to
// the device's machine fragment
//-------------------------------------------------
machine_config_constructor midway_cheap_squeak_deluxe_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( midway_cheap_squeak_deluxe );
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
void midway_cheap_squeak_deluxe_device::device_start()
{
save_item(NAME(m_status));
save_item(NAME(m_dacval));
}
//-------------------------------------------------
// device_reset - device-specific reset
//-------------------------------------------------
void midway_cheap_squeak_deluxe_device::device_reset()
{
}
//-------------------------------------------------
// device_timer - timer callbacks
//-------------------------------------------------
void midway_cheap_squeak_deluxe_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
{
m_pia->portb_w(param & 0x0f);
m_pia->ca1_w(~param & 0x10);
// oftentimes games will write one nibble at a time; the sync on this is very
// important, so we boost the interleave briefly while this happens
machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
}

66
src/mame/audio/csd.h Normal file
View File

@ -0,0 +1,66 @@
// license: BSD-3-Clause
// copyright-holders: Aaron Giles
/***************************************************************************
Cheap Squeak Deluxe / Artificial Artist Sound Board
***************************************************************************/
#pragma once
#ifndef MAME_AUDIO_CSD_H
#define MAME_AUDIO_CSD_H
#include "emu.h"
#include "cpu/m68000/m68000.h"
#include "machine/6821pia.h"
#include "sound/dac.h"
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
// ======================> midway_cheap_squeak_deluxe_device
class midway_cheap_squeak_deluxe_device : public device_t,
public device_mixer_interface
{
public:
// construction/destruction
midway_cheap_squeak_deluxe_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// read/write
DECLARE_READ8_MEMBER(read);
DECLARE_WRITE8_MEMBER(write);
DECLARE_WRITE_LINE_MEMBER(reset_write);
// internal communications
DECLARE_WRITE8_MEMBER(porta_w);
DECLARE_WRITE8_MEMBER(portb_w);
DECLARE_WRITE_LINE_MEMBER(irq_w);
DECLARE_READ16_MEMBER(pia_r);
DECLARE_WRITE16_MEMBER(pia_w);
protected:
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
private:
// devices
required_device<m68000_device> m_cpu;
required_device<pia6821_device> m_pia;
required_device<dac_word_interface> m_dac;
// internal state
uint8_t m_status;
uint16_t m_dacval;
};
// device type definition
extern const device_type MIDWAY_CHEAP_SQUEAK_DELUXE;
#endif // MAME_AUDIO_CSD_H

View File

@ -21,7 +21,6 @@
//**************************************************************************
#define SSIO_CLOCK XTAL_16MHz
#define CSDELUXE_CLOCK XTAL_16MHz
#define SOUNDSGOOD_CLOCK XTAL_16MHz
#define TURBOCS_CLOCK XTAL_8MHz
#define SQUAWKTALK_CLOCK XTAL_3_579545MHz
@ -33,7 +32,6 @@
//**************************************************************************
extern const device_type MIDWAY_SSIO = &device_creator<midway_ssio_device>;
extern const device_type MIDWAY_CHIP_SQUEAK_DELUXE = &device_creator<midway_chip_squeak_deluxe_device>;
extern const device_type MIDWAY_SOUNDS_GOOD = &device_creator<midway_sounds_good_device>;
extern const device_type MIDWAY_TURBO_CHIP_SQUEAK = &device_creator<midway_turbo_chip_squeak_device>;
extern const device_type MIDWAY_SQUAWK_N_TALK = &device_creator<midway_squawk_n_talk_device>;
@ -483,205 +481,6 @@ void midway_ssio_device::device_timer(emu_timer &timer, device_timer_id id, int
//**************************************************************************
// CHIP SQUEAK DELUXE BOARD
//**************************************************************************
//-------------------------------------------------
// midway_chip_squeak_deluxe_device - constructor
//-------------------------------------------------
midway_chip_squeak_deluxe_device::midway_chip_squeak_deluxe_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, MIDWAY_CHIP_SQUEAK_DELUXE, "Midway Chip Squeak Deluxe Sound Board", tag, owner, clock, "midcsd", __FILE__),
device_mixer_interface(mconfig, *this),
m_cpu(*this, "cpu"),
m_pia(*this, "pia"),
m_dac(*this, "dac"),
m_status(0),
m_dacval(0)
{
}
//-------------------------------------------------
// read - return the status value
//-------------------------------------------------
READ8_MEMBER(midway_chip_squeak_deluxe_device::read)
{
return m_status;
}
//-------------------------------------------------
// write - handle an external write to the input
// latch
//-------------------------------------------------
WRITE8_MEMBER(midway_chip_squeak_deluxe_device::write)
{
synchronize(0, data);
}
//-------------------------------------------------
// reset_write - write to the reset line
//-------------------------------------------------
WRITE_LINE_MEMBER(midway_chip_squeak_deluxe_device::reset_write)
{
m_cpu->set_input_line(INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE);
}
//-------------------------------------------------
// porta_w - PIA port A writes
//-------------------------------------------------
WRITE8_MEMBER(midway_chip_squeak_deluxe_device::porta_w)
{
m_dacval = (data << 2) | (m_dacval & 3);
m_dac->write(m_dacval);
}
//-------------------------------------------------
// portb_w - PIA port B writes
//-------------------------------------------------
WRITE8_MEMBER(midway_chip_squeak_deluxe_device::portb_w)
{
m_dacval = (m_dacval & ~3) | (data >> 6);
m_dac->write(m_dacval);
uint8_t z_mask = m_pia->port_b_z_mask();
if (~z_mask & 0x10) m_status = (m_status & ~1) | ((data >> 4) & 1);
if (~z_mask & 0x20) m_status = (m_status & ~2) | ((data >> 4) & 2);
}
//-------------------------------------------------
// irq_w - IRQ line state changes
//-------------------------------------------------
WRITE_LINE_MEMBER(midway_chip_squeak_deluxe_device::irq_w)
{
int combined_state = m_pia->irq_a_state() | m_pia->irq_b_state();
m_cpu->set_input_line(4, combined_state ? ASSERT_LINE : CLEAR_LINE);
}
//-------------------------------------------------
// pia_r - PIA read access
//-------------------------------------------------
READ16_MEMBER(midway_chip_squeak_deluxe_device::pia_r)
{
// Spy Hunter accesses the MSB; Turbo Tag access via the LSB
// My guess is that Turbo Tag works through a fluke, whereby the 68000
// using the MOVEP instruction outputs the same value on the high and
// low bytes.
if (ACCESSING_BITS_8_15)
return m_pia->read_alt(space, offset) << 8;
else
return m_pia->read_alt(space, offset);
}
//-------------------------------------------------
// pia_w - PIA write access
//-------------------------------------------------
WRITE16_MEMBER(midway_chip_squeak_deluxe_device::pia_w)
{
if (ACCESSING_BITS_8_15)
m_pia->write_alt(space, offset, data >> 8);
else
m_pia->write_alt(space, offset, data);
}
//-------------------------------------------------
// audio CPU map
//-------------------------------------------------
// address map determined by PAL; not verified
static ADDRESS_MAP_START( csdeluxe_map, AS_PROGRAM, 16, midway_chip_squeak_deluxe_device )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x1ffff)
AM_RANGE(0x000000, 0x007fff) AM_ROM
AM_RANGE(0x018000, 0x018007) AM_READWRITE(pia_r, pia_w)
AM_RANGE(0x01c000, 0x01cfff) AM_RAM
ADDRESS_MAP_END
//-------------------------------------------------
// machine configuration
//-------------------------------------------------
static MACHINE_CONFIG_FRAGMENT(midway_chip_squeak_deluxe)
MCFG_CPU_ADD("cpu", M68000, CSDELUXE_CLOCK/2)
MCFG_CPU_PROGRAM_MAP(csdeluxe_map)
MCFG_DEVICE_ADD("pia", PIA6821, 0)
MCFG_PIA_WRITEPA_HANDLER(WRITE8(midway_chip_squeak_deluxe_device, porta_w))
MCFG_PIA_WRITEPB_HANDLER(WRITE8(midway_chip_squeak_deluxe_device, portb_w))
MCFG_PIA_IRQA_HANDLER(WRITELINE(midway_chip_squeak_deluxe_device, irq_w))
MCFG_PIA_IRQB_HANDLER(WRITELINE(midway_chip_squeak_deluxe_device, irq_w))
MCFG_SOUND_ADD("dac", AD7533, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 1.0)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
//-------------------------------------------------
// device_mconfig_additions - return a pointer to
// the device's machine fragment
//-------------------------------------------------
machine_config_constructor midway_chip_squeak_deluxe_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( midway_chip_squeak_deluxe );
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
void midway_chip_squeak_deluxe_device::device_start()
{
save_item(NAME(m_status));
save_item(NAME(m_dacval));
}
//-------------------------------------------------
// device_reset - device-specific reset
//-------------------------------------------------
void midway_chip_squeak_deluxe_device::device_reset()
{
}
//-------------------------------------------------
// device_timer - timer callbacks
//-------------------------------------------------
void midway_chip_squeak_deluxe_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
{
m_pia->portb_w(param & 0x0f);
m_pia->ca1_w(~param & 0x10);
// oftentimes games will write one nibble at a time; the sync on this is very
// important, so we boost the interleave briefly while this happens
machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
}
//**************************************************************************
// SOUNDS GOOD BOARD
//**************************************************************************

View File

@ -28,7 +28,6 @@
//**************************************************************************
extern const device_type MIDWAY_SSIO;
extern const device_type MIDWAY_CHIP_SQUEAK_DELUXE;
extern const device_type MIDWAY_SOUNDS_GOOD;
extern const device_type MIDWAY_TURBO_CHIP_SQUEAK;
extern const device_type MIDWAY_SQUAWK_N_TALK;
@ -108,46 +107,6 @@ private:
};
// ======================> midway_chip_squeak_deluxe_device
class midway_chip_squeak_deluxe_device : public device_t,
public device_mixer_interface
{
public:
// construction/destruction
midway_chip_squeak_deluxe_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// read/write
DECLARE_READ8_MEMBER(read);
DECLARE_WRITE8_MEMBER(write);
DECLARE_WRITE_LINE_MEMBER(reset_write);
// internal communications
DECLARE_WRITE8_MEMBER(porta_w);
DECLARE_WRITE8_MEMBER(portb_w);
DECLARE_WRITE_LINE_MEMBER(irq_w);
DECLARE_READ16_MEMBER(pia_r);
DECLARE_WRITE16_MEMBER(pia_w);
protected:
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
private:
// devices
required_device<m68000_device> m_cpu;
required_device<pia6821_device> m_pia;
required_device<dac_word_interface> m_dac;
// internal state
uint8_t m_status;
uint16_t m_dacval;
};
// ======================> midway_sounds_good_device
class midway_sounds_good_device : public device_t,

View File

@ -207,7 +207,7 @@
91658 = Lamp Sequencer (DOTron)
91659 = Flashing Fluorescent Assembly (DOTron)
91660 = Squawk & Talk (DOTron, NFLFoot)
91671 = Chip Squeak Deluxe (SpyHunt)
91671 = Cheap Squeak Deluxe (SpyHunt)
91673 = Lamp Driver (SpyHunt)
91695 = IPU laserdisk controller (NFLFoot)
91794 = Optical Encoder Deluxe (DemoDerb)

View File

@ -13,9 +13,9 @@
* Rampage (Sounds Good)
* Power Drive (Sounds Good)
* Star Guards (Sounds Good)
* Spy Hunter (Chip Squeak Deluxe)
* Spy Hunter (Cheap Squeak Deluxe)
* Crater Raider
* Turbo Tag (prototype) (Chip Squeak Deluxe)
* Turbo Tag (prototype) (Cheap Squeak Deluxe)
Known bugs:
* Spy Hunter crashes at the end of the boat level
@ -107,6 +107,7 @@
#include "cpu/z80/z80.h"
#include "machine/z80ctc.h"
#include "audio/midway.h"
#include "audio/csd.h"
#include "machine/nvram.h"
#include "includes/mcr.h"
#include "includes/mcr3.h"
@ -392,7 +393,7 @@ WRITE8_MEMBER(mcr3_state::stargrds_op6_w)
READ8_MEMBER(mcr3_state::spyhunt_ip1_r)
{
return ioport("ssio:IP1")->read() | (m_chip_squeak_deluxe->read(space, 0) << 5);
return ioport("ssio:IP1")->read() | (m_cheap_squeak_deluxe->read(space, 0) << 5);
}
@ -436,7 +437,7 @@ WRITE8_MEMBER(mcr3_state::spyhunt_op4_w)
m_last_op4 = data;
/* low 5 bits go to control the Chip Squeak Deluxe */
m_chip_squeak_deluxe->write(space, offset, data);
m_cheap_squeak_deluxe->write(space, offset, data);
}
@ -1171,11 +1172,11 @@ static MACHINE_CONFIG_DERIVED( mcrscroll, mcrmono )
MACHINE_CONFIG_END
/* Spy Hunter = scrolling system with an SSIO and a chip squeak deluxe */
/* Spy Hunter = scrolling system with an SSIO and a cheap squeak deluxe */
static MACHINE_CONFIG_DERIVED( mcrsc_csd, mcrscroll )
/* basic machine hardware */
MCFG_SOUND_ADD("csd", MIDWAY_CHIP_SQUEAK_DELUXE, 0)
MCFG_SOUND_ADD("csd", MIDWAY_CHEAP_SQUEAK_DELUXE, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MACHINE_CONFIG_END
@ -1392,7 +1393,7 @@ ROM_START( spyhunt )
ROM_LOAD( "spy-hunter_snd_0_sd_11-18-83.a7", 0x0000, 0x1000, CRC(c95cf31e) SHA1(d1b0e299a27e306ddbc0654fd3a9d981c92afe8c) )
ROM_LOAD( "spy-hunter_snd_1_sd_11-18-83.a8", 0x1000, 0x1000, CRC(12aaa48e) SHA1(c6b835fc45e4484a4d52b682ce015caa242c8b4f) )
ROM_REGION( 0x8000, "csd:cpu", 0 ) /* 32k for the Chip Squeak Deluxe */ // all dated 11-18-83
ROM_REGION( 0x8000, "csd:cpu", 0 ) /* 32k for the Cheap Squeak Deluxe */ // all dated 11-18-83
ROM_LOAD16_BYTE( "spy-hunter_cs_deluxe_u7_a_11-18-83.u7", 0x00000, 0x2000, CRC(6e689fe7) SHA1(38ad2e9f12b9d389fb2568ebcb32c8bd1ac6879e) )
ROM_LOAD16_BYTE( "spy-hunter_cs_deluxe_u17_b_11-18-83.u17", 0x00001, 0x2000, CRC(0d9ddce6) SHA1(d955c0e67fc78b517cc229601ab4023cc5a644c2) )
ROM_LOAD16_BYTE( "spy-hunter_cs_deluxe_u8_c_11-18-83.u8", 0x04000, 0x2000, CRC(35563cd0) SHA1(5708d374dd56758194c95118f096ea51bf12bf64) )
@ -1433,7 +1434,7 @@ ROM_START( spyhuntp )
ROM_LOAD( "spy-hunter_snd_0_sd_11-18-83.a7", 0x0000, 0x1000, CRC(c95cf31e) SHA1(d1b0e299a27e306ddbc0654fd3a9d981c92afe8c) )
ROM_LOAD( "spy-hunter_snd_1_sd_11-18-83.a8", 0x1000, 0x1000, CRC(12aaa48e) SHA1(c6b835fc45e4484a4d52b682ce015caa242c8b4f) )
ROM_REGION( 0x8000, "csd:cpu", 0 ) /* 32k for the Chip Squeak Deluxe */
ROM_REGION( 0x8000, "csd:cpu", 0 ) /* 32k for the Cheap Squeak Deluxe */
ROM_LOAD16_BYTE( "spy-hunter_cs_deluxe_u7_a_11-18-83.u7", 0x00000, 0x2000, CRC(6e689fe7) SHA1(38ad2e9f12b9d389fb2568ebcb32c8bd1ac6879e) )
ROM_LOAD16_BYTE( "spy-hunter_cs_deluxe_u17_b_11-18-83.u17", 0x00001, 0x2000, CRC(0d9ddce6) SHA1(d955c0e67fc78b517cc229601ab4023cc5a644c2) )
ROM_LOAD16_BYTE( "spy-hunter_cs_deluxe_u8_c_11-18-83.u8", 0x04000, 0x2000, CRC(35563cd0) SHA1(5708d374dd56758194c95118f096ea51bf12bf64) )
@ -1509,7 +1510,7 @@ ROM_START( turbotag )
ROM_REGION( 0x10000, "ssio:cpu", ROMREGION_ERASE00 )
ROM_REGION( 0x8000, "csd:cpu", 0 ) /* 32k for the Chip Squeak Deluxe */
ROM_REGION( 0x8000, "csd:cpu", 0 ) /* 32k for the Cheap Squeak Deluxe */
ROM_LOAD16_BYTE( "ttu7.bin", 0x00000, 0x2000, CRC(8ebb3302) SHA1(c516abdae6eea524a6d2a039ed9bd7dff72ab986) )
ROM_LOAD16_BYTE( "ttu17.bin", 0x00001, 0x2000, CRC(605d6c74) SHA1(a6c2bc95cca372fa823ab256c9dd1f92b6ba45fd) )
ROM_LOAD16_BYTE( "ttu8.bin", 0x04000, 0x2000, CRC(6bfcb22a) SHA1(7b895e3ae1e99f195bb32b052f801b58c63a401c) )

View File

@ -22,7 +22,7 @@
#include "machine/6821pia.h"
#include "machine/6840ptm.h"
#include "machine/watchdog.h"
#include "audio/midway.h"
#include "audio/csd.h"
//**************************************************************************
@ -43,7 +43,7 @@ public:
m_screen(*this, "screen"),
m_gfxdecode(*this, "gfxdecode"),
m_videoram(*this, "videoram"),
m_chip_squeak_deluxe(*this, "csd"),
m_cheap_squeak_deluxe(*this, "csd"),
m_bg_tilemap(nullptr),
m_fg_tilemap(nullptr),
m_sound_data(0)
@ -82,7 +82,7 @@ private:
required_device<screen_device> m_screen;
required_device<gfxdecode_device> m_gfxdecode;
required_shared_ptr<uint16_t> m_videoram;
required_device<midway_chip_squeak_deluxe_device> m_chip_squeak_deluxe;
required_device<midway_cheap_squeak_deluxe_device> m_cheap_squeak_deluxe;
tilemap_t *m_bg_tilemap;
tilemap_t *m_fg_tilemap;
@ -411,7 +411,7 @@ WRITE8_MEMBER( zwackery_state::pia1_porta_w )
WRITE_LINE_MEMBER( zwackery_state::pia1_ca2_w )
{
m_chip_squeak_deluxe->write(machine().dummy_space(), 0, (state << 4) | m_sound_data);
m_cheap_squeak_deluxe->write(machine().dummy_space(), 0, (state << 4) | m_sound_data);
}
@ -539,7 +539,7 @@ static MACHINE_CONFIG_START( zwackery, zwackery_state )
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("csd", MIDWAY_CHIP_SQUEAK_DELUXE, 0)
MCFG_SOUND_ADD("csd", MIDWAY_CHEAP_SQUEAK_DELUXE, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
MACHINE_CONFIG_END

View File

@ -13,6 +13,7 @@
#include "machine/z80dart.h"
#include "machine/watchdog.h"
#include "audio/midway.h"
#include "audio/csd.h"
#include "sound/samples.h"
/* constants */
@ -32,7 +33,7 @@ public:
m_paletteram(*this, "paletteram"),
m_sio(*this, "ipu_sio"),
m_ssio(*this, "ssio"),
m_chip_squeak_deluxe(*this, "csd"),
m_cheap_squeak_deluxe(*this, "csd"),
m_sounds_good(*this, "sg"),
m_turbo_chip_squeak(*this, "tcs"),
m_squawk_n_talk(*this, "snt"),
@ -52,7 +53,7 @@ public:
optional_device<z80dart_device> m_sio;
optional_device<midway_ssio_device> m_ssio;
optional_device<midway_chip_squeak_deluxe_device> m_chip_squeak_deluxe;
optional_device<midway_cheap_squeak_deluxe_device> m_cheap_squeak_deluxe;
optional_device<midway_sounds_good_device> m_sounds_good;
optional_device<midway_turbo_chip_squeak_device> m_turbo_chip_squeak;
optional_device<midway_squawk_n_talk_device> m_squawk_n_talk;