summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/bking.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/bking.cpp')
-rw-r--r--src/mame/drivers/bking.cpp23
1 files changed, 8 insertions, 15 deletions
diff --git a/src/mame/drivers/bking.cpp b/src/mame/drivers/bking.cpp
index e8609acad97..3b0bc074f84 100644
--- a/src/mame/drivers/bking.cpp
+++ b/src/mame/drivers/bking.cpp
@@ -31,26 +31,18 @@ DIP Locations verified for:
READ8_MEMBER(bking_state::bking_sndnmi_disable_r)
{
- m_sound_nmi_enable = 0;
+ m_soundnmi->in_w<1>(0);
return 0;
}
WRITE8_MEMBER(bking_state::bking_sndnmi_enable_w)
{
- m_sound_nmi_enable = 1;
+ m_soundnmi->in_w<1>(1);
}
WRITE8_MEMBER(bking_state::bking_soundlatch_w)
{
- int i, code = 0;
-
- for (i = 0;i < 8;i++)
- if (data & (1 << i))
- code |= 0x80 >> i;
-
- m_soundlatch->write(space, offset, code);
- if (m_sound_nmi_enable)
- m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
+ m_soundlatch->write(space, offset, BITSWAP8(data, 0, 1, 2, 3, 4, 5, 6, 7));
}
WRITE8_MEMBER(bking_state::bking3_addr_l_w)
@@ -347,9 +339,6 @@ void bking_state::machine_start()
save_item(NAME(m_palette_bank));
save_item(NAME(m_controller));
save_item(NAME(m_hit));
-
- /* sound */
- save_item(NAME(m_sound_nmi_enable));
}
MACHINE_START_MEMBER(bking_state,bking3)
@@ -384,7 +373,7 @@ void bking_state::machine_reset()
m_hit = 0;
/* sound */
- m_sound_nmi_enable = 1;
+ m_soundnmi->in_w<1>(0);
}
MACHINE_RESET_MEMBER(bking_state,bking3)
@@ -432,6 +421,10 @@ static MACHINE_CONFIG_START( bking )
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+ MCFG_GENERIC_LATCH_DATA_PENDING_CB(DEVWRITELINE("soundnmi", input_merger_device, in_w<0>))
+
+ MCFG_INPUT_MERGER_ALL_HIGH("soundnmi")
+ MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI))
MCFG_SOUND_ADD("ay1", AY8910, XTAL_6MHz/4)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)