From 1d446bd56b4e2bd77202e564bdac5fafd0364fd8 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Tue, 17 Jan 2023 01:11:08 -0500 Subject: [PATCH] dev137 - new mixing volumes YM2612 is now twice as loud SN76489 and OPLL are 1.5x loud X1-010 is four times louder --- papers/format.md | 1 + src/engine/engine.h | 4 ++-- src/engine/fileOps.cpp | 26 ++++++++++++++++++++++++++ src/engine/platform/genesis.cpp | 4 ++++ src/engine/platform/genesis.h | 1 + src/engine/platform/opll.cpp | 4 ++++ src/engine/platform/opll.h | 1 + src/engine/platform/sms.cpp | 4 ++++ src/engine/platform/sms.h | 1 + src/engine/platform/x1_010.cpp | 4 ++++ src/engine/platform/x1_010.h | 1 + src/engine/vgmOps.cpp | 16 ++++++++-------- 12 files changed, 57 insertions(+), 10 deletions(-) diff --git a/papers/format.md b/papers/format.md index 6522760e8..5aef984ee 100644 --- a/papers/format.md +++ b/papers/format.md @@ -32,6 +32,7 @@ these fields are 0 in format versions prior to 100 (0.6pre1). the format versions are: +- 137: Furnace dev137 - 136: Furnace dev136 - 135: Furnace dev135 - 134: Furnace dev134 diff --git a/src/engine/engine.h b/src/engine/engine.h index ffa97d755..88e6e6764 100644 --- a/src/engine/engine.h +++ b/src/engine/engine.h @@ -47,8 +47,8 @@ #define BUSY_BEGIN_SOFT softLocked=true; isBusy.lock(); #define BUSY_END isBusy.unlock(); softLocked=false; -#define DIV_VERSION "dev136" -#define DIV_ENGINE_VERSION 136 +#define DIV_VERSION "dev137" +#define DIV_ENGINE_VERSION 137 // 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 ffe04cfdb..2365da594 100644 --- a/src/engine/fileOps.cpp +++ b/src/engine/fileOps.cpp @@ -2574,6 +2574,32 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) { } } + // new YM2612/SN/X1-010 volumes + if (ds.version<137) { + for (int i=0; ichipClock; - CHIP_VOL(0,2.0); + CHIP_VOL(0,4.0); willExport[i]=true; switch (song.systemFlags[i].getInt("chipType",0)) { case 1: // real SN @@ -1065,7 +1065,7 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p } else if (!(hasSN&0x40000000)) { isSecond[i]=true; willExport[i]=true; - CHIP_VOL_SECOND(0,2.0); + CHIP_VOL_SECOND(0,4.0); hasSN|=0x40000000; howManyChips++; } @@ -1130,12 +1130,12 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p case DIV_SYSTEM_X1_010: if (!hasX1) { hasX1=disCont[i].dispatch->chipClock; - CHIP_VOL(38,0.5); + CHIP_VOL(38,2.0); willExport[i]=true; writeX1010[0]=disCont[i].dispatch; } else if (!(hasX1&0x40000000)) { isSecond[i]=true; - CHIP_VOL_SECOND(38,0.5); + CHIP_VOL_SECOND(38,2.0); willExport[i]=true; writeX1010[1]=disCont[i].dispatch; hasX1|=0x40000000; @@ -1232,12 +1232,12 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p case DIV_SYSTEM_YM2612_DUALPCM_EXT: if (!hasOPN2) { hasOPN2=disCont[i].dispatch->chipClock; - CHIP_VOL(2,0.8); + CHIP_VOL(2,1.6); willExport[i]=true; writeDACSamples=true; } else if (!(hasOPN2&0x40000000)) { isSecond[i]=true; - CHIP_VOL_SECOND(2,0.8); + CHIP_VOL_SECOND(2,1.6); willExport[i]=true; hasOPN2|=0x40000000; howManyChips++; @@ -1296,11 +1296,11 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p case DIV_SYSTEM_VRC7: if (!hasOPLL) { hasOPLL=disCont[i].dispatch->chipClock; - CHIP_VOL(1,1.6); + CHIP_VOL(1,3.2); willExport[i]=true; } else if (!(hasOPLL&0x40000000)) { isSecond[i]=true; - CHIP_VOL_SECOND(1,1.6); + CHIP_VOL_SECOND(1,3.2); willExport[i]=true; hasOPLL|=0x40000000; howManyChips++;