diff --git a/src/engine/platform/ym2203.cpp b/src/engine/platform/ym2203.cpp index 13fc014d..6a086437 100644 --- a/src/engine/platform/ym2203.cpp +++ b/src/engine/platform/ym2203.cpp @@ -203,6 +203,7 @@ void DivPlatformYM2203::tick(bool sysTick) { ay->tick(sysTick); ay->flushWrites(); for (DivRegWrite& i: ay->getRegisterWrites()) { + if (i.addr>15) continue; immWrite(i.addr&15,i.val); } ay->getRegisterWrites().clear(); @@ -807,6 +808,7 @@ void DivPlatformYM2203::forceIns() { ay->forceIns(); ay->flushWrites(); for (DivRegWrite& i: ay->getRegisterWrites()) { + if (i.addr>15) continue; immWrite(i.addr&15,i.val); } ay->getRegisterWrites().clear(); diff --git a/src/engine/platform/ym2203ext.cpp b/src/engine/platform/ym2203ext.cpp index f3b279c9..fc629487 100644 --- a/src/engine/platform/ym2203ext.cpp +++ b/src/engine/platform/ym2203ext.cpp @@ -448,6 +448,7 @@ void DivPlatformYM2203Ext::forceIns() { ay->forceIns(); ay->flushWrites(); for (DivRegWrite& i: ay->getRegisterWrites()) { + if (i.addr>15) continue; immWrite(i.addr&15,i.val); } ay->getRegisterWrites().clear(); diff --git a/src/engine/platform/ym2608.cpp b/src/engine/platform/ym2608.cpp index b247be44..87fc7914 100644 --- a/src/engine/platform/ym2608.cpp +++ b/src/engine/platform/ym2608.cpp @@ -654,6 +654,7 @@ void DivPlatformYM2608::tick(bool sysTick) { ay->tick(sysTick); ay->flushWrites(); for (DivRegWrite& i: ay->getRegisterWrites()) { + if (i.addr>15) continue; immWrite(i.addr&15,i.val); } ay->getRegisterWrites().clear(); @@ -1199,6 +1200,7 @@ void DivPlatformYM2608::forceIns() { ay->forceIns(); ay->flushWrites(); for (DivRegWrite& i: ay->getRegisterWrites()) { + if (i.addr>15) continue; immWrite(i.addr&15,i.val); } ay->getRegisterWrites().clear(); diff --git a/src/engine/platform/ym2608ext.cpp b/src/engine/platform/ym2608ext.cpp index 66a4d252..0b73b42c 100644 --- a/src/engine/platform/ym2608ext.cpp +++ b/src/engine/platform/ym2608ext.cpp @@ -483,6 +483,7 @@ void DivPlatformYM2608Ext::forceIns() { ay->forceIns(); ay->flushWrites(); for (DivRegWrite& i: ay->getRegisterWrites()) { + if (i.addr>15) continue; immWrite(i.addr&15,i.val); } ay->getRegisterWrites().clear(); diff --git a/src/engine/platform/ym2610.cpp b/src/engine/platform/ym2610.cpp index 794fc7d9..89e354a9 100644 --- a/src/engine/platform/ym2610.cpp +++ b/src/engine/platform/ym2610.cpp @@ -593,13 +593,14 @@ void DivPlatformYM2610::tick(bool sysTick) { ay->tick(sysTick); ay->flushWrites(); for (DivRegWrite& i: ay->getRegisterWrites()) { + if (i.addr>15) continue; immWrite(i.addr&15,i.val); } ay->getRegisterWrites().clear(); } int DivPlatformYM2610::dispatch(DivCommand c) { - if (c.chan>=psgChanOffs && c.chan<7) { + if (c.chan>=psgChanOffs && c.chandispatch(c); } @@ -1169,6 +1170,7 @@ void DivPlatformYM2610::forceIns() { ay->forceIns(); ay->flushWrites(); for (DivRegWrite& i: ay->getRegisterWrites()) { + if (i.addr>15) continue; immWrite(i.addr&15,i.val); } ay->getRegisterWrites().clear(); diff --git a/src/engine/platform/ym2610b.cpp b/src/engine/platform/ym2610b.cpp index 941cee22..3ee916a2 100644 --- a/src/engine/platform/ym2610b.cpp +++ b/src/engine/platform/ym2610b.cpp @@ -656,6 +656,7 @@ void DivPlatformYM2610B::tick(bool sysTick) { ay->tick(sysTick); ay->flushWrites(); for (DivRegWrite& i: ay->getRegisterWrites()) { + if (i.addr>15) continue; immWrite(i.addr&15,i.val); } ay->getRegisterWrites().clear(); @@ -1232,6 +1233,7 @@ void DivPlatformYM2610B::forceIns() { ay->forceIns(); ay->flushWrites(); for (DivRegWrite& i: ay->getRegisterWrites()) { + if (i.addr>15) continue; immWrite(i.addr&15,i.val); } ay->getRegisterWrites().clear(); diff --git a/src/engine/platform/ym2610bext.cpp b/src/engine/platform/ym2610bext.cpp index 5c8c2c63..201bb598 100644 --- a/src/engine/platform/ym2610bext.cpp +++ b/src/engine/platform/ym2610bext.cpp @@ -474,6 +474,7 @@ void DivPlatformYM2610BExt::forceIns() { ay->forceIns(); ay->flushWrites(); for (DivRegWrite& i: ay->getRegisterWrites()) { + if (i.addr>15) continue; immWrite(i.addr&15,i.val); } ay->getRegisterWrites().clear(); diff --git a/src/engine/platform/ym2610ext.cpp b/src/engine/platform/ym2610ext.cpp index 22c9ebf9..ac82bb81 100644 --- a/src/engine/platform/ym2610ext.cpp +++ b/src/engine/platform/ym2610ext.cpp @@ -474,6 +474,7 @@ void DivPlatformYM2610Ext::forceIns() { ay->forceIns(); ay->flushWrites(); for (DivRegWrite& i: ay->getRegisterWrites()) { + if (i.addr>15) continue; immWrite(i.addr&15,i.val); } ay->getRegisterWrites().clear();