OPN: fix AY issue

This commit is contained in:
tildearrow 2022-09-28 23:21:24 -05:00
parent 7770ca8965
commit 7990dc1965
8 changed files with 13 additions and 1 deletions

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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.chan<adpcmAChanOffs) {
c.chan-=psgChanOffs;
return ay->dispatch(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();

View File

@ -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();

View File

@ -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();

View File

@ -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();