From 843484332d822f42401f1db196d4509ccd0c6861 Mon Sep 17 00:00:00 2001 From: AJR Date: Sat, 16 Jun 2018 00:56:39 -0400 Subject: [PATCH] balsente.cpp: Workaround for recent sound regression (nw) --- src/mame/drivers/balsente.cpp | 2 +- src/mame/includes/balsente.h | 1 + src/mame/machine/balsente.cpp | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/mame/drivers/balsente.cpp b/src/mame/drivers/balsente.cpp index ae7836c5d6e..d10470bd42a 100644 --- a/src/mame/drivers/balsente.cpp +++ b/src/mame/drivers/balsente.cpp @@ -266,7 +266,7 @@ void balsente_state::cpu1_base_map(address_map &map) map(0x9902, 0x9902).portr("IN0"); map(0x9903, 0x9903).portr("IN1").nopw(); map(0x9a00, 0x9a03).r(FUNC(balsente_state::random_num_r)); - map(0x9a04, 0x9a05).rw("acia", FUNC(acia6850_device::read), FUNC(acia6850_device::write)); + map(0x9a04, 0x9a05).r("acia", FUNC(acia6850_device::read)).w(FUNC(balsente_state::acia_w)); map(0xa000, 0xbfff).bankr("bank1"); map(0xc000, 0xffff).bankr("bank2"); } diff --git a/src/mame/includes/balsente.h b/src/mame/includes/balsente.h index fbc58fcc6bd..237d5058561 100644 --- a/src/mame/includes/balsente.h +++ b/src/mame/includes/balsente.h @@ -104,6 +104,7 @@ private: DECLARE_WRITE_LINE_MEMBER(nvrecall_w); DECLARE_READ8_MEMBER(novram_8bit_r); DECLARE_WRITE8_MEMBER(novram_8bit_w); + DECLARE_WRITE8_MEMBER(acia_w); DECLARE_WRITE_LINE_MEMBER(uint_w); DECLARE_WRITE_LINE_MEMBER(uint_propagate_w); DECLARE_READ8_MEMBER(adc_data_r); diff --git a/src/mame/machine/balsente.cpp b/src/mame/machine/balsente.cpp index 699068b5ecf..465b2c5a27e 100644 --- a/src/mame/machine/balsente.cpp +++ b/src/mame/machine/balsente.cpp @@ -327,6 +327,12 @@ WRITE8_MEMBER(balsente_state::novram_8bit_w) * *************************************/ +WRITE8_MEMBER(balsente_state::acia_w) +{ + // Ugly workaround: suppress soft reset command in order to avert race condition + m_acia->write(space, offset, (BIT(offset, 0) && data == 0xe0) ? 0 : data); +} + WRITE_LINE_MEMBER(balsente_state::uint_w) { m_uint = bool(state);