summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-06-16 00:56:39 -0400
committer AJR <ajrhacker@users.noreply.github.com>2018-06-16 00:56:39 -0400
commit843484332d822f42401f1db196d4509ccd0c6861 (patch)
tree9a1516736f79671e2db49c9658cc32ece4991fb5
parent38b8531c5471886fe7a13acc0d65c73a83daaaa4 (diff)
balsente.cpp: Workaround for recent sound regression (nw)
-rw-r--r--src/mame/drivers/balsente.cpp2
-rw-r--r--src/mame/includes/balsente.h1
-rw-r--r--src/mame/machine/balsente.cpp6
3 files changed, 8 insertions, 1 deletions
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);