From 82b896637bdc509a4b183622fd30cbba81d7d6f3 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Sun, 27 Oct 2013 19:38:03 +0000 Subject: [PATCH] Removed SOUND_START legacy MACRO. Added SOUND_START_MEMBER and SOUND_RESET_MEMBER macros. (nw) --- src/emu/driver.h | 8 +++- src/emu/drivlgcy.h | 3 -- src/mame/audio/cchasm.c | 11 ++--- src/mame/audio/cinemat.c | 38 +++++----------- src/mame/audio/dkong.c | 16 ------- src/mame/audio/jedi.c | 28 +++++------- src/mame/audio/mario.c | 49 +++++++++----------- src/mame/audio/mw8080bw.c | 23 +++++----- src/mame/audio/n8080.c | 23 +++++++--- src/mame/audio/redalert.c | 34 ++++---------- src/mame/audio/scramble.c | 7 --- src/mame/audio/segag80r.c | 87 ++---------------------------------- src/mame/drivers/cchasm.c | 4 +- src/mame/drivers/dkong.c | 5 ++- src/mame/drivers/equites.c | 19 +++----- src/mame/drivers/jangou.c | 21 +++------ src/mame/drivers/lucky74.c | 10 ++--- src/mame/drivers/mirax.c | 9 ++-- src/mame/drivers/n8080.c | 33 ++------------ src/mame/drivers/segag80r.c | 21 +++++++++ src/mame/includes/cchasm.h | 15 ++++--- src/mame/includes/cinemat.h | 1 + src/mame/includes/jedi.h | 2 + src/mame/includes/lucky74.h | 1 + src/mame/includes/mario.h | 2 + src/mame/includes/mw8080bw.h | 1 + src/mame/includes/n8080.h | 18 ++++---- src/mame/includes/redalert.h | 2 + 28 files changed, 162 insertions(+), 329 deletions(-) diff --git a/src/emu/driver.h b/src/emu/driver.h index 4ef7d87b320..36f9f904bee 100644 --- a/src/emu/driver.h +++ b/src/emu/driver.h @@ -34,10 +34,10 @@ // core sound callbacks #define MCFG_SOUND_START_OVERRIDE(_class, _func) \ - driver_device::static_set_callback(config.root_device(), driver_device::CB_SOUND_START, driver_callback_delegate(&_class::_func, #_class "::" #_func, downcast<_class *>(owner))); + driver_device::static_set_callback(config.root_device(), driver_device::CB_SOUND_START, driver_callback_delegate(&_class::SOUND_START_NAME(_func), #_class "::sound_start_" #_func, downcast<_class *>(owner))); #define MCFG_SOUND_RESET_OVERRIDE(_class, _func) \ - driver_device::static_set_callback(config.root_device(), driver_device::CB_SOUND_RESET, driver_callback_delegate(&_class::_func, #_class "::" #_func, downcast<_class *>(owner))); + driver_device::static_set_callback(config.root_device(), driver_device::CB_SOUND_RESET, driver_callback_delegate(&_class::SOUND_RESET_NAME(_func), #_class "::sound_reset_" #_func, downcast<_class *>(owner))); // core video callbacks @@ -73,10 +73,14 @@ #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 SOUND_START_MEMBER(cls,name) void cls::SOUND_START_NAME(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(name) SOUND_RESET_NAME(name)(machine) +#define DECLARE_SOUND_RESET(name) void SOUND_RESET_NAME(name)() +#define SOUND_RESET_MEMBER(cls,name) void cls::SOUND_RESET_NAME(name)() #define PALETTE_INIT_NAME(name) palette_init_##name #define PALETTE_INIT(name) void PALETTE_INIT_NAME(name)(running_machine &machine) // legacy diff --git a/src/emu/drivlgcy.h b/src/emu/drivlgcy.h index f50094b9e7b..d38c52b65b1 100644 --- a/src/emu/drivlgcy.h +++ b/src/emu/drivlgcy.h @@ -23,9 +23,6 @@ #define MCFG_MACHINE_RESET(_func) \ driver_device::static_set_callback(*owner, driver_device::CB_MACHINE_RESET, MACHINE_RESET_NAME(_func)); -#define MCFG_SOUND_START(_func) \ - driver_device::static_set_callback(*owner, driver_device::CB_SOUND_START, SOUND_START_NAME(_func)); - #define MCFG_SOUND_RESET(_func) \ driver_device::static_set_callback(*owner, driver_device::CB_SOUND_RESET, SOUND_RESET_NAME(_func)); diff --git a/src/mame/audio/cchasm.c b/src/mame/audio/cchasm.c index 219233f3f67..2887dd7d2c7 100644 --- a/src/mame/audio/cchasm.c +++ b/src/mame/audio/cchasm.c @@ -124,12 +124,9 @@ Z80CTC_INTERFACE( cchasm_ctc_intf ) DEVCB_DRIVER_LINE_MEMBER(cchasm_state,ctc_timer_2_w) /* ZC/TO2 callback */ }; -SOUND_START( cchasm ) +void cchasm_state::sound_start() { - cchasm_state *state = machine.driver_data(); - state->m_coin_flag = 0; - state->m_sound_flags = 0; - state->m_output[0] = 0; state->m_output[1] = 0; - - state->m_ctc = machine.device("ctc"); + m_coin_flag = 0; + m_sound_flags = 0; + m_output[0] = 0; m_output[1] = 0; } diff --git a/src/mame/audio/cinemat.c b/src/mame/audio/cinemat.c index aa498788cd5..ebacf6ad583 100644 --- a/src/mame/audio/cinemat.c +++ b/src/mame/audio/cinemat.c @@ -28,7 +28,6 @@ #include "sound/ay8910.h" #include "drivlgcy.h" - /************************************* * * Macros @@ -74,20 +73,19 @@ WRITE8_MEMBER(cinemat_state::cinemat_sound_control_w) * *************************************/ -static SOUND_START( generic ) +void cinemat_state::sound_start() { - cinemat_state *state = machine.driver_data(); /* register for save states */ - state->save_item(NAME(state->m_sound_control)); - state->save_item(NAME(state->m_current_shift)); - state->save_item(NAME(state->m_last_shift)); - state->save_item(NAME(state->m_last_shift2)); - state->save_item(NAME(state->m_current_pitch)); - state->save_item(NAME(state->m_last_frame)); - state->save_item(NAME(state->m_sound_fifo)); - state->save_item(NAME(state->m_sound_fifo_in)); - state->save_item(NAME(state->m_sound_fifo_out)); - state->save_item(NAME(state->m_last_portb_write)); + save_item(NAME(m_sound_control)); + save_item(NAME(m_current_shift)); + save_item(NAME(m_last_shift)); + save_item(NAME(m_last_shift2)); + save_item(NAME(m_current_pitch)); + save_item(NAME(m_last_frame)); + save_item(NAME(m_sound_fifo)); + save_item(NAME(m_sound_fifo_in)); + save_item(NAME(m_sound_fifo_out)); + save_item(NAME(m_last_portb_write)); } @@ -188,7 +186,6 @@ static SOUND_RESET( spacewar ) } MACHINE_CONFIG_FRAGMENT( spacewar_sound ) - MCFG_SOUND_START(generic) MCFG_SOUND_RESET(spacewar) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -243,7 +240,6 @@ static SOUND_RESET( barrier ) } MACHINE_CONFIG_FRAGMENT( barrier_sound ) - MCFG_SOUND_START(generic) MCFG_SOUND_RESET(barrier) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -304,7 +300,6 @@ static SOUND_RESET( speedfrk ) } MACHINE_CONFIG_FRAGMENT( speedfrk_sound ) - MCFG_SOUND_START(generic) MCFG_SOUND_RESET(speedfrk) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -380,7 +375,6 @@ static SOUND_RESET( starhawk ) } MACHINE_CONFIG_FRAGMENT( starhawk_sound ) - MCFG_SOUND_START(generic) MCFG_SOUND_RESET(starhawk) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -450,7 +444,6 @@ static SOUND_RESET( sundance ) } MACHINE_CONFIG_FRAGMENT( sundance_sound ) - MCFG_SOUND_START(generic) MCFG_SOUND_RESET(sundance) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -540,7 +533,6 @@ static SOUND_RESET( tailg ) } MACHINE_CONFIG_FRAGMENT( tailg_sound ) - MCFG_SOUND_START(generic) MCFG_SOUND_RESET(tailg) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -609,7 +601,6 @@ static SOUND_RESET( warrior ) } MACHINE_CONFIG_FRAGMENT( warrior_sound ) - MCFG_SOUND_START(generic) MCFG_SOUND_RESET(warrior) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -705,7 +696,6 @@ static SOUND_RESET( armora ) } MACHINE_CONFIG_FRAGMENT( armora_sound ) - MCFG_SOUND_START(generic) MCFG_SOUND_RESET(armora) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -798,7 +788,6 @@ static SOUND_RESET( ripoff ) } MACHINE_CONFIG_FRAGMENT( ripoff_sound ) - MCFG_SOUND_START(generic) MCFG_SOUND_RESET(ripoff) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -912,7 +901,6 @@ static SOUND_RESET( starcas ) } MACHINE_CONFIG_FRAGMENT( starcas_sound ) - MCFG_SOUND_START(generic) MCFG_SOUND_RESET(starcas) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1048,7 +1036,6 @@ static SOUND_RESET( solarq ) } MACHINE_CONFIG_FRAGMENT( solarq_sound ) - MCFG_SOUND_START(generic) MCFG_SOUND_RESET(solarq) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1184,7 +1171,6 @@ static SOUND_RESET( boxingb ) } MACHINE_CONFIG_FRAGMENT( boxingb_sound ) - MCFG_SOUND_START(generic) MCFG_SOUND_RESET(boxingb) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1298,7 +1284,6 @@ static SOUND_RESET( wotw ) } MACHINE_CONFIG_FRAGMENT( wotw_sound ) - MCFG_SOUND_START(generic) MCFG_SOUND_RESET(wotw) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1454,7 +1439,6 @@ MACHINE_CONFIG_FRAGMENT( demon_sound ) MCFG_Z80CTC_ADD("ctc", 3579545 /* same as "audiocpu" */, demon_z80ctc_interface) - MCFG_SOUND_START(generic) MCFG_SOUND_RESET(demon_sound) /* sound hardware */ diff --git a/src/mame/audio/dkong.c b/src/mame/audio/dkong.c index c90faa30108..59d8bdbaf53 100644 --- a/src/mame/audio/dkong.c +++ b/src/mame/audio/dkong.c @@ -1106,20 +1106,6 @@ DISCRETE_TASK_END() DISCRETE_SOUND_END -/**************************************************************** - * - * Initialization - * - ****************************************************************/ - -static SOUND_START( dkong) -{ - dkong_state *state = machine.driver_data(); - - state->m_snd_rom = state->memregion("soundcpu")->base(); -} - - /**************************************************************** * * M58817 Speech @@ -1369,8 +1355,6 @@ const tms5110_interface tms_interface = { MACHINE_CONFIG_FRAGMENT( dkong2b_audio ) - MCFG_SOUND_START( dkong ) - /* sound latches */ MCFG_LATCH8_ADD("ls175.3d") /* sound cmd latch */ diff --git a/src/mame/audio/jedi.c b/src/mame/audio/jedi.c index 5d8ca2985e8..7aa71aa684f 100644 --- a/src/mame/audio/jedi.c +++ b/src/mame/audio/jedi.c @@ -11,7 +11,6 @@ #include "sound/tms5220.h" #include "sound/pokey.h" #include "includes/jedi.h" -#include "drivlgcy.h" @@ -21,14 +20,12 @@ * *************************************/ -static SOUND_START( jedi ) +void jedi_state::sound_start() { - jedi_state *state = machine.driver_data(); - /* set up save state */ - state->save_item(NAME(state->m_audio_latch)); - state->save_item(NAME(state->m_audio_ack_latch)); - state->save_item(NAME(state->m_speech_strobe_state)); + save_item(NAME(m_audio_latch)); + save_item(NAME(m_audio_ack_latch)); + save_item(NAME(m_speech_strobe_state)); } @@ -39,16 +36,14 @@ static SOUND_START( jedi ) * *************************************/ -static SOUND_RESET( jedi ) +void jedi_state::sound_reset() { - jedi_state *state = machine.driver_data(); - /* init globals */ - state->m_audio_latch = 0; - state->m_audio_ack_latch = 0; - *state->m_audio_comm_stat = 0; - *state->m_speech_data = 0; - state->m_speech_strobe_state = 0; + m_audio_latch = 0; + m_audio_ack_latch = 0; + *m_audio_comm_stat = 0; + *m_speech_data = 0; + m_speech_strobe_state = 0; } @@ -199,9 +194,6 @@ MACHINE_CONFIG_FRAGMENT( jedi_audio ) MCFG_CPU_ADD("audiocpu", M6502, JEDI_AUDIO_CPU_CLOCK) MCFG_CPU_PROGRAM_MAP(audio_map) - MCFG_SOUND_START(jedi) - MCFG_SOUND_RESET(jedi) - MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_POKEY_ADD("pokey1", JEDI_POKEY_CLOCK) diff --git a/src/mame/audio/mario.c b/src/mame/audio/mario.c index 8dd7dacb0f9..1527376f47d 100644 --- a/src/mame/audio/mario.c +++ b/src/mame/audio/mario.c @@ -5,7 +5,7 @@ #include "sound/discrete.h" #include "includes/mario.h" -#include "drivlgcy.h" + /**************************************************************** * @@ -31,9 +31,9 @@ #define I8035_P1_W(M,D) soundlatch3_byte_w(M,0,D) #if (USE_8039) -#define I8035_P2_W(M,D) do { state->soundlatch4_byte_w(M,0,D); } while (0) +#define I8035_P2_W(M,D) do { soundlatch4_byte_w(M,0,D); } while (0) #else -#define I8035_P2_W(M,D) do { set_ea(M, ((D) & 0x20) ? 0 : 1); state->soundlatch4_byte_w(M,0,D); } while (0) +#define I8035_P2_W(M,D) do { set_ea(M, ((D) & 0x20) ? 0 : 1); soundlatch4_byte_w(M,0,D); } while (0) #endif #define I8035_P1_W_AH(M,B,D) I8035_P1_W(M,ACTIVEHIGH_PORT_BIT(I8035_P1_R(M),B,(D))) @@ -412,47 +412,45 @@ static void set_ea(address_space &space, int ea) * ****************************************************************/ -static SOUND_START( mario ) +void mario_state::sound_start() { - mario_state *state = machine.driver_data(); - device_t *audiocpu = machine.device("audiocpu"); + device_t *audiocpu = machine().device("audiocpu"); #if USE_8039 - UINT8 *SND = state->memregion("audiocpu")->base(); + UINT8 *SND = memregion("audiocpu")->base(); SND[0x1001] = 0x01; #endif - state->m_eabank = NULL; + m_eabank = NULL; if (audiocpu != NULL && audiocpu->type() != Z80) { - state->m_eabank = "bank1"; + m_eabank = "bank1"; audiocpu->memory().space(AS_PROGRAM).install_read_bank(0x000, 0x7ff, "bank1"); - state->membank("bank1")->configure_entry(0, state->memregion("audiocpu")->base()); - state->membank("bank1")->configure_entry(1, state->memregion("audiocpu")->base() + 0x1000); + membank("bank1")->configure_entry(0, memregion("audiocpu")->base()); + membank("bank1")->configure_entry(1, memregion("audiocpu")->base() + 0x1000); } - state->save_item(NAME(state->m_last)); - state->save_item(NAME(state->m_portT)); + save_item(NAME(m_last)); + save_item(NAME(m_portT)); } -static SOUND_RESET( mario ) +void mario_state::sound_reset() { - mario_state *state = machine.driver_data(); - address_space &space = machine.device("audiocpu")->memory().space(AS_PROGRAM); + address_space &space = machine().device("audiocpu")->memory().space(AS_PROGRAM); #if USE_8039 set_ea(machine, 1); #endif /* FIXME: convert to latch8 */ - state->soundlatch_clear_byte_w(space, 0, 0); - state->soundlatch2_clear_byte_w(space, 0, 0); - state->soundlatch3_clear_byte_w(space, 0, 0); - state->soundlatch4_clear_byte_w(space, 0, 0); - state->I8035_P1_W(space, 0x00); /* Input port */ + soundlatch_clear_byte_w(space, 0, 0); + soundlatch2_clear_byte_w(space, 0, 0); + soundlatch3_clear_byte_w(space, 0, 0); + soundlatch4_clear_byte_w(space, 0, 0); + I8035_P1_W(space, 0x00); /* Input port */ I8035_P2_W(space, 0xff); /* Port is in high impedance state after reset */ - state->m_last = 0; + m_last = 0; } /**************************************************************** @@ -505,7 +503,6 @@ WRITE8_MEMBER(mario_state::mario_sh_p1_w) WRITE8_MEMBER(mario_state::mario_sh_p2_w) { - mario_state *state = machine().driver_data(); I8035_P2_W(space, data); } @@ -639,9 +636,6 @@ MACHINE_CONFIG_FRAGMENT( mario_audio ) MCFG_CPU_PROGRAM_MAP(mario_sound_map) MCFG_CPU_IO_MAP(mario_sound_io_map) - MCFG_SOUND_START(mario) - MCFG_SOUND_RESET(mario) - MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("discrete", DISCRETE, 0) MCFG_SOUND_CONFIG_DISCRETE(mario) @@ -654,9 +648,6 @@ MACHINE_CONFIG_FRAGMENT( masao_audio ) MCFG_CPU_ADD("audiocpu", Z80, 24576000/16) /* ???? */ MCFG_CPU_PROGRAM_MAP(masao_sound_map) - MCFG_SOUND_START(mario) - MCFG_SOUND_RESET(mario) - MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("aysnd", AY8910, 14318000/6) diff --git a/src/mame/audio/mw8080bw.c b/src/mame/audio/mw8080bw.c index 6e9202c5d14..6fef8e29a3f 100644 --- a/src/mame/audio/mw8080bw.c +++ b/src/mame/audio/mw8080bw.c @@ -9,7 +9,6 @@ #include "sound/sn76477.h" #include "sound/discrete.h" #include "includes/mw8080bw.h" -#include "drivlgcy.h" /************************************* @@ -18,13 +17,11 @@ * *************************************/ -static SOUND_START( samples ) +SOUND_START_MEMBER( mw8080bw_state, samples ) { - mw8080bw_state *state = machine.driver_data(); - /* setup for save states */ - state->save_item(NAME(state->m_port_1_last)); - state->save_item(NAME(state->m_port_2_last)); + save_item(NAME(m_port_1_last)); + save_item(NAME(m_port_2_last)); } @@ -155,7 +152,7 @@ static const samples_interface seawolf_samples_interface = MACHINE_CONFIG_FRAGMENT( seawolf_audio ) - MCFG_SOUND_START(samples) + MCFG_SOUND_START_OVERRIDE(mw8080bw_state, samples) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SAMPLES_ADD("samples", seawolf_samples_interface) @@ -214,7 +211,7 @@ static const samples_interface gunfight_samples_interface = MACHINE_CONFIG_FRAGMENT( gunfight_audio ) - MCFG_SOUND_START(samples) + MCFG_SOUND_START_OVERRIDE(mw8080bw_state, samples) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -1567,7 +1564,7 @@ static const samples_interface gmissile_samples_interface = MACHINE_CONFIG_FRAGMENT( gmissile_audio ) - MCFG_SOUND_START(samples) + MCFG_SOUND_START_OVERRIDE(mw8080bw_state, samples) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -1663,7 +1660,7 @@ static const samples_interface m4_samples_interface = MACHINE_CONFIG_FRAGMENT( m4_audio ) - MCFG_SOUND_START(samples) + MCFG_SOUND_START_OVERRIDE(mw8080bw_state, samples) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -1921,7 +1918,7 @@ static const samples_interface clowns_samples_interface = MACHINE_CONFIG_FRAGMENT( clowns_audio ) - MCFG_SOUND_START(samples) + MCFG_SOUND_START_OVERRIDE(mw8080bw_state, samples) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -3316,7 +3313,7 @@ static const samples_interface phantom2_samples_interface = MACHINE_CONFIG_FRAGMENT( phantom2_audio ) - MCFG_SOUND_START(samples) + MCFG_SOUND_START_OVERRIDE(mw8080bw_state, samples) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SAMPLES_ADD("samples", phantom2_samples_interface) @@ -3595,7 +3592,7 @@ static const samples_interface invaders_samples_interface = /* left in for all games that hack into invaders samples for audio */ MACHINE_CONFIG_FRAGMENT( invaders_samples_audio ) - MCFG_SOUND_START(samples) + MCFG_SOUND_START_OVERRIDE(mw8080bw_state, samples) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/audio/n8080.c b/src/mame/audio/n8080.c index 2f69fbae73d..4f0b0db1512 100644 --- a/src/mame/audio/n8080.c +++ b/src/mame/audio/n8080.c @@ -455,7 +455,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(n8080_state::helifire_dac_volume_timer) } -MACHINE_START_MEMBER(n8080_state,spacefev_sound) +SOUND_START_MEMBER(n8080_state,spacefev) { m_sound_timer[0] = machine().scheduler().timer_alloc(FUNC(stop_mono_flop_callback)); m_sound_timer[1] = machine().scheduler().timer_alloc(FUNC(stop_mono_flop_callback)); @@ -468,7 +468,7 @@ MACHINE_START_MEMBER(n8080_state,spacefev_sound) save_item(NAME(m_mono_flop)); } -MACHINE_RESET_MEMBER(n8080_state,spacefev_sound) +SOUND_RESET_MEMBER(n8080_state,spacefev) { m_n8080_hardware = 1; @@ -484,7 +484,7 @@ MACHINE_RESET_MEMBER(n8080_state,spacefev_sound) } -MACHINE_START_MEMBER(n8080_state,sheriff_sound) +SOUND_START_MEMBER(n8080_state,sheriff) { m_sound_timer[0] = machine().scheduler().timer_alloc(FUNC(stop_mono_flop_callback)); m_sound_timer[1] = machine().scheduler().timer_alloc(FUNC(stop_mono_flop_callback)); @@ -496,7 +496,7 @@ MACHINE_START_MEMBER(n8080_state,sheriff_sound) save_item(NAME(m_mono_flop)); } -MACHINE_RESET_MEMBER(n8080_state,sheriff_sound) +SOUND_RESET_MEMBER(n8080_state,sheriff) { m_n8080_hardware = 2; @@ -511,7 +511,7 @@ MACHINE_RESET_MEMBER(n8080_state,sheriff_sound) } -MACHINE_START_MEMBER(n8080_state,helifire_sound) +SOUND_START_MEMBER(n8080_state,helifire) { save_item(NAME(m_prev_snd_data)); save_item(NAME(m_prev_sound_pins)); @@ -522,7 +522,7 @@ MACHINE_START_MEMBER(n8080_state,helifire_sound) save_item(NAME(m_helifire_dac_phase)); } -MACHINE_RESET_MEMBER(n8080_state,helifire_sound) +SOUND_RESET_MEMBER(n8080_state,helifire) { m_n8080_hardware = 3; @@ -567,6 +567,9 @@ ADDRESS_MAP_END MACHINE_CONFIG_FRAGMENT( spacefev_sound ) + MCFG_SOUND_START_OVERRIDE(n8080_state,spacefev) + MCFG_SOUND_RESET_OVERRIDE(n8080_state,spacefev) + /* basic machine hardware */ MCFG_CPU_ADD("audiocpu", I8035, 6000000) MCFG_CPU_PROGRAM_MAP(n8080_sound_cpu_map) @@ -587,7 +590,10 @@ MACHINE_CONFIG_END MACHINE_CONFIG_FRAGMENT( sheriff_sound ) - + + MCFG_SOUND_START_OVERRIDE(n8080_state,sheriff) + MCFG_SOUND_RESET_OVERRIDE(n8080_state,sheriff) + /* basic machine hardware */ MCFG_CPU_ADD("audiocpu", I8035, 6000000) MCFG_CPU_PROGRAM_MAP(n8080_sound_cpu_map) @@ -607,6 +613,9 @@ MACHINE_CONFIG_END MACHINE_CONFIG_FRAGMENT( helifire_sound ) + MCFG_SOUND_START_OVERRIDE(n8080_state,helifire) + MCFG_SOUND_RESET_OVERRIDE(n8080_state,helifire) + /* basic machine hardware */ MCFG_CPU_ADD("audiocpu", I8035, 6000000) MCFG_CPU_PROGRAM_MAP(n8080_sound_cpu_map) diff --git a/src/mame/audio/redalert.c b/src/mame/audio/redalert.c index 65eeffafa2e..d2e9d4618b3 100644 --- a/src/mame/audio/redalert.c +++ b/src/mame/audio/redalert.c @@ -15,7 +15,6 @@ #include "machine/6821pia.h" #include "sound/ay8910.h" #include "includes/redalert.h" -#include "drivlgcy.h" @@ -138,11 +137,10 @@ ADDRESS_MAP_END * *************************************/ -static SOUND_START( redalert_audio ) +SOUND_START_MEMBER(redalert_state,redalert) { - redalert_state *state = machine.driver_data(); - state->save_item(NAME(state->m_ay8910_latch_1)); - state->save_item(NAME(state->m_ay8910_latch_2)); + save_item(NAME(m_ay8910_latch_1)); + save_item(NAME(m_ay8910_latch_2)); } @@ -180,19 +178,6 @@ ADDRESS_MAP_END -/************************************* - * - * Red Alert audio start - * - *************************************/ - -static SOUND_START( redalert ) -{ - SOUND_START_CALL(redalert_audio); -} - - - /************************************* * * Red Alert audio board (m37b) @@ -243,7 +228,7 @@ MACHINE_CONFIG_FRAGMENT( redalert_audio ) MCFG_FRAGMENT_ADD( redalert_audio_m37b ) MCFG_FRAGMENT_ADD( redalert_audio_voice ) - MCFG_SOUND_START( redalert ) + MCFG_SOUND_START_OVERRIDE( redalert_state, redalert ) MACHINE_CONFIG_END @@ -259,7 +244,7 @@ MACHINE_CONFIG_FRAGMENT( ww3_audio ) MCFG_FRAGMENT_ADD( redalert_audio_m37b ) - MCFG_SOUND_START( redalert_audio ) + MCFG_SOUND_START_OVERRIDE( redalert_state, redalert ) MACHINE_CONFIG_END @@ -374,11 +359,10 @@ static const pia6821_interface demoneye_pia_intf = * *************************************/ -static SOUND_START( demoneye ) +SOUND_START_MEMBER( redalert_state, demoneye ) { - redalert_state *state = machine.driver_data(); - state->save_item(NAME(state->m_ay8910_latch_1)); - state->save_item(NAME(state->m_ay8910_latch_2)); + save_item(NAME(m_ay8910_latch_1)); + save_item(NAME(m_ay8910_latch_2)); } @@ -397,7 +381,7 @@ MACHINE_CONFIG_FRAGMENT( demoneye_audio ) MCFG_PIA6821_ADD("sndpia", demoneye_pia_intf) - MCFG_SOUND_START( demoneye ) + MCFG_SOUND_START_OVERRIDE( redalert_state, demoneye ) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/audio/scramble.c b/src/mame/audio/scramble.c index 420d3cf4376..e347d2b7151 100644 --- a/src/mame/audio/scramble.c +++ b/src/mame/audio/scramble.c @@ -18,7 +18,6 @@ #include "sound/tms5110.h" #include "sound/ay8910.h" #include "includes/scramble.h" -#include "drivlgcy.h" #define AD2083_TMS5110_CLOCK XTAL_640kHz @@ -319,10 +318,6 @@ static ADDRESS_MAP_START( ad2083_sound_io_map, AS_IO, 8, driver_device ) AM_RANGE(0x80, 0x80) AM_DEVWRITE("ay2", ay8910_device, address_w) ADDRESS_MAP_END -static SOUND_START( ad2083 ) -{ -} - static const tmsprom_interface prom_intf = { "5110ctrl", /* prom memory region - sound region is automatically assigned */ @@ -363,8 +358,6 @@ MACHINE_CONFIG_FRAGMENT( ad2083_audio ) MCFG_DEVICE_ADD("tmsprom", TMSPROM, AD2083_TMS5110_CLOCK / 2) /* rom clock */ MCFG_DEVICE_CONFIG(prom_intf) - MCFG_SOUND_START(ad2083) - MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ay1", AY8910, 14318000/8) MCFG_SOUND_CONFIG(ad2083_ay8910_interface_1) diff --git a/src/mame/audio/segag80r.c b/src/mame/audio/segag80r.c index e8dd2916aa5..6d5a6254244 100644 --- a/src/mame/audio/segag80r.c +++ b/src/mame/audio/segag80r.c @@ -18,7 +18,6 @@ #include "sound/tms36xx.h" #include "sound/dac.h" #include "devlegcy.h" -#include "drivlgcy.h" @@ -97,8 +96,6 @@ void sega005_sound_device::sound_stream_update(sound_stream &stream, stream_samp * *************************************/ -static SOUND_START( astrob ); - /* Description of Astro Blaster sounds (in the hope of future discrete goodness): @@ -244,30 +241,12 @@ static const samples_interface astrob_samples_interface = MACHINE_CONFIG_FRAGMENT( astrob_sound_board ) - MCFG_SOUND_START(astrob) - /* sound hardware */ MCFG_SAMPLES_ADD("samples", astrob_samples_interface) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MACHINE_CONFIG_END - -/************************************* - * - * Startup configuration - * - *************************************/ - -static SOUND_START( astrob ) -{ - segag80r_state *state = machine.driver_data(); - state->save_item(NAME(state->m_sound_state)); - state->save_item(NAME(state->m_sound_rate)); -} - - - /************************************* * * Astro Blaster sound triggers @@ -376,7 +355,6 @@ WRITE8_MEMBER(segag80r_state::astrob_sound_w) * *************************************/ -static SOUND_START( sega005 ); static STREAM_UPDATE( sega005_stream_update ); static TIMER_CALLBACK( sega005_auto_timer ); @@ -472,8 +450,7 @@ MACHINE_CONFIG_FRAGMENT( 005_sound_board ) MCFG_I8255A_ADD( "ppi8255", ppi8255_005_intf ) /* sound hardware */ - MCFG_SOUND_START(sega005) - + MCFG_SAMPLES_ADD("samples", sega005_samples_interface) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) @@ -482,25 +459,6 @@ MACHINE_CONFIG_FRAGMENT( 005_sound_board ) MACHINE_CONFIG_END - -/************************************* - * - * Startup configuration - * - *************************************/ - -static SOUND_START( sega005 ) -{ - segag80r_state *state = machine.driver_data(); - state->save_item(NAME(state->m_sound_state)); - state->save_item(NAME(state->m_sound_addr)); - state->save_item(NAME(state->m_sound_data)); - state->save_item(NAME(state->m_square_state)); - state->save_item(NAME(state->m_square_count)); -} - - - /************************************* * * 005 sound triggers @@ -666,8 +624,6 @@ static TIMER_CALLBACK( sega005_auto_timer ) * *************************************/ -static SOUND_START( spaceod ); - static const char *const spaceod_sample_names[] = { "*spaceod", @@ -696,28 +652,12 @@ static const samples_interface spaceod_samples_interface = MACHINE_CONFIG_FRAGMENT( spaceod_sound_board ) /* sound hardware */ - MCFG_SOUND_START(spaceod) - + MCFG_SAMPLES_ADD("samples", spaceod_samples_interface) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MACHINE_CONFIG_END - -/************************************* - * - * Startup configuration - * - *************************************/ - -static SOUND_START( spaceod ) -{ - segag80r_state *state = machine.driver_data(); - state->save_item(NAME(state->m_sound_state)); -} - - - /************************************* * * Space Odyssey sound triggers @@ -779,8 +719,6 @@ WRITE8_MEMBER(segag80r_state::spaceod_sound_w) * *************************************/ -static SOUND_START( monsterb ); - /* Monster Bash @@ -861,8 +799,7 @@ MACHINE_CONFIG_FRAGMENT( monsterb_sound_board ) MCFG_I8243_ADD("audio_8243", NOOP, WRITE8(segag80r_state,n7751_rom_control_w)) /* sound hardware */ - MCFG_SOUND_START(monsterb) - + MCFG_SAMPLES_ADD("samples", monsterb_samples_interface) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) @@ -875,24 +812,6 @@ MACHINE_CONFIG_FRAGMENT( monsterb_sound_board ) MACHINE_CONFIG_END - -/************************************* - * - * Startup configuration - * - *************************************/ - -static SOUND_START( monsterb ) -{ - segag80r_state *state = machine.driver_data(); - state->save_item(NAME(state->m_sound_state)); - state->save_item(NAME(state->m_sound_addr)); - state->save_item(NAME(state->m_n7751_command)); - state->save_item(NAME(state->m_n7751_busy)); -} - - - /************************************* * * TMS3617 access diff --git a/src/mame/drivers/cchasm.c b/src/mame/drivers/cchasm.c index 4cd7b82fda0..cccba00fba7 100644 --- a/src/mame/drivers/cchasm.c +++ b/src/mame/drivers/cchasm.c @@ -22,7 +22,6 @@ #include "machine/6840ptm.h" #include "machine/z80ctc.h" #include "includes/cchasm.h" -#include "drivlgcy.h" #include "scrlegcy.h" #define CCHASM_68K_CLOCK (XTAL_8MHz) @@ -177,8 +176,7 @@ static MACHINE_CONFIG_START( cchasm, cchasm_state ) /* sound hardware */ - MCFG_SOUND_START(cchasm) - + MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ay1", AY8910, 1818182) diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c index dffa00a419c..772cda3fc69 100644 --- a/src/mame/drivers/dkong.c +++ b/src/mame/drivers/dkong.c @@ -409,7 +409,9 @@ MACHINE_START_MEMBER(dkong_state,dkong2b) { dkong_init_device_driver_data(); m_hardware_type = HARDWARE_TKG04; - + + m_snd_rom = memregion("soundcpu")->base(); + save_item(NAME(m_decrypt_counter)); save_item(NAME(m_dma_latch)); } @@ -3147,6 +3149,7 @@ DRIVER_INIT_MEMBER(dkong_state,dkingjr) } + /************************************* * * Game drivers diff --git a/src/mame/drivers/equites.c b/src/mame/drivers/equites.c index cbc8b5ce6de..da0dae872ae 100644 --- a/src/mame/drivers/equites.c +++ b/src/mame/drivers/equites.c @@ -372,7 +372,6 @@ D #include "sound/samples.h" #include "machine/nvram.h" #include "includes/equites.h" -#include "drivlgcy.h" #define HVOLTAGE_DEBUG 0 #define EASY_TEST_MODE 0 @@ -413,15 +412,6 @@ TIMER_CALLBACK_MEMBER(equites_state::equites_frq_adjuster_callback) m_msm->set_output_gain(10, m_hihatvol + m_cymvol * (m_ay_port_b & 3) * 0.33); /* NO from msm5232 */ } -static SOUND_START(equites) -{ - equites_state *state = machine.driver_data(); - state->m_nmi_timer = machine.scheduler().timer_alloc(timer_expired_delegate(FUNC(equites_state::equites_nmi_callback),state)); - - state->m_adjuster_timer = machine.scheduler().timer_alloc(timer_expired_delegate(FUNC(equites_state::equites_frq_adjuster_callback),state)); - state->m_adjuster_timer->adjust(attotime::from_hz(60), 0, attotime::from_hz(60)); -} - WRITE8_MEMBER(equites_state::equites_c0f8_w) { switch (offset) @@ -1142,8 +1132,6 @@ static MACHINE_CONFIG_FRAGMENT( common_sound ) MCFG_CPU_PROGRAM_MAP(sound_map) MCFG_CPU_IO_MAP(sound_portmap) - MCFG_SOUND_START(equites) - /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1199,6 +1187,11 @@ MACHINE_START_MEMBER(equites_state,equites) save_item(NAME(m_hihat)); save_item(NAME(m_cymbal)); #endif + + m_nmi_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(equites_state::equites_nmi_callback), this)); + + m_adjuster_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(equites_state::equites_frq_adjuster_callback), this)); + m_adjuster_timer->adjust(attotime::from_hz(60), 0, attotime::from_hz(60)); } MACHINE_RESET_MEMBER(equites_state,equites) @@ -1891,7 +1884,7 @@ DRIVER_INIT_MEMBER(equites_state,hvoltage) unpack_region("gfx3"); #if HVOLTAGE_DEBUG - m_maincpu->space(AS_PROGRAM).install_legacy_read_handler(0x000038, 0x000039, read16_delegate(FUNC(equites_state::hvoltage_debug_r),this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x000038, 0x000039, read16_delegate(FUNC(equites_state::hvoltage_debug_r),this)); #endif } diff --git a/src/mame/drivers/jangou.c b/src/mame/drivers/jangou.c index 9457f65e476..e661d864037 100644 --- a/src/mame/drivers/jangou.c +++ b/src/mame/drivers/jangou.c @@ -33,7 +33,7 @@ $c088-$c095 player tiles #include "sound/msm5205.h" #include "video/resnet.h" #include "machine/nvram.h" -#include "drivlgcy.h" + #define MASTER_CLOCK XTAL_19_968MHz @@ -908,16 +908,6 @@ static const msm5205_interface msm5205_config = MSM5205_S96_4B }; -static SOUND_START( jangou ) -{ - jangou_state *state = machine.driver_data(); - - /* Create a timer to feed the CVSD DAC with sample bits */ - state->m_cvsd_bit_timer = machine.scheduler().timer_alloc(timer_expired_delegate(FUNC(jangou_state::cvsd_bit_timer_callback),state)); - state->m_cvsd_bit_timer->adjust(attotime::from_hz(MASTER_CLOCK / 1024), 0, attotime::from_hz(MASTER_CLOCK / 1024)); -} - - /************************************* * * Machine driver @@ -937,6 +927,10 @@ void jangou_state::machine_start() save_item(NAME(m_cvsd_shiftreg)); save_item(NAME(m_cvsd_shift_cnt)); + + /* Create a timer to feed the CVSD DAC with sample bits */ + m_cvsd_bit_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(jangou_state::cvsd_bit_timer_callback), this)); + m_cvsd_bit_timer->adjust(attotime::from_hz(MASTER_CLOCK / 1024), 0, attotime::from_hz(MASTER_CLOCK / 1024)); } MACHINE_START_MEMBER(jangou_state,jngolady) @@ -1007,8 +1001,6 @@ static MACHINE_CONFIG_START( jangou, jangou_state ) /* sound hardware */ - MCFG_SOUND_START(jangou) - MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("aysnd", AY8910, MASTER_CLOCK / 16) @@ -1037,7 +1029,6 @@ static MACHINE_CONFIG_DERIVED( jngolady, jangou ) MCFG_MACHINE_RESET_OVERRIDE(jangou_state,jngolady) /* sound hardware */ - MCFG_SOUND_START(0) MCFG_DEVICE_REMOVE("cvsd") MCFG_SOUND_ADD("msm", MSM5205, XTAL_400kHz) @@ -1059,7 +1050,6 @@ static MACHINE_CONFIG_DERIVED( cntrygrl, jangou ) MCFG_MACHINE_RESET_OVERRIDE(jangou_state,common) /* sound hardware */ - MCFG_SOUND_START(0) MCFG_DEVICE_REMOVE("cvsd") MACHINE_CONFIG_END @@ -1079,7 +1069,6 @@ static MACHINE_CONFIG_DERIVED( roylcrdn, jangou ) MCFG_MACHINE_RESET_OVERRIDE(jangou_state,common) /* sound hardware */ - MCFG_SOUND_START(0) MCFG_DEVICE_REMOVE("cvsd") MACHINE_CONFIG_END diff --git a/src/mame/drivers/lucky74.c b/src/mame/drivers/lucky74.c index 6771678eacf..68c04e24646 100644 --- a/src/mame/drivers/lucky74.c +++ b/src/mame/drivers/lucky74.c @@ -790,7 +790,6 @@ #include "machine/nvram.h" #include "lucky74.lh" #include "includes/lucky74.h" -#include "drivlgcy.h" /***************************** @@ -1388,19 +1387,18 @@ GFXDECODE_END * ADPCM sound system (09R81P + M5205) * ********************************************/ -static SOUND_START( lucky74 ) +void lucky74_state::sound_start() { - lucky74_state *state = machine.driver_data(); /* cleaning all 09R81P registers */ UINT8 i; for (i = 0; i < 6; i++) { - state->m_adpcm_reg[i] = 0; + m_adpcm_reg[i] = 0; } - state->m_adpcm_busy_line = 0x01; /* free and ready */ + m_adpcm_busy_line = 0x01; /* free and ready */ } WRITE_LINE_MEMBER(lucky74_state::lucky74_adpcm_int) @@ -1542,8 +1540,6 @@ static MACHINE_CONFIG_START( lucky74, lucky74_state ) MCFG_NVRAM_ADD_0FILL("nvram") - MCFG_SOUND_START(lucky74) - /* 2x 82c255 (4x 8255) */ MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf ) MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) diff --git a/src/mame/drivers/mirax.c b/src/mame/drivers/mirax.c index 6b721dec31c..98eac53addf 100644 --- a/src/mame/drivers/mirax.c +++ b/src/mame/drivers/mirax.c @@ -103,7 +103,6 @@ Stephh's notes (based on the games Z80 code and some tests) : #include "emu.h" #include "cpu/z80/z80.h" #include "sound/ay8910.h" -#include "drivlgcy.h" class mirax_state : public driver_device @@ -134,6 +133,7 @@ public: DECLARE_WRITE8_MEMBER(ay2_sel); DECLARE_DRIVER_INIT(mirax); virtual void palette_init(); + virtual void sound_start(); UINT32 screen_update_mirax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(mirax_vblank_irq); void draw_tilemap(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 draw_flag); @@ -237,10 +237,9 @@ UINT32 mirax_state::screen_update_mirax(screen_device &screen, bitmap_ind16 &bit } -static SOUND_START(mirax) +void mirax_state::sound_start() { - mirax_state *state = machine.driver_data(); - state->m_nAyCtrl = 0x00; + m_nAyCtrl = 0x00; } WRITE8_MEMBER(mirax_state::audio_w) @@ -478,8 +477,6 @@ static MACHINE_CONFIG_START( mirax, mirax_state ) MCFG_PALETTE_LENGTH(0x40) MCFG_GFXDECODE(mirax) - MCFG_SOUND_START(mirax) - MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ay1", AY8910, 12000000/4) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) diff --git a/src/mame/drivers/n8080.c b/src/mame/drivers/n8080.c index 78e443ccb6a..960684c603c 100644 --- a/src/mame/drivers/n8080.c +++ b/src/mame/drivers/n8080.c @@ -458,32 +458,13 @@ WRITE8_MEMBER(n8080_state::n8080_status_callback) } } -MACHINE_START_MEMBER(n8080_state,n8080) +void n8080_state::machine_start() { save_item(NAME(m_shift_data)); save_item(NAME(m_shift_bits)); save_item(NAME(m_inte)); } -MACHINE_START_MEMBER(n8080_state,spacefev) -{ - MACHINE_START_CALL_MEMBER(n8080); - MACHINE_START_CALL_MEMBER(spacefev_sound); -} - -MACHINE_START_MEMBER(n8080_state,sheriff) -{ - MACHINE_START_CALL_MEMBER(n8080); - MACHINE_START_CALL_MEMBER(sheriff_sound); -} - -MACHINE_START_MEMBER(n8080_state,helifire) -{ - MACHINE_START_CALL_MEMBER(n8080); - MACHINE_START_CALL_MEMBER(helifire_sound); -} - - MACHINE_RESET_MEMBER(n8080_state,n8080) { m_shift_data = 0; @@ -494,8 +475,7 @@ MACHINE_RESET_MEMBER(n8080_state,n8080) MACHINE_RESET_MEMBER(n8080_state,spacefev) { MACHINE_RESET_CALL_MEMBER(n8080); - MACHINE_RESET_CALL_MEMBER(spacefev_sound); - + m_spacefev_red_screen = 0; m_spacefev_red_cannon = 0; } @@ -503,8 +483,7 @@ MACHINE_RESET_MEMBER(n8080_state,spacefev) MACHINE_RESET_MEMBER(n8080_state,sheriff) { MACHINE_RESET_CALL_MEMBER(n8080); - MACHINE_RESET_CALL_MEMBER(sheriff_sound); - + m_sheriff_color_mode = 0; m_sheriff_color_data = 0; } @@ -512,8 +491,7 @@ MACHINE_RESET_MEMBER(n8080_state,sheriff) MACHINE_RESET_MEMBER(n8080_state,helifire) { MACHINE_RESET_CALL_MEMBER(n8080); - MACHINE_RESET_CALL_MEMBER(helifire_sound); - + m_helifire_mv = 0; m_helifire_sc = 0; m_helifire_flash = 0; @@ -529,7 +507,6 @@ static MACHINE_CONFIG_START( spacefev, n8080_state ) MCFG_CPU_PROGRAM_MAP(main_cpu_map) MCFG_CPU_IO_MAP(main_io_map) - MCFG_MACHINE_START_OVERRIDE(n8080_state,spacefev) MCFG_MACHINE_RESET_OVERRIDE(n8080_state,spacefev) /* video hardware */ @@ -560,7 +537,6 @@ static MACHINE_CONFIG_START( sheriff, n8080_state ) MCFG_CPU_PROGRAM_MAP(main_cpu_map) MCFG_CPU_IO_MAP(main_io_map) - MCFG_MACHINE_START_OVERRIDE(n8080_state,sheriff) MCFG_MACHINE_RESET_OVERRIDE(n8080_state,sheriff) /* video hardware */ @@ -603,7 +579,6 @@ static MACHINE_CONFIG_START( helifire, n8080_state ) MCFG_CPU_PROGRAM_MAP(helifire_main_cpu_map) MCFG_CPU_IO_MAP(main_io_map) - MCFG_MACHINE_START_OVERRIDE(n8080_state,helifire) MCFG_MACHINE_RESET_OVERRIDE(n8080_state,helifire) /* video hardware */ diff --git a/src/mame/drivers/segag80r.c b/src/mame/drivers/segag80r.c index 6b141ac2845..fa93a59aa01 100644 --- a/src/mame/drivers/segag80r.c +++ b/src/mame/drivers/segag80r.c @@ -1457,6 +1457,9 @@ DRIVER_INIT_MEMBER(segag80r_state,astrob) /* install Astro Blaster sound board */ iospace.install_write_handler(0x3e, 0x3f, write8_delegate(FUNC(segag80r_state::astrob_sound_w),this)); + + save_item(NAME(m_sound_state)); + save_item(NAME(m_sound_rate)); } @@ -1467,6 +1470,12 @@ DRIVER_INIT_MEMBER(segag80r_state,005) /* configure video */ m_background_pcb = G80_BACKGROUND_NONE; + + save_item(NAME(m_sound_state)); + save_item(NAME(m_sound_addr)); + save_item(NAME(m_sound_data)); + save_item(NAME(m_square_state)); + save_item(NAME(m_square_count)); } @@ -1489,6 +1498,8 @@ DRIVER_INIT_MEMBER(segag80r_state,spaceod) /* install our wacky mangled ports */ iospace.install_read_handler(0xf8, 0xfb, read8_delegate(FUNC(segag80r_state::spaceod_mangled_ports_r),this)); iospace.install_read_handler(0xfc, 0xfc, read8_delegate(FUNC(segag80r_state::spaceod_port_fc_r),this)); + + save_item(NAME(m_sound_state)); } @@ -1507,6 +1518,11 @@ DRIVER_INIT_MEMBER(segag80r_state,monsterb) /* install background board handlers */ iospace.install_write_handler(0xb8, 0xbd, write8_delegate(FUNC(segag80r_state::monsterb_back_port_w),this)); pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(FUNC(segag80r_state::monsterb_vidram_w),this)); + + save_item(NAME(m_sound_state)); + save_item(NAME(m_sound_addr)); + save_item(NAME(m_n7751_command)); + save_item(NAME(m_n7751_busy)); } @@ -1527,6 +1543,11 @@ DRIVER_INIT_MEMBER(segag80r_state,monster2) iospace.install_write_handler(0xb4, 0xb5, write8_delegate(FUNC(segag80r_state::pignewt_back_color_w),this)); iospace.install_write_handler(0xb8, 0xbd, write8_delegate(FUNC(segag80r_state::pignewt_back_port_w),this)); pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(FUNC(segag80r_state::pignewt_vidram_w),this)); + + save_item(NAME(m_sound_state)); + save_item(NAME(m_sound_addr)); + save_item(NAME(m_n7751_command)); + save_item(NAME(m_n7751_busy)); } diff --git a/src/mame/includes/cchasm.h b/src/mame/includes/cchasm.h index 8e97a4376d9..3e536be3625 100644 --- a/src/mame/includes/cchasm.h +++ b/src/mame/includes/cchasm.h @@ -19,16 +19,22 @@ public: : driver_device(mconfig, type, tag), m_ram(*this, "ram"), m_maincpu(*this, "maincpu"), + m_ctc(*this, "ctc"), m_audiocpu(*this, "audiocpu"), m_dac1(*this, "dac1"), m_dac2(*this, "dac2") { } + required_shared_ptr m_ram; + required_device m_maincpu; + required_device m_ctc; + required_device m_audiocpu; + required_device m_dac1; + required_device m_dac2; + int m_sound_flags; int m_coin_flag; - z80ctc_device *m_ctc; int m_channel_active[2]; int m_output[2]; - required_shared_ptr m_ram; int m_xcenter; int m_ycenter; DECLARE_WRITE16_MEMBER(cchasm_led_w); @@ -42,13 +48,10 @@ public: INPUT_CHANGED_MEMBER(cchasm_set_coin_flag); DECLARE_WRITE_LINE_MEMBER(cchasm_6840_irq); virtual void video_start(); + virtual void sound_start(); DECLARE_WRITE_LINE_MEMBER(ctc_timer_1_w); DECLARE_WRITE_LINE_MEMBER(ctc_timer_2_w); void cchasm_refresh (); - required_device m_maincpu; - required_device m_audiocpu; - required_device m_dac1; - required_device m_dac2; protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); diff --git a/src/mame/includes/cinemat.h b/src/mame/includes/cinemat.h index dea00f67940..de82a701f77 100644 --- a/src/mame/includes/cinemat.h +++ b/src/mame/includes/cinemat.h @@ -63,6 +63,7 @@ public: DECLARE_DRIVER_INIT(qb3); virtual void machine_start(); virtual void machine_reset(); + virtual void sound_start(); virtual void video_start(); DECLARE_VIDEO_START(cinemat_16level); DECLARE_VIDEO_START(cinemat_64level); diff --git a/src/mame/includes/jedi.h b/src/mame/includes/jedi.h index bdc7d85bc47..8b942927847 100644 --- a/src/mame/includes/jedi.h +++ b/src/mame/includes/jedi.h @@ -77,6 +77,8 @@ public: DECLARE_WRITE8_MEMBER(speech_reset_w); virtual void machine_start(); virtual void machine_reset(); + virtual void sound_start(); + virtual void sound_reset(); DECLARE_VIDEO_START(jedi); UINT32 screen_update_jedi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(generate_interrupt); diff --git a/src/mame/includes/lucky74.h b/src/mame/includes/lucky74.h index 80db8e3265e..2679156bc94 100644 --- a/src/mame/includes/lucky74.h +++ b/src/mame/includes/lucky74.h @@ -42,6 +42,7 @@ public: TILE_GET_INFO_MEMBER(get_fg_tile_info); TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); + virtual void sound_start(); virtual void palette_init(); UINT32 screen_update_lucky74(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(nmi_interrupt); diff --git a/src/mame/includes/mario.h b/src/mame/includes/mario.h index 5e7db47e580..0148815d5cf 100644 --- a/src/mame/includes/mario.h +++ b/src/mame/includes/mario.h @@ -86,6 +86,8 @@ public: DECLARE_WRITE8_MEMBER(mario_z80dma_rdy_w); TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); + virtual void sound_start(); + virtual void sound_reset(); virtual void palette_init(); UINT32 screen_update_mario(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(vblank_irq); diff --git a/src/mame/includes/mw8080bw.h b/src/mame/includes/mw8080bw.h index 9e35651812a..c2c0fe4f81f 100644 --- a/src/mame/includes/mw8080bw.h +++ b/src/mame/includes/mw8080bw.h @@ -147,6 +147,7 @@ public: DECLARE_MACHINE_START(spcenctr); DECLARE_MACHINE_START(phantom2); DECLARE_MACHINE_START(invaders); + DECLARE_SOUND_START(samples); UINT32 screen_update_mw8080bw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); UINT32 screen_update_spcenctr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); UINT32 screen_update_phantom2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); diff --git a/src/mame/includes/n8080.h b/src/mame/includes/n8080.h index b60d49d8807..abab8c27930 100644 --- a/src/mame/includes/n8080.h +++ b/src/mame/includes/n8080.h @@ -43,6 +43,7 @@ public: /* devices */ required_device m_maincpu; + required_device m_dac; DECLARE_WRITE8_MEMBER(n8080_shift_bits_w); DECLARE_WRITE8_MEMBER(n8080_shift_data_w); DECLARE_READ8_MEMBER(n8080_shift_r); @@ -61,23 +62,21 @@ public: DECLARE_WRITE8_MEMBER(helifire_sound_ctrl_w); DECLARE_WRITE_LINE_MEMBER(n8080_inte_callback); DECLARE_WRITE8_MEMBER(n8080_status_callback); - DECLARE_MACHINE_START(spacefev); + virtual void machine_start(); DECLARE_MACHINE_RESET(spacefev); DECLARE_VIDEO_START(spacefev); DECLARE_PALETTE_INIT(n8080); - DECLARE_MACHINE_START(sheriff); DECLARE_MACHINE_RESET(sheriff); DECLARE_VIDEO_START(sheriff); - DECLARE_MACHINE_START(helifire); DECLARE_MACHINE_RESET(helifire); DECLARE_VIDEO_START(helifire); DECLARE_PALETTE_INIT(helifire); - DECLARE_MACHINE_START(spacefev_sound); - DECLARE_MACHINE_RESET(spacefev_sound); - DECLARE_MACHINE_START(sheriff_sound); - DECLARE_MACHINE_RESET(sheriff_sound); - DECLARE_MACHINE_START(helifire_sound); - DECLARE_MACHINE_RESET(helifire_sound); + DECLARE_SOUND_START(spacefev); + DECLARE_SOUND_RESET(spacefev); + DECLARE_SOUND_START(sheriff); + DECLARE_SOUND_RESET(sheriff); + DECLARE_SOUND_START(helifire); + DECLARE_SOUND_RESET(helifire); DECLARE_MACHINE_START(n8080); DECLARE_MACHINE_RESET(n8080); UINT32 screen_update_spacefev(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -91,7 +90,6 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(helifire_dac_volume_timer); void spacefev_start_red_cannon( ); void helifire_next_line( ); - required_device m_dac; }; /*----------- defined in audio/n8080.c -----------*/ diff --git a/src/mame/includes/redalert.h b/src/mame/includes/redalert.h index e2842e2f334..34f9d88a1fd 100644 --- a/src/mame/includes/redalert.h +++ b/src/mame/includes/redalert.h @@ -48,6 +48,8 @@ public: DECLARE_WRITE8_MEMBER(demoneye_audio_command_w); DECLARE_VIDEO_START(redalert); DECLARE_VIDEO_START(ww3); + DECLARE_SOUND_START(redalert); + DECLARE_SOUND_START(demoneye); UINT32 screen_update_redalert(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); UINT32 screen_update_demoneye(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); UINT32 screen_update_panther(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);