a start at moving mame/audio devices to use device_add_mconfig insted of device_mconfig_additions (nw)

This commit is contained in:
Ivan Vangelista 2017-05-23 18:58:14 +02:00
parent 099dd26e89
commit 3f44d746de
20 changed files with 357 additions and 479 deletions

View File

@ -25,13 +25,6 @@ DEFINE_DEVICE_TYPE(ALESIS_DM3AG, alesis_dm3ag_device, "alesis_dm3ag", "Alesis DM
IMPLEMENTATION IMPLEMENTATION
***************************************************************************/ ***************************************************************************/
static MACHINE_CONFIG_START( alesis_dm3ag )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker1", "rspeaker1")
MCFG_SPEAKER_STANDARD_STEREO("lspeaker2", "rspeaker2")
MCFG_SOUND_ADD("dac", PCM54HP, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker1", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker1", 1.0) // PCM54HP DAC + R63/R73-75 + Sample and hold
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
//------------------------------------------------- //-------------------------------------------------
// alesis_dm3ag_device - constructor // alesis_dm3ag_device - constructor
@ -45,13 +38,16 @@ alesis_dm3ag_device::alesis_dm3ag_device(const machine_config &mconfig, const ch
} }
//------------------------------------------------- //-------------------------------------------------
// device_mconfig_additions // device_add_mconfig
//------------------------------------------------- //-------------------------------------------------
machine_config_constructor alesis_dm3ag_device::device_mconfig_additions() const MACHINE_CONFIG_MEMBER( alesis_dm3ag_device::device_add_mconfig )
{ MCFG_SPEAKER_STANDARD_STEREO("lspeaker1", "rspeaker1")
return MACHINE_CONFIG_NAME( alesis_dm3ag ); MCFG_SPEAKER_STANDARD_STEREO("lspeaker2", "rspeaker2")
} MCFG_SOUND_ADD("dac", PCM54HP, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker1", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker1", 1.0) // PCM54HP DAC + R63/R73-75 + Sample and hold
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_start - device-specific startup // device_start - device-specific startup

View File

@ -157,84 +157,6 @@ static ADDRESS_MAP_START( jsa3_oki2_map, AS_0, 8, atari_jsa_iiis_device )
ADDRESS_MAP_END ADDRESS_MAP_END
//**************************************************************************
// MACHINE FRAGMENTS
//**************************************************************************
// Fully populated JSA-I, not used by anyone
MACHINE_CONFIG_START( jsa_i_config )
// basic machine hardware
MCFG_CPU_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
MCFG_CPU_PROGRAM_MAP(atarijsa1_map)
MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)JSA_MASTER_CLOCK/4/16/16/14)
// sound hardware
MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(atari_jsa_base_device, main_int_write_line))
MCFG_YM2151_ADD("ym2151", JSA_MASTER_CLOCK)
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(atari_jsa_base_device, ym2151_port_w))
MCFG_MIXER_ROUTE(0, DEVICE_SELF_OWNER, 0.60, 0)
MCFG_MIXER_ROUTE(1, DEVICE_SELF_OWNER, 0.60, 1)
MCFG_SOUND_ADD("pokey", POKEY, JSA_MASTER_CLOCK/2)
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.40, 0)
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.40, 1)
MCFG_SOUND_ADD("tms", TMS5220C, JSA_MASTER_CLOCK*2/11) // potentially JSA_MASTER_CLOCK/9 as well
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 1.0, 0)
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 1.0, 1)
MACHINE_CONFIG_END
// Fully populated JSA-II
MACHINE_CONFIG_START( jsa_ii_config )
// basic machine hardware
MCFG_CPU_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
MCFG_CPU_PROGRAM_MAP(atarijsa2_map)
MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)JSA_MASTER_CLOCK/4/16/16/14)
// sound hardware
MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(atari_jsa_base_device, main_int_write_line))
MCFG_YM2151_ADD("ym2151", JSA_MASTER_CLOCK)
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(atari_jsa_base_device, ym2151_port_w))
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.60, 0)
MCFG_OKIM6295_ADD("oki1", JSA_MASTER_CLOCK/3, PIN7_HIGH)
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.75, 0)
MACHINE_CONFIG_END
// Fully populated JSA-III
MACHINE_CONFIG_DERIVED( jsa_iii_config, jsa_ii_config )
// basic machine hardware
MCFG_CPU_MODIFY("cpu")
MCFG_CPU_PROGRAM_MAP(atarijsa3_map)
MCFG_DEVICE_MODIFY("oki1")
MCFG_DEVICE_ADDRESS_MAP(AS_0, jsa3_oki1_map)
MACHINE_CONFIG_END
// Fully populated JSA_IIIs
MACHINE_CONFIG_DERIVED( jsa_iiis_config, jsa_iii_config )
MCFG_DEVICE_MODIFY("ym2151")
MCFG_MIXER_ROUTE(1, DEVICE_SELF_OWNER, 0.60, 1)
MCFG_OKIM6295_ADD("oki2", JSA_MASTER_CLOCK/3, PIN7_HIGH)
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.75, 1)
MCFG_DEVICE_ADDRESS_MAP(AS_0, jsa3_oki2_map)
MACHINE_CONFIG_END
//************************************************************************** //**************************************************************************
// I/O PORT DEFINITIONS // I/O PORT DEFINITIONS
//************************************************************************** //**************************************************************************
@ -767,14 +689,34 @@ WRITE8_MEMBER( atari_jsa_i_device::pokey_w )
//------------------------------------------------- //-------------------------------------------------
// device_mconfig_additions - return a pointer to // device_add_mconfig - add device configuration
// the device's machine fragment
//------------------------------------------------- //-------------------------------------------------
machine_config_constructor atari_jsa_i_device::device_mconfig_additions() const // Fully populated JSA-I, not used by anyone
{ MACHINE_CONFIG_MEMBER( atari_jsa_i_device::device_add_mconfig )
return MACHINE_CONFIG_NAME( jsa_i_config );
} // basic machine hardware
MCFG_CPU_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
MCFG_CPU_PROGRAM_MAP(atarijsa1_map)
MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)JSA_MASTER_CLOCK/4/16/16/14)
// sound hardware
MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(atari_jsa_base_device, main_int_write_line))
MCFG_YM2151_ADD("ym2151", JSA_MASTER_CLOCK)
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(atari_jsa_base_device, ym2151_port_w))
MCFG_MIXER_ROUTE(0, DEVICE_SELF_OWNER, 0.60, 0)
MCFG_MIXER_ROUTE(1, DEVICE_SELF_OWNER, 0.60, 1)
MCFG_SOUND_ADD("pokey", POKEY, JSA_MASTER_CLOCK/2)
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.40, 0)
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.40, 1)
MCFG_SOUND_ADD("tms", TMS5220C, JSA_MASTER_CLOCK*2/11) // potentially JSA_MASTER_CLOCK/9 as well
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 1.0, 0)
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 1.0, 1)
MACHINE_CONFIG_END
//------------------------------------------------- //-------------------------------------------------
@ -877,14 +819,28 @@ READ8_MEMBER( atari_jsa_ii_device::rdio_r )
//------------------------------------------------- //-------------------------------------------------
// device_mconfig_additions - return a pointer to // device_add_mconfig - add device configuration
// the device's machine fragment
//------------------------------------------------- //-------------------------------------------------
machine_config_constructor atari_jsa_ii_device::device_mconfig_additions() const // Fully populated JSA-II
{ MACHINE_CONFIG_MEMBER( atari_jsa_ii_device::device_add_mconfig )
return MACHINE_CONFIG_NAME( jsa_ii_config );
} // basic machine hardware
MCFG_CPU_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
MCFG_CPU_PROGRAM_MAP(atarijsa2_map)
MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)JSA_MASTER_CLOCK/4/16/16/14)
// sound hardware
MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(atari_jsa_base_device, main_int_write_line))
MCFG_YM2151_ADD("ym2151", JSA_MASTER_CLOCK)
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(atari_jsa_base_device, ym2151_port_w))
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.60, 0)
MCFG_OKIM6295_ADD("oki1", JSA_MASTER_CLOCK/3, PIN7_HIGH)
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.75, 0)
MACHINE_CONFIG_END
//------------------------------------------------- //-------------------------------------------------
@ -945,14 +901,29 @@ READ8_MEMBER( atari_jsa_iii_device::rdio_r )
//------------------------------------------------- //-------------------------------------------------
// device_mconfig_additions - return a pointer to // device_add_mconfig - add device configuration
// the device's machine fragment
//------------------------------------------------- //-------------------------------------------------
machine_config_constructor atari_jsa_iii_device::device_mconfig_additions() const // Fully populated JSA-III
{ MACHINE_CONFIG_MEMBER( atari_jsa_iii_device::device_add_mconfig )
return MACHINE_CONFIG_NAME( jsa_iii_config );
} // basic machine hardware
MCFG_CPU_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
MCFG_CPU_PROGRAM_MAP(atarijsa3_map)
MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)JSA_MASTER_CLOCK/4/16/16/14)
// sound hardware
MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(atari_jsa_base_device, main_int_write_line))
MCFG_YM2151_ADD("ym2151", JSA_MASTER_CLOCK)
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(atari_jsa_base_device, ym2151_port_w))
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.60, 0)
MCFG_OKIM6295_ADD("oki1", JSA_MASTER_CLOCK/3, PIN7_HIGH)
MCFG_DEVICE_ADDRESS_MAP(AS_0, jsa3_oki1_map)
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.75, 0)
MACHINE_CONFIG_END
//------------------------------------------------- //-------------------------------------------------
@ -982,11 +953,18 @@ atari_jsa_iiis_device::atari_jsa_iiis_device(const machine_config &mconfig, cons
//------------------------------------------------- //-------------------------------------------------
// device_mconfig_additions - return a pointer to // device_add_mconfig - add device configuration
// the device's machine fragment
//------------------------------------------------- //-------------------------------------------------
machine_config_constructor atari_jsa_iiis_device::device_mconfig_additions() const // Fully populated JSA_IIIs
{ MACHINE_CONFIG_MEMBER( atari_jsa_iiis_device::device_add_mconfig )
return MACHINE_CONFIG_NAME( jsa_iiis_config );
} atari_jsa_iii_device::device_add_mconfig(config);
MCFG_DEVICE_MODIFY("ym2151")
MCFG_MIXER_ROUTE(1, DEVICE_SELF_OWNER, 0.60, 1)
MCFG_OKIM6295_ADD("oki2", JSA_MASTER_CLOCK/3, PIN7_HIGH)
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.75, 1)
MCFG_DEVICE_ADDRESS_MAP(AS_0, jsa3_oki2_map)
MACHINE_CONFIG_END

View File

@ -196,7 +196,7 @@ public:
protected: protected:
// device level overrides // 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 ioport_constructor device_input_ports() const override;
virtual void device_start() override; virtual void device_start() override;
virtual void device_reset() override; virtual void device_reset() override;
@ -228,7 +228,7 @@ public:
protected: protected:
// device level overrides // 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 ioport_constructor device_input_ports() const override;
required_ioport m_jsaii; required_ioport m_jsaii;
@ -253,7 +253,7 @@ public:
protected: protected:
// device level overrides // 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 ioport_constructor device_input_ports() const override;
required_ioport m_jsaiii; required_ioport m_jsaiii;
@ -270,7 +270,7 @@ public:
protected: protected:
// device level overrides // device level overrides
virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_add_mconfig(machine_config &config) override;
}; };

View File

@ -619,14 +619,11 @@ static ADDRESS_MAP_START( cage_map_seattle, AS_PROGRAM, 32, atari_cage_seattle_d
ADDRESS_MAP_END ADDRESS_MAP_END
//-------------------------------------------------
// machine_add_config - add device configuration
//-------------------------------------------------
/************************************* MACHINE_CONFIG_MEMBER( atari_cage_device::device_add_mconfig )
*
* CAGE machine driver
*
*************************************/
MACHINE_CONFIG_START( cage )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("cage", TMS32031, 33868800) MCFG_CPU_ADD("cage", TMS32031, 33868800)
@ -664,23 +661,6 @@ MACHINE_CONFIG_START( cage )
MACHINE_CONFIG_END MACHINE_CONFIG_END
MACHINE_CONFIG_DERIVED( cage_seattle, cage )
MCFG_CPU_MODIFY("cage")
MCFG_CPU_PROGRAM_MAP(cage_map_seattle)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor atari_cage_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cage );
}
DEFINE_DEVICE_TYPE(ATARI_CAGE_SEATTLE, atari_cage_seattle_device, "atari_cage_seattle", "Atari CAGE Seattle") DEFINE_DEVICE_TYPE(ATARI_CAGE_SEATTLE, atari_cage_seattle_device, "atari_cage_seattle", "Atari CAGE Seattle")
@ -693,7 +673,16 @@ atari_cage_seattle_device::atari_cage_seattle_device(const machine_config &mconf
{ {
} }
machine_config_constructor atari_cage_seattle_device::device_mconfig_additions() const
{ //-------------------------------------------------
return MACHINE_CONFIG_NAME( cage_seattle ); // machine_add_config - add device configuration
} //-------------------------------------------------
MACHINE_CONFIG_MEMBER( atari_cage_seattle_device::device_add_mconfig )
atari_cage_device::device_add_mconfig(config);
MCFG_CPU_MODIFY("cage")
MCFG_CPU_PROGRAM_MAP(cage_map_seattle)
MACHINE_CONFIG_END

View File

@ -32,9 +32,6 @@ public:
static void static_set_speedup(device_t &device, offs_t speedup) { downcast<atari_cage_device &>(device).m_speedup = speedup; } static void static_set_speedup(device_t &device, offs_t speedup) { downcast<atari_cage_device &>(device).m_speedup = speedup; }
template <class Object> static devcb_base &set_irqhandler_callback(device_t &device, Object &&cb) { return downcast<atari_cage_device &>(device).m_irqhandler.set_callback(std::forward<Object>(cb)); } template <class Object> static devcb_base &set_irqhandler_callback(device_t &device, Object &&cb) { return downcast<atari_cage_device &>(device).m_irqhandler.set_callback(std::forward<Object>(cb)); }
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
void reset_w(int state); void reset_w(int state);
uint16_t main_r(); uint16_t main_r();
@ -43,9 +40,7 @@ public:
uint16_t control_r(); uint16_t control_r();
void control_w(uint16_t data); void control_w(uint16_t data);
TIMER_DEVICE_CALLBACK_MEMBER( dma_timer_callback );
void update_dma_state(address_space &space); void update_dma_state(address_space &space);
TIMER_DEVICE_CALLBACK_MEMBER( cage_timer_callback );
void update_timer(int which); void update_timer(int which);
void update_serial(); void update_serial();
READ32_MEMBER( tms32031_io_r ); READ32_MEMBER( tms32031_io_r );
@ -63,6 +58,10 @@ protected:
// device-level overrides // device-level overrides
virtual void device_start() override; virtual void device_start() override;
virtual void device_add_mconfig(machine_config &config) override;
TIMER_DEVICE_CALLBACK_MEMBER( dma_timer_callback );
TIMER_DEVICE_CALLBACK_MEMBER( cage_timer_callback );
private: private:
required_shared_ptr<uint32_t> m_cageram; required_shared_ptr<uint32_t> m_cageram;
@ -105,8 +104,9 @@ public:
// construction/destruction // construction/destruction
atari_cage_seattle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); atari_cage_seattle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides // optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_add_mconfig(machine_config &config) override;
}; };

View File

@ -20,17 +20,6 @@ SAMPLES_START_CB_MEMBER( cclimber_audio_device::sh_start )
} }
} }
MACHINE_CONFIG_START( cclimber_audio )
MCFG_SOUND_ADD("aysnd", AY8910, SND_CLOCK/2)
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(cclimber_audio_device, sample_select_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, ":speaker", 0.5)
MCFG_SOUND_ADD("samples", SAMPLES, 0)
MCFG_SAMPLES_CHANNELS(1)
MCFG_SAMPLES_START_CB(cclimber_audio_device, sh_start)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, ":speaker", 0.5)
MACHINE_CONFIG_END
//************************************************************************** //**************************************************************************
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
@ -38,10 +27,6 @@ MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(CCLIMBER_AUDIO, cclimber_audio_device, "cclimber_audio", "Crazy Climber Sound Board") DEFINE_DEVICE_TYPE(CCLIMBER_AUDIO, cclimber_audio_device, "cclimber_audio", "Crazy Climber Sound Board")
//**************************************************************************
// JSA IIIS-SPECIFIC IMPLEMENTATION
//**************************************************************************
//------------------------------------------------- //-------------------------------------------------
// cclimber_audio_device: Constructor // cclimber_audio_device: Constructor
//------------------------------------------------- //-------------------------------------------------
@ -69,14 +54,20 @@ void cclimber_audio_device::device_start()
} }
//------------------------------------------------- //-------------------------------------------------
// device_mconfig_additions - return a pointer to // device_add_mconfig - add device configuration
// the device's machine fragment
//------------------------------------------------- //-------------------------------------------------
machine_config_constructor cclimber_audio_device::device_mconfig_additions() const MACHINE_CONFIG_MEMBER( cclimber_audio_device::device_add_mconfig )
{ MCFG_SOUND_ADD("aysnd", AY8910, SND_CLOCK/2)
return MACHINE_CONFIG_NAME( cclimber_audio ); MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(cclimber_audio_device, sample_select_w))
} MCFG_SOUND_ROUTE(ALL_OUTPUTS, ":speaker", 0.5)
MCFG_SOUND_ADD("samples", SAMPLES, 0)
MCFG_SAMPLES_CHANNELS(1)
MCFG_SAMPLES_START_CB(cclimber_audio_device, sh_start)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, ":speaker", 0.5)
MACHINE_CONFIG_END
WRITE8_MEMBER( cclimber_audio_device::sample_select_w ) WRITE8_MEMBER( cclimber_audio_device::sample_select_w )
{ {

View File

@ -39,14 +39,11 @@ public:
DECLARE_WRITE8_MEMBER( sample_trigger_w ); DECLARE_WRITE8_MEMBER( sample_trigger_w );
DECLARE_WRITE8_MEMBER( sample_rate_w ); DECLARE_WRITE8_MEMBER( sample_rate_w );
DECLARE_WRITE8_MEMBER( sample_volume_w ); DECLARE_WRITE8_MEMBER( sample_volume_w );
DECLARE_WRITE8_MEMBER( sample_select_w );
SAMPLES_START_CB_MEMBER( sh_start );
protected: protected:
// device level overrides // device level overrides
virtual void device_start() override; virtual void device_start() override;
virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_add_mconfig(machine_config &config) override;
void play_sample(int start,int freq,int volume); void play_sample(int start,int freq,int volume);
@ -57,6 +54,10 @@ private:
int m_sample_volume; int m_sample_volume;
optional_device<samples_device> m_samples; optional_device<samples_device> m_samples;
optional_region_ptr<uint8_t> m_samples_region; optional_region_ptr<uint8_t> m_samples_region;
DECLARE_WRITE8_MEMBER( sample_select_w );
SAMPLES_START_CB_MEMBER( sh_start );
}; };

View File

@ -35,7 +35,7 @@ ADDRESS_MAP_END
// machine configuration // machine configuration
//------------------------------------------------- //-------------------------------------------------
static MACHINE_CONFIG_START(midway_cheap_squeak_deluxe) MACHINE_CONFIG_MEMBER(midway_cheap_squeak_deluxe_device::device_add_mconfig)
MCFG_CPU_ADD("cpu", M68000, XTAL_16MHz/2) MCFG_CPU_ADD("cpu", M68000, XTAL_16MHz/2)
MCFG_CPU_PROGRAM_MAP(csdeluxe_map) MCFG_CPU_PROGRAM_MAP(csdeluxe_map)
@ -50,11 +50,6 @@ static MACHINE_CONFIG_START(midway_cheap_squeak_deluxe)
MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT) 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_END
machine_config_constructor midway_cheap_squeak_deluxe_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( midway_cheap_squeak_deluxe );
}
//------------------------------------------------- //-------------------------------------------------
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------

View File

@ -34,14 +34,9 @@ public:
DECLARE_WRITE_LINE_MEMBER(sirq_w); DECLARE_WRITE_LINE_MEMBER(sirq_w);
DECLARE_WRITE_LINE_MEMBER(reset_w); DECLARE_WRITE_LINE_MEMBER(reset_w);
// internal communications
DECLARE_WRITE8_MEMBER(porta_w);
DECLARE_WRITE8_MEMBER(portb_w);
DECLARE_WRITE_LINE_MEMBER(irq_w);
protected: protected:
// device-level overrides // device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override; virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_start() override; virtual void device_start() override;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
@ -55,6 +50,11 @@ private:
// internal state // internal state
uint8_t m_status; uint8_t m_status;
uint16_t m_dacval; uint16_t m_dacval;
// internal communications
DECLARE_WRITE8_MEMBER(porta_w);
DECLARE_WRITE8_MEMBER(portb_w);
DECLARE_WRITE_LINE_MEMBER(irq_w);
}; };
// device type definition // device type definition

View File

@ -445,177 +445,6 @@ static ADDRESS_MAP_START( denver_io_map, AS_IO, 16, dcs_audio_device )
ADDRESS_MAP_END ADDRESS_MAP_END
/*************************************
*
* Original DCS Machine Drivers
*
*************************************/
/* Basic DCS system with ADSP-2105 and 2k of SRAM (T-unit, V-unit, Killer Instinct) */
MACHINE_CONFIG_START( dcs_audio_2k )
MCFG_CPU_ADD("dcs", ADSP2105, XTAL_10MHz)
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device,timer_enable_callback)) /* callback for timer fired */
MCFG_CPU_PROGRAM_MAP(dcs_2k_program_map)
MCFG_CPU_DATA_MAP(dcs_2k_data_map)
MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("dac", DMADAC, 0) // AD-1851 16bit mono
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
/* Basic DCS system with ADSP-2105 and 2k of SRAM, using a UART for communications (X-unit) */
MACHINE_CONFIG_DERIVED( dcs_audio_2k_uart, dcs_audio_2k )
MCFG_CPU_MODIFY("dcs")
MCFG_CPU_DATA_MAP(dcs_2k_uart_data_map)
MACHINE_CONFIG_END
/* Basic DCS system with ADSP-2105 and 8k of SRAM (Wolf-unit) */
MACHINE_CONFIG_DERIVED( dcs_audio_8k, dcs_audio_2k )
MCFG_CPU_MODIFY("dcs")
MCFG_CPU_PROGRAM_MAP(dcs_8k_program_map)
MCFG_CPU_DATA_MAP(dcs_8k_data_map)
MACHINE_CONFIG_END
MACHINE_CONFIG_DERIVED( dcs_audio_wpc, dcs_audio_2k )
MCFG_CPU_MODIFY("dcs")
MCFG_CPU_PROGRAM_MAP(dcs_wpc_program_map)
MCFG_CPU_DATA_MAP(dcs_wpc_data_map)
MACHINE_CONFIG_END
/*************************************
*
* DCS2 Machine Drivers
*
*************************************/
MACHINE_CONFIG_START( dcs2_audio_2115 )
MCFG_CPU_ADD("dcs2", ADSP2115, XTAL_16MHz)
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device,timer_enable_callback)) /* callback for timer fired */
MCFG_CPU_PROGRAM_MAP(dcs2_2115_program_map)
MCFG_CPU_DATA_MAP(dcs2_2115_data_map)
MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
MCFG_TIMER_DEVICE_ADD("dcs_sport_timer", DEVICE_SELF, dcs_audio_device, sport0_irq)
MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
MCFG_TIMER_DEVICE_ADD("dcs_hle_timer", DEVICE_SELF, dcs_audio_device, transfer_watchdog_callback)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("dac1", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MCFG_SOUND_ADD("dac2", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MACHINE_CONFIG_END
MACHINE_CONFIG_DERIVED( dcs2_audio_2104, dcs2_audio_2115 )
MCFG_CPU_REPLACE("dcs2", ADSP2104, XTAL_16MHz)
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device,timer_enable_callback)) /* callback for timer fired */
MCFG_CPU_PROGRAM_MAP(dcs2_2104_program_map)
MCFG_CPU_DATA_MAP(dcs2_2104_data_map)
MACHINE_CONFIG_END
/*************************************
*
* DSIO Machine Drivers
*
*************************************/
MACHINE_CONFIG_START( dcs2_audio_dsio )
MCFG_CPU_ADD("dsio", ADSP2181, XTAL_32MHz)
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device,timer_enable_callback)) /* callback for timer fired */
MCFG_ADSP21XX_DMOVLAY_CB(WRITE32(dcs_audio_device, dmovlay_callback)) // callback for adsp 2181 dmovlay instruction
MCFG_CPU_PROGRAM_MAP(dsio_program_map)
MCFG_CPU_DATA_MAP(dsio_data_map)
MCFG_CPU_IO_MAP(dsio_io_map)
MCFG_DEVICE_ADD("data_map_bank", ADDRESS_MAP_BANK, 0)
MCFG_DEVICE_PROGRAM_MAP(dsio_rambank_map)
MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE)
MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(16)
MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(14)
MCFG_ADDRESS_MAP_BANK_STRIDE(0x2000)
MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
MCFG_TIMER_DEVICE_ADD("dcs_sport_timer", DEVICE_SELF, dcs_audio_device, sport0_irq) // roadburn needs this to pass harware test
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("dac1", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MCFG_SOUND_ADD("dac2", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MACHINE_CONFIG_END
/*************************************
*
* Denver Machine Drivers
*
*************************************/
MACHINE_CONFIG_START( dcs2_audio_denver )
MCFG_CPU_ADD("denver", ADSP2181, XTAL_33_333MHz)
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device,timer_enable_callback)) /* callback for timer fired */
MCFG_ADSP21XX_DMOVLAY_CB(WRITE32(dcs_audio_device, dmovlay_callback)) // callback for adsp 2181 dmovlay instruction
MCFG_CPU_PROGRAM_MAP(denver_program_map)
MCFG_CPU_DATA_MAP(denver_data_map)
MCFG_CPU_IO_MAP(denver_io_map)
MCFG_DEVICE_ADD("data_map_bank", ADDRESS_MAP_BANK, 0)
MCFG_DEVICE_PROGRAM_MAP(denver_rambank_map)
MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE)
MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(16)
MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(14)
MCFG_ADDRESS_MAP_BANK_STRIDE(0x2000)
MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
MCFG_TIMER_DEVICE_ADD("dcs_sport_timer", DEVICE_SELF, dcs_audio_device, sport0_irq) // Atlantis driver waits for sport0 rx interrupts
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("dac1", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MCFG_SOUND_ADD("dac2", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MCFG_SOUND_ADD("dac3", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MCFG_SOUND_ADD("dac4", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MCFG_SOUND_ADD("dac5", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MCFG_SOUND_ADD("dac6", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MACHINE_CONFIG_END
/************************************* /*************************************
* *
* ADSP booting * ADSP booting
@ -2488,6 +2317,24 @@ int dcs_audio_device::preprocess_write(uint16_t data)
return result; return result;
} }
/* Basic DCS system with ADSP-2105 and 2k of SRAM (T-unit, V-unit, Killer Instinct) */
MACHINE_CONFIG_MEMBER( dcs_audio_device::add_mconfig_dcs )
MCFG_CPU_ADD("dcs", ADSP2105, XTAL_10MHz)
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device, timer_enable_callback)) /* callback for timer fired */
MCFG_CPU_PROGRAM_MAP(dcs_2k_program_map)
MCFG_CPU_DATA_MAP(dcs_2k_data_map)
MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("dac", DMADAC, 0) // AD-1851 16bit mono
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(DCS_AUDIO_2K, dcs_audio_2k_device, "dcs_audio_2k", "DCS Audio 2K") DEFINE_DEVICE_TYPE(DCS_AUDIO_2K, dcs_audio_2k_device, "dcs_audio_2k", "DCS Audio 2K")
//------------------------------------------------- //-------------------------------------------------
@ -2499,10 +2346,10 @@ dcs_audio_2k_device::dcs_audio_2k_device(const machine_config &mconfig, const ch
{ {
} }
machine_config_constructor dcs_audio_2k_device::device_mconfig_additions() const MACHINE_CONFIG_MEMBER( dcs_audio_2k_device::device_add_mconfig )
{
return MACHINE_CONFIG_NAME( dcs_audio_2k ); dcs_audio_device::add_mconfig_dcs(config);
} MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(DCS_AUDIO_2K_UART, dcs_audio_2k_uart_device, "dcs_audio_2k_uart", "DCS Audio 2K UART") DEFINE_DEVICE_TYPE(DCS_AUDIO_2K_UART, dcs_audio_2k_uart_device, "dcs_audio_2k_uart", "DCS Audio 2K UART")
@ -2515,10 +2362,14 @@ dcs_audio_2k_uart_device::dcs_audio_2k_uart_device(const machine_config &mconfig
{ {
} }
machine_config_constructor dcs_audio_2k_uart_device::device_mconfig_additions() const /* Basic DCS system with ADSP-2105 and 2k of SRAM, using a UART for communications (X-unit) */
{ MACHINE_CONFIG_MEMBER( dcs_audio_2k_uart_device::device_add_mconfig )
return MACHINE_CONFIG_NAME( dcs_audio_2k_uart );
} dcs_audio_device::add_mconfig_dcs(config);
MCFG_CPU_MODIFY("dcs")
MCFG_CPU_DATA_MAP(dcs_2k_uart_data_map)
MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(DCS_AUDIO_8K, dcs_audio_8k_device, "dcs_audio_8k", "DCS Audio 8K") DEFINE_DEVICE_TYPE(DCS_AUDIO_8K, dcs_audio_8k_device, "dcs_audio_8k", "DCS Audio 8K")
@ -2531,10 +2382,15 @@ dcs_audio_8k_device::dcs_audio_8k_device(const machine_config &mconfig, const ch
{ {
} }
machine_config_constructor dcs_audio_8k_device::device_mconfig_additions() const /* Basic DCS system with ADSP-2105 and 8k of SRAM (Wolf-unit) */
{ MACHINE_CONFIG_MEMBER( dcs_audio_8k_device::device_add_mconfig )
return MACHINE_CONFIG_NAME( dcs_audio_8k );
} dcs_audio_device::add_mconfig_dcs(config);
MCFG_CPU_MODIFY("dcs")
MCFG_CPU_PROGRAM_MAP(dcs_8k_program_map)
MCFG_CPU_DATA_MAP(dcs_8k_data_map)
MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(DCS_AUDIO_WPC, dcs_audio_wpc_device, "dcs_audio_wpc", "DCS Audio WPC") DEFINE_DEVICE_TYPE(DCS_AUDIO_WPC, dcs_audio_wpc_device, "dcs_audio_wpc", "DCS Audio WPC")
@ -2547,11 +2403,14 @@ dcs_audio_wpc_device::dcs_audio_wpc_device(const machine_config &mconfig, const
{ {
} }
machine_config_constructor dcs_audio_wpc_device::device_mconfig_additions() const MACHINE_CONFIG_MEMBER( dcs_audio_wpc_device::device_add_mconfig )
{
return MACHINE_CONFIG_NAME( dcs_audio_wpc );
}
dcs_audio_device::add_mconfig_dcs(config);
MCFG_CPU_MODIFY("dcs")
MCFG_CPU_PROGRAM_MAP(dcs_wpc_program_map)
MCFG_CPU_DATA_MAP(dcs_wpc_data_map)
MACHINE_CONFIG_END
//------------------------------------------------- //-------------------------------------------------
@ -2563,6 +2422,26 @@ dcs2_audio_device::dcs2_audio_device(const machine_config &mconfig, device_type
{ {
} }
MACHINE_CONFIG_MEMBER( dcs2_audio_device::add_mconfig_dcs2 )
MCFG_CPU_ADD("dcs2", ADSP2115, XTAL_16MHz)
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device, timer_enable_callback)) /* callback for timer fired */
MCFG_CPU_PROGRAM_MAP(dcs2_2115_program_map)
MCFG_CPU_DATA_MAP(dcs2_2115_data_map)
MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
MCFG_TIMER_DEVICE_ADD("dcs_sport_timer", DEVICE_SELF, dcs_audio_device, sport0_irq)
MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
MCFG_TIMER_DEVICE_ADD("dcs_hle_timer", DEVICE_SELF, dcs_audio_device, transfer_watchdog_callback)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("dac1", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MCFG_SOUND_ADD("dac2", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(DCS2_AUDIO_2115, dcs2_audio_2115_device, "dcs2_audio_2115", "DCS2 Audio 2115") DEFINE_DEVICE_TYPE(DCS2_AUDIO_2115, dcs2_audio_2115_device, "dcs2_audio_2115", "DCS2 Audio 2115")
@ -2575,10 +2454,11 @@ dcs2_audio_2115_device::dcs2_audio_2115_device(const machine_config &mconfig, co
{ {
} }
machine_config_constructor dcs2_audio_2115_device::device_mconfig_additions() const MACHINE_CONFIG_MEMBER( dcs2_audio_2115_device::device_add_mconfig )
{
return MACHINE_CONFIG_NAME( dcs2_audio_2115 ); dcs2_audio_device::add_mconfig_dcs2(config);
}
MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(DCS2_AUDIO_2104, dcs2_audio_2104_device, "dcs2_audio_2104", "DCS2 Audio 2104") DEFINE_DEVICE_TYPE(DCS2_AUDIO_2104, dcs2_audio_2104_device, "dcs2_audio_2104", "DCS2 Audio 2104")
@ -2586,16 +2466,22 @@ DEFINE_DEVICE_TYPE(DCS2_AUDIO_2104, dcs2_audio_2104_device, "dcs2_audio_2104", "
// dcs2_audio_2104_device - constructor // dcs2_audio_2104_device - constructor
//------------------------------------------------- //-------------------------------------------------
dcs2_audio_2104_device::dcs2_audio_2104_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : dcs2_audio_2104_device::dcs2_audio_2104_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
dcs2_audio_device(mconfig, DCS2_AUDIO_2104, tag, owner, clock) dcs2_audio_device(mconfig, DCS2_AUDIO_2104, tag, owner, clock)
{ {
} }
machine_config_constructor dcs2_audio_2104_device::device_mconfig_additions() const MACHINE_CONFIG_MEMBER( dcs2_audio_2104_device::device_add_mconfig )
{
return MACHINE_CONFIG_NAME( dcs2_audio_2104 );
}
dcs2_audio_device::add_mconfig_dcs2(config);
MCFG_CPU_REPLACE("dcs2", ADSP2104, XTAL_16MHz)
MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device,timer_enable_callback)) /* callback for timer fired */
MCFG_CPU_PROGRAM_MAP(dcs2_2104_program_map)
MCFG_CPU_DATA_MAP(dcs2_2104_data_map)
MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(DCS2_AUDIO_DSIO, dcs2_audio_dsio_device, "dcs2_audio_dsio", "DCS2 Audio DSIO") DEFINE_DEVICE_TYPE(DCS2_AUDIO_DSIO, dcs2_audio_dsio_device, "dcs2_audio_dsio", "DCS2 Audio DSIO")
@ -2608,10 +2494,35 @@ dcs2_audio_dsio_device::dcs2_audio_dsio_device(const machine_config &mconfig, co
{ {
} }
machine_config_constructor dcs2_audio_dsio_device::device_mconfig_additions() const MACHINE_CONFIG_MEMBER( dcs2_audio_dsio_device::device_add_mconfig )
{ MCFG_CPU_ADD("dsio", ADSP2181, XTAL_32MHz)
return MACHINE_CONFIG_NAME( dcs2_audio_dsio ); MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
} MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device, timer_enable_callback)) /* callback for timer fired */
MCFG_ADSP21XX_DMOVLAY_CB(WRITE32(dcs_audio_device, dmovlay_callback)) // callback for adsp 2181 dmovlay instruction
MCFG_CPU_PROGRAM_MAP(dsio_program_map)
MCFG_CPU_DATA_MAP(dsio_data_map)
MCFG_CPU_IO_MAP(dsio_io_map)
MCFG_DEVICE_ADD("data_map_bank", ADDRESS_MAP_BANK, 0)
MCFG_DEVICE_PROGRAM_MAP(dsio_rambank_map)
MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE)
MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(16)
MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(14)
MCFG_ADDRESS_MAP_BANK_STRIDE(0x2000)
MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
MCFG_TIMER_DEVICE_ADD("dcs_sport_timer", DEVICE_SELF, dcs_audio_device, sport0_irq) // roadburn needs this to pass harware test
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("dac1", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MCFG_SOUND_ADD("dac2", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(DCS2_AUDIO_DENVER, dcs2_audio_denver_device, "dcs2_audio_denver", "DCS2 Audio Denver") DEFINE_DEVICE_TYPE(DCS2_AUDIO_DENVER, dcs2_audio_denver_device, "dcs2_audio_denver", "DCS2 Audio Denver")
@ -2624,7 +2535,43 @@ dcs2_audio_denver_device::dcs2_audio_denver_device(const machine_config &mconfig
{ {
} }
machine_config_constructor dcs2_audio_denver_device::device_mconfig_additions() const MACHINE_CONFIG_MEMBER( dcs2_audio_denver_device::device_add_mconfig )
{ MCFG_CPU_ADD("denver", ADSP2181, XTAL_33_333MHz)
return MACHINE_CONFIG_NAME( dcs2_audio_denver ); MCFG_ADSP21XX_SPORT_TX_CB(WRITE32(dcs_audio_device, sound_tx_callback)) /* callback for serial transmit */
} MCFG_ADSP21XX_TIMER_FIRED_CB(WRITELINE(dcs_audio_device, timer_enable_callback)) /* callback for timer fired */
MCFG_ADSP21XX_DMOVLAY_CB(WRITE32(dcs_audio_device, dmovlay_callback)) // callback for adsp 2181 dmovlay instruction
MCFG_CPU_PROGRAM_MAP(denver_program_map)
MCFG_CPU_DATA_MAP(denver_data_map)
MCFG_CPU_IO_MAP(denver_io_map)
MCFG_DEVICE_ADD("data_map_bank", ADDRESS_MAP_BANK, 0)
MCFG_DEVICE_PROGRAM_MAP(denver_rambank_map)
MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE)
MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(16)
MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(14)
MCFG_ADDRESS_MAP_BANK_STRIDE(0x2000)
MCFG_TIMER_DEVICE_ADD("dcs_reg_timer", DEVICE_SELF, dcs_audio_device, dcs_irq)
MCFG_TIMER_DEVICE_ADD("dcs_int_timer", DEVICE_SELF, dcs_audio_device, internal_timer_callback)
MCFG_TIMER_DEVICE_ADD("dcs_sport_timer", DEVICE_SELF, dcs_audio_device, sport0_irq) // Atlantis driver waits for sport0 rx interrupts
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("dac1", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MCFG_SOUND_ADD("dac2", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MCFG_SOUND_ADD("dac3", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MCFG_SOUND_ADD("dac4", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MCFG_SOUND_ADD("dac5", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MCFG_SOUND_ADD("dac6", DMADAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MACHINE_CONFIG_END

View File

@ -111,6 +111,7 @@ protected:
// device-level overrides // device-level overrides
virtual void device_start() override; virtual void device_start() override;
virtual void device_reset() override; virtual void device_reset() override;
void add_mconfig_dcs(machine_config &config);
struct sdrc_state struct sdrc_state
{ {
@ -228,8 +229,9 @@ public:
// construction/destruction // construction/destruction
dcs_audio_2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); dcs_audio_2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides // optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_add_mconfig(machine_config &config) override;
}; };
@ -244,9 +246,9 @@ public:
// construction/destruction // construction/destruction
dcs_audio_2k_uart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); dcs_audio_2k_uart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides // optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_add_mconfig(machine_config &config) override;
}; };
// device type definition // device type definition
@ -260,9 +262,9 @@ public:
// construction/destruction // construction/destruction
dcs_audio_8k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); dcs_audio_8k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides // optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_add_mconfig(machine_config &config) override;
}; };
// device type definition // device type definition
@ -276,8 +278,9 @@ public:
// construction/destruction // construction/destruction
dcs_audio_wpc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); dcs_audio_wpc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides // optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_add_mconfig(machine_config &config) override;
}; };
// device type definition // device type definition
@ -294,6 +297,7 @@ protected:
// device-level overrides // device-level overrides
virtual void device_start() override; virtual void device_start() override;
void add_mconfig_dcs2(machine_config &config);
}; };
// dcs2_audio_2115_device // dcs2_audio_2115_device
@ -304,9 +308,9 @@ public:
// construction/destruction // construction/destruction
dcs2_audio_2115_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); dcs2_audio_2115_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides // optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_add_mconfig(machine_config &config) override;
}; };
// device type definition // device type definition
@ -320,9 +324,9 @@ public:
// construction/destruction // construction/destruction
dcs2_audio_2104_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); dcs2_audio_2104_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides // optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_add_mconfig(machine_config &config) override;
}; };
// device type definition // device type definition
@ -336,9 +340,9 @@ public:
// construction/destruction // construction/destruction
dcs2_audio_dsio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); dcs2_audio_dsio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides // optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_add_mconfig(machine_config &config) override;
}; };
// device type definition // device type definition
@ -352,9 +356,9 @@ public:
// construction/destruction // construction/destruction
dcs2_audio_denver_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); dcs2_audio_denver_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides // optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override; virtual void device_add_mconfig(machine_config &config) override;
}; };
// device type definition // device type definition

View File

@ -35,7 +35,18 @@ void decobsmt_device::bsmt_ready_callback()
m_ourcpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE); /* BSMT is ready */ m_ourcpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE); /* BSMT is ready */
} }
MACHINE_CONFIG_START( decobsmt ) //**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
DEFINE_DEVICE_TYPE(DECOBSMT, decobsmt_device, "decobsmt", "Data East/Sega/Stern BSMT2000 Sound Board")
//-------------------------------------------------
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_MEMBER( decobsmt_device::device_add_mconfig )
MCFG_CPU_ADD(M6809_TAG, M6809, (3579580/2)) MCFG_CPU_ADD(M6809_TAG, M6809, (3579580/2))
MCFG_CPU_PROGRAM_MAP(decobsmt_map) MCFG_CPU_PROGRAM_MAP(decobsmt_map)
MCFG_CPU_PERIODIC_INT_DRIVER(decobsmt_device, decobsmt_firq_interrupt, 489) /* Fixed FIRQ of 489Hz as measured on real (pinball) machine */ MCFG_CPU_PERIODIC_INT_DRIVER(decobsmt_device, decobsmt_firq_interrupt, 489) /* Fixed FIRQ of 489Hz as measured on real (pinball) machine */
@ -48,23 +59,6 @@ MACHINE_CONFIG_START( decobsmt )
MCFG_SOUND_ROUTE(1, "rspeaker", 2.0) MCFG_SOUND_ROUTE(1, "rspeaker", 2.0)
MACHINE_CONFIG_END MACHINE_CONFIG_END
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
DEFINE_DEVICE_TYPE(DECOBSMT, decobsmt_device, "decobsmt", "Data East/Sega/Stern BSMT2000 Sound Board")
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor decobsmt_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( decobsmt );
}
//************************************************************************** //**************************************************************************
// LIVE DEVICE // LIVE DEVICE
//************************************************************************** //**************************************************************************

View File

@ -32,15 +32,11 @@ public:
DECLARE_WRITE_LINE_MEMBER(bsmt_reset_line); DECLARE_WRITE_LINE_MEMBER(bsmt_reset_line);
INTERRUPT_GEN_MEMBER(decobsmt_firq_interrupt);
void bsmt_ready_callback();
protected: protected:
// device-level overrides // device-level overrides
virtual void device_start() override; virtual void device_start() override;
virtual void device_reset() 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: private:
required_device<cpu_device> m_ourcpu; required_device<cpu_device> m_ourcpu;
@ -49,6 +45,10 @@ private:
uint8_t m_bsmt_latch; uint8_t m_bsmt_latch;
uint8_t m_bsmt_reset; uint8_t m_bsmt_reset;
uint8_t m_bsmt_comms; uint8_t m_bsmt_comms;
INTERRUPT_GEN_MEMBER(decobsmt_firq_interrupt);
void bsmt_ready_callback();
}; };

View File

@ -32,7 +32,18 @@ static ADDRESS_MAP_START( dsbz80io_map, AS_IO, 8, dsbz80_device )
ADDRESS_MAP_END ADDRESS_MAP_END
MACHINE_CONFIG_START( dsbz80 ) //**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
DEFINE_DEVICE_TYPE(DSBZ80, dsbz80_device, "dsbz80_device", "Sega Z80-based Digital Sound Board")
//-------------------------------------------------
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_MEMBER( dsbz80_device::device_add_mconfig )
MCFG_CPU_ADD(Z80_TAG, Z80, 4000000) /* unknown clock, but probably pretty slow considering the z80 does like nothing */ MCFG_CPU_ADD(Z80_TAG, Z80, 4000000) /* unknown clock, but probably pretty slow considering the z80 does like nothing */
MCFG_CPU_PROGRAM_MAP(dsbz80_map) MCFG_CPU_PROGRAM_MAP(dsbz80_map)
MCFG_CPU_IO_MAP(dsbz80io_map) MCFG_CPU_IO_MAP(dsbz80io_map)
@ -45,23 +56,6 @@ MACHINE_CONFIG_START( dsbz80 )
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("uart", i8251_device, write_rxc)) MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("uart", i8251_device, write_rxc))
MACHINE_CONFIG_END MACHINE_CONFIG_END
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
DEFINE_DEVICE_TYPE(DSBZ80, dsbz80_device, "dsbz80_device", "Sega Z80-based Digital Sound Board")
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor dsbz80_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( dsbz80 );
}
//************************************************************************** //**************************************************************************
// LIVE DEVICE // LIVE DEVICE
//************************************************************************** //**************************************************************************

View File

@ -27,9 +27,6 @@ public:
// construction/destruction // construction/destruction
dsbz80_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); dsbz80_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 // static configuration
template<class _Object> static devcb_base &set_rxd_handler(device_t &device, _Object &&object) { return downcast<dsbz80_device &>(device).m_rxd_handler.set_callback(std::forward<_Object>(object)); } template<class _Object> static devcb_base &set_rxd_handler(device_t &device, _Object &&object) { return downcast<dsbz80_device &>(device).m_rxd_handler.set_callback(std::forward<_Object>(object)); }
@ -37,7 +34,6 @@ public:
required_device<i8251_device> m_uart; required_device<i8251_device> m_uart;
DECLARE_WRITE_LINE_MEMBER(write_txd); DECLARE_WRITE_LINE_MEMBER(write_txd);
DECLARE_WRITE_LINE_MEMBER(output_txd);
DECLARE_WRITE8_MEMBER(mpeg_trigger_w); DECLARE_WRITE8_MEMBER(mpeg_trigger_w);
DECLARE_WRITE8_MEMBER(mpeg_start_w); DECLARE_WRITE8_MEMBER(mpeg_start_w);
@ -50,7 +46,7 @@ protected:
// device-level overrides // device-level overrides
virtual void device_start() override; virtual void device_start() override;
virtual void device_reset() override; virtual void device_reset() override;
virtual void device_add_mconfig(machine_config &config) override;
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
private: private:
@ -60,6 +56,8 @@ private:
int mp_pos, audio_pos, audio_avail; int mp_pos, audio_pos, audio_avail;
devcb_write_line m_rxd_handler; devcb_write_line m_rxd_handler;
DECLARE_WRITE_LINE_MEMBER(output_txd);
}; };

View File

@ -187,8 +187,7 @@ TIMER_CALLBACK_MEMBER(cedar_magnet_sound_device::reset_assert_callback)
} }
MACHINE_CONFIG_MEMBER( efo_zsu_device::device_add_mconfig )
static MACHINE_CONFIG_START( efo_zsu )
MCFG_CPU_ADD("soundcpu", Z80, 4000000) MCFG_CPU_ADD("soundcpu", Z80, 4000000)
MCFG_CPU_PROGRAM_MAP(zsu_map) MCFG_CPU_PROGRAM_MAP(zsu_map)
MCFG_CPU_IO_MAP(zsu_io) MCFG_CPU_IO_MAP(zsu_io)
@ -237,8 +236,8 @@ static MACHINE_CONFIG_START( efo_zsu )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END MACHINE_CONFIG_END
static MACHINE_CONFIG_START( cedar_magnet_sound ) MACHINE_CONFIG_MEMBER( cedar_magnet_sound_device::device_add_mconfig )
MCFG_FRAGMENT_ADD(efo_zsu) efo_zsu_device::device_add_mconfig(config);
MCFG_CPU_MODIFY("soundcpu") MCFG_CPU_MODIFY("soundcpu")
MCFG_CPU_PROGRAM_MAP(cedar_magnet_sound_map) MCFG_CPU_PROGRAM_MAP(cedar_magnet_sound_map)
@ -247,16 +246,6 @@ static MACHINE_CONFIG_START( cedar_magnet_sound )
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(cedar_magnet_sound_device, ay0_porta_w)) MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(cedar_magnet_sound_device, ay0_porta_w))
MACHINE_CONFIG_END MACHINE_CONFIG_END
machine_config_constructor efo_zsu_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( efo_zsu );
}
machine_config_constructor cedar_magnet_sound_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cedar_magnet_sound );
}
void efo_zsu_device::device_start() void efo_zsu_device::device_start()
{ {
memory_bank *rombank = membank("rombank"); memory_bank *rombank = membank("rombank");

View File

@ -37,6 +37,14 @@ public:
DECLARE_WRITE8_MEMBER(sound_command_w); DECLARE_WRITE8_MEMBER(sound_command_w);
DECLARE_WRITE8_MEMBER(adpcm_fifo_w); DECLARE_WRITE8_MEMBER(adpcm_fifo_w);
protected:
efo_zsu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
virtual void device_add_mconfig(machine_config &config) override;
virtual void device_start() override;
private:
DECLARE_WRITE8_MEMBER(ay1_porta_w); DECLARE_WRITE8_MEMBER(ay1_porta_w);
DECLARE_WRITE_LINE_MEMBER(ctc1_z0_w); DECLARE_WRITE_LINE_MEMBER(ctc1_z0_w);
@ -46,12 +54,6 @@ public:
DECLARE_WRITE_LINE_MEMBER(ctc0_z1_w); DECLARE_WRITE_LINE_MEMBER(ctc0_z1_w);
DECLARE_WRITE_LINE_MEMBER(ctc0_z2_w); DECLARE_WRITE_LINE_MEMBER(ctc0_z2_w);
DECLARE_WRITE_LINE_MEMBER(fifo_dor_w); DECLARE_WRITE_LINE_MEMBER(fifo_dor_w);
protected:
efo_zsu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_start() override;
}; };
@ -72,13 +74,14 @@ public:
// construction/destruction // construction/destruction
cedar_magnet_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); cedar_magnet_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
DECLARE_WRITE8_MEMBER(ay0_porta_w);
TIMER_CALLBACK_MEMBER(reset_assert_callback) override; TIMER_CALLBACK_MEMBER(reset_assert_callback) override;
protected: protected:
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_start() override;
private:
DECLARE_WRITE8_MEMBER(ay0_porta_w);
}; };
#endif // MAME_AUDIO_EFO_ZSU_H #endif // MAME_AUDIO_EFO_ZSU_H

View File

@ -30,9 +30,6 @@ public:
// construction/destruction // construction/destruction
alesis_dm3ag_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); alesis_dm3ag_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;
// device interface // device interface
DECLARE_WRITE8_MEMBER(write); DECLARE_WRITE8_MEMBER(write);
@ -41,6 +38,7 @@ protected:
virtual void device_start() override; virtual void device_start() override;
virtual void device_reset() override; virtual void device_reset() override;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
virtual void device_add_mconfig(machine_config &config) override;
private: private:
static const device_timer_id TIMER_DAC_UPDATE = 1; static const device_timer_id TIMER_DAC_UPDATE = 1;

View File

@ -340,6 +340,7 @@ public:
std::unique_ptr<hng64_poly_renderer> m_poly_renderer; std::unique_ptr<hng64_poly_renderer> m_poly_renderer;
TIMER_CALLBACK_MEMBER(hng64_3dfifo_processed); TIMER_CALLBACK_MEMBER(hng64_3dfifo_processed);
emu_timer *m_3dfifo_timer;
uint8_t *m_texturerom; uint8_t *m_texturerom;
uint16_t* m_vertsrom; uint16_t* m_vertsrom;

View File

@ -71,7 +71,7 @@ g_profiler.start(PROFILER_USER1);
} }
// Schedule a small amount of time to let the 3d hardware rasterize the display buffer // Schedule a small amount of time to let the 3d hardware rasterize the display buffer
machine().scheduler().timer_set(m_maincpu->cycles_to_attotime(0x200*8), timer_expired_delegate(FUNC(hng64_state::hng64_3dfifo_processed), this)); m_3dfifo_timer->adjust(m_maincpu->cycles_to_attotime(0x200*8));
g_profiler.stop(); g_profiler.stop();
} }