From 5e2cefff9422a021c728f82fe30364e72a507dbc Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 23 Sep 2022 13:36:23 -0500 Subject: [PATCH] dev117 - save the flag also serves as marker version for this huge change --- src/engine/engine.h | 4 ++-- src/engine/fileOps.cpp | 14 +++++++++++--- src/gui/compatFlags.cpp | 8 ++++---- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/engine/engine.h b/src/engine/engine.h index 42d29f12..0438e09c 100644 --- a/src/engine/engine.h +++ b/src/engine/engine.h @@ -46,8 +46,8 @@ #define BUSY_BEGIN_SOFT softLocked=true; isBusy.lock(); #define BUSY_END isBusy.unlock(); softLocked=false; -#define DIV_VERSION "0.6pre1.5" -#define DIV_ENGINE_VERSION 116 +#define DIV_VERSION "dev117" +#define DIV_ENGINE_VERSION 117 // for imports #define DIV_VERSION_MOD 0xff01 #define DIV_VERSION_FC 0xff02 diff --git a/src/engine/fileOps.cpp b/src/engine/fileOps.cpp index 2757ac27..4f4c6539 100644 --- a/src/engine/fileOps.cpp +++ b/src/engine/fileOps.cpp @@ -1101,7 +1101,9 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) { if (ds.version<115) { ds.autoSystem=false; } - ds.ignorePCEDACVolume=true; + if (ds.version<117) { + ds.ignorePCEDACVolume=true; + } ds.isDMF=false; reader.readS(); // reserved @@ -1534,7 +1536,12 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) { } else { reader.readC(); } - for (int i=0; i<3; i++) { + if (ds.version>=117) { + ds.ignorePCEDACVolume=reader.readC(); + } else { + reader.readC(); + } + for (int i=0; i<2; i++) { reader.readC(); } } @@ -3779,7 +3786,8 @@ SafeWriter* DivEngine::saveFur(bool notPrimary) { w->writeC(song.delayBehavior); w->writeC(song.jumpTreatment); w->writeC(song.autoSystem); - for (int i=0; i<3; i++) { + w->writeC(song.ignorePCEDACVolume); + for (int i=0; i<2; i++) { w->writeC(0); } diff --git a/src/gui/compatFlags.cpp b/src/gui/compatFlags.cpp index c3627efa..ac7209d6 100644 --- a/src/gui/compatFlags.cpp +++ b/src/gui/compatFlags.cpp @@ -143,10 +143,6 @@ void FurnaceGUI::drawCompatFlags() { if (ImGui::IsItemHovered()) { ImGui::SetTooltip("when enabled, any SN period under 8 will be written as 1 instead.\nthis replicates DefleMask behavior, but reduces available period range."); } - ImGui::Checkbox("Ignore PC Engine DAC Volume",&e->song.ignorePCEDACVolume); - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("when enabled, PC Engine DAC Volume is ignored."); - } ImGui::Text("Pitch linearity:"); if (ImGui::RadioButton("None",e->song.linearPitch==0)) { @@ -285,6 +281,10 @@ void FurnaceGUI::drawCompatFlags() { if (ImGui::IsItemHovered()) { ImGui::SetTooltip("behavior changed in 0.6pre1.5"); } + ImGui::Checkbox("Ignore PC Engine DAC volume",&e->song.ignorePCEDACVolume); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("behavior changed in 0.6pre2"); + } } if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_COMPAT_FLAGS; ImGui::End();