From e10e36febce705f10518fdd32478ea86824239b4 Mon Sep 17 00:00:00 2001 From: angelosa Date: Sun, 2 Apr 2023 02:10:36 +0200 Subject: fix: MT#07261 --- hash/pcecd.xml | 6 +++--- src/mame/nec/pce_cd.cpp | 13 ++++++++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/hash/pcecd.xml b/hash/pcecd.xml index 274580533da..158c0815ff7 100644 --- a/hash/pcecd.xml +++ b/hash/pcecd.xml @@ -7196,13 +7196,13 @@ Omake: Press U R D L II at menu to access Bomberman - + The Addams Family (USA) 1991 ICOM Simulations diff --git a/src/mame/nec/pce_cd.cpp b/src/mame/nec/pce_cd.cpp index 4134919265a..e9df24d6f1b 100644 --- a/src/mame/nec/pce_cd.cpp +++ b/src/mame/nec/pce_cd.cpp @@ -1466,6 +1466,10 @@ void pce_cd_device::adpcm_address_control_w(uint8_t data) m_msm->reset_w(1); } + // TODO: gulliver really starts an ADPCM play with bit 5 rather than 6 + // Is it a doc mistake and is actually reversed? + m_msm_repeat = BIT(data, 5); + if ((data & 0x40) && ((m_adpcm_control & 0x40) == 0)) // ADPCM play { m_msm_start_addr = (m_adpcm_read_ptr); @@ -1482,9 +1486,16 @@ void pce_cd_device::adpcm_address_control_w(uint8_t data) // used by bbros to cancel an in-flight sample adpcm_stop(0); m_msm->reset_w(1); + + // addfam wants to irq ack here + // https://mametesters.org/view.php?id=7261 + if(!(m_msm_repeat)) + { + set_irq_line(PCE_CD_IRQ_SAMPLE_HALF_PLAY, CLEAR_LINE); + set_irq_line(PCE_CD_IRQ_SAMPLE_FULL_PLAY, CLEAR_LINE); + } } - m_msm_repeat = BIT(data, 5); if (data & 0x10) // ADPCM set length { -- cgit v1.2.3