From c69121d595ad0787d2652324df353b23b9f4d304 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 21 May 2025 19:58:15 -0500 Subject: [PATCH] YM2610/B: fix hard reset issue #2458 --- src/engine/platform/ym2610.cpp | 4 ++-- src/engine/platform/ym2610b.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/engine/platform/ym2610.cpp b/src/engine/platform/ym2610.cpp index 5f37fc1a8..0255a4fd6 100644 --- a/src/engine/platform/ym2610.cpp +++ b/src/engine/platform/ym2610.cpp @@ -279,7 +279,7 @@ void DivPlatformYM2610::acquire_combo(short** buf, size_t len) { QueuedWrite& w=writes.front(); if (w.addr==0xfffffffe) { - delay=w.val; + delay=w.val*24*2; writes.pop_front(); } else if (w.addr<=0x1c || (w.addr>=0x100 && w.addr<=0x12d)) { // ymfm write @@ -401,7 +401,7 @@ void DivPlatformYM2610::acquire_ymfm(short** buf, size_t len) { if (--delay<1 && !(fm->read(0)&0x80)) { QueuedWrite& w=writes.front(); if (w.addr==0xfffffffe) { - delay=w.val; + delay=w.val*2; } else { fm->write(0x0+((w.addr>>8)<<1),w.addr); fm->write(0x1+((w.addr>>8)<<1),w.val); diff --git a/src/engine/platform/ym2610b.cpp b/src/engine/platform/ym2610b.cpp index 4fca0f4ad..89e08ec1b 100644 --- a/src/engine/platform/ym2610b.cpp +++ b/src/engine/platform/ym2610b.cpp @@ -343,7 +343,7 @@ void DivPlatformYM2610B::acquire_combo(short** buf, size_t len) { QueuedWrite& w=writes.front(); if (w.addr==0xfffffffe) { - delay=w.val; + delay=w.val*24*2; writes.pop_front(); } else if (w.addr<=0x1c || (w.addr>=0x100 && w.addr<=0x12d)) { // ymfm write @@ -467,7 +467,7 @@ void DivPlatformYM2610B::acquire_ymfm(short** buf, size_t len) { if (--delay<1 && !(fm->read(0)&0x80)) { QueuedWrite& w=writes.front(); if (w.addr==0xfffffffe) { - delay=w.val; + delay=w.val*2; } else { fm->write(0x0+((w.addr>>8)<<1),w.addr); fm->write(0x1+((w.addr>>8)<<1),w.val);