From b82c608b91c846439588c0ee484f121c0a770108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Buchm=C3=BCller?= Date: Sun, 14 Oct 2018 21:22:00 +0200 Subject: pokey: return most recent m_ALLPOT during SK_RESET Don't count POT counters as long as SK_RESET is applied, i.e. bit #0 and bit #1 of SKCTL are both clear. --- src/devices/sound/pokey.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/devices/sound/pokey.cpp b/src/devices/sound/pokey.cpp index ebeaf344660..f9eb377a136 100644 --- a/src/devices/sound/pokey.cpp +++ b/src/devices/sound/pokey.cpp @@ -547,6 +547,10 @@ void pokey_device::step_keyboard() void pokey_device::step_pot() { int pot; + + if( (m_SKCTL & SK_RESET) == 0) + return; + uint8_t upd = 0; m_pot_counter++; for (pot = 0; pot < 8; pot++) @@ -809,7 +813,7 @@ READ8_MEMBER( pokey_device::read ) ****************************************************************/ if( (m_SKCTL & SK_RESET) == 0) { - data = 0; + data = m_ALLPOT; LOG(("POKEY '%s' ALLPOT internal $%02x (reset)\n", tag(), data)); } else if( !m_allpot_r_cb.isnull() ) @@ -1072,6 +1076,9 @@ void pokey_device::pokey_potgo(void) { int pot; + if( (m_SKCTL & SK_RESET) == 0) + return; + LOG(("POKEY #%p pokey_potgo\n", (void *) this)); m_ALLPOT = 0x00; -- cgit v1.2.3