finished updating mame/audio devices to use device_add_mconfig insted of device_mconfig_additions (nw)

This commit is contained in:
Ivan Vangelista 2017-05-24 16:41:34 +02:00
parent a20c2428d6
commit 5613114773
33 changed files with 316 additions and 546 deletions

View File

@ -85,27 +85,6 @@ static ADDRESS_MAP_START( gottlieb_sound_r0_map, AS_PROGRAM, 8, gottlieb_sound_r
ADDRESS_MAP_END
//-------------------------------------------------
// machine configuration
//-------------------------------------------------
MACHINE_CONFIG_START( gottlieb_sound_r0 )
// audio CPU
MCFG_CPU_ADD("audiocpu", M6502, SOUND1_CLOCK/4) // M6503 - clock is a gate, a resistor and a capacitor. Freq unknown.
MCFG_CPU_PROGRAM_MAP(gottlieb_sound_r0_map)
// I/O configuration
MCFG_DEVICE_ADD("r6530", MOS6530, SOUND1_CLOCK/4) // unknown - same as cpu
MCFG_MOS6530_OUT_PA_CB(DEVWRITE8("dac", dac_byte_interface, write))
MCFG_MOS6530_IN_PB_CB(READ8(gottlieb_sound_r0_device, r6530b_r))
// sound devices
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.25) // unknown DAC
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
//-------------------------------------------------
// input ports
//-------------------------------------------------
@ -126,14 +105,24 @@ INPUT_CHANGED_MEMBER( gottlieb_sound_r0_device::audio_nmi )
//-------------------------------------------------
// device_mconfig_additions - return a pointer to
// the device's machine fragment
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor gottlieb_sound_r0_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( gottlieb_sound_r0 );
}
MACHINE_CONFIG_MEMBER( gottlieb_sound_r0_device::device_add_mconfig )
// audio CPU
MCFG_CPU_ADD("audiocpu", M6502, SOUND1_CLOCK/4) // M6503 - clock is a gate, a resistor and a capacitor. Freq unknown.
MCFG_CPU_PROGRAM_MAP(gottlieb_sound_r0_map)
// I/O configuration
MCFG_DEVICE_ADD("r6530", MOS6530, SOUND1_CLOCK/4) // unknown - same as cpu
MCFG_MOS6530_OUT_PA_CB(DEVWRITE8("dac", dac_byte_interface, write))
MCFG_MOS6530_IN_PB_CB(READ8(gottlieb_sound_r0_device, r6530b_r))
// sound devices
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.25) // unknown DAC
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
//-------------------------------------------------
@ -288,37 +277,6 @@ static ADDRESS_MAP_START( gottlieb_sound_r1_map, AS_PROGRAM, 8, gottlieb_sound_r
ADDRESS_MAP_END
//-------------------------------------------------
// machine configuration
//-------------------------------------------------
MACHINE_CONFIG_START( gottlieb_sound_r1 )
// audio CPU
MCFG_CPU_ADD("audiocpu", M6502, SOUND1_CLOCK/4) // the board can be set to /2 as well
MCFG_CPU_PROGRAM_MAP(gottlieb_sound_r1_map)
// I/O configuration
MCFG_DEVICE_ADD("riot", RIOT6532, SOUND1_CLOCK/4)
MCFG_RIOT6532_IN_PB_CB(IOPORT("SB1"))
MCFG_RIOT6532_OUT_PB_CB(WRITE8(gottlieb_sound_r1_device, r6532_portb_w))
MCFG_RIOT6532_IRQ_CB(WRITELINE(gottlieb_sound_r1_device, snd_interrupt))
// sound devices
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.25) // unknown DAC
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
MACHINE_CONFIG_START( gottlieb_sound_r1_with_votrax )
MCFG_FRAGMENT_ADD(gottlieb_sound_r1)
// add the VOTRAX
MCFG_DEVICE_ADD("votrax", VOTRAX_SC01, 720000)
MCFG_VOTRAX_SC01_REQUEST_CB(DEVWRITELINE(DEVICE_SELF, gottlieb_sound_r1_device, votrax_request))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.5)
MACHINE_CONFIG_END
//-------------------------------------------------
// input ports
//-------------------------------------------------
@ -345,14 +303,25 @@ INPUT_PORTS_END
//-------------------------------------------------
// device_mconfig_additions - return a pointer to
// the device's machine fragment
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor gottlieb_sound_r1_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( gottlieb_sound_r1 );
}
MACHINE_CONFIG_MEMBER( gottlieb_sound_r1_device::device_add_mconfig )
// audio CPU
MCFG_CPU_ADD("audiocpu", M6502, SOUND1_CLOCK/4) // the board can be set to /2 as well
MCFG_CPU_PROGRAM_MAP(gottlieb_sound_r1_map)
// I/O configuration
MCFG_DEVICE_ADD("riot", RIOT6532, SOUND1_CLOCK/4)
MCFG_RIOT6532_IN_PB_CB(IOPORT("SB1"))
MCFG_RIOT6532_OUT_PB_CB(WRITE8(gottlieb_sound_r1_device, r6532_portb_w))
MCFG_RIOT6532_IRQ_CB(WRITELINE(gottlieb_sound_r1_device, snd_interrupt))
// sound devices
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.25) // unknown DAC
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
//-------------------------------------------------
@ -392,14 +361,17 @@ gottlieb_sound_r1_with_votrax_device::gottlieb_sound_r1_with_votrax_device(const
//-------------------------------------------------
// device_mconfig_additions - return a pointer to
// the device's machine fragment
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor gottlieb_sound_r1_with_votrax_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( gottlieb_sound_r1_with_votrax );
}
MACHINE_CONFIG_MEMBER( gottlieb_sound_r1_with_votrax_device::device_add_mconfig )
gottlieb_sound_r1_device::device_add_mconfig(config);
// add the VOTRAX
MCFG_DEVICE_ADD("votrax", VOTRAX_SC01, 720000)
MCFG_VOTRAX_SC01_REQUEST_CB(DEVWRITELINE(DEVICE_SELF, gottlieb_sound_r1_device, votrax_request))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.5)
MACHINE_CONFIG_END
//-------------------------------------------------
@ -670,10 +642,29 @@ ADDRESS_MAP_END
//-------------------------------------------------
// machine configuration
// input ports
//-------------------------------------------------
MACHINE_CONFIG_START( gottlieb_sound_r2 )
INPUT_PORTS_START( gottlieb_sound_r2 )
PORT_START("SB2")
PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SB2:1")
PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SB2:2")
PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SB2:3")
PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SB2:4")
PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SB2:5")
PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SB2:6")
PORT_DIPNAME( 0x40, 0x40, "Sound Test" ) PORT_DIPLOCATION("SB2:7")
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, gottlieb_sound_r2_device, speech_drq_custom_r, nullptr)
INPUT_PORTS_END
//-------------------------------------------------
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_MEMBER( gottlieb_sound_r2_device::device_add_mconfig )
// audio CPUs
MCFG_CPU_ADD("audiocpu", M6502, SOUND2_CLOCK/4)
MCFG_CPU_PROGRAM_MAP(gottlieb_sound_r2_map)
@ -699,36 +690,6 @@ MACHINE_CONFIG_START( gottlieb_sound_r2 )
MACHINE_CONFIG_END
//-------------------------------------------------
// input ports
//-------------------------------------------------
INPUT_PORTS_START( gottlieb_sound_r2 )
PORT_START("SB2")
PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SB2:1")
PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SB2:2")
PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SB2:3")
PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SB2:4")
PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SB2:5")
PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SB2:6")
PORT_DIPNAME( 0x40, 0x40, "Sound Test" ) PORT_DIPLOCATION("SB2:7")
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, gottlieb_sound_r2_device, speech_drq_custom_r, nullptr)
INPUT_PORTS_END
//-------------------------------------------------
// device_mconfig_additions - return a pointer to
// the device's machine fragment
//-------------------------------------------------
machine_config_constructor gottlieb_sound_r2_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( gottlieb_sound_r2 );
}
//-------------------------------------------------
// device_input_ports - return a pointer to
// the device's I/O ports

View File

@ -50,12 +50,11 @@ public:
DECLARE_WRITE8_MEMBER( write );
// internal communications
DECLARE_READ8_MEMBER( r6530b_r );
DECLARE_INPUT_CHANGED_MEMBER(audio_nmi);
protected:
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
virtual void device_start() override;
@ -65,6 +64,8 @@ private:
required_device<mos6530_device> m_r6530;
uint8_t m_sndcmd;
DECLARE_READ8_MEMBER( r6530b_r );
};
// ======================> gottlieb_sound_r1_device
@ -80,8 +81,6 @@ public:
DECLARE_WRITE8_MEMBER( write );
// internal communications
DECLARE_WRITE_LINE_MEMBER( snd_interrupt );
DECLARE_WRITE8_MEMBER( r6532_portb_w );
DECLARE_WRITE8_MEMBER( votrax_data_w );
DECLARE_WRITE8_MEMBER( speech_clock_dac_w );
DECLARE_WRITE_LINE_MEMBER( votrax_request );
@ -95,7 +94,7 @@ protected:
uint32_t clock);
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
virtual void device_start() override;
@ -108,6 +107,9 @@ private:
// internal state
//bool m_populate_votrax;
uint8_t m_last_speech_clock;
DECLARE_WRITE_LINE_MEMBER( snd_interrupt );
DECLARE_WRITE8_MEMBER( r6532_portb_w );
};
// fully populated rev 1 sound board
@ -119,7 +121,7 @@ public:
protected:
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
};
@ -151,7 +153,7 @@ public:
protected:
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
virtual void device_start() override;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;

View File

@ -423,7 +423,11 @@ static ADDRESS_MAP_START( driversnd_dsp_io_map, AS_IO, 16, harddriv_sound_board_
ADDRESS_MAP_END
static MACHINE_CONFIG_START( harddriv_snd )
//-------------------------------------------------
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_MEMBER( harddriv_sound_board_device::device_add_mconfig )
/* basic machine hardware */
MCFG_CPU_ADD("soundcpu", M68000, XTAL_16MHz/2)
@ -442,13 +446,3 @@ static MACHINE_CONFIG_START( harddriv_snd )
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
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor harddriv_sound_board_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( harddriv_snd );
}

View File

@ -23,8 +23,11 @@ irem_audio_device::irem_audio_device(const machine_config &mconfig, device_type
, m_port1(0)
, m_port2(0)
, m_soundlatch(0)
//, m_ay_45L(*this, "ay_45l")
//, m_ay_45M(*this, "ay_45m")
, m_cpu(*this, "iremsound")
, m_ay_45L(*this, "ay_45l")
, m_ay_45M(*this, "ay_45m")
, m_adpcm1(*this, "msm1")
, m_adpcm2(*this, "msm2")
, m_audio_BD(*this, "snd_nl:ibd")
, m_audio_SD(*this, "snd_nl:isd")
, m_audio_OH(*this, "snd_nl:ioh")
@ -53,11 +56,6 @@ m52_large_audio_device::m52_large_audio_device(const machine_config &mconfig, co
void irem_audio_device::device_start()
{
m_adpcm1 = subdevice<msm5205_device>("msm1");
m_adpcm2 = subdevice<msm5205_device>("msm2");
m_ay_45L = subdevice<ay8910_device>("ay_45l");
m_ay_45M = subdevice<ay8910_device>("ay_45m");
m_audio_SINH = subdevice<netlist_mame_logic_input_device>("snd_nl:sinh");
save_item(NAME(m_port1));
@ -74,12 +72,12 @@ void irem_audio_device::device_reset()
if (m_adpcm2) m_adpcm2->reset();
m_ay_45L->reset();
m_ay_45M->reset();
subdevice("iremsound")->reset();
m_cpu->reset();
m_port1 = 0; // ?
m_port2 = 0; // ?
m_soundlatch = 0;
subdevice("iremsound")->execute().set_input_line(0, ASSERT_LINE);
m_cpu->set_input_line(0, ASSERT_LINE);
}
/*************************************
@ -93,7 +91,7 @@ WRITE8_MEMBER( irem_audio_device::cmd_w )
{
m_soundlatch = data;
if ((data & 0x80) == 0)
subdevice("iremsound")->execute().set_input_line(0, ASSERT_LINE);
m_cpu->set_input_line(0, ASSERT_LINE);
}
@ -226,7 +224,7 @@ WRITE8_MEMBER( irem_audio_device::ay8910_45L_porta_w )
WRITE8_MEMBER( irem_audio_device::sound_irq_ack_w )
{
if ((m_soundlatch & 0x80) != 0)
subdevice("iremsound")->execute().set_input_line(0, CLEAR_LINE);
m_cpu->set_input_line(0, CLEAR_LINE);
}
@ -261,7 +259,7 @@ WRITE8_MEMBER( irem_audio_device::m62_adpcm_w )
void irem_audio_device::adpcm_int(int st)
{
subdevice("iremsound")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
m_cpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
/* the first MSM5205 clocks the second */
if (m_adpcm2 != nullptr)
@ -423,16 +421,15 @@ ADDRESS_MAP_END
*
*/
/*************************************
*
* Machine drivers
*
*************************************/
//-------------------------------------------------
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( irem_audio_base )
MACHINE_CONFIG_MEMBER( m62_audio_device::device_add_mconfig )
/* basic machine hardware */
MCFG_CPU_ADD("iremsound", M6803, XTAL_3_579545MHz) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(m62_sound_map)
MCFG_CPU_IO_MAP(irem_sound_portmap)
/* sound hardware */
@ -497,7 +494,7 @@ static MACHINE_CONFIG_START( irem_audio_base )
MACHINE_CONFIG_END
MACHINE_CONFIG_START( m52_sound_c_audio )
MACHINE_CONFIG_MEMBER( m52_soundc_audio_device::device_add_mconfig )
/* basic machine hardware */
MCFG_CPU_ADD("iremsound", M6803, XTAL_3_579545MHz) /* verified on pcb */
@ -531,7 +528,7 @@ MACHINE_CONFIG_START( m52_sound_c_audio )
MACHINE_CONFIG_END
MACHINE_CONFIG_START( m52_large_audio) /* 10 yard fight */
MACHINE_CONFIG_MEMBER( m52_large_audio_device::device_add_mconfig ) /* 10 yard fight */
/* basic machine hardware */
MCFG_CPU_ADD("iremsound", M6803, XTAL_3_579545MHz) /* verified on pcb */
@ -565,25 +562,3 @@ MACHINE_CONFIG_START( m52_large_audio) /* 10 yard fight */
MACHINE_CONFIG_END
MACHINE_CONFIG_DERIVED( m62_audio, irem_audio_base )
/* basic machine hardware */
MCFG_CPU_MODIFY("iremsound")
MCFG_CPU_PROGRAM_MAP(m62_sound_map)
MACHINE_CONFIG_END
machine_config_constructor m62_audio_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( m62_audio );
}
machine_config_constructor m52_soundc_audio_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( m52_sound_c_audio );
}
machine_config_constructor m52_large_audio_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( m52_large_audio );
}

View File

@ -14,21 +14,21 @@ class irem_audio_device : public device_t
{
public:
DECLARE_WRITE8_MEMBER( cmd_w );
DECLARE_READ8_MEMBER( soundlatch_r );
DECLARE_WRITE8_MEMBER( m6803_port1_w );
DECLARE_WRITE8_MEMBER( m6803_port2_w );
DECLARE_READ8_MEMBER( m6803_port1_r );
DECLARE_READ8_MEMBER( m6803_port2_r );
DECLARE_WRITE8_MEMBER( ay8910_45M_portb_w );
DECLARE_WRITE8_MEMBER( ay8910_45L_porta_w );
DECLARE_WRITE8_MEMBER( sound_irq_ack_w );
DECLARE_WRITE8_MEMBER( m52_adpcm_w );
DECLARE_WRITE8_MEMBER( m62_adpcm_w );
void adpcm_int(int st);
netlist_mame_logic_input_device * m_audio_SINH;
DECLARE_READ8_MEMBER( soundlatch_r );
DECLARE_WRITE8_MEMBER( ay8910_45M_portb_w );
DECLARE_WRITE8_MEMBER( ay8910_45L_porta_w );
void adpcm_int(int st);
protected:
irem_audio_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
@ -42,14 +42,12 @@ private:
uint8_t m_port2;
uint8_t m_soundlatch;
/* FIXME: using required / optional device would be better */
// required_device<ay8910_device> m_ay_45L;
// required_device<ay8910_device> m_ay_45M;
ay8910_device *m_ay_45L;
ay8910_device *m_ay_45M;
msm5205_device *m_adpcm1;
msm5205_device *m_adpcm2;
required_device<cpu_device> m_cpu;
required_device<ay8910_device> m_ay_45L;
required_device<ay8910_device> m_ay_45M;
required_device<msm5205_device> m_adpcm1;
optional_device<msm5205_device> m_adpcm2;
optional_device<netlist_mame_logic_input_device> m_audio_BD;
optional_device<netlist_mame_logic_input_device> m_audio_SD;
optional_device<netlist_mame_logic_input_device> m_audio_OH;
@ -60,26 +58,29 @@ class m62_audio_device : public irem_audio_device
{
public:
m62_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual machine_config_constructor device_mconfig_additions() const override;
protected:
virtual void device_add_mconfig(machine_config &config) override;
};
class m52_soundc_audio_device : public irem_audio_device
{
public:
m52_soundc_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual machine_config_constructor device_mconfig_additions() const override;
protected:
virtual void device_add_mconfig(machine_config &config) override;
};
class m52_large_audio_device : public irem_audio_device
{
public:
m52_large_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual machine_config_constructor device_mconfig_additions() const override;
protected:
virtual void device_add_mconfig(machine_config &config) override;
};
//MACHINE_CONFIG_EXTERN( m52_sound_c_audio );
//MACHINE_CONFIG_EXTERN( m52_large_audio );
//MACHINE_CONFIG_EXTERN( m62_audio );
DECLARE_DEVICE_TYPE(IREM_M62_AUDIO, m62_audio_device)
DECLARE_DEVICE_TYPE(IREM_M52_SOUNDC_AUDIO, m52_soundc_audio_device)

View File

@ -133,7 +133,7 @@ WRITE_LINE_MEMBER(leland_80186_sound_device::i80186_tmr1_w)
set_clock_line(7, state);
}
static MACHINE_CONFIG_START( leland_80186_sound )
MACHINE_CONFIG_MEMBER( leland_80186_sound_device::device_add_mconfig )
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac1", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // 74hc374.u31 + ad7524.u46
MCFG_SOUND_ADD("dac2", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // 74hc374.u32 + ad7524.u47
@ -174,7 +174,7 @@ static MACHINE_CONFIG_START( leland_80186_sound )
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(leland_80186_sound_device, pit1_2_w))
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( redline_80186_sound )
MACHINE_CONFIG_MEMBER( redline_80186_sound_device::device_add_mconfig )
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac1", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC
MCFG_SOUND_ADD("dac2", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC
@ -224,7 +224,7 @@ static MACHINE_CONFIG_START( redline_80186_sound )
MCFG_PIT8253_CLK2(7000000)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( ataxx_80186_sound )
MACHINE_CONFIG_MEMBER( ataxx_80186_sound_device::device_add_mconfig )
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac1", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC
MCFG_SOUND_ADD("dac2", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC
@ -251,7 +251,7 @@ static MACHINE_CONFIG_START( ataxx_80186_sound )
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(leland_80186_sound_device, pit0_2_w))
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( wsf_80186_sound )
MACHINE_CONFIG_MEMBER( wsf_80186_sound_device::device_add_mconfig )
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac1", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC
MCFG_SOUND_ADD("dac2", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC
@ -283,25 +283,6 @@ static MACHINE_CONFIG_START( wsf_80186_sound )
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(leland_80186_sound_device, pit0_2_w))
MACHINE_CONFIG_END
machine_config_constructor leland_80186_sound_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( leland_80186_sound );
}
machine_config_constructor redline_80186_sound_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( redline_80186_sound );
}
machine_config_constructor ataxx_80186_sound_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( ataxx_80186_sound );
}
machine_config_constructor wsf_80186_sound_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( wsf_80186_sound );
}
/*************************************
*

View File

@ -20,7 +20,6 @@ class leland_80186_sound_device : public device_t
{
public:
leland_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual machine_config_constructor device_mconfig_additions() const override;
DECLARE_WRITE16_MEMBER(peripheral_ctrl);
DECLARE_WRITE8_MEMBER(leland_80186_control_w);
@ -32,12 +31,13 @@ public:
DECLARE_READ8_MEMBER(leland_80186_response_r);
DECLARE_WRITE16_MEMBER(dac_w);
DECLARE_WRITE16_MEMBER(ataxx_dac_control);
DECLARE_WRITE_LINE_MEMBER(i80186_tmr0_w);
DECLARE_WRITE_LINE_MEMBER(i80186_tmr1_w);
DECLARE_WRITE_LINE_MEMBER(pit0_2_w);
DECLARE_WRITE_LINE_MEMBER(pit1_0_w);
DECLARE_WRITE_LINE_MEMBER(pit1_1_w);
DECLARE_WRITE_LINE_MEMBER(pit1_2_w);
DECLARE_WRITE_LINE_MEMBER(i80186_tmr0_w);
DECLARE_WRITE_LINE_MEMBER(i80186_tmr1_w);
protected:
leland_80186_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
@ -45,6 +45,7 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_add_mconfig(machine_config &config) override;
int m_type;
enum {
@ -102,7 +103,9 @@ class redline_80186_sound_device : public leland_80186_sound_device
public:
redline_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_WRITE16_MEMBER(redline_dac_w);
virtual machine_config_constructor device_mconfig_additions() const override;
protected:
virtual void device_add_mconfig(machine_config &config) override;
};
@ -110,7 +113,9 @@ class ataxx_80186_sound_device : public leland_80186_sound_device
{
public:
ataxx_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual machine_config_constructor device_mconfig_additions() const override;
protected:
virtual void device_add_mconfig(machine_config &config) override;
};
@ -118,7 +123,9 @@ class wsf_80186_sound_device : public leland_80186_sound_device
{
public:
wsf_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual machine_config_constructor device_mconfig_additions() const override;
protected:
virtual void device_add_mconfig(machine_config &config) override;
};

View File

@ -372,31 +372,6 @@ static ADDRESS_MAP_START( ssio_map, AS_PROGRAM, 8, midway_ssio_device )
ADDRESS_MAP_END
//-------------------------------------------------
// machine configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( midway_ssio )
MCFG_CPU_ADD("cpu", Z80, SSIO_CLOCK/2/4)
MCFG_CPU_PROGRAM_MAP(ssio_map)
MCFG_DEVICE_PERIODIC_INT_DEVICE(DEVICE_SELF, midway_ssio_device, clock_14024, SSIO_CLOCK/2/16/10)
MCFG_SOUND_ADD("ay0", AY8910, SSIO_CLOCK/2/4)
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(midway_ssio_device, porta0_w))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(midway_ssio_device, portb0_w))
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.33, 0)
MCFG_SOUND_ADD("ay1", AY8910, SSIO_CLOCK/2/4)
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(midway_ssio_device, porta1_w))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(midway_ssio_device, portb1_w))
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.33, 1)
MACHINE_CONFIG_END
//-------------------------------------------------
// ROM definitions
//-------------------------------------------------
@ -419,14 +394,24 @@ const tiny_rom_entry *midway_ssio_device::device_rom_region() const
//-------------------------------------------------
// device_mconfig_additions - return a pointer to
// the device's machine fragment
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor midway_ssio_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( midway_ssio );
}
MACHINE_CONFIG_MEMBER( midway_ssio_device::device_add_mconfig )
MCFG_CPU_ADD("cpu", Z80, SSIO_CLOCK/2/4)
MCFG_CPU_PROGRAM_MAP(ssio_map)
MCFG_DEVICE_PERIODIC_INT_DEVICE(DEVICE_SELF, midway_ssio_device, clock_14024, SSIO_CLOCK/2/16/10)
MCFG_SOUND_ADD("ay0", AY8910, SSIO_CLOCK/2/4)
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(midway_ssio_device, porta0_w))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(midway_ssio_device, portb0_w))
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.33, 0)
MCFG_SOUND_ADD("ay1", AY8910, SSIO_CLOCK/2/4)
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(midway_ssio_device, porta1_w))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(midway_ssio_device, portb1_w))
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.33, 1)
MACHINE_CONFIG_END
//-------------------------------------------------
@ -586,10 +571,10 @@ ADDRESS_MAP_END
//-------------------------------------------------
// machine configuration
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START(midway_sounds_good)
MACHINE_CONFIG_MEMBER(midway_sounds_good_device::device_add_mconfig)
MCFG_CPU_ADD("cpu", M68000, SOUNDSGOOD_CLOCK/2)
MCFG_CPU_PROGRAM_MAP(soundsgood_map)
@ -605,17 +590,6 @@ static MACHINE_CONFIG_START(midway_sounds_good)
MACHINE_CONFIG_END
//-------------------------------------------------
// device_mconfig_additions - return a pointer to
// the device's machine fragment
//-------------------------------------------------
machine_config_constructor midway_sounds_good_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( midway_sounds_good );
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
@ -751,10 +725,10 @@ ADDRESS_MAP_END
//-------------------------------------------------
// machine configuration
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START(midway_turbo_cheap_squeak)
MACHINE_CONFIG_MEMBER(midway_turbo_cheap_squeak_device::device_add_mconfig)
MCFG_CPU_ADD("cpu", M6809E, TURBOCS_CLOCK)
MCFG_CPU_PROGRAM_MAP(turbocs_map)
@ -770,17 +744,6 @@ static MACHINE_CONFIG_START(midway_turbo_cheap_squeak)
MACHINE_CONFIG_END
//-------------------------------------------------
// device_mconfig_additions - return a pointer to
// the device's machine fragment
//-------------------------------------------------
machine_config_constructor midway_turbo_cheap_squeak_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( midway_turbo_cheap_squeak );
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
@ -964,10 +927,10 @@ ADDRESS_MAP_END
//-------------------------------------------------
// machine configuration
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START(midway_squawk_n_talk)
MACHINE_CONFIG_MEMBER(midway_squawk_n_talk_device::device_add_mconfig)
MCFG_CPU_ADD("cpu", M6802, SQUAWKTALK_CLOCK)
MCFG_CPU_PROGRAM_MAP(squawkntalk_map)
@ -991,17 +954,6 @@ static MACHINE_CONFIG_START(midway_squawk_n_talk)
MACHINE_CONFIG_END
//-------------------------------------------------
// device_mconfig_additions - return a pointer to
// the device's machine fragment
//-------------------------------------------------
machine_config_constructor midway_squawk_n_talk_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( midway_squawk_n_talk );
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------

View File

@ -59,19 +59,14 @@ public:
void set_custom_output(int which, uint8_t mask, write8_delegate handler);
// internal communications
INTERRUPT_GEN_MEMBER(clock_14024);
DECLARE_READ8_MEMBER(irq_clear);
DECLARE_WRITE8_MEMBER(status_w);
DECLARE_READ8_MEMBER(data_r);
DECLARE_WRITE8_MEMBER(porta0_w);
DECLARE_WRITE8_MEMBER(portb0_w);
DECLARE_WRITE8_MEMBER(porta1_w);
DECLARE_WRITE8_MEMBER(portb1_w);
protected:
// device-level overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
virtual void device_start() override;
virtual void device_reset() override;
@ -104,6 +99,13 @@ private:
read8_delegate m_custom_input[5];
uint8_t m_custom_output_mask[2];
write8_delegate m_custom_output[2];
INTERRUPT_GEN_MEMBER(clock_14024);
DECLARE_WRITE8_MEMBER(porta0_w);
DECLARE_WRITE8_MEMBER(portb0_w);
DECLARE_WRITE8_MEMBER(porta1_w);
DECLARE_WRITE8_MEMBER(portb1_w);
};
@ -121,14 +123,9 @@ public:
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);
protected:
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) 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;
@ -142,6 +139,11 @@ private:
// internal state
uint8_t m_status;
uint16_t m_dacval;
// internal communications
DECLARE_WRITE8_MEMBER(porta_w);
DECLARE_WRITE8_MEMBER(portb_w);
DECLARE_WRITE_LINE_MEMBER(irq_w);
};
@ -159,14 +161,9 @@ public:
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);
protected:
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) 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;
@ -180,6 +177,11 @@ private:
// internal state
uint8_t m_status;
uint16_t m_dacval;
// internal communications
DECLARE_WRITE8_MEMBER(porta_w);
DECLARE_WRITE8_MEMBER(portb_w);
DECLARE_WRITE_LINE_MEMBER(irq_w);
};
@ -197,15 +199,11 @@ public:
DECLARE_WRITE_LINE_MEMBER(reset_write);
// internal communications
DECLARE_WRITE8_MEMBER(porta1_w);
DECLARE_WRITE8_MEMBER(dac_w);
DECLARE_WRITE8_MEMBER(porta2_w);
DECLARE_WRITE8_MEMBER(portb2_w);
DECLARE_WRITE_LINE_MEMBER(irq_w);
protected:
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) 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;
@ -220,6 +218,12 @@ private:
// internal state
uint8_t m_tms_command;
uint8_t m_tms_strobes;
// internal communications
DECLARE_WRITE8_MEMBER(porta1_w);
DECLARE_WRITE8_MEMBER(porta2_w);
DECLARE_WRITE8_MEMBER(portb2_w);
DECLARE_WRITE_LINE_MEMBER(irq_w);
};

View File

@ -145,12 +145,6 @@ static ADDRESS_MAP_START( namco_52xx_map_io, AS_IO, 8, namco_52xx_device )
ADDRESS_MAP_END
static MACHINE_CONFIG_START( namco_52xx )
MCFG_CPU_ADD("mcu", MB8843, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */
MCFG_CPU_IO_MAP(namco_52xx_map_io)
MACHINE_CONFIG_END
ROM_START( namco_52xx )
ROM_REGION( 0x400, "mcu", 0 )
ROM_LOAD( "52xx.bin", 0x0000, 0x0400, CRC(3257d11e) SHA1(4883b2fdbc99eb7b9906357fcc53915842c2c186) )
@ -191,14 +185,13 @@ void namco_52xx_device::device_start()
}
//-------------------------------------------------
// device_mconfig_additions - return a pointer to
// the device's machine fragment
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor namco_52xx_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( namco_52xx );
}
MACHINE_CONFIG_MEMBER( namco_52xx_device::device_add_mconfig )
MCFG_CPU_ADD("mcu", MB8843, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */
MCFG_CPU_IO_MAP(namco_52xx_map_io)
MACHINE_CONFIG_END
//-------------------------------------------------
// device_rom_region - return a pointer to the

View File

@ -51,7 +51,7 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
TIMER_CALLBACK_MEMBER( latch_callback );
TIMER_CALLBACK_MEMBER( irq_clear );

View File

@ -117,12 +117,6 @@ static ADDRESS_MAP_START( namco_54xx_map_io, AS_IO, 8, namco_54xx_device )
ADDRESS_MAP_END
static MACHINE_CONFIG_START( namco_54xx )
MCFG_CPU_ADD("mcu", MB8844, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */
MCFG_CPU_IO_MAP(namco_54xx_map_io)
MACHINE_CONFIG_END
ROM_START( namco_54xx )
ROM_REGION( 0x400, "mcu", 0 )
ROM_LOAD( "54xx.bin", 0x0000, 0x0400, CRC(ee7357e0) SHA1(01bdf984a49e8d0cc8761b2cc162fd6434d5afbe) )
@ -147,14 +141,13 @@ void namco_54xx_device::device_start()
}
//-------------------------------------------------
// device_mconfig_additions - return a pointer to
// the device's machine fragment
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor namco_54xx_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( namco_54xx );
}
MACHINE_CONFIG_MEMBER( namco_54xx_device::device_add_mconfig )
MCFG_CPU_ADD("mcu", MB8844, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */
MCFG_CPU_IO_MAP(namco_54xx_map_io)
MACHINE_CONFIG_END
//-------------------------------------------------
// device_rom_region - return a pointer to the

View File

@ -35,7 +35,7 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
TIMER_CALLBACK_MEMBER( latch_callback );
TIMER_CALLBACK_MEMBER( irq_clear );

View File

@ -464,13 +464,28 @@ WRITE32_MEMBER(acclaim_rax_device::dmovlay_callback)
}
/*************************************
*
* Machine Driver
*
*************************************/
DEFINE_DEVICE_TYPE(ACCLAIM_RAX, acclaim_rax_device, "rax_audio", "Acclaim RAX")
MACHINE_CONFIG_START( rax )
//-------------------------------------------------
// acclaim_rax_device - constructor
//-------------------------------------------------
acclaim_rax_device::acclaim_rax_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, ACCLAIM_RAX, tag, owner, clock)
, m_cpu(*this, "adsp")
, m_adsp_pram(*this, "adsp_pram")
, m_adsp_data_bank(*this, "databank")
, m_data_in(*this, "data_in")
, m_data_out(*this, "data_out")
{
}
//-------------------------------------------------
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_MEMBER( acclaim_rax_device::device_add_mconfig )
MCFG_CPU_ADD("adsp", ADSP2181, XTAL_16_67MHz)
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(acclaim_rax_device, adsp_sound_tx_callback)) /* callback for serial transmit */
MCFG_ADSP21XX_DMOVLAY_CB(WRITE32(acclaim_rax_device, dmovlay_callback)) // callback for adsp 2181 dmovlay instruction
@ -493,31 +508,3 @@ MACHINE_CONFIG_START( rax )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(ACCLAIM_RAX, acclaim_rax_device, "rax_audio", "Acclaim RAX")
//-------------------------------------------------
// acclaim_rax_device - constructor
//-------------------------------------------------
acclaim_rax_device::acclaim_rax_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, ACCLAIM_RAX, tag, owner, clock)
, m_cpu(*this, "adsp")
, m_adsp_pram(*this, "adsp_pram")
, m_adsp_data_bank(*this, "databank")
, m_data_in(*this, "data_in")
, m_data_out(*this, "data_out")
{
}
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor acclaim_rax_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( rax );
}

View File

@ -36,18 +36,13 @@ public:
void adsp_irq(int which);
void recompute_sample_rate(int which);
WRITE32_MEMBER(adsp_sound_tx_callback);
TIMER_DEVICE_CALLBACK_MEMBER(adsp_irq0);
TIMER_DEVICE_CALLBACK_MEMBER(sport0_irq);
WRITE32_MEMBER(dmovlay_callback);
TIMER_DEVICE_CALLBACK_MEMBER( dma_timer_callback );
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
private:
required_device<adsp2181_device> m_cpu;
@ -88,6 +83,12 @@ private:
required_device<generic_latch_16_device> m_data_out;
timer_device *m_dma_timer;
WRITE32_MEMBER(adsp_sound_tx_callback);
TIMER_DEVICE_CALLBACK_MEMBER(adsp_irq0);
TIMER_DEVICE_CALLBACK_MEMBER(sport0_irq);
WRITE32_MEMBER(dmovlay_callback);
};
// device type definition

View File

@ -62,7 +62,7 @@ void s11c_bg_device::data_w(uint8_t data)
m_pia40->portb_w(data);
}
MACHINE_CONFIG_START( s11c_bg )
MACHINE_CONFIG_MEMBER( s11c_bg_device::device_add_mconfig )
MCFG_CPU_ADD("bgcpu", M6809E, XTAL_8MHz) // MC68B09E (note: schematics show this as 8mhz/2, but games crash very quickly with that speed?)
MCFG_CPU_PROGRAM_MAP(s11c_bg_map)
MCFG_QUANTUM_TIME(attotime::from_hz(50))
@ -87,11 +87,6 @@ MACHINE_CONFIG_START( s11c_bg )
MCFG_PIA_IRQB_HANDLER(INPUTLINE("bgcpu", INPUT_LINE_NMI))
MACHINE_CONFIG_END
machine_config_constructor s11c_bg_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( s11c_bg );
}
void s11c_bg_device::device_start()
{
}

View File

@ -35,13 +35,10 @@ public:
required_memory_bank m_cpubank;
memory_region* m_rom;
DECLARE_WRITE8_MEMBER(pia40_pb_w);
DECLARE_WRITE_LINE_MEMBER(pia40_ca2_w);
DECLARE_WRITE_LINE_MEMBER(pia40_cb2_w);
DECLARE_WRITE8_MEMBER(bg_speech_clock_w);
DECLARE_WRITE8_MEMBER(bg_speech_digit_w);
DECLARE_WRITE8_MEMBER(bgbank_w);
DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w);
void ctrl_w(uint8_t data);
void data_w(uint8_t data);
@ -51,10 +48,15 @@ protected:
// overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
private:
const char* m_regiontag;
DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w);
DECLARE_WRITE8_MEMBER(pia40_pb_w);
DECLARE_WRITE_LINE_MEMBER(pia40_ca2_w);
DECLARE_WRITE_LINE_MEMBER(pia40_cb2_w);
};
DECLARE_DEVICE_TYPE(S11C_BG, s11c_bg_device)

View File

@ -42,7 +42,17 @@ 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_START( segam1audio )
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
DEFINE_DEVICE_TYPE(SEGAM1AUDIO, segam1audio_device, "segam1audio", "Sega Model 1 Sound Board")
//-------------------------------------------------
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_MEMBER( segam1audio_device::device_add_mconfig )
MCFG_CPU_ADD(M68000_TAG, M68000, 10000000) // verified on real h/w
MCFG_CPU_PROGRAM_MAP(segam1audio_map)
@ -71,22 +81,6 @@ MACHINE_CONFIG_START( segam1audio )
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE(UART_TAG, i8251_device, write_rxc))
MACHINE_CONFIG_END
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
DEFINE_DEVICE_TYPE(SEGAM1AUDIO, segam1audio_device, "segam1audio", "Sega Model 1 Sound Board")
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor segam1audio_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( segam1audio );
}
//**************************************************************************
// LIVE DEVICE
//**************************************************************************

View File

@ -31,9 +31,6 @@ public:
// construction/destruction
segam1audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
// static configuration
template <class Object> static devcb_base &set_rxd_handler(device_t &device, Object &&cb) { return downcast<segam1audio_device &>(device).m_rxd_handler.set_callback(std::forward<Object>(cb)); }
@ -41,12 +38,12 @@ public:
DECLARE_WRITE16_MEMBER(m1_snd_mpcm_bnk2_w);
DECLARE_WRITE_LINE_MEMBER(write_txd);
DECLARE_WRITE_LINE_MEMBER(output_txd);
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_add_mconfig(machine_config &config) override;
private:
required_device<cpu_device> m_audiocpu;
@ -56,6 +53,8 @@ private:
required_device<i8251_device> m_uart;
devcb_write_line m_rxd_handler;
DECLARE_WRITE_LINE_MEMBER(output_txd);
};

View File

@ -853,13 +853,11 @@ static ADDRESS_MAP_START( usb_portmap, AS_IO, 8, usb_sound_device )
ADDRESS_MAP_END
/*************************************
*
* USB machine drivers
*
*************************************/
//-------------------------------------------------
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_START( segausb )
MACHINE_CONFIG_MEMBER( usb_sound_device::device_add_mconfig )
/* CPU for the usb board */
MCFG_CPU_ADD("ourcpu", I8035, USB_MASTER_CLOCK) /* divide by 15 in CPU */
@ -873,10 +871,6 @@ MACHINE_CONFIG_START( segausb )
MCFG_TIMER_DRIVER_ADD_PERIODIC("usb_timer", usb_sound_device, increment_t1_clock_timer_cb, attotime::from_hz(USB_2MHZ_CLOCK / 256))
MACHINE_CONFIG_END
machine_config_constructor usb_sound_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( segausb );
}
DEFINE_DEVICE_TYPE(SEGAUSBROM, usb_rom_sound_device, "segausbrom", "Sega Universal Sound Board with ROM")
@ -889,7 +883,7 @@ static ADDRESS_MAP_START( usb_map_rom, AS_PROGRAM, 8, usb_sound_device )
AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION(":usbcpu", 0)
ADDRESS_MAP_END
MACHINE_CONFIG_START( segausb_rom )
MACHINE_CONFIG_MEMBER( usb_rom_sound_device::device_add_mconfig )
/* CPU for the usb board */
MCFG_CPU_ADD("ourcpu", I8035, USB_MASTER_CLOCK) /* divide by 15 in CPU */
@ -898,8 +892,3 @@ MACHINE_CONFIG_START( segausb_rom )
MCFG_TIMER_DRIVER_ADD_PERIODIC("usb_timer", usb_sound_device, increment_t1_clock_timer_cb, attotime::from_hz(USB_2MHZ_CLOCK / 256))
MACHINE_CONFIG_END
machine_config_constructor usb_rom_sound_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( segausb_rom );
}

View File

@ -64,11 +64,6 @@ public:
DECLARE_READ8_MEMBER( ram_r );
DECLARE_WRITE8_MEMBER( ram_w );
DECLARE_READ8_MEMBER( p1_r );
DECLARE_WRITE8_MEMBER( p1_w );
DECLARE_WRITE8_MEMBER( p2_w );
DECLARE_READ_LINE_MEMBER( t1_r );
DECLARE_READ8_MEMBER( workram_r );
DECLARE_WRITE8_MEMBER( workram_w );
@ -78,7 +73,7 @@ protected:
usb_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual void device_start() override;
virtual void device_reset() override;
@ -155,6 +150,11 @@ private:
TIMER_CALLBACK_MEMBER( delayed_usb_data_w );
void timer_w(int which, u8 offset, u8 data);
void env_w(int which, u8 offset, u8 data);
DECLARE_READ8_MEMBER( p1_r );
DECLARE_WRITE8_MEMBER( p1_w );
DECLARE_WRITE8_MEMBER( p2_w );
DECLARE_READ_LINE_MEMBER( t1_r );
};
DECLARE_DEVICE_TYPE(SEGAUSB, usb_sound_device)
@ -167,7 +167,7 @@ public:
protected:
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
};
DECLARE_DEVICE_TYPE(SEGAUSBROM, usb_rom_sound_device)

View File

@ -366,22 +366,12 @@ ADDRESS_MAP_END
//-------------------------------------------------
// MACHINE_CONFIG_START( t5182 )
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_START( t5182 )
MACHINE_CONFIG_MEMBER( t5182_device::device_add_mconfig )
MCFG_CPU_ADD("t5182_z80", Z80, T5182_CLOCK)
MCFG_CPU_PROGRAM_MAP(t5182_map)
MCFG_CPU_IO_MAP(t5182_io)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor t5182_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( t5182 );
}

View File

@ -48,7 +48,7 @@ protected:
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
virtual const tiny_rom_entry *device_rom_region() const override;
virtual ioport_constructor device_input_ports() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
private:
// internal state

View File

@ -287,13 +287,12 @@ WRITE_LINE_MEMBER(taito_en_device::duart_irq_handler)
IP5: 1MHz
*/
/*************************************
*
* Machine driver
*
*************************************/
MACHINE_CONFIG_START( taito_en_sound )
//-------------------------------------------------
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_MEMBER( taito_en_device::device_add_mconfig )
/* basic machine hardware */
MCFG_CPU_ADD("audiocpu", M68000, XTAL_30_4761MHz / 2)
@ -315,13 +314,3 @@ MACHINE_CONFIG_START( taito_en_sound )
MCFG_SOUND_ROUTE(0, "lspeaker", 0.08)
MCFG_SOUND_ROUTE(1, "rspeaker", 0.08)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor taito_en_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( taito_en_sound );
}

View File

@ -30,15 +30,11 @@ public:
DECLARE_READ16_MEMBER( es5510_dsp_r );
DECLARE_WRITE16_MEMBER( es5510_dsp_w );
DECLARE_WRITE_LINE_MEMBER(duart_irq_handler);
DECLARE_WRITE8_MEMBER(mb87078_gain_changed);
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
private:
// inherited devices/pointers
@ -57,6 +53,10 @@ private:
uint32_t m_es5510_dadr_latch;
uint32_t m_es5510_gpr_latch;
uint8_t m_es5510_ram_sel;
DECLARE_WRITE_LINE_MEMBER(duart_irq_handler);
DECLARE_WRITE8_MEMBER(mb87078_gain_changed);
};
DECLARE_DEVICE_TYPE(TAITO_EN, taito_en_device)

View File

@ -68,20 +68,6 @@ enum
};
//**************************************************************************
// MACHINE FRAGMENTS
//**************************************************************************
static MACHINE_CONFIG_START( nsub_audio )
MCFG_SPEAKER_STANDARD_MONO("mono")
/* samples */
MCFG_SOUND_ADD("samples", SAMPLES, 0)
MCFG_SAMPLES_CHANNELS(13)
MCFG_SAMPLES_NAMES(nsub_sample_names)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MACHINE_CONFIG_END
//**************************************************************************
// LIVE DEVICE
//**************************************************************************
@ -97,14 +83,18 @@ s97271p_device::s97271p_device(const machine_config &mconfig, const char *tag, d
}
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor s97271p_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( nsub_audio );
}
MACHINE_CONFIG_MEMBER( s97271p_device::device_add_mconfig )
MCFG_SPEAKER_STANDARD_MONO("mono")
/* samples */
MCFG_SOUND_ADD("samples", SAMPLES, 0)
MCFG_SAMPLES_CHANNELS(13)
MCFG_SAMPLES_NAMES(nsub_sample_names)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MACHINE_CONFIG_END
//-------------------------------------------------
// device_start - device-specific startup

View File

@ -20,9 +20,6 @@ public:
// construction/destruction
s97271p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
// daughterboard logic
void port_w(uint8_t data);
@ -30,6 +27,7 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_add_mconfig(machine_config &config) override;
private:
required_device<samples_device> m_samples;

View File

@ -204,10 +204,10 @@ ADDRESS_MAP_END
//-------------------------------------------------
// machine configuration
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( williams_cvsd_sound )
MACHINE_CONFIG_MEMBER( williams_cvsd_sound_device::device_add_mconfig )
MCFG_CPU_ADD("cpu", M6809E, CVSD_MASTER_CLOCK)
MCFG_CPU_PROGRAM_MAP(williams_cvsd_map)
@ -230,17 +230,6 @@ static MACHINE_CONFIG_START( williams_cvsd_sound )
MACHINE_CONFIG_END
//-------------------------------------------------
// device_mconfig_additions - return a pointer to
// the device's machine fragment
//-------------------------------------------------
machine_config_constructor williams_cvsd_sound_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( williams_cvsd_sound );
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
@ -543,10 +532,11 @@ ADDRESS_MAP_END
//-------------------------------------------------
// machine configuration
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( williams_narc_sound )
MACHINE_CONFIG_MEMBER( williams_narc_sound_device::device_add_mconfig )
MCFG_CPU_ADD("cpu0", M6809E, NARC_MASTER_CLOCK)
MCFG_CPU_PROGRAM_MAP(williams_narc_master_map)
@ -568,17 +558,6 @@ static MACHINE_CONFIG_START( williams_narc_sound )
MACHINE_CONFIG_END
//-------------------------------------------------
// device_mconfig_additions - return a pointer to
// the device's machine fragment
//-------------------------------------------------
machine_config_constructor williams_narc_sound_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( williams_narc_sound );
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
@ -817,10 +796,10 @@ ADDRESS_MAP_END
//-------------------------------------------------
// machine configuration
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( williams_adpcm_sound )
MACHINE_CONFIG_MEMBER( williams_adpcm_sound_device::device_add_mconfig )
MCFG_CPU_ADD("cpu", M6809E, ADPCM_MASTER_CLOCK)
MCFG_CPU_PROGRAM_MAP(williams_adpcm_map)
@ -838,17 +817,6 @@ static MACHINE_CONFIG_START( williams_adpcm_sound )
MACHINE_CONFIG_END
//-------------------------------------------------
// device_mconfig_additions - return a pointer to
// the device's machine fragment
//-------------------------------------------------
machine_config_constructor williams_adpcm_sound_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( williams_adpcm_sound );
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------

View File

@ -45,16 +45,12 @@ public:
// internal communications
DECLARE_WRITE8_MEMBER(bank_select_w);
DECLARE_WRITE8_MEMBER(talkback_w);
DECLARE_WRITE8_MEMBER(cvsd_digit_clock_clear_w);
DECLARE_WRITE8_MEMBER(cvsd_clock_set_w);
DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w);
DECLARE_WRITE_LINE_MEMBER(pia_irqa);
DECLARE_WRITE_LINE_MEMBER(pia_irqb);
protected:
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) 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;
@ -67,6 +63,12 @@ private:
// internal state
uint8_t m_talkback;
DECLARE_WRITE8_MEMBER(talkback_w);
DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w);
DECLARE_WRITE_LINE_MEMBER(pia_irqa);
DECLARE_WRITE_LINE_MEMBER(pia_irqb);
};
@ -96,11 +98,10 @@ public:
DECLARE_WRITE8_MEMBER(slave_sync_w);
DECLARE_WRITE8_MEMBER(cvsd_digit_clock_clear_w);
DECLARE_WRITE8_MEMBER(cvsd_clock_set_w);
DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w);
protected:
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) 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;
@ -125,6 +126,8 @@ private:
uint8_t m_talkback;
uint8_t m_audio_sync;
uint8_t m_sound_int_state;
DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w);
};
@ -147,7 +150,6 @@ public:
DECLARE_WRITE8_MEMBER(oki6295_bank_select_w);
DECLARE_READ8_MEMBER(command_r);
DECLARE_WRITE8_MEMBER(talkback_w);
DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w);
protected:
// timer IDs
@ -158,7 +160,7 @@ protected:
};
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) 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;
@ -171,4 +173,6 @@ private:
uint8_t m_latch;
uint8_t m_talkback;
uint8_t m_sound_int_state;
DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w);
};

View File

@ -66,7 +66,7 @@ uint8_t wpcsnd_device::data_r()
return m_reply;
}
MACHINE_CONFIG_START( wpcsnd )
MACHINE_CONFIG_MEMBER( wpcsnd_device::device_add_mconfig )
MCFG_CPU_ADD("bgcpu", M6809E, XTAL_8MHz) // MC68B09E
MCFG_CPU_PROGRAM_MAP(wpcsnd_map)
MCFG_QUANTUM_TIME(attotime::from_hz(50))
@ -83,10 +83,6 @@ MACHINE_CONFIG_START( wpcsnd )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.5)
MACHINE_CONFIG_END
machine_config_constructor wpcsnd_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( wpcsnd );
}
void wpcsnd_device::device_start()
{

View File

@ -40,7 +40,6 @@ public:
DECLARE_WRITE8_MEMBER(bg_speech_clock_w);
DECLARE_WRITE8_MEMBER(bg_speech_digit_w);
DECLARE_WRITE8_MEMBER(rombank_w);
DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w);
DECLARE_READ8_MEMBER(latch_r);
DECLARE_WRITE8_MEMBER(latch_w);
DECLARE_WRITE8_MEMBER(volume_w);
@ -59,7 +58,7 @@ protected:
// overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
private:
uint8_t m_latch;
@ -68,6 +67,8 @@ private:
// callback
devcb_write_line m_reply_cb;
DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w);
};
DECLARE_DEVICE_TYPE(WPCSND, wpcsnd_device)

View File

@ -206,7 +206,11 @@ public:
void handle_sub_board_cpu_lines(cedar_magnet_board_interface &dev, int old_data, int data);
INTERRUPT_GEN_MEMBER(irq);
void(*m_prothack)(cedar_magnet_state*);
typedef void (cedar_magnet_state::*prot_func)();
prot_func m_prothack;
void mag_time_protection_hack();
void mag_xain_protection_hack();
void mag_exzi_protection_hack();
virtual void machine_start() override;
virtual void machine_reset() override;
@ -742,7 +746,7 @@ INPUT_PORTS_END
INTERRUPT_GEN_MEMBER(cedar_magnet_state::irq)
{
if (m_prothack)
m_prothack(this);
(this->*m_prothack)();
m_maincpu->set_input_line(0, HOLD_LINE);
m_cedplane0->irq_hold();
@ -870,23 +874,22 @@ void protection_hack(uint8_t* ram, int address1, int address2)
if ((ram[address2] == 0x3e) && (ram[address2+1] == 0xff)) ram[address2] = 0xc9;
}
void mag_time_protection_hack(cedar_magnet_state* state)
void cedar_magnet_state::mag_time_protection_hack()
{
protection_hack(state->m_ram0, 0x8bc, 0x905);
protection_hack(m_ram0, 0x8bc, 0x905);
}
void mag_xain_protection_hack(cedar_magnet_state* state)
void cedar_magnet_state::mag_xain_protection_hack()
{
protection_hack(state->m_ram0, 0x796, 0x7df);
protection_hack(m_ram0, 0x796, 0x7df);
}
void mag_exzi_protection_hack(cedar_magnet_state* state)
void cedar_magnet_state::mag_exzi_protection_hack()
{
protection_hack(state->m_ram0, 0x8b6, 0x8ff);
protection_hack(m_ram0, 0x8b6, 0x8ff);
}
DRIVER_INIT_MEMBER(cedar_magnet_state, mag_time)
{
m_prothack = mag_time_protection_hack;

View File

@ -494,7 +494,6 @@ public:
DECLARE_WRITE16_MEMBER(hdsnd68k_320ports_w);
DECLARE_READ16_MEMBER(hdsnd68k_320com_r);
DECLARE_WRITE16_MEMBER(hdsnd68k_320com_w);
DECLARE_READ_LINE_MEMBER(hdsnddsp_get_bio);
DECLARE_WRITE16_MEMBER(hdsnddsp_dac_w);
DECLARE_WRITE16_MEMBER(hdsnddsp_comport_w);
@ -508,7 +507,7 @@ public:
protected:
virtual void device_start() override;
virtual void device_reset() override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
private:
required_device<cpu_device> m_soundcpu;
@ -532,6 +531,8 @@ private:
void update_68k_interrupts();
TIMER_CALLBACK_MEMBER( delayed_68k_w );
DECLARE_READ_LINE_MEMBER(hdsnddsp_get_bio);
};
/* Hard Drivin' */