Removed SOUND_RESET legacy MACRO. (nw)

This commit is contained in:
Ivan Vangelista 2013-10-29 18:13:02 +00:00
parent dea200385a
commit de58ad7dcf
4 changed files with 75 additions and 64 deletions

View File

@ -71,14 +71,11 @@
#define MACHINE_RESET_MEMBER(cls,name) void cls::MACHINE_RESET_NAME(name)() #define MACHINE_RESET_MEMBER(cls,name) void cls::MACHINE_RESET_NAME(name)()
#define SOUND_START_NAME(name) sound_start_##name #define SOUND_START_NAME(name) sound_start_##name
#define SOUND_START(name) void SOUND_START_NAME(name)(running_machine &machine)
#define SOUND_START_CALL(name) SOUND_START_NAME(name)(machine)
#define DECLARE_SOUND_START(name) void SOUND_START_NAME(name)() #define DECLARE_SOUND_START(name) void SOUND_START_NAME(name)()
#define SOUND_START_MEMBER(cls,name) void cls::SOUND_START_NAME(name)() #define SOUND_START_MEMBER(cls,name) void cls::SOUND_START_NAME(name)()
#define SOUND_RESET_NAME(name) sound_reset_##name #define SOUND_RESET_NAME(name) sound_reset_##name
#define SOUND_RESET(name) void SOUND_RESET_NAME(name)(running_machine &machine) #define SOUND_RESET_CALL_MEMBER(name) SOUND_RESET_NAME(name)()
#define SOUND_RESET_CALL(name) SOUND_RESET_NAME(name)(machine)
#define DECLARE_SOUND_RESET(name) void SOUND_RESET_NAME(name)() #define DECLARE_SOUND_RESET(name) void SOUND_RESET_NAME(name)()
#define SOUND_RESET_MEMBER(cls,name) void cls::SOUND_RESET_NAME(name)() #define SOUND_RESET_MEMBER(cls,name) void cls::SOUND_RESET_NAME(name)()

View File

@ -25,8 +25,7 @@
#include "machine/z80ctc.h" #include "machine/z80ctc.h"
#include "includes/cinemat.h" #include "includes/cinemat.h"
#include "sound/samples.h" #include "sound/samples.h"
#include "sound/ay8910.h"
#include "drivlgcy.h"
/************************************* /*************************************
* *
@ -180,13 +179,13 @@ static void spacewar_sound_w(running_machine &machine, UINT8 sound_val, UINT8 bi
} }
} }
static SOUND_RESET( spacewar ) SOUND_RESET_MEMBER( cinemat_state, spacewar )
{ {
generic_init(machine, spacewar_sound_w); generic_init(machine(), spacewar_sound_w);
} }
MACHINE_CONFIG_FRAGMENT( spacewar_sound ) MACHINE_CONFIG_FRAGMENT( spacewar_sound )
MCFG_SOUND_RESET(spacewar) MCFG_SOUND_RESET_OVERRIDE(cinemat_state, spacewar)
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")
@ -234,13 +233,13 @@ static void barrier_sound_w(running_machine &machine, UINT8 sound_val, UINT8 bit
samples->start(2, 2); samples->start(2, 2);
} }
static SOUND_RESET( barrier ) SOUND_RESET_MEMBER( cinemat_state, barrier )
{ {
generic_init(machine, barrier_sound_w); generic_init(machine(), barrier_sound_w);
} }
MACHINE_CONFIG_FRAGMENT( barrier_sound ) MACHINE_CONFIG_FRAGMENT( barrier_sound )
MCFG_SOUND_RESET(barrier) MCFG_SOUND_RESET_OVERRIDE(cinemat_state, barrier)
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")
@ -294,13 +293,13 @@ static void speedfrk_sound_w(running_machine &machine, UINT8 sound_val, UINT8 bi
set_led_status(machine, 0, ~sound_val & 0x02); set_led_status(machine, 0, ~sound_val & 0x02);
} }
static SOUND_RESET( speedfrk ) SOUND_RESET_MEMBER( cinemat_state, speedfrk )
{ {
generic_init(machine, speedfrk_sound_w); generic_init(machine(), speedfrk_sound_w);
} }
MACHINE_CONFIG_FRAGMENT( speedfrk_sound ) MACHINE_CONFIG_FRAGMENT( speedfrk_sound )
MCFG_SOUND_RESET(speedfrk) MCFG_SOUND_RESET_OVERRIDE(cinemat_state, speedfrk)
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")
@ -369,13 +368,13 @@ static void starhawk_sound_w(running_machine &machine, UINT8 sound_val, UINT8 bi
samples->stop(3); samples->stop(3);
} }
static SOUND_RESET( starhawk ) SOUND_RESET_MEMBER( cinemat_state, starhawk )
{ {
generic_init(machine, starhawk_sound_w); generic_init(machine(), starhawk_sound_w);
} }
MACHINE_CONFIG_FRAGMENT( starhawk_sound ) MACHINE_CONFIG_FRAGMENT( starhawk_sound )
MCFG_SOUND_RESET(starhawk) MCFG_SOUND_RESET_OVERRIDE(cinemat_state, starhawk)
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")
@ -438,13 +437,13 @@ static void sundance_sound_w(running_machine &machine, UINT8 sound_val, UINT8 bi
samples->start(5, 5); samples->start(5, 5);
} }
static SOUND_RESET( sundance ) SOUND_RESET_MEMBER( cinemat_state, sundance )
{ {
generic_init(machine, sundance_sound_w); generic_init(machine(), sundance_sound_w);
} }
MACHINE_CONFIG_FRAGMENT( sundance_sound ) MACHINE_CONFIG_FRAGMENT( sundance_sound )
MCFG_SOUND_RESET(sundance) MCFG_SOUND_RESET_OVERRIDE(cinemat_state, sundance)
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")
@ -527,13 +526,13 @@ static void tailg_sound_w(running_machine &machine, UINT8 sound_val, UINT8 bits_
} }
} }
static SOUND_RESET( tailg ) SOUND_RESET_MEMBER( cinemat_state, tailg )
{ {
generic_init(machine, tailg_sound_w); generic_init(machine(), tailg_sound_w);
} }
MACHINE_CONFIG_FRAGMENT( tailg_sound ) MACHINE_CONFIG_FRAGMENT( tailg_sound )
MCFG_SOUND_RESET(tailg) MCFG_SOUND_RESET_OVERRIDE(cinemat_state, tailg)
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")
@ -595,13 +594,13 @@ static void warrior_sound_w(running_machine &machine, UINT8 sound_val, UINT8 bit
samples->start(4, 4); samples->start(4, 4);
} }
static SOUND_RESET( warrior ) SOUND_RESET_MEMBER( cinemat_state, warrior )
{ {
generic_init(machine, warrior_sound_w); generic_init(machine(), warrior_sound_w);
} }
MACHINE_CONFIG_FRAGMENT( warrior_sound ) MACHINE_CONFIG_FRAGMENT( warrior_sound )
MCFG_SOUND_RESET(warrior) MCFG_SOUND_RESET_OVERRIDE(cinemat_state, warrior)
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")
@ -690,13 +689,13 @@ static void armora_sound_w(running_machine &machine, UINT8 sound_val, UINT8 bits
samples->stop(6); samples->stop(6);
} }
static SOUND_RESET( armora ) SOUND_RESET_MEMBER( cinemat_state, armora )
{ {
generic_init(machine, armora_sound_w); generic_init(machine(), armora_sound_w);
} }
MACHINE_CONFIG_FRAGMENT( armora_sound ) MACHINE_CONFIG_FRAGMENT( armora_sound )
MCFG_SOUND_RESET(armora) MCFG_SOUND_RESET_OVERRIDE(cinemat_state, armora)
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")
@ -782,13 +781,13 @@ static void ripoff_sound_w(running_machine &machine, UINT8 sound_val, UINT8 bits
samples->start(4, 4); samples->start(4, 4);
} }
static SOUND_RESET( ripoff ) SOUND_RESET_MEMBER( cinemat_state, ripoff )
{ {
generic_init(machine, ripoff_sound_w); generic_init(machine(), ripoff_sound_w);
} }
MACHINE_CONFIG_FRAGMENT( ripoff_sound ) MACHINE_CONFIG_FRAGMENT( ripoff_sound )
MCFG_SOUND_RESET(ripoff) MCFG_SOUND_RESET_OVERRIDE(cinemat_state, ripoff)
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")
@ -895,13 +894,13 @@ static void starcas_sound_w(running_machine &machine, UINT8 sound_val, UINT8 bit
samples->start(7, 7); samples->start(7, 7);
} }
static SOUND_RESET( starcas ) SOUND_RESET_MEMBER( cinemat_state, starcas )
{ {
generic_init(machine, starcas_sound_w); generic_init(machine(), starcas_sound_w);
} }
MACHINE_CONFIG_FRAGMENT( starcas_sound ) MACHINE_CONFIG_FRAGMENT( starcas_sound )
MCFG_SOUND_RESET(starcas) MCFG_SOUND_RESET_OVERRIDE(cinemat_state, starcas)
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")
@ -1030,13 +1029,13 @@ static void solarq_sound_w(running_machine &machine, UINT8 sound_val, UINT8 bits
} }
} }
static SOUND_RESET( solarq ) SOUND_RESET_MEMBER( cinemat_state, solarq )
{ {
generic_init(machine, solarq_sound_w); generic_init(machine(), solarq_sound_w);
} }
MACHINE_CONFIG_FRAGMENT( solarq_sound ) MACHINE_CONFIG_FRAGMENT( solarq_sound )
MCFG_SOUND_RESET(solarq) MCFG_SOUND_RESET_OVERRIDE(cinemat_state, solarq)
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")
@ -1165,13 +1164,13 @@ static void boxingb_sound_w(running_machine &machine, UINT8 sound_val, UINT8 bit
samples->start(11, 11); samples->start(11, 11);
} }
static SOUND_RESET( boxingb ) SOUND_RESET_MEMBER( cinemat_state, boxingb )
{ {
generic_init(machine, boxingb_sound_w); generic_init(machine(), boxingb_sound_w);
} }
MACHINE_CONFIG_FRAGMENT( boxingb_sound ) MACHINE_CONFIG_FRAGMENT( boxingb_sound )
MCFG_SOUND_RESET(boxingb) MCFG_SOUND_RESET_OVERRIDE(cinemat_state, boxingb)
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")
@ -1278,13 +1277,13 @@ static void wotw_sound_w(running_machine &machine, UINT8 sound_val, UINT8 bits_c
samples->start(7, 7); samples->start(7, 7);
} }
static SOUND_RESET( wotw ) SOUND_RESET_MEMBER( cinemat_state, wotw )
{ {
generic_init(machine, wotw_sound_w); generic_init(machine(), wotw_sound_w);
} }
MACHINE_CONFIG_FRAGMENT( wotw_sound ) MACHINE_CONFIG_FRAGMENT( wotw_sound )
MCFG_SOUND_RESET(wotw) MCFG_SOUND_RESET_OVERRIDE(cinemat_state, wotw)
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")
@ -1387,18 +1386,17 @@ static Z80CTC_INTERFACE( demon_z80ctc_interface )
}; };
static SOUND_RESET( demon_sound ) SOUND_RESET_MEMBER( cinemat_state, demon )
{ {
cinemat_state *state = machine.driver_data<cinemat_state>();
/* generic init */ /* generic init */
generic_init(machine, demon_sound_w); generic_init(machine(), demon_sound_w);
/* reset the FIFO */ /* reset the FIFO */
state->m_sound_fifo_in = state->m_sound_fifo_out = 0; m_sound_fifo_in = m_sound_fifo_out = 0;
state->m_last_portb_write = 0xff; m_last_portb_write = 0xff;
/* turn off channel A on AY8910 #0 because it is used as a low-pass filter */ /* turn off channel A on AY8910 #0 because it is used as a low-pass filter */
machine.device<ay8910_device>("ay1")->set_volume(0, 0); m_ay1->set_volume(0, 0);
} }
@ -1439,7 +1437,7 @@ MACHINE_CONFIG_FRAGMENT( demon_sound )
MCFG_Z80CTC_ADD("ctc", 3579545 /* same as "audiocpu" */, demon_z80ctc_interface) MCFG_Z80CTC_ADD("ctc", 3579545 /* same as "audiocpu" */, demon_z80ctc_interface)
MCFG_SOUND_RESET(demon_sound) MCFG_SOUND_RESET_OVERRIDE(cinemat_state, demon)
/* sound hardware */ /* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")
@ -1471,18 +1469,17 @@ WRITE8_MEMBER(cinemat_state::qb3_sound_w)
} }
static SOUND_RESET( qb3_sound ) SOUND_RESET_MEMBER( cinemat_state, qb3 )
{ {
cinemat_state *state = machine.driver_data<cinemat_state>(); SOUND_RESET_CALL_MEMBER(demon);
SOUND_RESET_CALL(demon_sound); m_maincpu->space(AS_IO).install_write_handler(0x04, 0x04, write8_delegate(FUNC(cinemat_state::qb3_sound_w),this));
machine.device("maincpu")->memory().space(AS_IO).install_write_handler(0x04, 0x04, write8_delegate(FUNC(cinemat_state::qb3_sound_w),state));
/* this patch prevents the sound ROM from eating itself when command $0A is sent */ /* this patch prevents the sound ROM from eating itself when command $0A is sent */
/* on a cube rotate */ /* on a cube rotate */
state->memregion("audiocpu")->base()[0x11dc] = 0x09; memregion("audiocpu")->base()[0x11dc] = 0x09;
} }
MACHINE_CONFIG_DERIVED( qb3_sound, demon_sound ) MACHINE_CONFIG_DERIVED( qb3_sound, demon_sound )
MCFG_SOUND_RESET(qb3_sound) MCFG_SOUND_RESET_OVERRIDE(cinemat_state, qb3)
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -60,4 +60,3 @@ protected:
/*----------- defined in audio/cchasm.c -----------*/ /*----------- defined in audio/cchasm.c -----------*/
extern const z80ctc_interface cchasm_ctc_intf; extern const z80ctc_interface cchasm_ctc_intf;
SOUND_START( cchasm );

View File

@ -6,14 +6,20 @@
*************************************************************************/ *************************************************************************/
#include "sound/ay8910.h"
class cinemat_state : public driver_device class cinemat_state : public driver_device
{ {
public: public:
cinemat_state(const machine_config &mconfig, device_type type, const char *tag) cinemat_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag), : driver_device(mconfig, type, tag),
m_rambase(*this, "rambase"), m_maincpu(*this, "maincpu"),
m_maincpu(*this, "maincpu") { } m_ay1(*this, "ay1"),
m_rambase(*this, "rambase") { }
required_device<ccpu_cpu_device> m_maincpu;
optional_device<ay8910_device> m_ay1;
optional_shared_ptr<UINT16> m_rambase;
UINT8 m_sound_control; UINT8 m_sound_control;
void (*m_sound_handler)(running_machine &,UINT8 sound_val, UINT8 bits_changed); void (*m_sound_handler)(running_machine &,UINT8 sound_val, UINT8 bits_changed);
@ -28,7 +34,6 @@ public:
UINT8 m_last_portb_write; UINT8 m_last_portb_write;
float m_target_volume; float m_target_volume;
float m_current_volume; float m_current_volume;
optional_shared_ptr<UINT16> m_rambase;
UINT8 m_coin_detected; UINT8 m_coin_detected;
UINT8 m_coin_last_reset; UINT8 m_coin_last_reset;
UINT8 m_mux_select; UINT8 m_mux_select;
@ -65,6 +70,21 @@ public:
virtual void machine_reset(); virtual void machine_reset();
virtual void sound_start(); virtual void sound_start();
virtual void video_start(); virtual void video_start();
DECLARE_SOUND_RESET(spacewar);
DECLARE_SOUND_RESET(barrier);
DECLARE_SOUND_RESET(speedfrk);
DECLARE_SOUND_RESET(starhawk);
DECLARE_SOUND_RESET(sundance);
DECLARE_SOUND_RESET(tailg);
DECLARE_SOUND_RESET(warrior);
DECLARE_SOUND_RESET(armora);
DECLARE_SOUND_RESET(ripoff);
DECLARE_SOUND_RESET(starcas);
DECLARE_SOUND_RESET(solarq);
DECLARE_SOUND_RESET(boxingb);
DECLARE_SOUND_RESET(wotw);
DECLARE_SOUND_RESET(demon);
DECLARE_SOUND_RESET(qb3);
DECLARE_VIDEO_START(cinemat_16level); DECLARE_VIDEO_START(cinemat_16level);
DECLARE_VIDEO_START(cinemat_64level); DECLARE_VIDEO_START(cinemat_64level);
DECLARE_VIDEO_START(cinemat_color); DECLARE_VIDEO_START(cinemat_color);
@ -75,7 +95,6 @@ public:
DECLARE_READ8_MEMBER(sound_portb_r); DECLARE_READ8_MEMBER(sound_portb_r);
DECLARE_WRITE8_MEMBER(sound_portb_w); DECLARE_WRITE8_MEMBER(sound_portb_w);
DECLARE_WRITE8_MEMBER(sound_output_w); DECLARE_WRITE8_MEMBER(sound_output_w);
required_device<ccpu_cpu_device> m_maincpu;
void cinemat_vector_callback(INT16 sx, INT16 sy, INT16 ex, INT16 ey, UINT8 shift); void cinemat_vector_callback(INT16 sx, INT16 sy, INT16 ex, INT16 ey, UINT8 shift);
}; };
@ -93,6 +112,5 @@ MACHINE_CONFIG_EXTERN( starcas_sound );
MACHINE_CONFIG_EXTERN( solarq_sound ); MACHINE_CONFIG_EXTERN( solarq_sound );
MACHINE_CONFIG_EXTERN( boxingb_sound ); MACHINE_CONFIG_EXTERN( boxingb_sound );
MACHINE_CONFIG_EXTERN( wotw_sound ); MACHINE_CONFIG_EXTERN( wotw_sound );
MACHINE_CONFIG_EXTERN( wotwc_sound );
MACHINE_CONFIG_EXTERN( demon_sound ); MACHINE_CONFIG_EXTERN( demon_sound );
MACHINE_CONFIG_EXTERN( qb3_sound ); MACHINE_CONFIG_EXTERN( qb3_sound );