From 9492edcdab5ab4ce815e6dc293425f1986806c27 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Mon, 31 Jan 2022 16:33:45 -0500 Subject: [PATCH] prepare to fix AY8930 emulation --- src/engine/platform/sound/ay8910.cpp | 2 +- src/engine/platform/sound/ay8910.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engine/platform/sound/ay8910.cpp b/src/engine/platform/sound/ay8910.cpp index bf874ec9..66720274 100644 --- a/src/engine/platform/sound/ay8910.cpp +++ b/src/engine/platform/sound/ay8910.cpp @@ -1269,7 +1269,7 @@ void ay8910_device::ay8910_reset_ym() m_register_latch = 0; m_rng = 1; m_mode = 0; // ay-3-8910 compatible mode - m_noise_and = 0; + m_noise_and = 0xff; m_noise_or = 0; m_noise_value = 0; m_noise_latch = 0; diff --git a/src/engine/platform/sound/ay8910.h b/src/engine/platform/sound/ay8910.h index d7741a43..30454d96 100644 --- a/src/engine/platform/sound/ay8910.h +++ b/src/engine/platform/sound/ay8910.h @@ -267,7 +267,7 @@ private: inline bool noise_enable(int chan) { return BIT(m_regs[AY_ENABLE], 3 + chan); } inline unsigned char noise_period() { return is_expanded_mode() ? m_regs[AY_NOISEPER] & 0xff : m_regs[AY_NOISEPER] & 0x1f; } - inline unsigned char noise_output() { return m_rng & 1; } + inline unsigned char noise_output() { return is_expanded_mode() ? m_noise_latch & 1 : m_rng & 1; } inline bool is_expanded_mode() { return ((m_feature & PSG_HAS_EXPANDED_MODE) && ((m_mode & 0xe) == 0xa)); } inline unsigned char get_register_bank() { return is_expanded_mode() ? (m_mode & 0x1) << 4 : 0; }