summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/gcpinbal.cpp
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2017-01-28 22:54:34 -0500
committer AJR <ajrhacker@users.noreply.github.com>2017-01-28 22:54:34 -0500
commit9bab919b0688074aa97f747285c0828dd8250a2d (patch)
tree7f80b3e1f03225e4ec9cd6605b6f775270e195c3 /src/mame/drivers/gcpinbal.cpp
parentdd75bb85302c862c1ab042da7834071001708fed (diff)
gcpinbal: Add HCT157
Diffstat (limited to 'src/mame/drivers/gcpinbal.cpp')
-rw-r--r--src/mame/drivers/gcpinbal.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mame/drivers/gcpinbal.cpp b/src/mame/drivers/gcpinbal.cpp
index a495ec75730..416ca126619 100644
--- a/src/mame/drivers/gcpinbal.cpp
+++ b/src/mame/drivers/gcpinbal.cpp
@@ -254,6 +254,8 @@ WRITE16_MEMBER(gcpinbal_state::ioc_w)
/* Controlled through ioc? */
WRITE_LINE_MEMBER(gcpinbal_state::gcp_adpcm_int)
{
+ if (!state)
+ return;
if (m_adpcm_idle)
m_msm->reset_w(1);
if (m_adpcm_start >= 0x200000 || m_adpcm_start > m_adpcm_end)
@@ -266,8 +268,8 @@ WRITE_LINE_MEMBER(gcpinbal_state::gcp_adpcm_int)
{
uint8_t *ROM = memregion("msm")->base();
- m_adpcm_data = ((m_adpcm_trigger ? (ROM[m_adpcm_start] & 0x0f) : (ROM[m_adpcm_start] & 0xf0) >> 4));
- m_msm->data_w(m_adpcm_data & 0xf);
+ m_adpcm_select->ab_w(ROM[m_adpcm_start]);
+ m_adpcm_select->select_w(m_adpcm_trigger);
m_adpcm_trigger ^= 1;
if (m_adpcm_trigger == 0)
m_adpcm_start++;
@@ -497,6 +499,9 @@ static MACHINE_CONFIG_START( gcpinbal, gcpinbal_state )
MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, OKIM6295_PIN7_HIGH)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+ MCFG_DEVICE_ADD("adpcm_select", HCT157, 0)
+ MCFG_74157_OUT_CB(DEVWRITE8("msm", msm6585_device, data_w))
+
MCFG_SOUND_ADD("msm", MSM6585, XTAL_640kHz)
MCFG_MSM6585_VCLK_CB(WRITELINE(gcpinbal_state, gcp_adpcm_int)) /* VCK function */
MCFG_MSM6585_PRESCALER_SELECTOR(MSM6585_S40) /* 16 kHz */