From ea7f8e11549d75426d7f42f35dfc38efa1db39e1 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 8 Oct 2022 00:01:26 -0500 Subject: [PATCH] NES/SN: Defle compat fixes --- src/engine/platform/nes.cpp | 10 +++++----- src/engine/platform/sms.cpp | 5 ++++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/engine/platform/nes.cpp b/src/engine/platform/nes.cpp index 5749167b..1ca95245 100644 --- a/src/engine/platform/nes.cpp +++ b/src/engine/platform/nes.cpp @@ -415,11 +415,11 @@ int DivPlatformNES::dispatch(DivCommand c) { chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_STD)); if (!parent->song.brokenOutVol && !chan[c.chan].std.vol.will) { chan[c.chan].outVol=chan[c.chan].vol; - } - if (c.chan==2) { - rWrite(0x4000+c.chan*4,0xff); - } else { - rWrite(0x4000+c.chan*4,0x30|chan[c.chan].vol|((chan[c.chan].duty&3)<<6)); + if (c.chan==2) { + rWrite(0x4000+c.chan*4,0xff); + } else { + rWrite(0x4000+c.chan*4,0x30|chan[c.chan].vol|((chan[c.chan].duty&3)<<6)); + } } break; case DIV_CMD_NOTE_OFF: diff --git a/src/engine/platform/sms.cpp b/src/engine/platform/sms.cpp index ffafc0cb..5e484c5d 100644 --- a/src/engine/platform/sms.cpp +++ b/src/engine/platform/sms.cpp @@ -19,6 +19,7 @@ #include "sms.h" #include "../engine.h" +#include "../../ta-log.h" #include #define rWrite(a,v) {if (!skipRegisterWrites) {writes.emplace(a,v); if (dumpWrites) {addWrite(0x200+a,v);}}} @@ -248,7 +249,9 @@ int DivPlatformSMS::dispatch(DivCommand c) { chan[c.chan].actualNote=c.value; } chan[c.chan].active=true; - rWrite(0,0x90|c.chan<<5|(isMuted[c.chan]?15:(15-(chan[c.chan].vol&15)))); + if (!parent->song.brokenOutVol) { + rWrite(0,0x90|c.chan<<5|(isMuted[c.chan]?15:(15-(chan[c.chan].vol&15)))); + } chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_STD)); if (!parent->song.brokenOutVol && !chan[c.chan].std.vol.will) { chan[c.chan].outVol=chan[c.chan].vol;