diff --git a/src/engine/platform/arcade.cpp b/src/engine/platform/arcade.cpp index 6bd4e2034..2ce2a1eba 100644 --- a/src/engine/platform/arcade.cpp +++ b/src/engine/platform/arcade.cpp @@ -345,7 +345,7 @@ void DivPlatformArcade::tick(bool sysTick) { } if (chan[i].std.phaseReset.had) { - if (chan[i].std.phaseReset.val==1) { + if (chan[i].std.phaseReset.val==1 && chan[i].active) { chan[i].keyOn=true; } } diff --git a/src/engine/platform/genesis.cpp b/src/engine/platform/genesis.cpp index 0c9d94d18..40ef34a5a 100644 --- a/src/engine/platform/genesis.cpp +++ b/src/engine/platform/genesis.cpp @@ -345,7 +345,7 @@ void DivPlatformGenesis::tick(bool sysTick) { } if (chan[i].std.phaseReset.had) { - if (chan[i].std.phaseReset.val==1) { + if (chan[i].std.phaseReset.val==1 && chan[i].active) { chan[i].keyOn=true; } } diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index c81fb6daa..f2eb1055c 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -392,7 +392,7 @@ void DivPlatformOPL::tick(bool sysTick) { } if (chan[i].std.phaseReset.had) { - if (chan[i].std.phaseReset.val==1) { + if (chan[i].std.phaseReset.val==1 && chan[i].active) { chan[i].keyOn=true; } } diff --git a/src/engine/platform/opll.cpp b/src/engine/platform/opll.cpp index 0b3274e44..81710f05c 100644 --- a/src/engine/platform/opll.cpp +++ b/src/engine/platform/opll.cpp @@ -189,7 +189,7 @@ void DivPlatformOPLL::tick(bool sysTick) { } if (chan[i].std.phaseReset.had) { - if (chan[i].std.phaseReset.val==1) { + if (chan[i].std.phaseReset.val==1 && chan[i].active) { chan[i].keyOn=true; } } diff --git a/src/engine/platform/tx81z.cpp b/src/engine/platform/tx81z.cpp index ca3e74922..c853a2508 100644 --- a/src/engine/platform/tx81z.cpp +++ b/src/engine/platform/tx81z.cpp @@ -325,7 +325,7 @@ void DivPlatformTX81Z::tick(bool sysTick) { } if (chan[i].std.phaseReset.had) { - if (chan[i].std.phaseReset.val==1) { + if (chan[i].std.phaseReset.val==1 && chan[i].active) { chan[i].keyOn=true; } } diff --git a/src/engine/platform/ym2203.cpp b/src/engine/platform/ym2203.cpp index 057c98b76..24e092d16 100644 --- a/src/engine/platform/ym2203.cpp +++ b/src/engine/platform/ym2203.cpp @@ -381,7 +381,7 @@ void DivPlatformYM2203::tick(bool sysTick) { } if (chan[i].std.phaseReset.had) { - if (chan[i].std.phaseReset.val==1) { + if (chan[i].std.phaseReset.val==1 && chan[i].active) { chan[i].keyOn=true; } } diff --git a/src/engine/platform/ym2608.cpp b/src/engine/platform/ym2608.cpp index 730b62255..8782ac275 100644 --- a/src/engine/platform/ym2608.cpp +++ b/src/engine/platform/ym2608.cpp @@ -544,7 +544,7 @@ void DivPlatformYM2608::tick(bool sysTick) { } if (chan[i].std.phaseReset.had) { - if (chan[i].std.phaseReset.val==1) { + if (chan[i].std.phaseReset.val==1 && chan[i].active) { chan[i].keyOn=true; } } diff --git a/src/engine/platform/ym2610.cpp b/src/engine/platform/ym2610.cpp index f096f8f23..7f94421ec 100644 --- a/src/engine/platform/ym2610.cpp +++ b/src/engine/platform/ym2610.cpp @@ -588,7 +588,7 @@ void DivPlatformYM2610::tick(bool sysTick) { } if (chan[i].std.phaseReset.had) { - if (chan[i].std.phaseReset.val==1) { + if (chan[i].std.phaseReset.val==1 && chan[i].active) { chan[i].keyOn=true; } } diff --git a/src/engine/platform/ym2610b.cpp b/src/engine/platform/ym2610b.cpp index c002f4b36..fd7c87398 100644 --- a/src/engine/platform/ym2610b.cpp +++ b/src/engine/platform/ym2610b.cpp @@ -567,7 +567,7 @@ void DivPlatformYM2610B::tick(bool sysTick) { } if (chan[i].std.phaseReset.had) { - if (chan[i].std.phaseReset.val==1) { + if (chan[i].std.phaseReset.val==1 && chan[i].active) { chan[i].keyOn=true; } }