From 18a86fa6c88a5cdd8067b2edb288b153a031bab6 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 11 Jun 2025 19:32:05 -0500 Subject: [PATCH] better mixing levels for PC-88 and PC-98 thanks Iyatemu for information! --- src/gui/presets.cpp | 161 ++++++++++++++++++++++++++++++++------------ 1 file changed, 118 insertions(+), 43 deletions(-) diff --git a/src/gui/presets.cpp b/src/gui/presets.cpp index 92cca1a7b..4e0d11d93 100644 --- a/src/gui/presets.cpp +++ b/src/gui/presets.cpp @@ -577,37 +577,55 @@ void FurnaceGUI::initSystemPresets() { SUB_ENTRY( _("NEC PC-88 (with PC-8801-11)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4") // external + CH(DIV_SYSTEM_YM2203, 1.0f, 0, + "clockSel=4\n" + "ssgVol=141\n" + ) // external } ); SUB_ENTRY( _("NEC PC-88 (with PC-8801-11; extended channel 3)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=4") // external + CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, + "clockSel=4\n" + "ssgVol=141\n" + ) // external } ); SUB_ENTRY( _("NEC PC-88 (with PC-8801-11; CSM)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4") // external + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, + "clockSel=4\n" + "ssgVol=141\n" + ) // external } ); SUB_ENTRY( _("NEC PC-88 (with PC-8801-23)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1") // external + CH(DIV_SYSTEM_YM2608, 1.0f, 0, + "clockSel=1\n" + "ssgVol=149\n" + ) // external } ); SUB_ENTRY( _("NEC PC-88 (with PC-8801-23; extended channel 3)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2608_EXT, 1.0f, 0, "clockSel=1") // external + CH(DIV_SYSTEM_YM2608_EXT, 1.0f, 0, + "clockSel=1\n" + "ssgVol=149\n" + ) // external } ); SUB_ENTRY( _("NEC PC-88 (with PC-8801-23; CSM)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1") // external + CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, + "clockSel=1\n" + "ssgVol=149\n" + ) // external } ); SUB_ENTRY( @@ -619,7 +637,10 @@ void FurnaceGUI::initSystemPresets() { SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-10)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_AY8910, 1.0f, 0, "clockSel=15"), // external CH(DIV_SYSTEM_AY8910, 1.0f, 0, "clockSel=15") // "" } @@ -627,7 +648,10 @@ void FurnaceGUI::initSystemPresets() { SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-10; extended channel 3)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_AY8910, 1.0f, 0, "clockSel=15"), // external CH(DIV_SYSTEM_AY8910, 1.0f, 0, "clockSel=15") // "" } @@ -635,7 +659,10 @@ void FurnaceGUI::initSystemPresets() { SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-10; CSM)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_AY8910, 1.0f, 0, "clockSel=15"), // external CH(DIV_SYSTEM_AY8910, 1.0f, 0, "clockSel=15") // "" } @@ -643,112 +670,160 @@ void FurnaceGUI::initSystemPresets() { SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-11)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4") // external } ); SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on internal OPN)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4") // external } ); SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on external OPN)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=4") // external } ); SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on both OPNs)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=4") // external } ); SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-11; CSM on internal OPN)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4") // external } ); SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-11; CSM on external OPN)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4") // external } ); SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-11; CSM on both OPNs)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4") // external } ); SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-23)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1") // external } ); SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on internal OPN)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1") // external } ); SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on external OPN)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_YM2608_EXT, 1.0f, 0, "clockSel=1") // external } ); SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on both OPNs)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_YM2608_EXT, 1.0f, 0, "clockSel=1") // external } ); SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-23; CSM on internal OPN)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1") // external } ); SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-23; CSM on external OPN)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1") // external } ); SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-23; CSM on both OPNs)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1") // external } ); SUB_ENTRY( _("NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_YM2151, 1.0f, 0, "clockSel=2") // external; 4.0000MHz } ); SUB_ENTRY( _("NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800; extended channel 3)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), - CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, + "clockSel=4\n" + "ssgVol=154\n" + ), // internal CH(DIV_SYSTEM_YM2151, 1.0f, 0, "clockSel=2") // external; 4.0000MHz } ); @@ -885,19 +960,19 @@ void FurnaceGUI::initSystemPresets() { ); SUB_ENTRY( _("NEC PC-98 (with PC-9801-26/K)"), { - CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4"), // 3.9936MHz but some compatible card has 4MHz + CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4\nssgVol=77"), // 3.9936MHz but some compatible card has 4MHz CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") } ); SUB_ENTRY( _("NEC PC-98 (with PC-9801-26/K; extended channel 3)"), { - CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=4"), // 3.9936MHz but some compatible card has 4MHz + CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=4\nssgVol=77"), // 3.9936MHz but some compatible card has 4MHz CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") } ); SUB_ENTRY( _("NEC PC-98 (with PC-9801-26/K; CSM)"), { - CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4"), // 3.9936MHz but some compatible card has 4MHz + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4\nssgVol=77"), // 3.9936MHz but some compatible card has 4MHz CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") } ); @@ -987,7 +1062,7 @@ void FurnaceGUI::initSystemPresets() { ); SUB_ENTRY( _("NEC PC-98 (with PC-9801-86)"), { // -73 also has OPNA - CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1\nssgVol=64"), CH(DIV_SYSTEM_PCM_DAC, 1.0f, 0, // 2x 16-bit Burr Brown DAC "rate=44100\n" "outDepth=15\n" @@ -1001,7 +1076,7 @@ void FurnaceGUI::initSystemPresets() { ); SUB_ENTRY( _("NEC PC-98 (with PC-9801-86; extended channel 3)"), { // -73 also has OPNA - CH(DIV_SYSTEM_YM2608_EXT, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2608_EXT, 1.0f, 0, "clockSel=1\nssgVol=64"), CH(DIV_SYSTEM_PCM_DAC, 1.0f, 0, "rate=44100\n" "outDepth=15\n" @@ -1015,7 +1090,7 @@ void FurnaceGUI::initSystemPresets() { ); SUB_ENTRY( _("NEC PC-98 (with PC-9801-86; CSM)"), { // -73 also has OPNA - CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1\nssgVol=64"), CH(DIV_SYSTEM_PCM_DAC, 1.0f, 0, "rate=44100\n" "outDepth=15\n" @@ -1029,7 +1104,7 @@ void FurnaceGUI::initSystemPresets() { ); SUB_ENTRY( _("NEC PC-98 (with PC-9801-86) stereo"), { // -73 also has OPNA - CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1\nssgVol=64"), CH(DIV_SYSTEM_PCM_DAC, 1.0f, -1.0f, // 2x 16-bit Burr Brown DAC "rate=44100\n" "outDepth=15\n" @@ -1043,7 +1118,7 @@ void FurnaceGUI::initSystemPresets() { ); SUB_ENTRY( _("NEC PC-98 (with PC-9801-86; extended channel 3) stereo"), { // -73 also has OPNA - CH(DIV_SYSTEM_YM2608_EXT, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2608_EXT, 1.0f, 0, "clockSel=1\nssgVol=64"), CH(DIV_SYSTEM_PCM_DAC, 1.0f, -1.0f, "rate=44100\n" "outDepth=15\n" @@ -1057,7 +1132,7 @@ void FurnaceGUI::initSystemPresets() { ); SUB_ENTRY( _("NEC PC-98 (with PC-9801-86; CSM) stereo"), { // -73 also has OPNA - CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1\nssgVol=64"), CH(DIV_SYSTEM_PCM_DAC, 1.0f, -1.0f, "rate=44100\n" "outDepth=15\n" @@ -1071,25 +1146,25 @@ void FurnaceGUI::initSystemPresets() { ); SUB_ENTRY( _("NEC PC-98 (with PC-9801-73)"), { - CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1\nssgVol=64"), CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") } ); SUB_ENTRY( _("NEC PC-98 (with PC-9801-73; extended channel 3)"), { - CH(DIV_SYSTEM_YM2608_EXT, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2608_EXT, 1.0f, 0, "clockSel=1\nssgVol=64"), CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") } ); SUB_ENTRY( _("NEC PC-98 (with PC-9801-73; CSM)"), { - CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1\nssgVol=64"), CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") } ); SUB_ENTRY( _("NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible)"), { - CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=2\nssgVol=77"), // 4MHz CH(DIV_SYSTEM_PCM_DAC, 1.0f, 0, "rate=44100\n" "outDepth=15\n" @@ -1101,7 +1176,7 @@ void FurnaceGUI::initSystemPresets() { ); SUB_ENTRY( _("NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible; extended channel 3)"), { - CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=2\nssgVol=77"), // 4MHz CH(DIV_SYSTEM_PCM_DAC, 1.0f, 0, "rate=44100\n" "outDepth=15\n" @@ -1113,7 +1188,7 @@ void FurnaceGUI::initSystemPresets() { ); SUB_ENTRY( _("NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible; CSM)"), { - CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=2\nssgVol=77"), // 4MHz CH(DIV_SYSTEM_PCM_DAC, 1.0f, 0, "rate=44100\n" "outDepth=15\n" @@ -1125,7 +1200,7 @@ void FurnaceGUI::initSystemPresets() { ); SUB_ENTRY( _("NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode)"), { - CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=2\nssgVol=77"), // 4MHz CH(DIV_SYSTEM_PCM_DAC, 1.0f, 0, "rate=44100\n" "outDepth=15\n" @@ -1137,7 +1212,7 @@ void FurnaceGUI::initSystemPresets() { ); SUB_ENTRY( _("NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode; extended channel 3)"), { - CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=2\nssgVol=77"), // 4MHz CH(DIV_SYSTEM_PCM_DAC, 1.0f, 0, "rate=44100\n" "outDepth=15\n" @@ -1149,7 +1224,7 @@ void FurnaceGUI::initSystemPresets() { ); SUB_ENTRY( _("NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode; CSM)"), { - CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=2\nssgVol=77"), // 4MHz CH(DIV_SYSTEM_PCM_DAC, 1.0f, 0, "rate=44100\n" "outDepth=15\n"