diff options
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 |
commit | 843484332d822f42401f1db196d4509ccd0c6861 (patch) | |
tree | 9a1516736f79671e2db49c9658cc32ece4991fb5 | |
parent | 38b8531c5471886fe7a13acc0d65c73a83daaaa4 (diff) |
balsente.cpp: Workaround for recent sound regression (nw)
-rw-r--r-- | src/mame/drivers/balsente.cpp | 2 | ||||
-rw-r--r-- | src/mame/includes/balsente.h | 1 | ||||
-rw-r--r-- | src/mame/machine/balsente.cpp | 6 |
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); |