From e5d81bd694724f487522a6a4f3e9c20122b16b1c Mon Sep 17 00:00:00 2001 From: cam900 Date: Thu, 5 Jan 2023 08:40:44 +0900 Subject: [PATCH 001/202] Prepare to YMF289B OPL3-L support --- src/engine/platform/opl.cpp | 20 ++++++++++++++++++-- src/gui/presets.cpp | 10 ++++++++++ src/gui/sysConf.cpp | 15 +++++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index 5af5de8c6..ecb68bdf2 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -1722,13 +1722,29 @@ void DivPlatformOPL::setFlags(const DivConfig& flags) { case 0x04: chipClock=15000000.0; break; + case 0x05: + chipClock=33868800.0; + break; default: chipClock=COLOR_NTSC*4.0; break; } CHECK_CUSTOM_CLOCK; - rate=chipClock/288; - chipRateBase=rate; + switch (flags.getInt("chipType",0)) { + case 1: // YMF289B + chipFreqBase=32768*684; + rate=chipClock/684; + chipRateBase=chipClock/768; + downsample=true; + break; + default: // YMF262 + chipFreqBase=32768*288; + rate=chipClock/288; + chipRateBase=rate; + downsample=false; + break; + } + reset(); break; case 4: switch (flags.getInt("clockSel",0)) { diff --git a/src/gui/presets.cpp b/src/gui/presets.cpp index f0e4fe928..c01d2c4e6 100644 --- a/src/gui/presets.cpp +++ b/src/gui/presets.cpp @@ -2248,6 +2248,16 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_OPL3_DRUMS, 64, 0, "") } ); + ENTRY( + "Yamaha YMF289B (OPL3-L)", { + CH(DIV_SYSTEM_OPL3, 64, 0, "chipType=1") + } + ); + ENTRY( + "Yamaha YMF289B (drums mode)", { + CH(DIV_SYSTEM_OPL3_DRUMS, 64, 0, "chipType=1") + } + ); if (settings.hiddenSystems) { ENTRY( "Yamaha YMU759 (MA-2)", { diff --git a/src/gui/sysConf.cpp b/src/gui/sysConf.cpp index 8e41fa00c..ff60b3136 100644 --- a/src/gui/sysConf.cpp +++ b/src/gui/sysConf.cpp @@ -1182,6 +1182,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo case DIV_SYSTEM_OPL3: case DIV_SYSTEM_OPL3_DRUMS: { int clockSel=flags.getInt("clockSel",0); + int chipType=flags.getInt("chipType",0); ImGui::Text("Clock rate:"); if (ImGui::RadioButton("14.32MHz (NTSC)",clockSel==0)) { @@ -1204,10 +1205,24 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=4; altered=true; } + if (ImGui::RadioButton("33.8688MHz (OPL3-L)",clockSel==5)) { + clockSel=5; + altered=true; + } + ImGui::Text("Chip type:"); + if (ImGui::RadioButton("OPL3 (YMF262)",chipType==0)) { + chipType=0; + altered=true; + } + if (ImGui::RadioButton("OPL3-L (YMF289B)",chipType==1)) { + chipType=1; + altered=true; + } if (altered) { e->lockSave([&]() { flags.set("clockSel",clockSel); + flags.set("chipType",chipType); }); } break; From f5c1273c2d71fff517087cb873e7c72eca9df2e6 Mon Sep 17 00:00:00 2001 From: cam900 Date: Thu, 5 Jan 2023 08:47:24 +0900 Subject: [PATCH 002/202] Clock preset fix --- src/gui/presets.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/gui/presets.cpp b/src/gui/presets.cpp index c01d2c4e6..375794668 100644 --- a/src/gui/presets.cpp +++ b/src/gui/presets.cpp @@ -2250,12 +2250,18 @@ void FurnaceGUI::initSystemPresets() { ); ENTRY( "Yamaha YMF289B (OPL3-L)", { - CH(DIV_SYSTEM_OPL3, 64, 0, "chipType=1") + CH(DIV_SYSTEM_OPL3, 64, 0, + "clockSel=5\n" + "chipType=1\n" + ) } ); ENTRY( "Yamaha YMF289B (drums mode)", { - CH(DIV_SYSTEM_OPL3_DRUMS, 64, 0, "chipType=1") + CH(DIV_SYSTEM_OPL3_DRUMS, 64, 0, + "clockSel=5\n" + "chipType=1\n" + ) } ); if (settings.hiddenSystems) { From 74e429fae24e878c4b464b7cc4e863e12c8a051c Mon Sep 17 00:00:00 2001 From: cam900 Date: Thu, 5 Jan 2023 08:51:25 +0900 Subject: [PATCH 003/202] Fix pitch --- src/engine/platform/opl.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index ecb68bdf2..8e1d1b11e 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -1488,8 +1488,8 @@ void DivPlatformOPL::reset() { } */ if (downsample) { - const unsigned int downsampledRate=(unsigned int)((double)rate*rate/chipRateBase); - OPL3_Reset(&fm,downsampledRate); +// const unsigned int downsampledRate=(unsigned int)((double)rate*rate/chipRateBase); + OPL3_Reset(&fm,44100); } else { OPL3_Reset(&fm,rate); } @@ -1733,8 +1733,8 @@ void DivPlatformOPL::setFlags(const DivConfig& flags) { switch (flags.getInt("chipType",0)) { case 1: // YMF289B chipFreqBase=32768*684; - rate=chipClock/684; - chipRateBase=chipClock/768; + rate=chipClock/768; + chipRateBase=chipClock/684; downsample=true; break; default: // YMF262 From 68964e384f417d4ee2bef739c48863aa5c225407 Mon Sep 17 00:00:00 2001 From: cam900 Date: Thu, 5 Jan 2023 08:51:44 +0900 Subject: [PATCH 004/202] Spacing --- src/engine/platform/opl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index 8e1d1b11e..8c5f6c759 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -1488,7 +1488,7 @@ void DivPlatformOPL::reset() { } */ if (downsample) { -// const unsigned int downsampledRate=(unsigned int)((double)rate*rate/chipRateBase); + //const unsigned int downsampledRate=(unsigned int)((double)rate*rate/chipRateBase); OPL3_Reset(&fm,44100); } else { OPL3_Reset(&fm,rate); From f6f5353987814584dcb65aeea18023fb93ee2208 Mon Sep 17 00:00:00 2001 From: cam900 Date: Sun, 15 Jan 2023 08:15:12 +0900 Subject: [PATCH 005/202] Fix volume --- src/gui/presets.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/presets.cpp b/src/gui/presets.cpp index 75d1ffb0e..fdb58dbfc 100644 --- a/src/gui/presets.cpp +++ b/src/gui/presets.cpp @@ -2250,7 +2250,7 @@ void FurnaceGUI::initSystemPresets() { ); ENTRY( "Yamaha YMF289B (OPL3-L)", { - CH(DIV_SYSTEM_OPL3, 64, 0, + CH(DIV_SYSTEM_OPL3, 1.0f, 0, "clockSel=5\n" "chipType=1\n" ) @@ -2258,7 +2258,7 @@ void FurnaceGUI::initSystemPresets() { ); ENTRY( "Yamaha YMF289B (drums mode)", { - CH(DIV_SYSTEM_OPL3_DRUMS, 64, 0, + CH(DIV_SYSTEM_OPL3_DRUMS, 1.0f, 0, "clockSel=5\n" "chipType=1\n" ) From 9ae12241a455316e5d5cecf8a9ff1925c65dc153 Mon Sep 17 00:00:00 2001 From: cam900 Date: Mon, 16 Jan 2023 10:25:59 +0900 Subject: [PATCH 006/202] Fix downsampled rate accuracy --- src/engine/platform/opl.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index 6ac489bfc..f3accd24a 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -1548,8 +1548,8 @@ void DivPlatformOPL::reset() { } */ if (downsample) { - //const unsigned int downsampledRate=(unsigned int)((double)rate*rate/chipRateBase); - OPL3_Reset(&fm,44100); + const unsigned int downsampledRate=(unsigned int)((double)rate*49716.0/(double)chipRateBase); + OPL3_Reset(&fm,downsampledRate); } else { OPL3_Reset(&fm,rate); } From 0c5a6d976074f3ad2d3378f680d8467a973bb135 Mon Sep 17 00:00:00 2001 From: cam900 Date: Sat, 13 May 2023 18:54:05 +0900 Subject: [PATCH 007/202] Just resample rather than reset --- extern/opl/MODIFIED.md | 2 +- extern/opl/opl3.c | 5 +++++ extern/opl/opl3.h | 1 + src/engine/platform/opl.cpp | 7 ++++++- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/extern/opl/MODIFIED.md b/extern/opl/MODIFIED.md index 78341ad48..d5a39e9f7 100644 --- a/extern/opl/MODIFIED.md +++ b/extern/opl/MODIFIED.md @@ -1,4 +1,4 @@ # modification disclaimer -this is a modified version of Nuked-OPL3 which implements channel muting in the core. +this is a modified version of Nuked-OPL3 which implements channel muting in the core, and resampling function. see [this issue](https://github.com/tildearrow/furnace/issues/414) for more information. diff --git a/extern/opl/opl3.c b/extern/opl/opl3.c index 3358f0335..5acdca250 100644 --- a/extern/opl/opl3.c +++ b/extern/opl/opl3.c @@ -1362,6 +1362,11 @@ void OPL3_Reset(opl3_chip *chip, uint32_t samplerate) #endif } +void OPL3_Resample(opl3_chip *chip, uint32_t samplerate) +{ + chip->rateratio = (samplerate << RSM_FRAC) / 49716; +} + void OPL3_WriteReg(opl3_chip *chip, uint16_t reg, uint8_t v) { uint8_t high = (reg >> 8) & 0x01; diff --git a/extern/opl/opl3.h b/extern/opl/opl3.h index 8d5153237..1e88a8018 100644 --- a/extern/opl/opl3.h +++ b/extern/opl/opl3.h @@ -158,6 +158,7 @@ struct _opl3_chip { void OPL3_Generate(opl3_chip *chip, int16_t *buf); void OPL3_GenerateResampled(opl3_chip *chip, int16_t *buf); void OPL3_Reset(opl3_chip *chip, uint32_t samplerate); +void OPL3_Resample(opl3_chip *chip, uint32_t samplerate); void OPL3_WriteReg(opl3_chip *chip, uint16_t reg, uint8_t v); void OPL3_WriteRegBuffered(opl3_chip *chip, uint16_t reg, uint8_t v); void OPL3_GenerateStream(opl3_chip *chip, int16_t *sndptr, uint32_t numsamples); diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index 3ce997e57..863663a59 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -1866,7 +1866,12 @@ void DivPlatformOPL::setFlags(const DivConfig& flags) { totalOutputs=4; break; } - reset(); + if (downsample) { + const unsigned int downsampledRate=(unsigned int)((double)rate*49716.0/(double)chipRateBase); + OPL3_Resample(&fm,downsampledRate); + } else { + OPL3_Resample(&fm,rate); + } break; case 4: switch (flags.getInt("clockSel",0)) { From f416bb3048e403a5beb8037bfaa7ed158a2ab558 Mon Sep 17 00:00:00 2001 From: YohananDiamond Date: Wed, 12 Jul 2023 10:16:39 -0300 Subject: [PATCH 008/202] dialog nitpick: centering modal popups --- src/gui/gui.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 6437ecab7..2994c3573 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -77,6 +77,10 @@ bool Particle::update(float frameTime) { return (life>0); } +void centerNextWindow(float w, float h) { + ImGui::SetNextWindowPos(ImVec2(w*0.5,h*0.5),ImGuiCond_Always,ImVec2(0.5,0.5)); +} + void FurnaceGUI::bindEngine(DivEngine* eng) { e=eng; wavePreview.setEngine(e); @@ -4526,6 +4530,7 @@ bool FurnaceGUI::loop() { ImGui::OpenPopup("System File Dialog Pending"); } + centerNextWindow(canvasW,canvasH); if (ImGui::BeginPopupModal("System File Dialog Pending",NULL,ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoBackground|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoMove)) { if (!fileDialog->isOpen()) { ImGui::CloseCurrentPopup(); @@ -5194,6 +5199,7 @@ bool FurnaceGUI::loop() { MEASURE_BEGIN(popup); + centerNextWindow(canvasW,canvasH); if (ImGui::BeginPopupModal("Rendering...",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { ImGui::Text("Please wait..."); if (ImGui::Button("Abort")) { @@ -5221,6 +5227,7 @@ bool FurnaceGUI::loop() { ImGui::EndPopup(); } + centerNextWindow(canvasW,canvasH); if (ImGui::BeginPopupModal("Error",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { ImGui::Text("%s",errorString.c_str()); if (ImGui::Button("OK")) { @@ -5229,6 +5236,7 @@ bool FurnaceGUI::loop() { ImGui::EndPopup(); } + centerNextWindow(canvasW,canvasH); if (ImGui::BeginPopupModal("Warning",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { ImGui::Text("%s",warnString.c_str()); switch (warnAction) { @@ -5597,6 +5605,7 @@ bool FurnaceGUI::loop() { // TODO: // - multiple selection // - replace instrument + centerNextWindow(canvasW,canvasH); if (ImGui::BeginPopupModal("Select Instrument",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { bool quitPlease=false; if (pendingInsSingle) { @@ -5674,6 +5683,7 @@ bool FurnaceGUI::loop() { ImGui::EndPopup(); } + centerNextWindow(canvasW,canvasH); if (ImGui::BeginPopupModal("Import Raw Sample",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { ImGui::Text("Data type:"); for (int i=0; i Date: Sat, 22 Jul 2023 10:43:21 +0900 Subject: [PATCH 009/202] Add part number for OPL3-L --- src/gui/sysPartNumber.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/gui/sysPartNumber.cpp b/src/gui/sysPartNumber.cpp index 7ca4489f3..585520f7c 100644 --- a/src/gui/sysPartNumber.cpp +++ b/src/gui/sysPartNumber.cpp @@ -159,9 +159,15 @@ const char* FurnaceGUI::getSystemPartNumber(DivSystem sys, DivConfig& flags) { return "YM3812"; break; case DIV_SYSTEM_OPL3: - case DIV_SYSTEM_OPL3_DRUMS: - return "YMF262"; + case DIV_SYSTEM_OPL3_DRUMS:{ + int chipType=flags.getInt("chipType",0); + if (chipType==1) { + return "YMF289B"; + } else { + return "YMF262"; + } break; + } case DIV_SYSTEM_OPL4: case DIV_SYSTEM_OPL4_DRUMS: return "OPL4"; From 3bafd4f6c03a197a440962c57bf6445a77aa8833 Mon Sep 17 00:00:00 2001 From: cam900 Date: Sun, 23 Jul 2023 17:39:38 +0900 Subject: [PATCH 010/202] update via PR comments --- src/engine/platform/opl.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index 638c31e83..6c3fa416d 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -1599,7 +1599,7 @@ void DivPlatformOPL::reset() { } */ if (downsample) { - const unsigned int downsampledRate=(unsigned int)((double)rate*49716.0/(double)chipRateBase); + const unsigned int downsampledRate=(unsigned int)((double)rate*round(COLOR_NTSC/72.0)/(double)chipRateBase); OPL3_Reset(&fm,downsampledRate); } else { OPL3_Reset(&fm,rate); @@ -1865,7 +1865,7 @@ void DivPlatformOPL::setFlags(const DivConfig& flags) { break; } if (downsample) { - const unsigned int downsampledRate=(unsigned int)((double)rate*49716.0/(double)chipRateBase); + const unsigned int downsampledRate=(unsigned int)((double)rate*round(COLOR_NTSC/72.0)/(double)chipRateBase); OPL3_Resample(&fm,downsampledRate); } else { OPL3_Resample(&fm,rate); From 1c94975a0a5268a591dd37967910f8d29b891763 Mon Sep 17 00:00:00 2001 From: Eknous-P Date: Wed, 26 Jul 2023 18:41:17 +0400 Subject: [PATCH 011/202] primitive effect sorting --- src/gui/effectList.cpp | 50 +++++++++++++++++++++++++++++++++++++++++- src/gui/gui.cpp | 11 ++++++++++ src/gui/gui.h | 3 +++ 3 files changed, 63 insertions(+), 1 deletion(-) diff --git a/src/gui/effectList.cpp b/src/gui/effectList.cpp index 604204b86..d192340de 100644 --- a/src/gui/effectList.cpp +++ b/src/gui/effectList.cpp @@ -12,6 +12,40 @@ void FurnaceGUI::drawEffectList() { ImGui::SetNextWindowSizeConstraints(ImVec2(60.0f*dpiScale,20.0f*dpiScale),ImVec2(canvasW,canvasH)); if (ImGui::Begin("Effect List",&effectListOpen,globalWinFlags)) { ImGui::Text("Chip at cursor: %s",e->getSystemName(e->sysOfChan[cursor.xCoarse])); + ImGui::Text("Sort Effects:"); + ImGui::Checkbox("All",&effectShowAll); + if (effectShowAll) { + effectShowMisc = true; + effectShowPanning = true; + effectShowPitch = true; + effectShowVolume = true; + effectShowSong = true; + effectShowTime = true; + effectShowSpeed = true; + effectShowSysPrimary = true; + effectShowSysSecondary = true; + } + ImGui::SameLine(); + ImGui::Checkbox("Pitch",&effectShowPitch); + ImGui::SameLine(); + ImGui::Checkbox("Song",&effectShowSong); + ImGui::SameLine(); + ImGui::Checkbox("Time",&effectShowTime); + ImGui::SameLine(); + ImGui::Checkbox("Speed",&effectShowSpeed); + ImGui::SameLine(); + ImGui::Checkbox("Panning",&effectShowPanning); + // ImGui::SameLine(); + ImGui::Checkbox("Volume",&effectShowVolume); + ImGui::SameLine(); + ImGui::Checkbox("System (primary)",&effectShowSysPrimary); + ImGui::SameLine(); + ImGui::Checkbox("System (secondary)",&effectShowSysSecondary); + ImGui::SameLine(); + ImGui::Checkbox("Miscellanious",&effectShowMisc); + + effectShowAll = effectShowMisc && effectShowPanning && effectShowPitch && effectShowVolume && effectShowSong && effectShowTime && effectShowSpeed && effectShowSysPrimary && effectShowSysSecondary; + if (ImGui::BeginTable("effectList",2)) { ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed); ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch); @@ -25,11 +59,25 @@ void FurnaceGUI::drawEffectList() { const char* prevName=NULL; for (int i=0; i<256; i++) { const char* name=e->getEffectDesc(i,cursor.xCoarse); + bool effectShow = true; + switch (fxColors[i]) { + case GUI_COLOR_PATTERN_EFFECT_MISC: effectShow = effectShowMisc; break; + case GUI_COLOR_PATTERN_EFFECT_SONG: effectShow = effectShowSong; break; + case GUI_COLOR_PATTERN_EFFECT_SPEED: effectShow = effectShowSpeed; break; + case GUI_COLOR_PATTERN_EFFECT_TIME: effectShow = effectShowTime; break; + case GUI_COLOR_PATTERN_EFFECT_PITCH: effectShow = effectShowPitch; break; + case GUI_COLOR_PATTERN_EFFECT_PANNING: effectShow = effectShowPanning; break; + case GUI_COLOR_PATTERN_EFFECT_VOLUME: effectShow = effectShowVolume; break; + case GUI_COLOR_PATTERN_EFFECT_SYS_PRIMARY: effectShow = effectShowSysPrimary; break; + case GUI_COLOR_PATTERN_EFFECT_SYS_SECONDARY: effectShow = effectShowSysSecondary; break; + default: effectShow = true; break; + } + // effectShow = effectShow && effectShowAll; if (name==prevName) { continue; } prevName=name; - if (name!=NULL) { + if (name!=NULL && effectShow) { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::PushFont(patFont); diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index e84c3ecd2..088f1b8d7 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -7153,6 +7153,17 @@ FurnaceGUI::FurnaceGUI(): pianoView(PIANO_LAYOUT_STANDARD), pianoInputPadMode(PIANO_INPUT_PAD_DISABLE), #endif + //effect sorting + effectShowAll(true), + effectShowPitch(true), + effectShowVolume(true), + effectShowPanning(true), + effectShowSong(true), + effectShowTime(true), + effectShowSpeed(true), + effectShowSysPrimary(true), + effectShowSysSecondary(true), + effectShowMisc(true), hasACED(false), waveGenBaseShape(0), waveInterpolation(0), diff --git a/src/gui/gui.h b/src/gui/gui.h index b4a8a3e5b..e1cdd5d3d 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1729,6 +1729,9 @@ class FurnaceGUI { bool subSongsOpen, findOpen, spoilerOpen, patManagerOpen, sysManagerOpen, clockOpen, speedOpen; bool groovesOpen, introMonOpen; + //effect sorting + bool effectShowAll, effectShowPitch, effectShowVolume, effectShowPanning, effectShowSong, effectShowTime, effectShowSpeed, effectShowSysPrimary, effectShowSysSecondary, effectShowMisc; + bool basicMode, shortIntro; bool insListDir, waveListDir, sampleListDir; From 54d409714636d941e3667ad71fa418c579e536cd Mon Sep 17 00:00:00 2001 From: Eknous-P Date: Wed, 26 Jul 2023 18:53:39 +0400 Subject: [PATCH 012/202] put sorting checkboxes in a treenode --- src/gui/effectList.cpp | 64 ++++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/src/gui/effectList.cpp b/src/gui/effectList.cpp index d192340de..26bea5a12 100644 --- a/src/gui/effectList.cpp +++ b/src/gui/effectList.cpp @@ -12,38 +12,40 @@ void FurnaceGUI::drawEffectList() { ImGui::SetNextWindowSizeConstraints(ImVec2(60.0f*dpiScale,20.0f*dpiScale),ImVec2(canvasW,canvasH)); if (ImGui::Begin("Effect List",&effectListOpen,globalWinFlags)) { ImGui::Text("Chip at cursor: %s",e->getSystemName(e->sysOfChan[cursor.xCoarse])); - ImGui::Text("Sort Effects:"); - ImGui::Checkbox("All",&effectShowAll); - if (effectShowAll) { - effectShowMisc = true; - effectShowPanning = true; - effectShowPitch = true; - effectShowVolume = true; - effectShowSong = true; - effectShowTime = true; - effectShowSpeed = true; - effectShowSysPrimary = true; - effectShowSysSecondary = true; + // ImGui::Text("Sort Effects:"); + if (ImGui::TreeNode("Sort Effects")) { + ImGui::Checkbox("All",&effectShowAll); + if (effectShowAll) { + effectShowMisc = true; + effectShowPanning = true; + effectShowPitch = true; + effectShowVolume = true; + effectShowSong = true; + effectShowTime = true; + effectShowSpeed = true; + effectShowSysPrimary = true; + effectShowSysSecondary = true; + } + // ImGui::SameLine(); + ImGui::Checkbox("Pitch",&effectShowPitch); + // ImGui::SameLine(); + ImGui::Checkbox("Song",&effectShowSong); + // ImGui::SameLine(); + ImGui::Checkbox("Time",&effectShowTime); + // ImGui::SameLine(); + ImGui::Checkbox("Speed",&effectShowSpeed); + // ImGui::SameLine(); + ImGui::Checkbox("Panning",&effectShowPanning); + // ImGui::SameLine(); + ImGui::Checkbox("Volume",&effectShowVolume); + // ImGui::SameLine(); + ImGui::Checkbox("System (primary)",&effectShowSysPrimary); + // ImGui::SameLine(); + ImGui::Checkbox("System (secondary)",&effectShowSysSecondary); + // ImGui::SameLine(); + ImGui::Checkbox("Miscellanious",&effectShowMisc); + ImGui::TreePop(); } - ImGui::SameLine(); - ImGui::Checkbox("Pitch",&effectShowPitch); - ImGui::SameLine(); - ImGui::Checkbox("Song",&effectShowSong); - ImGui::SameLine(); - ImGui::Checkbox("Time",&effectShowTime); - ImGui::SameLine(); - ImGui::Checkbox("Speed",&effectShowSpeed); - ImGui::SameLine(); - ImGui::Checkbox("Panning",&effectShowPanning); - // ImGui::SameLine(); - ImGui::Checkbox("Volume",&effectShowVolume); - ImGui::SameLine(); - ImGui::Checkbox("System (primary)",&effectShowSysPrimary); - ImGui::SameLine(); - ImGui::Checkbox("System (secondary)",&effectShowSysSecondary); - ImGui::SameLine(); - ImGui::Checkbox("Miscellanious",&effectShowMisc); - effectShowAll = effectShowMisc && effectShowPanning && effectShowPitch && effectShowVolume && effectShowSong && effectShowTime && effectShowSpeed && effectShowSysPrimary && effectShowSysSecondary; if (ImGui::BeginTable("effectList",2)) { From d19214045c6adb93ae89ecd7880c3eaf2fca6b4f Mon Sep 17 00:00:00 2001 From: Eknous-P Date: Wed, 26 Jul 2023 19:28:42 +0400 Subject: [PATCH 013/202] reorder fix --- src/gui/gui.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gui/gui.h b/src/gui/gui.h index e1cdd5d3d..d1373e73a 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1729,8 +1729,6 @@ class FurnaceGUI { bool subSongsOpen, findOpen, spoilerOpen, patManagerOpen, sysManagerOpen, clockOpen, speedOpen; bool groovesOpen, introMonOpen; - //effect sorting - bool effectShowAll, effectShowPitch, effectShowVolume, effectShowPanning, effectShowSong, effectShowTime, effectShowSpeed, effectShowSysPrimary, effectShowSysSecondary, effectShowMisc; bool basicMode, shortIntro; bool insListDir, waveListDir, sampleListDir; @@ -2034,6 +2032,9 @@ class FurnaceGUI { bool pianoReadonly; int pianoOffset, pianoOffsetEdit; int pianoView, pianoInputPadMode; + + //effect sorting + bool effectShowAll, effectShowPitch, effectShowVolume, effectShowPanning, effectShowSong, effectShowTime, effectShowSpeed, effectShowSysPrimary, effectShowSysSecondary, effectShowMisc; // TX81Z bool hasACED; From 60006dc862e0b1d126b1aa8a396dcf697591590c Mon Sep 17 00:00:00 2001 From: Eknous-P Date: Wed, 26 Jul 2023 19:51:28 +0400 Subject: [PATCH 014/202] typo --- src/gui/effectList.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/effectList.cpp b/src/gui/effectList.cpp index 26bea5a12..d9d9a6ecf 100644 --- a/src/gui/effectList.cpp +++ b/src/gui/effectList.cpp @@ -43,7 +43,7 @@ void FurnaceGUI::drawEffectList() { // ImGui::SameLine(); ImGui::Checkbox("System (secondary)",&effectShowSysSecondary); // ImGui::SameLine(); - ImGui::Checkbox("Miscellanious",&effectShowMisc); + ImGui::Checkbox("Miscellaneous",&effectShowMisc); ImGui::TreePop(); } effectShowAll = effectShowMisc && effectShowPanning && effectShowPitch && effectShowVolume && effectShowSong && effectShowTime && effectShowSpeed && effectShowSysPrimary && effectShowSysSecondary; From a08a23fd13e788d011be46df8c2be51d8482bed0 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 27 Jul 2023 01:07:57 -0500 Subject: [PATCH 015/202] fix Windows build --- extern/igfd/ImGuiFileDialog.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extern/igfd/ImGuiFileDialog.cpp b/extern/igfd/ImGuiFileDialog.cpp index 39815d4a4..d896c73f0 100644 --- a/extern/igfd/ImGuiFileDialog.cpp +++ b/extern/igfd/ImGuiFileDialog.cpp @@ -1440,8 +1440,8 @@ namespace IGFD SYSTEMTIME localTime; char timebuf[100]; - infos.fileSize=dent.dwin_size; - if (FileTimeToSystemTime(&dent.dwin_mtime,&systemTime)==TRUE) { + infos.fileSize=dent->dwin_size; + if (FileTimeToSystemTime(&dent->dwin_mtime,&systemTime)==TRUE) { if (SystemTimeToTzSpecificLocalTime(NULL,&systemTime,&localTime)==TRUE) { snprintf(timebuf,99,"%d/%.2d/%.2d %.2d:%.2d",localTime.wYear,localTime.wMonth,localTime.wDay,localTime.wHour,localTime.wMinute); } else { From 348b158e4b72a02a4a07142d13552d3a7f8ff3f3 Mon Sep 17 00:00:00 2001 From: Lunathir <18320914+lunathir@users.noreply.github.com> Date: Wed, 26 Jul 2023 22:57:11 -0700 Subject: [PATCH 016/202] Adjust preset name to be in line with other presets --- src/gui/presets.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/presets.cpp b/src/gui/presets.cpp index 05f5af87a..356ac6f6a 100644 --- a/src/gui/presets.cpp +++ b/src/gui/presets.cpp @@ -991,7 +991,7 @@ void FurnaceGUI::initSystemPresets() { } ); ENTRY( - "PC + AdLib/Sound Blaster (drums mode)", { + "PC + Sound Blaster (drums mode)", { CH(DIV_SYSTEM_OPL2_DRUMS, 1.0f, 0, ""), CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, ""), CH(DIV_SYSTEM_PCM_DAC, 1.0f, 0, From 3fac80dad4e61c78a4f0a984ac9aa4abb4e3e810 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 27 Jul 2023 01:12:50 -0500 Subject: [PATCH 017/202] new demo song by Teuthida --- demos/genesis/mm5_boss.fur | Bin 0 -> 21417 bytes src/gui/about.cpp | 1 + 2 files changed, 1 insertion(+) create mode 100644 demos/genesis/mm5_boss.fur diff --git a/demos/genesis/mm5_boss.fur b/demos/genesis/mm5_boss.fur new file mode 100644 index 0000000000000000000000000000000000000000..d3eb6caf53df72abee788906aa71e2af28411588 GIT binary patch literal 21417 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 d`}X}uG)JFXFO_!!r$|~^CfwyaLiD Date: Thu, 27 Jul 2023 01:24:18 -0500 Subject: [PATCH 018/202] NES: optimize NSFplay --- src/engine/platform/nes.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/engine/platform/nes.cpp b/src/engine/platform/nes.cpp index 8fac52356..2ea68f756 100644 --- a/src/engine/platform/nes.cpp +++ b/src/engine/platform/nes.cpp @@ -130,9 +130,9 @@ void DivPlatformNES::acquire_NSFPlay(short** buf, size_t len) { for (size_t i=0; iTick(1); - nes2_NP->TickFrameSequence(1); - nes2_NP->Tick(1); + nes1_NP->Tick(8); + nes2_NP->TickFrameSequence(8); + nes2_NP->Tick(8); nes1_NP->Render(out1); nes2_NP->Render(out2); @@ -140,7 +140,7 @@ void DivPlatformNES::acquire_NSFPlay(short** buf, size_t len) { if (sample>32767) sample=32767; if (sample<-32768) sample=-32768; buf[0][i]=sample; - if (++writeOscBuf>=32) { + if (++writeOscBuf>=4) { writeOscBuf=0; oscBuf[0]->data[oscBuf[0]->needle++]=nes1_NP->out[0]<<11; oscBuf[1]->data[oscBuf[1]->needle++]=nes1_NP->out[1]<<11; @@ -749,8 +749,11 @@ void DivPlatformNES::setFlags(const DivConfig& flags) { } CHECK_CUSTOM_CLOCK; rate=chipClock; + if (useNP) { + rate/=8; + } for (int i=0; i<5; i++) { - oscBuf[i]->rate=rate/32; + oscBuf[i]->rate=rate/(useNP?4:32); } dpcmModeDefault=flags.getBool("dpcmMode",true); From b186576e14585f46c910d41d77777d658b91e576 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 27 Jul 2023 01:28:03 -0500 Subject: [PATCH 019/202] really fix Windows build --- extern/igfd/ImGuiFileDialog.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extern/igfd/ImGuiFileDialog.cpp b/extern/igfd/ImGuiFileDialog.cpp index d896c73f0..d66dadf74 100644 --- a/extern/igfd/ImGuiFileDialog.cpp +++ b/extern/igfd/ImGuiFileDialog.cpp @@ -1730,9 +1730,9 @@ namespace IGFD //time_t st_ctime; /* time of last status change - not sure out of ntfs */ #ifdef _WIN32 - if (vInfos->fileType != 'd') + if (vInfos.fileType != 'd') { - vInfos->formatedFileSize = prFormatFileSize(vInfos->fileSize); + vInfos.formatedFileSize = prFormatFileSize(vInfos.fileSize); } #else std::string fpn; From c2f83a3aefde01a78bea4562aee0bfd068148dcb Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 27 Jul 2023 01:35:28 -0500 Subject: [PATCH 020/202] GUI: remove ability to save legacy .fui --- src/gui/dataList.cpp | 3 --- src/gui/doAction.cpp | 3 --- src/gui/gui.cpp | 19 ------------------- src/gui/gui.h | 2 -- src/gui/guiConst.cpp | 1 - src/gui/insEdit.cpp | 3 --- 6 files changed, 31 deletions(-) diff --git a/src/gui/dataList.cpp b/src/gui/dataList.cpp index 289584492..f9e2ab749 100644 --- a/src/gui/dataList.cpp +++ b/src/gui/dataList.cpp @@ -330,9 +330,6 @@ void FurnaceGUI::insListItem(int i, int dir, int asset) { if (ImGui::MenuItem("save")) { doAction(GUI_ACTION_INS_LIST_SAVE); } - if (ImGui::MenuItem("save (legacy .fui)")) { - doAction(GUI_ACTION_INS_LIST_SAVE_OLD); - } if (ImGui::MenuItem("save (.dmp)")) { doAction(GUI_ACTION_INS_LIST_SAVE_DMP); } diff --git a/src/gui/doAction.cpp b/src/gui/doAction.cpp index 60d713d32..56f1e32f9 100644 --- a/src/gui/doAction.cpp +++ b/src/gui/doAction.cpp @@ -642,9 +642,6 @@ void FurnaceGUI::doAction(int what) { case GUI_ACTION_INS_LIST_SAVE: if (curIns>=0 && curIns<(int)e->song.ins.size()) openFileDialog(GUI_FILE_INS_SAVE); break; - case GUI_ACTION_INS_LIST_SAVE_OLD: - if (curIns>=0 && curIns<(int)e->song.ins.size()) openFileDialog(GUI_FILE_INS_SAVE_OLD); - break; case GUI_ACTION_INS_LIST_SAVE_DMP: if (curIns>=0 && curIns<(int)e->song.ins.size()) openFileDialog(GUI_FILE_INS_SAVE_DMP); break; diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index e84c3ecd2..0f6eaee80 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -1653,16 +1653,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { dpiScale ); break; - case GUI_FILE_INS_SAVE_OLD: - if (!dirExists(workingDirIns)) workingDirIns=getHomeDir(); - hasOpened=fileDialog->openSave( - "Save Instrument", - {"Furnace instrument", "*.fui"}, - "Furnace instrument{.fui}", - workingDirIns, - dpiScale - ); - break; case GUI_FILE_INS_SAVE_DMP: if (!dirExists(workingDirIns)) workingDirIns=getHomeDir(); hasOpened=fileDialog->openSave( @@ -4592,7 +4582,6 @@ bool FurnaceGUI::loop() { case GUI_FILE_INS_OPEN: case GUI_FILE_INS_OPEN_REPLACE: case GUI_FILE_INS_SAVE: - case GUI_FILE_INS_SAVE_OLD: case GUI_FILE_INS_SAVE_DMP: workingDirIns=fileDialog->getPath()+DIR_SEPARATOR_STR; break; @@ -4695,9 +4684,6 @@ bool FurnaceGUI::loop() { if (curFileDialog==GUI_FILE_INS_SAVE) { checkExtension(".fui"); } - if (curFileDialog==GUI_FILE_INS_SAVE_OLD) { - checkExtension(".fui"); - } if (curFileDialog==GUI_FILE_INS_SAVE_DMP) { checkExtension(".dmp"); } @@ -4791,11 +4777,6 @@ bool FurnaceGUI::loop() { e->song.ins[curIns]->save(copyOfName.c_str(),false,&e->song); } break; - case GUI_FILE_INS_SAVE_OLD: - if (curIns>=0 && curIns<(int)e->song.ins.size()) { - e->song.ins[curIns]->save(copyOfName.c_str(),true); - } - break; case GUI_FILE_INS_SAVE_DMP: if (curIns>=0 && curIns<(int)e->song.ins.size()) { if (!e->song.ins[curIns]->saveDMP(copyOfName.c_str())) { diff --git a/src/gui/gui.h b/src/gui/gui.h index b4a8a3e5b..42cec092f 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -402,7 +402,6 @@ enum FurnaceGUIFileDialogs { GUI_FILE_INS_OPEN, GUI_FILE_INS_OPEN_REPLACE, GUI_FILE_INS_SAVE, - GUI_FILE_INS_SAVE_OLD, GUI_FILE_INS_SAVE_DMP, GUI_FILE_WAVE_OPEN, GUI_FILE_WAVE_OPEN_REPLACE, @@ -607,7 +606,6 @@ enum FurnaceGUIActions { GUI_ACTION_INS_LIST_OPEN, GUI_ACTION_INS_LIST_OPEN_REPLACE, GUI_ACTION_INS_LIST_SAVE, - GUI_ACTION_INS_LIST_SAVE_OLD, GUI_ACTION_INS_LIST_SAVE_DMP, GUI_ACTION_INS_LIST_MOVE_UP, GUI_ACTION_INS_LIST_MOVE_DOWN, diff --git a/src/gui/guiConst.cpp b/src/gui/guiConst.cpp index 7e7aecc18..09fe601d4 100644 --- a/src/gui/guiConst.cpp +++ b/src/gui/guiConst.cpp @@ -641,7 +641,6 @@ const FurnaceGUIActionDef guiActions[GUI_ACTION_MAX]={ D("INS_LIST_OPEN", "Open", 0), D("INS_LIST_OPEN_REPLACE", "Open (replace current)", 0), D("INS_LIST_SAVE", "Save", 0), - D("INS_LIST_SAVE_OLD", "Save (legacy .fui)", 0), D("INS_LIST_SAVE_DMP", "Save (.dmp)", 0), D("INS_LIST_MOVE_UP", "Move up", FURKMOD_SHIFT|SDLK_UP), D("INS_LIST_MOVE_DOWN", "Move down", FURKMOD_SHIFT|SDLK_DOWN), diff --git a/src/gui/insEdit.cpp b/src/gui/insEdit.cpp index 341f38a44..a490b0a6e 100644 --- a/src/gui/insEdit.cpp +++ b/src/gui/insEdit.cpp @@ -2288,9 +2288,6 @@ void FurnaceGUI::drawInsEdit() { ImGui::SetTooltip("Save"); } if (ImGui::BeginPopupContextItem("InsSaveFormats",ImGuiMouseButton_Right)) { - if (ImGui::MenuItem("save in legacy format...")) { - doAction(GUI_ACTION_INS_LIST_SAVE_OLD); - } if (ImGui::MenuItem("save as .dmp...")) { doAction(GUI_ACTION_INS_LIST_SAVE_DMP); } From b41d8fe2088b57df8032fc6b01ae7a0f78935066 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 27 Jul 2023 02:20:22 -0500 Subject: [PATCH 021/202] TIA: fix custom clock but it changes pitch of everything --- src/engine/platform/tia.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/engine/platform/tia.cpp b/src/engine/platform/tia.cpp index 1836bee10..86038216a 100644 --- a/src/engine/platform/tia.cpp +++ b/src/engine/platform/tia.cpp @@ -356,12 +356,12 @@ void DivPlatformTIA::poke(std::vector& wlist) { void DivPlatformTIA::setFlags(const DivConfig& flags) { if (flags.getInt("clockSel",0)) { - rate=COLOR_PAL*4.0/5.0; + chipClock=COLOR_PAL*4.0/5.0; } else { - rate=COLOR_NTSC; + chipClock=COLOR_NTSC; } CHECK_CUSTOM_CLOCK; - chipClock=rate; + rate=chipClock; mixingType=flags.getInt("mixingType",0)&3; for (int i=0; i<2; i++) { oscBuf[i]->rate=rate/114; From 620fc82247aafb1613b5e1a1ad3bfdd5a3ab872d Mon Sep 17 00:00:00 2001 From: Eknous-P Date: Thu, 27 Jul 2023 14:44:41 +0400 Subject: [PATCH 022/202] 'all' checkbox to 'all'/'none' buttons --- src/gui/effectList.cpp | 45 +++++++++++++++++++++--------------------- src/gui/gui.cpp | 1 - src/gui/gui.h | 2 +- 3 files changed, 23 insertions(+), 25 deletions(-) diff --git a/src/gui/effectList.cpp b/src/gui/effectList.cpp index d9d9a6ecf..6b309cdc9 100644 --- a/src/gui/effectList.cpp +++ b/src/gui/effectList.cpp @@ -12,10 +12,17 @@ void FurnaceGUI::drawEffectList() { ImGui::SetNextWindowSizeConstraints(ImVec2(60.0f*dpiScale,20.0f*dpiScale),ImVec2(canvasW,canvasH)); if (ImGui::Begin("Effect List",&effectListOpen,globalWinFlags)) { ImGui::Text("Chip at cursor: %s",e->getSystemName(e->sysOfChan[cursor.xCoarse])); - // ImGui::Text("Sort Effects:"); if (ImGui::TreeNode("Sort Effects")) { - ImGui::Checkbox("All",&effectShowAll); - if (effectShowAll) { + ImGui::Checkbox("Pitch",&effectShowPitch); + ImGui::Checkbox("Song",&effectShowSong); + ImGui::Checkbox("Time",&effectShowTime); + ImGui::Checkbox("Speed",&effectShowSpeed); + ImGui::Checkbox("Panning",&effectShowPanning); + ImGui::Checkbox("Volume",&effectShowVolume); + ImGui::Checkbox("System (primary)",&effectShowSysPrimary); + ImGui::Checkbox("System (secondary)",&effectShowSysSecondary); + ImGui::Checkbox("Miscellaneous",&effectShowMisc); + if (ImGui::Button("All")) { effectShowMisc = true; effectShowPanning = true; effectShowPitch = true; @@ -26,27 +33,20 @@ void FurnaceGUI::drawEffectList() { effectShowSysPrimary = true; effectShowSysSecondary = true; } - // ImGui::SameLine(); - ImGui::Checkbox("Pitch",&effectShowPitch); - // ImGui::SameLine(); - ImGui::Checkbox("Song",&effectShowSong); - // ImGui::SameLine(); - ImGui::Checkbox("Time",&effectShowTime); - // ImGui::SameLine(); - ImGui::Checkbox("Speed",&effectShowSpeed); - // ImGui::SameLine(); - ImGui::Checkbox("Panning",&effectShowPanning); - // ImGui::SameLine(); - ImGui::Checkbox("Volume",&effectShowVolume); - // ImGui::SameLine(); - ImGui::Checkbox("System (primary)",&effectShowSysPrimary); - // ImGui::SameLine(); - ImGui::Checkbox("System (secondary)",&effectShowSysSecondary); - // ImGui::SameLine(); - ImGui::Checkbox("Miscellaneous",&effectShowMisc); + ImGui::SameLine(); + if (ImGui::Button("None")) { + effectShowMisc = false; + effectShowPanning = false; + effectShowPitch = false; + effectShowVolume = false; + effectShowSong = false; + effectShowTime = false; + effectShowSpeed = false; + effectShowSysPrimary = false; + effectShowSysSecondary = false; + } ImGui::TreePop(); } - effectShowAll = effectShowMisc && effectShowPanning && effectShowPitch && effectShowVolume && effectShowSong && effectShowTime && effectShowSpeed && effectShowSysPrimary && effectShowSysSecondary; if (ImGui::BeginTable("effectList",2)) { ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed); @@ -74,7 +74,6 @@ void FurnaceGUI::drawEffectList() { case GUI_COLOR_PATTERN_EFFECT_SYS_SECONDARY: effectShow = effectShowSysSecondary; break; default: effectShow = true; break; } - // effectShow = effectShow && effectShowAll; if (name==prevName) { continue; } diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 088f1b8d7..4c73d7f1c 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -7154,7 +7154,6 @@ FurnaceGUI::FurnaceGUI(): pianoInputPadMode(PIANO_INPUT_PAD_DISABLE), #endif //effect sorting - effectShowAll(true), effectShowPitch(true), effectShowVolume(true), effectShowPanning(true), diff --git a/src/gui/gui.h b/src/gui/gui.h index d1373e73a..6110c7561 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -2034,7 +2034,7 @@ class FurnaceGUI { int pianoView, pianoInputPadMode; //effect sorting - bool effectShowAll, effectShowPitch, effectShowVolume, effectShowPanning, effectShowSong, effectShowTime, effectShowSpeed, effectShowSysPrimary, effectShowSysSecondary, effectShowMisc; + bool effectShowPitch, effectShowVolume, effectShowPanning, effectShowSong, effectShowTime, effectShowSpeed, effectShowSysPrimary, effectShowSysSecondary, effectShowMisc; // TX81Z bool hasACED; From 0d33273a2e84fa27075816f95e74bb5f4817ebaa Mon Sep 17 00:00:00 2001 From: Eknous-P Date: Thu, 27 Jul 2023 15:22:20 +0400 Subject: [PATCH 023/202] useless newline removed --- src/gui/gui.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gui/gui.h b/src/gui/gui.h index 6110c7561..c14bea088 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1729,7 +1729,6 @@ class FurnaceGUI { bool subSongsOpen, findOpen, spoilerOpen, patManagerOpen, sysManagerOpen, clockOpen, speedOpen; bool groovesOpen, introMonOpen; - bool basicMode, shortIntro; bool insListDir, waveListDir, sampleListDir; From 7aa3aec20ef5daec852dedb7bfd01920bde12f2d Mon Sep 17 00:00:00 2001 From: MooingLemur Date: Fri, 28 Jul 2023 01:36:38 -0700 Subject: [PATCH 024/202] ZSM export: handle Virtual Tempo quantization --- src/engine/zsmOps.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/engine/zsmOps.cpp b/src/engine/zsmOps.cpp index 85ddb5d47..24d543b8f 100644 --- a/src/engine/zsmOps.cpp +++ b/src/engine/zsmOps.cpp @@ -94,6 +94,7 @@ SafeWriter* DivEngine::saveZSM(unsigned int zsmrate, bool loop) { playSub(false); //size_t tickCount=0; bool done=false; + bool loopNow=false; int loopPos=-1; int fracWait=0; // accumulates fractional ticks if (VERA>=0) disCont[VERA].dispatch->toggleRegisterDump(true); @@ -109,9 +110,17 @@ SafeWriter* DivEngine::saveZSM(unsigned int zsmrate, bool loop) { while (!done) { if (loopPos==-1) { - if (loopOrder==curOrder && loopRow==curRow && ticks==1 && loop) { - loopPos=zsm.getoffset(); - zsm.setLoopPoint(); + if (loopOrder==curOrder && loopRow==curRow && loop) + loopNow=true; + if (loopNow) { + // If Virtual Tempo is in use, our exact loop point + // might be skipped to quantization error. + // If this happens, the tick immediately following is our loop point. + if (ticks==1 || !(loopOrder==curOrder && loopRow==curRow)) { + loopPos=zsm.getoffset(); + zsm.setLoopPoint(); + loopNow=false; + } } } if (nextTick() || !playing) { From 9dcd5d1a89d5cabdca77f8bf468cf632427e0bde Mon Sep 17 00:00:00 2001 From: MooingLemur Date: Fri, 28 Jul 2023 01:51:22 -0700 Subject: [PATCH 025/202] comment grammar --- src/engine/zsmOps.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/zsmOps.cpp b/src/engine/zsmOps.cpp index 24d543b8f..b26e7a273 100644 --- a/src/engine/zsmOps.cpp +++ b/src/engine/zsmOps.cpp @@ -114,7 +114,7 @@ SafeWriter* DivEngine::saveZSM(unsigned int zsmrate, bool loop) { loopNow=true; if (loopNow) { // If Virtual Tempo is in use, our exact loop point - // might be skipped to quantization error. + // might be skipped due to quantization error. // If this happens, the tick immediately following is our loop point. if (ticks==1 || !(loopOrder==curOrder && loopRow==curRow)) { loopPos=zsm.getoffset(); From a7e9218562af843050c9a363f1219311b4cd5400 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 28 Jul 2023 04:27:53 -0500 Subject: [PATCH 026/202] Namco WSG: fix custom clock --- src/engine/platform/namcowsg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/platform/namcowsg.cpp b/src/engine/platform/namcowsg.cpp index 5b804b23f..5ac493f19 100644 --- a/src/engine/platform/namcowsg.cpp +++ b/src/engine/platform/namcowsg.cpp @@ -571,7 +571,7 @@ void DivPlatformNamcoWSG::setFlags(const DivConfig& flags) { chipClock=3072000; CHECK_CUSTOM_CLOCK; rate=chipClock/32; - namco->device_clock_changed(rate); + namco->device_clock_changed(96000); for (int i=0; irate=rate; } From d5b18ab080ffcc3a695cbafdaaf3b87b3c2450eb Mon Sep 17 00:00:00 2001 From: Eknous-P Date: Fri, 28 Jul 2023 18:24:56 +0400 Subject: [PATCH 027/202] is this "the button" --- src/gui/effectList.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gui/effectList.cpp b/src/gui/effectList.cpp index 6b309cdc9..e9da54d56 100644 --- a/src/gui/effectList.cpp +++ b/src/gui/effectList.cpp @@ -12,7 +12,8 @@ void FurnaceGUI::drawEffectList() { ImGui::SetNextWindowSizeConstraints(ImVec2(60.0f*dpiScale,20.0f*dpiScale),ImVec2(canvasW,canvasH)); if (ImGui::Begin("Effect List",&effectListOpen,globalWinFlags)) { ImGui::Text("Chip at cursor: %s",e->getSystemName(e->sysOfChan[cursor.xCoarse])); - if (ImGui::TreeNode("Sort Effects")) { + if (ImGui::Button("Sort Effects")) ImGui::OpenPopup("effectSort"); + if (ImGui::BeginPopup("effectSort")) { ImGui::Checkbox("Pitch",&effectShowPitch); ImGui::Checkbox("Song",&effectShowSong); ImGui::Checkbox("Time",&effectShowTime); @@ -45,7 +46,7 @@ void FurnaceGUI::drawEffectList() { effectShowSysPrimary = false; effectShowSysSecondary = false; } - ImGui::TreePop(); + ImGui::EndPopup(); } if (ImGui::BeginTable("effectList",2)) { From dd00d3bc66514f6d6ffa61906efda00f203e6911 Mon Sep 17 00:00:00 2001 From: Eknous-P Date: Fri, 28 Jul 2023 18:39:40 +0400 Subject: [PATCH 028/202] cleanup --- src/gui/effectList.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/gui/effectList.cpp b/src/gui/effectList.cpp index e9da54d56..f6b4c6c31 100644 --- a/src/gui/effectList.cpp +++ b/src/gui/effectList.cpp @@ -23,6 +23,7 @@ void FurnaceGUI::drawEffectList() { ImGui::Checkbox("System (primary)",&effectShowSysPrimary); ImGui::Checkbox("System (secondary)",&effectShowSysSecondary); ImGui::Checkbox("Miscellaneous",&effectShowMisc); + if (ImGui::Button("All")) { effectShowMisc = true; effectShowPanning = true; @@ -46,6 +47,7 @@ void FurnaceGUI::drawEffectList() { effectShowSysPrimary = false; effectShowSysSecondary = false; } + ImGui::EndPopup(); } @@ -63,6 +65,10 @@ void FurnaceGUI::drawEffectList() { for (int i=0; i<256; i++) { const char* name=e->getEffectDesc(i,cursor.xCoarse); bool effectShow = true; + if (name==prevName) { + continue; + } + prevName=name; switch (fxColors[i]) { case GUI_COLOR_PATTERN_EFFECT_MISC: effectShow = effectShowMisc; break; case GUI_COLOR_PATTERN_EFFECT_SONG: effectShow = effectShowSong; break; @@ -75,10 +81,6 @@ void FurnaceGUI::drawEffectList() { case GUI_COLOR_PATTERN_EFFECT_SYS_SECONDARY: effectShow = effectShowSysSecondary; break; default: effectShow = true; break; } - if (name==prevName) { - continue; - } - prevName=name; if (name!=NULL && effectShow) { ImGui::TableNextRow(); ImGui::TableNextColumn(); From 5c5ccbeb72c76a13db64392d39e58adf863a6a75 Mon Sep 17 00:00:00 2001 From: Eknous-P Date: Fri, 28 Jul 2023 20:38:13 +0400 Subject: [PATCH 029/202] change to beginpopupcontextitem --- src/gui/effectList.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/effectList.cpp b/src/gui/effectList.cpp index f6b4c6c31..8dd0b327a 100644 --- a/src/gui/effectList.cpp +++ b/src/gui/effectList.cpp @@ -13,7 +13,7 @@ void FurnaceGUI::drawEffectList() { if (ImGui::Begin("Effect List",&effectListOpen,globalWinFlags)) { ImGui::Text("Chip at cursor: %s",e->getSystemName(e->sysOfChan[cursor.xCoarse])); if (ImGui::Button("Sort Effects")) ImGui::OpenPopup("effectSort"); - if (ImGui::BeginPopup("effectSort")) { + if (ImGui::BeginPopupContextItem("effectSort")) { ImGui::Checkbox("Pitch",&effectShowPitch); ImGui::Checkbox("Song",&effectShowSong); ImGui::Checkbox("Time",&effectShowTime); From 3e3f582afb2e410892e1e4621e5a0dfb7c2e5605 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Fri, 28 Jul 2023 13:51:24 -0700 Subject: [PATCH 030/202] New systems README.md. The idea: list all the systems shown in the "new file" dialog, link to their chips. Also, moved all the important info out of genesis.md and removed it, finally! Also also, fixed the tiniest issue in the credits. :blush: --- doc/7-systems/README.md | 484 ++++++++++++++++++++++++++++++++++----- doc/7-systems/genesis.md | 61 ----- doc/7-systems/ym2612.md | 22 +- src/gui/about.cpp | 2 +- 4 files changed, 452 insertions(+), 117 deletions(-) delete mode 100644 doc/7-systems/genesis.md diff --git a/doc/7-systems/README.md b/doc/7-systems/README.md index 294fdc9e9..e651d2d1f 100644 --- a/doc/7-systems/README.md +++ b/doc/7-systems/README.md @@ -1,56 +1,434 @@ -# sound chips +# systems -this is a list of sound chips that Furnace supports, including effects. +this is a list of systems that Furnace supports, as listed in the new file dialog. each chip links to a page with information and a list of supported effects. -- [Amiga](amiga.md) -- [AY-3-8910](ay8910.md) -- [Microchip AY8930](ay8930.md) -- [Bubble System WSG](bubblesystem.md) -- [Casio PV-1000](pv1000.md) -- [Commodore 64](c64.md) -- [Commodore PET](pet.md) -- [Commodore VIC-20](vic20.md) -- [Generic PCM DAC](dac.md) -- [Famicom Disk System](fds.md) -- [Game Boy](game-boy.md) -- [Konami K007232](k007232.md) -- [Konami K056320](k056320.md) -- [Konami SCC](scc.md) -- [Konami VRC6](vrc6.md) -- [Atari Lynx](lynx.md) -- [Namco 163](n163.md) -- [Namco WSG](namco.md) -- [NES](nes.md) -- [Nintendo MMC5](mmc5.md) -- [OKI MSM5232](msm5232.md) -- [OKI MSM6258](msm6258.md) -- [OKI MSM6295](msm6295.md) -- [PC Engine/TurboGrafx-16](pce.md) -- [PC Speaker](pcspkr.md) -- [Philips SAA1099](saa1099.md) -- [Pokémon mini](pokemini.md) -- [Capcom QSound](qsound.md) -- [Ricoh RF5C68](ricoh.md) -- [SegaPCM](segapcm.md) -- [Seta/Allumer X1-010](x1-010.md) -- [SNES](snes.md) -- [Atari 2600 (TIA)](tia.md) -- [tildearrow Sound Unit](soundunit.md) -- [TI SN76489](sms.md) -- [Toshiba T6W28](t6w28.md) -- [VERA](vera.md) -- [WonderSwan](wonderswan.md) -- [Virtual Boy](virtual-boy.md) -- [Yamaha YM2413 (OPLL)](opll.md) -- [Yamaha OPL](opl.md) -- [Yamaha YM2151](ym2151.md) -- [Yamaha YM2203](ym2203.md) -- [Yamaha YM2414 (OPZ)](opz.md) -- [Yamaha YM2608](ym2608.md) -- [Neo Geo/YM2610](ym2610.md) -- [Taito Arcade/YM2610B](ym2610b.md) -- [Yamaha YM2612](ym2612.md) -- [Yamaha YMZ280B](ymz280b.md) -- [ZX Spectrum Beeper](zxbeep.md) +some systems have alternate chips, such as the Sega Genesis having a YM2612, a YM3438, or YMF276 depending on the model. this list shows the default configuration. -Furnace also reads .dmf files with the [Yamaha YMU759](ymu759.md) system, but... +## Game consoles +- **Sega Genesis**: [YM3438](ym2612.md), [SN76489](sms.md) +- **Sega Genesis (extended channel 3)**: [YM3438](ym2612.md), [SN76489](sms.md) +- **Sega Genesis (CSM)**: [YM3438](ym2612.md), [SN76489](sms.md) +- **Sega Genesis (DualPCM)**: [YM3438](ym2612.md), [SN76489](sms.md) +- **Sega Genesis (DualPCM, extended channel 3)**: [YM3438](ym2612.md), [SN76489](sms.md) +- **Sega Genesis (with Sega CD)**: [YM3438](ym2612.md), [SN76489](sms.md), [RF5C164](ricoh.md) +- **Sega Genesis (extended channel 3 with Sega CD)**: [YM3438](ym2612.md), [SN76489](sms.md), [RF5C164](ricoh.md) +- **Sega Genesis (CSM with Sega CD)**: [YM3438](ym2612.md), [SN76489](sms.md), [RF5C164](ricoh.md) +- **Sega Master System**: [SN76489](sms.md) +- **Sega Master System (with FM expansion)**: [SN76489](sms.md), [YM2413](opll.md) +- **Sega Master System (with FM expansion in drums mode)**: [SN76489](sms.md), [YM2413](opll.md) +- **Sega Game Gear**: [SN76489](sms.md) +- **Game Boy**: [Game Boy](game-boy.md) +- **Neo Geo Pocket**: [T6W28](t6w28.md), DAC +- **NEC PC Engine/TurboGrafx-16**: [HuC6280](pce.md) +- **NES**: [2A03](nes.md) +- **Famicom with Konami VRC6**: [2A03](nes.md), [VRC6](vrc6.md) +- **Famicom with Konami VRC7**: [2A03](nes.md), [VRC7](opl.md) +- **Famicom with MMC5**: [2A03](nes.md), [MMC5](mmc5.md) +- **Famicom with Sunsoft 5B**: [2A03](nes.md), [5B](ay8910.md) +- **Famicom with Namco 163**: [2A03](nes.md), [N163](n163.md) +- **Famicom Disk System**: [2A03](nes.md), [FDS](fds.md) +- **SNES**: [SPC700](snes.md) +- **Mattel Intellivision**: [AY-3-8914](ay8910.md) +- **Vectrex**: [AY-3-8910](ay8910.md) +- **Neo Geo AES**: [YM2610](ym2610.md) +- **Neo Geo AES (extended channel 2)**: [YM2610](ym2610.md) +- **Atari 2600/7800**: [TIA](tia.md) +- **Atari 7800 + Ballblazer/Commando**: [TIA](tia.md), [POKEY](pokey.md) +- **Atari Lynx**: [Lynx](lynx.md) +- **WonderSwan**: [WonderSwan](wonderswan.md) +- **Virtual Boy**: [Virtual Boy](virtual-boy.md) +- **Gamate**: [AY-3-8910](ay8910.md) +- **Pokémon Mini**: [Pokémon Mini](pokemini.md) +- **Tiger Game.com**: [SM8521](sm8521.md) +- **Casio PV-1000**: [PV-1000](pv1000.md) + +## Computers +- **Commodore PET**: [PET](pet.md) +- **Commodore VIC-20**: [VIC](vic20.md) +- **Commodore Plus/4**: [TED](ted.md) +- **Commodore 64 (6581 SID)**: [MOS 6581](c64.md) +- **Commodore 64 (8580 SID)**: [MOS 8580](c64.md) +- **Commodore 64 (6581 SID + Sound Expander)**: [MOS 6581](c64.md), [YM3526](opl.md) +- **Commodore 64 (6581 SID + Sound Expander in drums mode)**: [MOS 6581](c64.md), [YM3526](opl.md) +- **Commodore 64 (8580 SID + Sound Expander)**: [MOS 8580](c64.md), [YM3526](opl.md) +- **Commodore 64 (8580 SID + Sound Expander in drums mode)**: [MOS 8580](c64.md), [YM3526](opl.md) +- **Commodore 64 (6581 SID + FM-YAM)**: [MOS 6581](c64.md), [YM3812](opl.md) +- **Commodore 64 (6581 SID + FM-YAM in drums mode)**: [MOS 6581](c64.md), [YM3812](opl.md) +- **Commodore 64 (8580 SID + FM-YAM)**: [MOS 8580](c64.md), [YM3812](opl.md) +- **Commodore 64 (8580 SID + FM-YAM in drums mode)**: [MOS 8580](c64.md), [YM3812](opl.md) +- **Amiga**: [Amiga](amiga.md) +- **MSX**: [AY-3-8910](ay8910.md) +- **MSX + SFG-01**: [YM2149(F)](ay8910.md), [YM2151](ym2152.md) +- **MSX + MSX-AUDIO**: [YM2149(F)](ay8910.md), [Y8950](opl.md) +- **MSX + MSX-AUDIO (drums mode)**: [YM2149(F)](ay8910.md), [Y8950](opl.md) +- **MSX + MSX-MUSIC**: [YM2149(F)](ay8910.md), [YM2413](opll.md) +- **MSX + MSX-MUSIC (drums mode)**: [YM2149(F)](ay8910.md), [YM2413](opll.md) +- **MSX + Darky**: [YM2149(F)](ay8910.md), [AY8930](ay8930.md) × 2 +- **MSX + Playsoniq**: [YM2149(F)](ay8910.md), [SN76489](sms.md), [MOS 8580](c64.md), [SCC+](scc.md) +- **MSX + SCC**: [YM2149(F)](ay8910.md), [SCC](ess.md) +- **MSX + SCC+**: [YM2149(F)](ay8910.md), [SCC+](scc.md) +- **MSX + Neotron**: [YM2149(F)](ay8910.md), [YM2610](ym2610.md) +- **MSX + Neotron (extended channel 2)**: [YM2149(F)](ay8910.md), [YM2610](ym2610.md) +- **MSX + Neotron (with YM2610B)**: [YM2149(F)](ay8910.md), [YM2610B](ym2610b.md) +- **MSX + Neotron (with YM2610B; extended channel 3)**: [YM2149(F)](ay8910.md), [YM2610B](ym2610b.md) +- **MSX + SIMPL**: [YM2149(F)](ay8910.md), DAC +- **NEC PC-88 (with PC-8801-10)**: [PC Speaker](pcspkr.md), [AY-3-8910](ay8910.md) × 2 +- **NEC PC-88 (with PC-8801-11)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) +- **NEC PC-88 (with PC-8801-11; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) +- **NEC PC-88 (with PC-8801-23)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) +- **NEC PC-88 (with PC-8801-23; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) +- **NEC PC-88 (with HMB-20 HIBIKI-8800)**: [PC Speaker](pcspkr.md), [YM2151](ym2152.md) +- **NEC PC-8801mk2SR (with PC-8801-10)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [AY-3-8910](ay8910.md) × 2 +- **NEC PC-8801mk2SR (with PC-8801-10; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [AY-3-8910](ay8910.md) × 2 +- **NEC PC-8801mk2SR (with PC-8801-11)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) × 2 +- **NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on internal OPN)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) × 2 +- **NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on external OPN)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) × 2 +- **NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) × 2 +- **NEC PC-8801mk2SR (with PC-8801-23)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2608](ym2608.md) +- **NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on internal OPN)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2608](ym2608.md) +- **NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on external OPN)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2608](ym2608.md) +- **NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2608](ym2608.md) +- **NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2151](ym2152.md) +- **NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2151](ym2152.md) +- **NEC PC-8801FA (with PC-8801-10)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [AY-3-8910](ay8910.md) × 2 +- **NEC PC-8801FA (with PC-8801-10; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [AY-3-8910](ay8910.md) × 2 +- **NEC PC-8801FA (with PC-8801-11)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2203](ym2203.md) +- **NEC PC-8801FA (with PC-8801-11; extended channel 3 on internal OPN)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2203](ym2203.md) +- **NEC PC-8801FA (with PC-8801-11; extended channel 3 on external OPN)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2203](ym2203.md) +- **NEC PC-8801FA (with PC-8801-11; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2203](ym2203.md) +- **NEC PC-8801FA (with PC-8801-23)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) × 2 +- **NEC PC-8801FA (with PC-8801-23; extended channel 3 on internal OPN)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) × 2 +- **NEC PC-8801FA (with PC-8801-23; extended channel 3 on external OPN)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) × 2 +- **NEC PC-8801FA (with PC-8801-23; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) × 2 +- **NEC PC-8801FA (with HMB-20 HIBIKI-8800)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2151](ym2152.md) +- **NEC PC-8801FA (with HMB-20 HIBIKI-8800; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2151](ym2152.md) +- **NEC PC-98 (with PC-9801-26/K)**: [YM2203](ym2203.md), [PC Speaker](pcspkr.md) +- **NEC PC-98 (with PC-9801-26/K; extended channel 3)**: [YM2203](ym2203.md), [PC Speaker](pcspkr.md) +- **NEC PC-98 (with Sound Orchestra)**: [YM2203](ym2203.md), [YM3812](opl.md), [PC Speaker](pcspkr.md) +- **NEC PC-98 (with Sound Orchestra; extended channel 3)**: [YM2203](ym2203.md), [YM3812](opl.md), [PC Speaker](pcspkr.md) +- **NEC PC-98 (with Sound Orchestra in drums mode)**: [YM2203](ym2203.md), [YM3812](opl.md), [PC Speaker](pcspkr.md) +- **NEC PC-98 (with Sound Orchestra in drums mode; extended channel 3)**: [YM2203](ym2203.md), [YM3812](opl.md), [PC Speaker](pcspkr.md) +- **NEC PC-98 (with Sound Orchestra V)**: [YM2203](ym2203.md), [Y8950](opl.md), [PC Speaker](pcspkr.md) +- **NEC PC-98 (with Sound Orchestra V; extended channel 3)**: [YM2203](ym2203.md), [Y8950](opl.md), [PC Speaker](pcspkr.md) +- **NEC PC-98 (with Sound Orchestra V in drums mode)**: [YM2203](ym2203.md), [Y8950](opl.md), [PC Speaker](pcspkr.md) +- **NEC PC-98 (with Sound Orchestra V in drums mode; extended channel 3)**: [YM2203](ym2203.md), [Y8950](opl.md), [PC Speaker](pcspkr.md) +- **NEC PC-98 (with PC-9801-86)**: [YM2608](ym2608.md), [DAC](pcspkr.md) +- **NEC PC-98 (with PC-9801-86; extended channel 3)**: [YM2608](ym2608.md), [DAC](pcspkr.md) +- **NEC PC-98 (with PC-9801-73)**: [YM2608](ym2608.md), [PC Speaker](pcspkr.md) +- **NEC PC-98 (with PC-9801-73; extended channel 3)**: [YM2608](ym2608.md), [PC Speaker](pcspkr.md) +- **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible)**: [YM2203](ym2203.md), [YMF262](opl.md), [PC Speaker](pcspkr.md) +- **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible; extended channel 3)**: [YM2203](ym2203.md), [YMF262](opl.md), [PC Speaker](pcspkr.md) +- **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode)**: [YM2203](ym2203.md), [YMF262](opl.md), [PC Speaker](pcspkr.md) +- **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode; extended channel 3)**: [YM2203](ym2203.md), [YMF262](opl.md), [PC Speaker](pcspkr.md) +- **ZX Spectrum (48K, SFX-like engine)**: [ZXS Beeper](zxbeep.md) +- **ZX Spectrum (48K, QuadTone engine)**: [ZXS Beeper](zxbeep.md) +- **ZX Spectrum (128K)**: [AY-3-8910](ay8910.md) +- **ZX Spectrum (128K) with TurboSound FM**: [AY-3-8910](ay8910.md), [YM2203](ym2203.md) × 2 +- **ZX Spectrum (128K) with TurboSound FM (extended channel 3 on first OPN)**: [AY-3-8910](ay8910.md), [YM2203](ym2203.md) × 2 +- **ZX Spectrum (128K) with TurboSound FM (extended channel 3 on second OPN)**: [AY-3-8910](ay8910.md), [YM2203](ym2203.md) × 2 +- **ZX Spectrum (128K) with TurboSound FM (extended channel 3 on both OPNs)**: [AY-3-8910](ay8910.md), [YM2203](ym2203.md) × 2 +- **ZX Spectrum (128K) with TurboSound**: [AY-3-8910](ay8910.md) × 3 +- **Amstrad CPC**: [AY-3-8910](ay8910.md) +- **Atari 800**: [POKEY](pokey.md) +- **Atari 800 (stereo)**: [POKEY](pokey.md) × 2 +- **Atari ST**: [YM2149(F)](ay8910.md) +- **Atari STE**: [YM2149(F)](ay8910.md), DAC +- **SAM Coupé**: [SAA1099](saa1099.md) +- **BBC Micro**: [SN76489A](sms.md) +- **PC (barebones)**: [PC Speaker](pcspkr.md) +- **IBM PCjr**: [SN76496](sms.md) +- **Tandy 1000**: [SN76496](sms.md), [PC Speaker](pcspkr.md) +- **PC + Covox Sound Master**: [AY8930](ay8930.md), [PC Speaker](pcspkr.md) +- **PC + SSI 2001**: [MOS 6581](c64.md), [PC Speaker](pcspkr.md) +- **PC + Game Blaster**: [SAA1099](saa1099.md) × 2, [PC Speaker](pcspkr.md) +- **PC + AdLib**: [YM3812](opl.md), [PC Speaker](pcspkr.md) +- **PC + AdLib (drums mode)**: [YM3812](opl.md), [PC Speaker](pcspkr.md) +- **PC + Sound Blaster**: [YM3812](opl.md), [PC Speaker](pcspkr.md), DAC +- **PC + AdLib/Sound Blaster (drums mode)**: [YM3812](opl.md), [PC Speaker](pcspkr.md), DAC +- **PC + Sound Blaster w/Game Blaster Compatible**: [YM3812](opl.md), [SAA1099](saa1099.md) × 2, DAC, [PC Speaker](pcspkr.md) +- **PC + Sound Blaster w/Game Blaster Compatible (drums mode)**: [YM3812](opl.md), [SAA1099](saa1099.md) × 2, DAC, [PC Speaker](pcspkr.md) +- **PC + Sound Blaster Pro**: [YM3812](opl.md) × 2, DAC, [PC Speaker](pcspkr.md) +- **PC + Sound Blaster Pro (drums mode)**: [YM3812](opl.md) × 2, DAC, [PC Speaker](pcspkr.md) +- **PC + Sound Blaster Pro 2**: [YMF262](opl.md), DAC, [PC Speaker](pcspkr.md) +- **PC + Sound Blaster Pro 2 (drums mode)**: [YMF262](opl.md), DAC, [PC Speaker](pcspkr.md) +- **PC + PC-FXGA**: [HuC6280](pce.md), [PC Speaker](pcspkr.md) +- **PC + SAAYM**: [YM2151](ym2152.md), [SAA1099](saa1099.md) × 2, [PC Speaker](pcspkr.md) +- **Sharp X1**: [AY-3-8910](ay8910.md) +- **Sharp X1 + FM Addon**: [AY-3-8910](ay8910.md), [YM2151](ym2152.md) +- **Sharp X68000**: [YM2151](ym2152.md), [MSM6258](msm6258.md) +- **FM Towns**: [YM3438](ym2612.md), [RF5C68](ricoh.md) +- **FM Towns (extended channel 3)**: [YM3438](ym2612.md), [RF5C68](ricoh.md) +- **FM Towns (CSM)**: [YM3438](ym2612.md), [RF5C68](ricoh.md) +- **Commander X16 (VERA only)**: [VERA](vera.md) +- **Commander X16 (with OPM)**: [VERA](vera.md), [YM2151](ym2152.md) +- **Commander X16 (with Twin OPL3)**: [VERA](vera.md), [YMF262](opl.md) × 2 +- **TI-99/4A**: [SN94624](sms.md) + +## Arcade systems +- **Pong**: Pong +- **Bally Midway MCR**: [AY-3-8910](ay8910.md) × 2 +- **Williams/Midway Y/T unit w/ADPCM sound board**: [YM2151](ym2152.md), [MSM6295](msm6295.md) +- **Konami Gyruss**: [AY-3-8910](ay8910.md) × 5 +- **Konami Bubble System**: [AY-3-8910](ay8910.md) × 2, [Konami WSG](bubblesystem.md) +- **Konami MX5000**: [YM2151](ym2152.md), [K007232](k007232.md) +- **Konami Battlantis**: [YM3812](opl.md) × 2 +- **Konami Battlantis (drums mode on first OPL2)**: [YM3812](opl.md) × 2 +- **Konami Battlantis (drums mode on second OPL2)**: [YM3812](opl.md) × 2 +- **Konami Battlantis (drums mode on both OPL2s)**: [YM3812](opl.md) × 2 +- **Konami Fast Lane**: [K007232](k007232.md) × 2 +- **Konami Chequered Flag**: [YM2151](ym2152.md), [K007232](k007232.md) × 2 +- **Konami Haunted Castle**: [YM3812](opl.md), [SCC](ess.md), [K007232](k007232.md) +- **Konami Haunted Castle (drums mode)**: [YM3812](opl.md), [SCC](ess.md), [K007232](k007232.md) +- **Konami Hot Chase**: [K007232](k007232.md) × 3 +- **Konami S.P.Y.**: [YM3812](opl.md), [K007232](k007232.md) × 2 +- **Konami S.P.Y. (drums mode)**: [YM3812](opl.md), [K007232](k007232.md) × 2 +- **Konami Rollergames**: [YM3812](opl.md), [K053260](k056320.md) +- **Konami Rollergames (drums mode)**: [YM3812](opl.md), [K053260](k056320.md) +- **Konami Golfing Greats**: [K053260](k056320.md) +- **Konami Lightning Fighters**: [YM2151](ym2152.md), [K053260](k056320.md) +- **Konami Over Drive**: [YM2151](ym2152.md), [K053260](k056320.md) × 2 +- **Konami Asterix**: [YM2151](ym2152.md), [K053260](k056320.md) +- **Konami Hexion**: [SCC](ess.md), [MSM6295](msm6295.md) +- **Sega Kyugo**: [AY-3-8910](ay8910.md) × 2 +- **Sega System 1**: [SN76489A](sms.md) × 2 +- **Sega System E**: [SN76489](sms.md) × 2 +- **Sega System E (with FM expansion)**: [SN76489](sms.md) × 2, [YM2413](opll.md) +- **Sega System E (with FM expansion in drums mode)**: [SN76489](sms.md) × 2, [YM2413](opll.md) +- **Sega Hang-On**: [YM2203](ym2203.md), [SegaPCM](segapcm.md) +- **Sega Hang-On (extended channel 3)**: [YM2203](ym2203.md), [SegaPCM](segapcm.md) +- **Sega OutRun/X Board**: [YM2151](ym2152.md), [SegaPCM](segapcm.md) +- **Sega System 24**: [YM2151](ym2152.md), DAC +- **Sega System 18**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) +- **Sega System 18 (extended channel 3 on first OPN2C)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) +- **Sega System 18 (extended channel 3 on second OPN2C)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) +- **Sega System 18 (extended channel 3 on both OPN2Cs)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) +- **Sega System 32**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) +- **Sega System 32 (extended channel 3 on first OPN2C)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) +- **Sega System 32 (extended channel 3 on second OPN2C)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) +- **Sega System 32 (extended channel 3 on both OPN2Cs)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) +- **Capcom Exed Eyes**: [AY-3-8910](ay8910.md), [SN76489](sms.md) × 2 +- **Capcom Arcade**: [YM2203](ym2203.md) × 2 +- **Capcom Arcade (extended channel 3 on first OPN)**: [YM2203](ym2203.md) × 2 +- **Capcom Arcade (extended channel 3 on second OPN)**: [YM2203](ym2203.md) × 2 +- **Capcom Arcade (extended channel 3 on both OPNs)**: [YM2203](ym2203.md) × 2 +- **Capcom CPS-1**: [YM2151](ym2152.md), [MSM6295](msm6295.md) +- **Capcom CPS-2 (QSound)**: [QSound](qsound.md) +- **Jaleco Ginga NinkyouDen**: [YM2149(F)](ay8910.md), [Y8950](opl.md) +- **Jaleco Ginga NinkyouDen (drums mode)**: [YM2149(F)](ay8910.md), [Y8950](opl.md) +- **Jaleco Mega System 1**: [YM2151](ym2152.md), [MSM6295](msm6295.md) × 2 +- **NMK 16-bit Arcade**: [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 +- **NMK 16-bit Arcade (extended channel 3)**: [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 +- **Kaneko DJ Boy**: [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 +- **Kaneko DJ Boy (extended channel 3)**: [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 +- **Kaneko Air Buster**: [YM2203](ym2203.md), [MSM6295](msm6295.md) +- **Kaneko Air Buster (extended channel 3)**: [YM2203](ym2203.md), [MSM6295](msm6295.md) +- **Kaneko Toybox System**: [YM2149(F)](ay8910.md) × 2, [MSM6295](msm6295.md) +- **Kaneko Jackie Chan**: [YMZ280B](ymz280b.md) +- **Super Kaneko Nova System**: [YMZ280B](ymz280b.md) +- **Tecmo Ninja Gaiden**: [YM2203](ym2203.md) × 2, [MSM6295](msm6295.md) +- **Tecmo Ninja Gaiden (extended channel 3 on first OPN)**: [YM2203](ym2203.md) × 2, [MSM6295](msm6295.md) +- **Tecmo Ninja Gaiden (extended channel 3 on second OPN)**: [YM2203](ym2203.md) × 2, [MSM6295](msm6295.md) +- **Tecmo Ninja Gaiden (extended channel 3 on both OPNs)**: [YM2203](ym2203.md) × 2, [MSM6295](msm6295.md) +- **Tecmo System**: [YMF262](opl.md), [YMZ280B](ymz280b.md), [MSM6295](msm6295.md) +- **Tecmo System (drums mode)**: [YMF262](opl.md), [YMZ280B](ymz280b.md), [MSM6295](msm6295.md) +- **Seibu Kaihatsu Raiden**: [YM3812](opl.md), [MSM6295](msm6295.md) +- **Seibu Kaihatsu Raiden (drums mode)**: [YM3812](opl.md), [MSM6295](msm6295.md) +- **Sunsoft Shanghai 3**: [YM2149(F)](ay8910.md), [MSM6295](msm6295.md) +- **Sunsoft Arcade**: [YM3438](ym2612.md), [MSM6295](msm6295.md) +- **Sunsoft Arcade (extended channel 3)**: [YM3438](ym2612.md), [MSM6295](msm6295.md) +- **Atari Klax**: [MSM6295](msm6295.md) +- **Atari Rampart**: [YM2413](opll.md), [MSM6295](msm6295.md) +- **Atari Rampart (drums mode)**: [YM2413](opll.md), [MSM6295](msm6295.md) +- **Atari JSA IIIs**: [YM2151](ym2152.md), [MSM6295](msm6295.md) × 2 +- **Atari Marble Madness**: [YM2151](ym2152.md), [POKEY](pokey.md) +- **Atari Championship Sprint**: [YM2151](ym2152.md), [POKEY](pokey.md) × 2 +- **Atari Tetris**: [POKEY](pokey.md) × 2 +- **Atari I, Robot**: [POKEY](pokey.md) × 4 +- **Data East Karnov**: [YM2203](ym2203.md), [YM3526](opl.md) +- **Data East Karnov (extended channel 3)**: [YM2203](ym2203.md), [YM3526](opl.md) +- **Data East Karnov (drums mode)**: [YM2203](ym2203.md), [YM3526](opl.md) +- **Data East Karnov (extended channel 3; drums mode)**: [YM2203](ym2203.md), [YM3526](opl.md) +- **Data East Arcade**: [YM2203](ym2203.md), [YM3812](opl.md), [MSM6295](msm6295.md) +- **Data East Arcade (extended channel 3)**: [YM2203](ym2203.md), [YM3812](opl.md), [MSM6295](msm6295.md) +- **Data East Arcade (drums mode)**: [YM2203](ym2203.md), [YM3812](opl.md), [MSM6295](msm6295.md) +- **Data East Arcade (extended channel 3; drums mode)**: [YM2203](ym2203.md), [YM3812](opl.md), [MSM6295](msm6295.md) +- **Data East PCX**: [YM2203](ym2203.md), [HuC6280](pce.md) +- **Data East PCX (extended channel 3)**: [YM2203](ym2203.md), [HuC6280](pce.md) +- **Data East Dark Seal**: [YM2151](ym2152.md), [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 +- **Data East Dark Seal (extended channel 3)**: [YM2151](ym2152.md), [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 +- **Data East Deco 156**: [MSM6295](msm6295.md) × 2 +- **Data East MLC**: [YMZ280B](ymz280b.md) +- **SNK Ikari Warriors**: [YM3526](opl.md) × 2 +- **SNK Ikari Warriors (drums mode on first OPL)**: [YM3526](opl.md) × 2 +- **SNK Ikari Warriors (drums mode on second OPL)**: [YM3526](opl.md) × 2 +- **SNK Ikari Warriors (drums mode on both OPLs)**: [YM3526](opl.md) × 2 +- **SNK Triple Z80**: [Y8950](opl.md), [YM3526](opl.md) +- **SNK Triple Z80 (drums mode on Y8950)**: [Y8950](opl.md), [YM3526](opl.md) +- **SNK Triple Z80 (drums mode on OPL)**: [Y8950](opl.md), [YM3526](opl.md) +- **SNK Triple Z80 (drums mode on Y8950 and OPL)**: [Y8950](opl.md), [YM3526](opl.md) +- **SNK Chopper I**: [Y8950](opl.md), [YM3812](opl.md) +- **SNK Chopper I (drums mode on Y8950)**: [Y8950](opl.md), [YM3812](opl.md) +- **SNK Chopper I (drums mode on OPL2)**: [Y8950](opl.md), [YM3812](opl.md) +- **SNK Chopper I (drums mode on Y8950 and OPL2)**: [Y8950](opl.md), [YM3812](opl.md) +- **SNK Touchdown Fever**: [YM3526](opl.md), [Y8950](opl.md) +- **SNK Touchdown Fever (drums mode on OPL)**: [YM3526](opl.md), [Y8950](opl.md) +- **SNK Touchdown Fever (drums mode on Y8950)**: [YM3526](opl.md), [Y8950](opl.md) +- **SNK Touchdown Fever (drums mode on OPL and Y8950)**: [YM3526](opl.md), [Y8950](opl.md) +- **Alpha denshi Alpha-68K**: [YM2203](ym2203.md), [YM2413](opll.md), DAC +- **Alpha denshi Alpha-68K (extended channel 3)**: [YM2203](ym2203.md), [YM2413](opll.md), DAC +- **Alpha denshi Alpha-68K (drums mode)**: [YM2203](ym2203.md), [YM2413](opll.md), DAC +- **Alpha denshi Alpha-68K (extended channel 3; drums mode)**: [YM2203](ym2203.md), [YM2413](opll.md), DAC +- **Alpha denshi Equites**: [MSM5232](msm5232.md), [AY-3-8910](ay8910.md), DAC +- **Neo Geo MVS**: [YM2610](ym2610.md) +- **Neo Geo MVS (extended channel 2)**: [YM2610](ym2610.md) +- **Nichibutsu Mag Max**: [AY-3-8910](ay8910.md) × 3 +- **Namco (3-channel WSG)**: [Namco](namco.md) +- **Namco Mappy**: [C15](namco.md) +- **Namco Pac-Land**: [C30](namco.md) +- **Namco System 86**: [YM2151](ym2152.md), [C30](namco.md) +- **Namco Thunder Ceptor**: [YM2151](ym2152.md), [C30](namco.md), DAC +- **Namco System 1**: [YM2151](ym2152.md), [C30](namco.md), DAC +- **Taito Arcade**: [YM2610B](ym2610b.md) +- **Taito Arcade (extended channel 3)**: [YM2610B](ym2610b.md) +- **Taito Metal Soldier Isaac II**: [MSM5232](msm5232.md), [AY-3-8910](ay8910.md) × 2 +- **Taito The Fairyland Story**: [MSM5232](msm5232.md), [YM2149(F)](ay8910.md), DAC +- **Taito Wyvern F-0**: [MSM5232](msm5232.md), [YM2149(F)](ay8910.md) × 2, DAC +- **Seta 1**: [X1-010](x1-010.md) +- **Seta 1 + FM addon**: [X1-010](x1-010.md), [YM3438](ym2612.md) +- **Seta 1 + FM addon (extended channel 3)**: [X1-010](x1-010.md), [YM3438](ym2612.md) +- **Seta 2**: [X1-010](x1-010.md) +- **Sammy/Seta/Visco SSV**: [ES5506](es5506.md) +- **Cave 68000**: [YMZ280B](ymz280b.md) +- **Coreland Cyber Tank**: [Y8950](opl.md) × 2 +- **Coreland Cyber Tank (drums mode)**: [Y8950](opl.md) × 2 +- **ICE Skimaxx**: [MSM6295](msm6295.md) × 4 +- **Toaplan 1**: [YM3812](opl.md) +- **Toaplan 1 (drums mode)**: [YM3812](opl.md) +- **Dynax/Nakanihon 3rd generation hardware**: [AY-3-8910](ay8910.md), [YM2413](opll.md), [MSM6295](msm6295.md) +- **Dynax/Nakanihon 3rd generation hardware (drums mode)**: [AY-3-8910](ay8910.md), [YM2413](opll.md), [MSM6295](msm6295.md) +- **Dynax/Nakanihon Real Break**: [YM2413](opll.md), [YMZ280B](ymz280b.md) +- **Dynax/Nakanihon Real Break (drums mode)**: [YM2413](opll.md), [YMZ280B](ymz280b.md) +- **Irem M72**: [YM2151](ym2152.md), DAC +- **Irem M92/M107**: [YM2151](ym2152.md), GA20 + +## FM +- **Yamaha YM2151 (OPM)**: [YM2151](ym2152.md) +- **Yamaha YM2203 (OPN)**: [YM2203](ym2203.md) +- **Yamaha YM2203 (extended channel 3)**: [YM2203](ym2203.md) +- **Yamaha YM2608 (OPNA)**: [YM2608](ym2608.md) +- **Yamaha YM2608 (extended channel 3)**: [YM2608](ym2608.md) +- **Yamaha YM2610 (OPNB)**: [YM2610](ym2610.md) +- **Yamaha YM2610 (extended channel 2)**: [YM2610](ym2610.md) +- **Yamaha YM2610B (OPNB2)**: [YM2610B](ym2610b.md) +- **Yamaha YM2610B (extended channel 3)**: [YM2610B](ym2610b.md) +- **Yamaha YM2612 (OPN2)**: [YM2612](ym2612.md) +- **Yamaha YM2612 (extended channel 3)**: [YM2612](ym2612.md) +- **Yamaha YM2612 (OPN2) CSM**: [YM2612](ym2612.md) +- **Yamaha YM2612 (OPN2) with DualPCM**: [YM2612](ym2612.md) +- **Yamaha YM2612 (extended channel 3) with DualPCM**: [YM2612](ym2612.md) +- **Yamaha YM2413 (OPLL)**: [YM2413](opll.md) +- **Yamaha YM2413 (drums mode)**: [YM2413](opll.md) +- **Yamaha YM2414 (OPZ)**: [YM2414](opz.md) +- **Yamaha YM3438 (OPN2C)**: [YM3438](ym2612.md) +- **Yamaha YM3438 (extended channel 3)**: [YM3438](ym2612.md) +- **Yamaha YM3438 (OPN2C) CSM**: [YM3438](ym2612.md) +- **Yamaha YM3438 (OPN2C) with DualPCM**: [YM3438](ym2612.md) +- **Yamaha YM3438 (extended channel 3) with DualPCM**: [YM3438](ym2612.md) +- **Yamaha YM3526 (OPL)**: [YM3526](opl.md) +- **Yamaha YM3526 (drums mode)**: [YM3526](opl.md) +- **Yamaha Y8950**: [Y8950](opl.md) +- **Yamaha Y8950 (drums mode)**: [Y8950](opl.md) +- **Yamaha YM3812 (OPL2)**: [YM3812](opl.md) +- **Yamaha YM3812 (drums mode)**: [YM3812](opl.md) +- **Yamaha YMF262 (OPL3)**: [YMF262](opl.md) +- **Yamaha YMF262 (drums mode)**: [YMF262](opl.md) +- **Yamaha YMU759 (MA-2)**: [YMU759](ymu759.md) + +## Square +- **TI SN76489**: [SN76489](sms.md) +- **TI SN76489A**: [SN76489A](sms.md) +- **TI SN76496**: [SN76496](sms.md) +- **NCR 8496**: [8496](sms.md) +- **Tandy PSSJ 3-voice sound**: [PSSJ](sms.md) +- **Sega PSG (SN76489-like)**: [SN76489](sms.md) +- **Sega PSG (SN76489-like, Stereo)**: [SN76489](sms.md) +- **TI SN94624**: [SN94624](sms.md) +- **TI SN76494**: [SN76494](sms.md) +- **Toshiba T6W28**: [T6W28](t6w28.md) +- **AY-3-8910**: [AY-3-8910](ay8910.md) +- **AY-3-8914**: [AY-3-8914](ay8910.md) +- **Yamaha YM2149(F)**: [YM2149(F)](ay8910.md) +- **Philips SAA1099**: [SAA1099](saa1099.md) +- **PC Speaker**: [PC Speaker](pcspkr.md) +- **Pokémon Mini**: [Pokémon Mini](pokemini.md) +- **Commodore VIC**: [VIC](vic20.md) +- **OKI MSM5232**: [MSM5232](msm5232.md) +- **Pong**: Pong +- **NEC D65010G031**: [PV-1000](pv1000.md) +- **MOS Technology TED**: [TED](ted.md) + +## Sample +- **Amiga**: [Amiga](amiga.md) +- **SegaPCM**: [SegaPCM](segapcm.md) +- **Capcom QSound**: [QSound](qsound.md) +- **Seta/Allumer X1-010**: [X1-010](x1-010.md) +- **Yamaha YMZ280B (PCMD8)**: [YMZ280B](ymz280b.md) +- **Ricoh RF5C68**: [RF5C68](ricoh.md) +- **OKI MSM6258**: [MSM6258](msm6258.md) +- **OKI MSM6295**: [MSM6295](msm6295.md) +- **SNES**: [SPC700](snes.md) +- **Konami K007232**: [K007232](k007232.md) +- **Irem GA20**: GA20 +- **Generic PCM DAC**: DAC +- **Ensoniq ES5506 (OTTO)**: [ES5506](es5506.md) +- **Konami K053260**: [K053260](k056320.md) + +## Wavetable +- **PC Engine**: [HuC6280](pce.md) +- **Konami Bubble System WSG**: [Konami WSG](bubblesystem.md) +- **Konami SCC**: [SCC](ess.md) +- **Konami SCC+**: [SCC+](scc.md) +- **Namco WSG**: [Namco](namco.md) +- **Namco C15 (8-channel mono)**: [C15](namco.md) +- **Namco C30 (8-channel stereo)**: [C30](namco.md) +- **Namco 163**: [N163](n163.md) +- **Famicom Disk System (chip)**: [FDS](fds.md) +- **WonderSwan**: [WonderSwan](wonderswan.md) +- **Virtual Boy**: [Virtual Boy](virtual-boy.md) +- **Seta/Allumer X1-010**: [X1-010](x1-010.md) + +## Specialized +- **MOS Technology SID (6581)**: [MOS 6581](c64.md) +- **MOS Technology SID (8580)**: [MOS 8580](c64.md) +- **Commodore PET (pseudo-wavetable)**: [PET](pet.md) +- **Konami VRC6**: [VRC6](vrc6.md) +- **MMC5**: [MMC5](mmc5.md) +- **Microchip AY8930**: [AY8930](ay8930.md) +- **Game Boy**: [Game Boy](game-boy.md) +- **Atari Lynx**: [Lynx](lynx.md) +- **POKEY**: [POKEY](pokey.md) +- **Atari TIA**: [TIA](tia.md) +- **NES (Ricoh 2A03)**: [2A03](nes.md) +- **Commander X16 (VERA only)**: [VERA](vera.md) +- **ZX Spectrum (beeper only, SFX-like engine)**: [ZXS Beeper](zxbeep.md) +- **ZX Spectrum (beeper only, QuadTone engine)**: [ZXS Beeper](zxbeep.md) +- **Sharp SM8521**: [SM8521](sm8521.md) +- **Dummy System**: Dummy +- **tildearrow Sound Unit**: [TSU](soundunit.md) + +## DefleMask-compatible +- **Sega Genesis**: [YM3438](ym2612.md), [SN76489](sms.md) +- **Sega Genesis (extended channel 3)**: [YM3438](ym2612.md), [SN76489](sms.md) +- **Sega Master System**: [SN76489](sms.md) +- **Sega Master System (with FM expansion)**: [SN76489](sms.md), [YM2413](opll.md) +- **Game Boy**: [Game Boy](game-boy.md) +- **NEC PC Engine/TurboGrafx-16**: [HuC6280](pce.md) +- **NES**: [2A03](nes.md) +- **Famicom with Konami VRC7**: [2A03](nes.md), [VRC7](opl.md) +- **Famicom Disk System**: [2A03](nes.md), [FDS](fds.md) +- **Commodore 64 (6581 SID)**: [MOS 6581](c64.md) +- **Commodore 64 (8580 SID)**: [MOS 8580](c64.md) +- **Arcade (YM2151 and SegaPCM)**: [YM2151](ym2152.md), [SegaPCM](segapcm.md) +- **Neo Geo CD**: [YM2610](ym2610.md) +- **Neo Geo CD (extended channel 2)**: [YM2610](ym2610.md) +- **Yamaha YMU759 (MA-2)**: [YMU759](ymu759.md) diff --git a/doc/7-systems/genesis.md b/doc/7-systems/genesis.md deleted file mode 100644 index 5215fb101..000000000 --- a/doc/7-systems/genesis.md +++ /dev/null @@ -1,61 +0,0 @@ -# Sega Genesis/Mega Drive - -a video game console that showed itself as the first true rival to Nintendo's video game market near-monopoly in the US during the '80's. - -this console is powered by two sound chips: the [Yamaha YM2612](ym2612.md) and [a derivative of the SN76489](sms.md). - -# effects - -- `10xy`: **set LFO parameters.** - - `x` toggles the LFO. - - `y` sets its speed. -- `11xx`: **set feedback of channel.** -- `12xx`: **set operator 1 level.** -- `13xx`: **set operator 2 level.** -- `14xx`: **set operator 3 level.** -- `15xx`: **set operator 4 level.** -- `16xy`: **set multiplier of operator.** - - `x` is the operator (1-4). - - `y` is the multiplier. -- `17xx`: **enable PCM channel.** - - this only works on channel 6. - - _this effect is here for compatibility reasons!_ it is otherwise recommended to use Sample type instruments (which automatically enable PCM mode when used). -- `18xx`: **toggle extended channel 3 mode.** - - `0` disables it and `1` enables it. - - only in extended channel 3 chip. -- `19xx`: **set attack of all operators.** -- `1Axx`: **set attack of operator 1.** -- `1Bxx`: **set attack of operator 2.** -- `1Cxx`: **set attack of operator 3.** -- `1Dxx`: **set attack of operator 4.** -- `20xy`: **set PSG noise mode.** - - `x` controls whether to inherit frequency from PSG channel 3. - - `0`: use one of 3 preset frequencies (`C`: A-2; `C#`: A-3; `D`: A-4). - - `1`: use frequency of PSG channel 3. - - `y` controls whether to select noise or thin pulse. - - `0`: thin pulse. - - `1`: noise. - - - -# system modes - -## extended channel 3 - -in ExtCh mode, channel 3 is split into one column for each of its four operators. feedback and LFO levels are shared. the frequency of each operator may be controlled independently with notes and effects. this can be used for more polyphony or more complex sounds. - -all four operators are still combined according to the algorithm in use. for example, algorithm 7 acts as four independent sine waves. algorithm 4 acts as two independent 2op sounds. even with algorithm 0, placing a note in any operator triggers that operator alone. - -## CSM - -CSM is short for "Composite Sinusoidal Modeling". CSM works by sending key-on and key-off commands to channel 3 at a specific frequency, controlled by the added "CSM Timer" channel. this can be used to create vocal formants (speech synthesis!) or other complex effects. - -CSM is beyond the scope of this documentation. for more information, see this [brief SSG-EG and CSM video tutorial](https://www.youtube.com/watch?v=IKOR0TUlnWU). - -## DualPCM - -[info here.](ym2612.md) - -## Sega CD - -this isn't a mode so much as a chip configuration. it adds the [Ricoh RF5C68](ricoh.md) found in the Sega CD add-on, providing 8 channels of PCM. diff --git a/doc/7-systems/ym2612.md b/doc/7-systems/ym2612.md index ddb91b781..5a20dae0d 100644 --- a/doc/7-systems/ym2612.md +++ b/doc/7-systems/ym2612.md @@ -1,7 +1,6 @@ # Yamaha YM2612 -one of two chips that powered the Sega Genesis. it is a six-channel, four-operator FM synthesizer. channel #6 can be turned into 8-bit PCM player, that via software mixing, thanks to Z80 sound CPU, can play more than one channel of straight-shot samples at once. -as of Furnace 0.6pre5, Furnace offers DualPCM, a Z80 driver that splits channel 6 into two individual PCM channels with variable pitch. using the console's Z80 processor, these are mixed together in software and streamed to channel 6 in PCM mode with a mix rate of 13750 Hz. VGM export requires the "direct stream mode" option to be enabled, and resulting files will be very large. +one of two chips that powered the Sega Genesis. it is a six-channel, four-operator FM synthesizer. channel #6 can be used for PCM playback. alternate modes for the chip are described below the effects list. # effects @@ -66,3 +65,22 @@ as of Furnace 0.6pre5, Furnace offers DualPCM, a Z80 driver that splits channel - `5Dxx`: **set D2R/SR of operator 2.** - `5Exx`: **set D2R/SR of operator 3.** - `5Fxx`: **set D2R/SR of operator 4.** + + +# system modes + +## extended channel 3 + +in ExtCh mode, channel 3 is split into one column for each of its four operators. feedback and LFO levels are shared. the frequency of each operator may be controlled independently with notes and effects. this can be used for more polyphony or more complex sounds. + +all four operators are still combined according to the algorithm in use. for example, algorithm 7 acts as four independent sine waves. algorithm 4 acts as two independent 2op sounds. even with algorithm 0, placing a note in any operator triggers that operator alone. + +## CSM + +CSM is short for "Composite Sinusoidal Modeling". CSM works by sending key-on and key-off commands to channel 3 at a specific frequency, controlled by the added "CSM Timer" channel. this can be used to create vocal formants (speech synthesis!) or other complex effects. + +CSM is beyond the scope of this documentation. for more information, see this [brief SSG-EG and CSM video tutorial](https://www.youtube.com/watch?v=IKOR0TUlnWU). + +## DualPCM + +thanks to the Z80 sound CPU, DualPCM can play two samples at once! this mode splits channel 6 into two individual PCM channels with variable pitch. these are mixed together in software and streamed to channel 6 with a mix rate of 13750 Hz. VGM export requires the "direct stream mode" option to be enabled, and resulting files will be very large. diff --git a/src/gui/about.cpp b/src/gui/about.cpp index 37a40c527..de4a50d19 100644 --- a/src/gui/about.cpp +++ b/src/gui/about.cpp @@ -84,7 +84,7 @@ const char* aboutLine[]={ "djtuBIG-MaliceX", "dumbut", "Eknous-P", - "ElectricKeet", + "Electric Keet", "EpicTyphlosion", "FΛDE", "Forte", From 9d567d8cca6b4a40d61446d7d84839d78d036252 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 28 Jul 2023 16:07:01 -0500 Subject: [PATCH 031/202] fix system fmt, part 1 --- src/engine/fileOps.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/fileOps.cpp b/src/engine/fileOps.cpp index de1074d6d..ec7b64955 100644 --- a/src/engine/fileOps.cpp +++ b/src/engine/fileOps.cpp @@ -869,7 +869,7 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) { if (ds.version>0x15) { sample->depth=(DivSampleDepth)reader.readC(); if (sample->depth!=DIV_SAMPLE_DEPTH_8BIT && sample->depth!=DIV_SAMPLE_DEPTH_16BIT) { - logW("%d: sample depth is wrong! (%d)",i,sample->depth); + logW("%d: sample depth is wrong! (%d)",i,(int)sample->depth); sample->depth=DIV_SAMPLE_DEPTH_16BIT; } } else { From 8901098cb816362d68cc8a6c6f0d35945acd9579 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Fri, 28 Jul 2023 19:29:38 -0700 Subject: [PATCH 032/202] Systems broken into groups. Turned out to be super easy. --- doc/7-systems/README.md | 711 +++++++++++++++++++++++++++------------- 1 file changed, 484 insertions(+), 227 deletions(-) diff --git a/doc/7-systems/README.md b/doc/7-systems/README.md index e651d2d1f..877840115 100644 --- a/doc/7-systems/README.md +++ b/doc/7-systems/README.md @@ -5,430 +5,687 @@ this is a list of systems that Furnace supports, as listed in the new file dialo some systems have alternate chips, such as the Sega Genesis having a YM2612, a YM3438, or YMF276 depending on the model. this list shows the default configuration. ## Game consoles -- **Sega Genesis**: [YM3438](ym2612.md), [SN76489](sms.md) -- **Sega Genesis (extended channel 3)**: [YM3438](ym2612.md), [SN76489](sms.md) -- **Sega Genesis (CSM)**: [YM3438](ym2612.md), [SN76489](sms.md) -- **Sega Genesis (DualPCM)**: [YM3438](ym2612.md), [SN76489](sms.md) -- **Sega Genesis (DualPCM, extended channel 3)**: [YM3438](ym2612.md), [SN76489](sms.md) -- **Sega Genesis (with Sega CD)**: [YM3438](ym2612.md), [SN76489](sms.md), [RF5C164](ricoh.md) -- **Sega Genesis (extended channel 3 with Sega CD)**: [YM3438](ym2612.md), [SN76489](sms.md), [RF5C164](ricoh.md) -- **Sega Genesis (CSM with Sega CD)**: [YM3438](ym2612.md), [SN76489](sms.md), [RF5C164](ricoh.md) +- **Sega Genesis**,\ + **Sega Genesis (extended channel 3)**,\ + **Sega Genesis (CSM)**,\ + **Sega Genesis (DualPCM)**,\ + **Sega Genesis (DualPCM, extended channel 3)**: [YM3438](ym2612.md), [SN76489](sms.md) + +- **Sega Genesis (with Sega CD)**,\ + **Sega Genesis (extended channel 3 with Sega CD)**,\ + **Sega Genesis (CSM with Sega CD)**: [YM3438](ym2612.md), [SN76489](sms.md), [RF5C164](ricoh.md) + - **Sega Master System**: [SN76489](sms.md) -- **Sega Master System (with FM expansion)**: [SN76489](sms.md), [YM2413](opll.md) -- **Sega Master System (with FM expansion in drums mode)**: [SN76489](sms.md), [YM2413](opll.md) + +- **Sega Master System (with FM expansion)**,\ + **Sega Master System (with FM expansion in drums mode)**: [SN76489](sms.md), [YM2413](opll.md) + - **Sega Game Gear**: [SN76489](sms.md) + - **Game Boy**: [Game Boy](game-boy.md) + - **Neo Geo Pocket**: [T6W28](t6w28.md), DAC + - **NEC PC Engine/TurboGrafx-16**: [HuC6280](pce.md) + - **NES**: [2A03](nes.md) + - **Famicom with Konami VRC6**: [2A03](nes.md), [VRC6](vrc6.md) + - **Famicom with Konami VRC7**: [2A03](nes.md), [VRC7](opl.md) + - **Famicom with MMC5**: [2A03](nes.md), [MMC5](mmc5.md) + - **Famicom with Sunsoft 5B**: [2A03](nes.md), [5B](ay8910.md) + - **Famicom with Namco 163**: [2A03](nes.md), [N163](n163.md) + - **Famicom Disk System**: [2A03](nes.md), [FDS](fds.md) + - **SNES**: [SPC700](snes.md) + - **Mattel Intellivision**: [AY-3-8914](ay8910.md) + - **Vectrex**: [AY-3-8910](ay8910.md) -- **Neo Geo AES**: [YM2610](ym2610.md) -- **Neo Geo AES (extended channel 2)**: [YM2610](ym2610.md) + +- **Neo Geo AES**,\ + **Neo Geo AES (extended channel 2)**: [YM2610](ym2610.md) + - **Atari 2600/7800**: [TIA](tia.md) + - **Atari 7800 + Ballblazer/Commando**: [TIA](tia.md), [POKEY](pokey.md) + - **Atari Lynx**: [Lynx](lynx.md) + - **WonderSwan**: [WonderSwan](wonderswan.md) + - **Virtual Boy**: [Virtual Boy](virtual-boy.md) + - **Gamate**: [AY-3-8910](ay8910.md) + - **Pokémon Mini**: [Pokémon Mini](pokemini.md) + - **Tiger Game.com**: [SM8521](sm8521.md) + - **Casio PV-1000**: [PV-1000](pv1000.md) ## Computers - **Commodore PET**: [PET](pet.md) + - **Commodore VIC-20**: [VIC](vic20.md) + - **Commodore Plus/4**: [TED](ted.md) + - **Commodore 64 (6581 SID)**: [MOS 6581](c64.md) + - **Commodore 64 (8580 SID)**: [MOS 8580](c64.md) -- **Commodore 64 (6581 SID + Sound Expander)**: [MOS 6581](c64.md), [YM3526](opl.md) -- **Commodore 64 (6581 SID + Sound Expander in drums mode)**: [MOS 6581](c64.md), [YM3526](opl.md) -- **Commodore 64 (8580 SID + Sound Expander)**: [MOS 8580](c64.md), [YM3526](opl.md) -- **Commodore 64 (8580 SID + Sound Expander in drums mode)**: [MOS 8580](c64.md), [YM3526](opl.md) -- **Commodore 64 (6581 SID + FM-YAM)**: [MOS 6581](c64.md), [YM3812](opl.md) -- **Commodore 64 (6581 SID + FM-YAM in drums mode)**: [MOS 6581](c64.md), [YM3812](opl.md) -- **Commodore 64 (8580 SID + FM-YAM)**: [MOS 8580](c64.md), [YM3812](opl.md) -- **Commodore 64 (8580 SID + FM-YAM in drums mode)**: [MOS 8580](c64.md), [YM3812](opl.md) + +- **Commodore 64 (6581 SID + Sound Expander)**,\ + **Commodore 64 (6581 SID + Sound Expander in drums mode)**: [MOS 6581](c64.md), [YM3526](opl.md) + +- **Commodore 64 (8580 SID + Sound Expander)**,\ + **Commodore 64 (8580 SID + Sound Expander in drums mode)**: [MOS 8580](c64.md), [YM3526](opl.md) + +- **Commodore 64 (6581 SID + FM-YAM)**,\ + **Commodore 64 (6581 SID + FM-YAM in drums mode)**: [MOS 6581](c64.md), [YM3812](opl.md) + +- **Commodore 64 (8580 SID + FM-YAM)**,\ + **Commodore 64 (8580 SID + FM-YAM in drums mode)**: [MOS 8580](c64.md), [YM3812](opl.md) + - **Amiga**: [Amiga](amiga.md) + - **MSX**: [AY-3-8910](ay8910.md) + - **MSX + SFG-01**: [YM2149(F)](ay8910.md), [YM2151](ym2152.md) -- **MSX + MSX-AUDIO**: [YM2149(F)](ay8910.md), [Y8950](opl.md) -- **MSX + MSX-AUDIO (drums mode)**: [YM2149(F)](ay8910.md), [Y8950](opl.md) -- **MSX + MSX-MUSIC**: [YM2149(F)](ay8910.md), [YM2413](opll.md) -- **MSX + MSX-MUSIC (drums mode)**: [YM2149(F)](ay8910.md), [YM2413](opll.md) + +- **MSX + MSX-AUDIO**,\ + **MSX + MSX-AUDIO (drums mode)**: [YM2149(F)](ay8910.md), [Y8950](opl.md) + +- **MSX + MSX-MUSIC**,\ + **MSX + MSX-MUSIC (drums mode)**: [YM2149(F)](ay8910.md), [YM2413](opll.md) + - **MSX + Darky**: [YM2149(F)](ay8910.md), [AY8930](ay8930.md) × 2 + - **MSX + Playsoniq**: [YM2149(F)](ay8910.md), [SN76489](sms.md), [MOS 8580](c64.md), [SCC+](scc.md) + - **MSX + SCC**: [YM2149(F)](ay8910.md), [SCC](ess.md) + - **MSX + SCC+**: [YM2149(F)](ay8910.md), [SCC+](scc.md) -- **MSX + Neotron**: [YM2149(F)](ay8910.md), [YM2610](ym2610.md) -- **MSX + Neotron (extended channel 2)**: [YM2149(F)](ay8910.md), [YM2610](ym2610.md) -- **MSX + Neotron (with YM2610B)**: [YM2149(F)](ay8910.md), [YM2610B](ym2610b.md) -- **MSX + Neotron (with YM2610B; extended channel 3)**: [YM2149(F)](ay8910.md), [YM2610B](ym2610b.md) + +- **MSX + Neotron**,\ + **MSX + Neotron (extended channel 2)**: [YM2149(F)](ay8910.md), [YM2610](ym2610.md) + +- **MSX + Neotron (with YM2610B)**,\ + **MSX + Neotron (with YM2610B; extended channel 3)**: [YM2149(F)](ay8910.md), [YM2610B](ym2610b.md) + - **MSX + SIMPL**: [YM2149(F)](ay8910.md), DAC + - **NEC PC-88 (with PC-8801-10)**: [PC Speaker](pcspkr.md), [AY-3-8910](ay8910.md) × 2 -- **NEC PC-88 (with PC-8801-11)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) -- **NEC PC-88 (with PC-8801-11; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) -- **NEC PC-88 (with PC-8801-23)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) -- **NEC PC-88 (with PC-8801-23; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) + +- **NEC PC-88 (with PC-8801-11)**,\ + **NEC PC-88 (with PC-8801-11; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) + +- **NEC PC-88 (with PC-8801-23)**,\ + **NEC PC-88 (with PC-8801-23; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) + - **NEC PC-88 (with HMB-20 HIBIKI-8800)**: [PC Speaker](pcspkr.md), [YM2151](ym2152.md) -- **NEC PC-8801mk2SR (with PC-8801-10)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [AY-3-8910](ay8910.md) × 2 -- **NEC PC-8801mk2SR (with PC-8801-10; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [AY-3-8910](ay8910.md) × 2 -- **NEC PC-8801mk2SR (with PC-8801-11)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) × 2 -- **NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on internal OPN)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) × 2 -- **NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on external OPN)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) × 2 -- **NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) × 2 -- **NEC PC-8801mk2SR (with PC-8801-23)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2608](ym2608.md) -- **NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on internal OPN)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2608](ym2608.md) -- **NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on external OPN)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2608](ym2608.md) -- **NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2608](ym2608.md) -- **NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2151](ym2152.md) -- **NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2151](ym2152.md) -- **NEC PC-8801FA (with PC-8801-10)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [AY-3-8910](ay8910.md) × 2 -- **NEC PC-8801FA (with PC-8801-10; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [AY-3-8910](ay8910.md) × 2 -- **NEC PC-8801FA (with PC-8801-11)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2203](ym2203.md) -- **NEC PC-8801FA (with PC-8801-11; extended channel 3 on internal OPN)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2203](ym2203.md) -- **NEC PC-8801FA (with PC-8801-11; extended channel 3 on external OPN)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2203](ym2203.md) -- **NEC PC-8801FA (with PC-8801-11; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2203](ym2203.md) -- **NEC PC-8801FA (with PC-8801-23)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) × 2 -- **NEC PC-8801FA (with PC-8801-23; extended channel 3 on internal OPN)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) × 2 -- **NEC PC-8801FA (with PC-8801-23; extended channel 3 on external OPN)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) × 2 -- **NEC PC-8801FA (with PC-8801-23; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) × 2 -- **NEC PC-8801FA (with HMB-20 HIBIKI-8800)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2151](ym2152.md) -- **NEC PC-8801FA (with HMB-20 HIBIKI-8800; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2151](ym2152.md) -- **NEC PC-98 (with PC-9801-26/K)**: [YM2203](ym2203.md), [PC Speaker](pcspkr.md) -- **NEC PC-98 (with PC-9801-26/K; extended channel 3)**: [YM2203](ym2203.md), [PC Speaker](pcspkr.md) -- **NEC PC-98 (with Sound Orchestra)**: [YM2203](ym2203.md), [YM3812](opl.md), [PC Speaker](pcspkr.md) -- **NEC PC-98 (with Sound Orchestra; extended channel 3)**: [YM2203](ym2203.md), [YM3812](opl.md), [PC Speaker](pcspkr.md) -- **NEC PC-98 (with Sound Orchestra in drums mode)**: [YM2203](ym2203.md), [YM3812](opl.md), [PC Speaker](pcspkr.md) -- **NEC PC-98 (with Sound Orchestra in drums mode; extended channel 3)**: [YM2203](ym2203.md), [YM3812](opl.md), [PC Speaker](pcspkr.md) -- **NEC PC-98 (with Sound Orchestra V)**: [YM2203](ym2203.md), [Y8950](opl.md), [PC Speaker](pcspkr.md) -- **NEC PC-98 (with Sound Orchestra V; extended channel 3)**: [YM2203](ym2203.md), [Y8950](opl.md), [PC Speaker](pcspkr.md) -- **NEC PC-98 (with Sound Orchestra V in drums mode)**: [YM2203](ym2203.md), [Y8950](opl.md), [PC Speaker](pcspkr.md) -- **NEC PC-98 (with Sound Orchestra V in drums mode; extended channel 3)**: [YM2203](ym2203.md), [Y8950](opl.md), [PC Speaker](pcspkr.md) -- **NEC PC-98 (with PC-9801-86)**: [YM2608](ym2608.md), [DAC](pcspkr.md) -- **NEC PC-98 (with PC-9801-86; extended channel 3)**: [YM2608](ym2608.md), [DAC](pcspkr.md) -- **NEC PC-98 (with PC-9801-73)**: [YM2608](ym2608.md), [PC Speaker](pcspkr.md) -- **NEC PC-98 (with PC-9801-73; extended channel 3)**: [YM2608](ym2608.md), [PC Speaker](pcspkr.md) -- **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible)**: [YM2203](ym2203.md), [YMF262](opl.md), [PC Speaker](pcspkr.md) -- **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible; extended channel 3)**: [YM2203](ym2203.md), [YMF262](opl.md), [PC Speaker](pcspkr.md) -- **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode)**: [YM2203](ym2203.md), [YMF262](opl.md), [PC Speaker](pcspkr.md) -- **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode; extended channel 3)**: [YM2203](ym2203.md), [YMF262](opl.md), [PC Speaker](pcspkr.md) -- **ZX Spectrum (48K, SFX-like engine)**: [ZXS Beeper](zxbeep.md) -- **ZX Spectrum (48K, QuadTone engine)**: [ZXS Beeper](zxbeep.md) + +- **NEC PC-8801mk2SR (with PC-8801-10)**,\ + **NEC PC-8801mk2SR (with PC-8801-10; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [AY-3-8910](ay8910.md) × 2 + +- **NEC PC-8801mk2SR (with PC-8801-11)**,\ + **NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on internal OPN)**,\ + **NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on external OPN)**,\ + **NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) × 2 + +- **NEC PC-8801mk2SR (with PC-8801-23)**,\ + **NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on internal OPN)**,\ + **NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on external OPN)**,\ + **NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2608](ym2608.md) + +- **NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800)**,\ + **NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2151](ym2152.md) + +- **NEC PC-8801FA (with PC-8801-10)**,\ + **NEC PC-8801FA (with PC-8801-10; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [AY-3-8910](ay8910.md) × 2 + +- **NEC PC-8801FA (with PC-8801-11)**,\ + **NEC PC-8801FA (with PC-8801-11; extended channel 3 on internal OPN)**,\ + **NEC PC-8801FA (with PC-8801-11; extended channel 3 on external OPN)**,\ + **NEC PC-8801FA (with PC-8801-11; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2203](ym2203.md) + +- **NEC PC-8801FA (with PC-8801-23)**,\ + **NEC PC-8801FA (with PC-8801-23; extended channel 3 on internal OPN)**,\ + **NEC PC-8801FA (with PC-8801-23; extended channel 3 on external OPN)**,\ + **NEC PC-8801FA (with PC-8801-23; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) × 2 + +- **NEC PC-8801FA (with HMB-20 HIBIKI-8800)**,\ + **NEC PC-8801FA (with HMB-20 HIBIKI-8800; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2151](ym2152.md) + +- **NEC PC-98 (with PC-9801-26/K)**,\ + **NEC PC-98 (with PC-9801-26/K; extended channel 3)**: [YM2203](ym2203.md), [PC Speaker](pcspkr.md) + +- **NEC PC-98 (with Sound Orchestra)**,\ + **NEC PC-98 (with Sound Orchestra; extended channel 3)**,\ + **NEC PC-98 (with Sound Orchestra in drums mode)**,\ + **NEC PC-98 (with Sound Orchestra in drums mode; extended channel 3)**: [YM2203](ym2203.md), [YM3812](opl.md), [PC Speaker](pcspkr.md) + +- **NEC PC-98 (with Sound Orchestra V)**,\ + **NEC PC-98 (with Sound Orchestra V; extended channel 3)**,\ + **NEC PC-98 (with Sound Orchestra V in drums mode)**,\ + **NEC PC-98 (with Sound Orchestra V in drums mode; extended channel 3)**: [YM2203](ym2203.md), [Y8950](opl.md), [PC Speaker](pcspkr.md) + +- **NEC PC-98 (with PC-9801-86)**,\ + **NEC PC-98 (with PC-9801-86; extended channel 3)**: [YM2608](ym2608.md), [DAC](pcspkr.md) + +- **NEC PC-98 (with PC-9801-73)**,\ + **NEC PC-98 (with PC-9801-73; extended channel 3)**: [YM2608](ym2608.md), [PC Speaker](pcspkr.md) + +- **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible)**,\ + **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible; extended channel 3)**,\ + **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode)**,\ + **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode; extended channel 3)**: [YM2203](ym2203.md), [YMF262](opl.md), [PC Speaker](pcspkr.md) + +- **ZX Spectrum (48K, SFX-like engine)**,\ + **ZX Spectrum (48K, QuadTone engine)**: [ZXS Beeper](zxbeep.md) + - **ZX Spectrum (128K)**: [AY-3-8910](ay8910.md) -- **ZX Spectrum (128K) with TurboSound FM**: [AY-3-8910](ay8910.md), [YM2203](ym2203.md) × 2 -- **ZX Spectrum (128K) with TurboSound FM (extended channel 3 on first OPN)**: [AY-3-8910](ay8910.md), [YM2203](ym2203.md) × 2 -- **ZX Spectrum (128K) with TurboSound FM (extended channel 3 on second OPN)**: [AY-3-8910](ay8910.md), [YM2203](ym2203.md) × 2 -- **ZX Spectrum (128K) with TurboSound FM (extended channel 3 on both OPNs)**: [AY-3-8910](ay8910.md), [YM2203](ym2203.md) × 2 + +- **ZX Spectrum (128K) with TurboSound FM**,\ + **ZX Spectrum (128K) with TurboSound FM (extended channel 3 on first OPN)**,\ + **ZX Spectrum (128K) with TurboSound FM (extended channel 3 on second OPN)**,\ + **ZX Spectrum (128K) with TurboSound FM (extended channel 3 on both OPNs)**: [AY-3-8910](ay8910.md), [YM2203](ym2203.md) × 2 + - **ZX Spectrum (128K) with TurboSound**: [AY-3-8910](ay8910.md) × 3 + - **Amstrad CPC**: [AY-3-8910](ay8910.md) + - **Atari 800**: [POKEY](pokey.md) + - **Atari 800 (stereo)**: [POKEY](pokey.md) × 2 + - **Atari ST**: [YM2149(F)](ay8910.md) + - **Atari STE**: [YM2149(F)](ay8910.md), DAC + - **SAM Coupé**: [SAA1099](saa1099.md) + - **BBC Micro**: [SN76489A](sms.md) + - **PC (barebones)**: [PC Speaker](pcspkr.md) + - **IBM PCjr**: [SN76496](sms.md) + - **Tandy 1000**: [SN76496](sms.md), [PC Speaker](pcspkr.md) + - **PC + Covox Sound Master**: [AY8930](ay8930.md), [PC Speaker](pcspkr.md) + - **PC + SSI 2001**: [MOS 6581](c64.md), [PC Speaker](pcspkr.md) + - **PC + Game Blaster**: [SAA1099](saa1099.md) × 2, [PC Speaker](pcspkr.md) -- **PC + AdLib**: [YM3812](opl.md), [PC Speaker](pcspkr.md) -- **PC + AdLib (drums mode)**: [YM3812](opl.md), [PC Speaker](pcspkr.md) -- **PC + Sound Blaster**: [YM3812](opl.md), [PC Speaker](pcspkr.md), DAC -- **PC + AdLib/Sound Blaster (drums mode)**: [YM3812](opl.md), [PC Speaker](pcspkr.md), DAC -- **PC + Sound Blaster w/Game Blaster Compatible**: [YM3812](opl.md), [SAA1099](saa1099.md) × 2, DAC, [PC Speaker](pcspkr.md) -- **PC + Sound Blaster w/Game Blaster Compatible (drums mode)**: [YM3812](opl.md), [SAA1099](saa1099.md) × 2, DAC, [PC Speaker](pcspkr.md) -- **PC + Sound Blaster Pro**: [YM3812](opl.md) × 2, DAC, [PC Speaker](pcspkr.md) -- **PC + Sound Blaster Pro (drums mode)**: [YM3812](opl.md) × 2, DAC, [PC Speaker](pcspkr.md) -- **PC + Sound Blaster Pro 2**: [YMF262](opl.md), DAC, [PC Speaker](pcspkr.md) -- **PC + Sound Blaster Pro 2 (drums mode)**: [YMF262](opl.md), DAC, [PC Speaker](pcspkr.md) + +- **PC + AdLib**,\ + **PC + AdLib (drums mode)**: [YM3812](opl.md), [PC Speaker](pcspkr.md) + +- **PC + Sound Blaster**,\ + **PC + AdLib/Sound Blaster (drums mode)**: [YM3812](opl.md), [PC Speaker](pcspkr.md), DAC + +- **PC + Sound Blaster w/Game Blaster Compatible**,\ + **PC + Sound Blaster w/Game Blaster Compatible (drums mode)**: [YM3812](opl.md), [SAA1099](saa1099.md) × 2, DAC, [PC Speaker](pcspkr.md) + +- **PC + Sound Blaster Pro**,\ + **PC + Sound Blaster Pro (drums mode)**: [YM3812](opl.md) × 2, DAC, [PC Speaker](pcspkr.md) + +- **PC + Sound Blaster Pro 2**,\ + **PC + Sound Blaster Pro 2 (drums mode)**: [YMF262](opl.md), DAC, [PC Speaker](pcspkr.md) + - **PC + PC-FXGA**: [HuC6280](pce.md), [PC Speaker](pcspkr.md) + - **PC + SAAYM**: [YM2151](ym2152.md), [SAA1099](saa1099.md) × 2, [PC Speaker](pcspkr.md) + - **Sharp X1**: [AY-3-8910](ay8910.md) + - **Sharp X1 + FM Addon**: [AY-3-8910](ay8910.md), [YM2151](ym2152.md) + - **Sharp X68000**: [YM2151](ym2152.md), [MSM6258](msm6258.md) -- **FM Towns**: [YM3438](ym2612.md), [RF5C68](ricoh.md) -- **FM Towns (extended channel 3)**: [YM3438](ym2612.md), [RF5C68](ricoh.md) -- **FM Towns (CSM)**: [YM3438](ym2612.md), [RF5C68](ricoh.md) + +- **FM Towns**,\ + **FM Towns (extended channel 3)**,\ + **FM Towns (CSM)**: [YM3438](ym2612.md), [RF5C68](ricoh.md) + - **Commander X16 (VERA only)**: [VERA](vera.md) + - **Commander X16 (with OPM)**: [VERA](vera.md), [YM2151](ym2152.md) + - **Commander X16 (with Twin OPL3)**: [VERA](vera.md), [YMF262](opl.md) × 2 + - **TI-99/4A**: [SN94624](sms.md) ## Arcade systems - **Pong**: Pong - **Bally Midway MCR**: [AY-3-8910](ay8910.md) × 2 + - **Williams/Midway Y/T unit w/ADPCM sound board**: [YM2151](ym2152.md), [MSM6295](msm6295.md) + - **Konami Gyruss**: [AY-3-8910](ay8910.md) × 5 + - **Konami Bubble System**: [AY-3-8910](ay8910.md) × 2, [Konami WSG](bubblesystem.md) + - **Konami MX5000**: [YM2151](ym2152.md), [K007232](k007232.md) -- **Konami Battlantis**: [YM3812](opl.md) × 2 -- **Konami Battlantis (drums mode on first OPL2)**: [YM3812](opl.md) × 2 -- **Konami Battlantis (drums mode on second OPL2)**: [YM3812](opl.md) × 2 -- **Konami Battlantis (drums mode on both OPL2s)**: [YM3812](opl.md) × 2 + +- **Konami Battlantis**,\ + **Konami Battlantis (drums mode on first OPL2)**,\ + **Konami Battlantis (drums mode on second OPL2)**,\ + **Konami Battlantis (drums mode on both OPL2s)**: [YM3812](opl.md) × 2 + - **Konami Fast Lane**: [K007232](k007232.md) × 2 + - **Konami Chequered Flag**: [YM2151](ym2152.md), [K007232](k007232.md) × 2 -- **Konami Haunted Castle**: [YM3812](opl.md), [SCC](ess.md), [K007232](k007232.md) -- **Konami Haunted Castle (drums mode)**: [YM3812](opl.md), [SCC](ess.md), [K007232](k007232.md) + +- **Konami Haunted Castle**,\ + **Konami Haunted Castle (drums mode)**: [YM3812](opl.md), [SCC](ess.md), [K007232](k007232.md) + - **Konami Hot Chase**: [K007232](k007232.md) × 3 -- **Konami S.P.Y.**: [YM3812](opl.md), [K007232](k007232.md) × 2 -- **Konami S.P.Y. (drums mode)**: [YM3812](opl.md), [K007232](k007232.md) × 2 -- **Konami Rollergames**: [YM3812](opl.md), [K053260](k056320.md) -- **Konami Rollergames (drums mode)**: [YM3812](opl.md), [K053260](k056320.md) + +- **Konami S.P.Y.**,\ + **Konami S.P.Y. (drums mode)**: [YM3812](opl.md), [K007232](k007232.md) × 2 + +- **Konami Rollergames**,\ + **Konami Rollergames (drums mode)**: [YM3812](opl.md), [K053260](k056320.md) + - **Konami Golfing Greats**: [K053260](k056320.md) + - **Konami Lightning Fighters**: [YM2151](ym2152.md), [K053260](k056320.md) + - **Konami Over Drive**: [YM2151](ym2152.md), [K053260](k056320.md) × 2 + - **Konami Asterix**: [YM2151](ym2152.md), [K053260](k056320.md) + - **Konami Hexion**: [SCC](ess.md), [MSM6295](msm6295.md) + - **Sega Kyugo**: [AY-3-8910](ay8910.md) × 2 + - **Sega System 1**: [SN76489A](sms.md) × 2 + - **Sega System E**: [SN76489](sms.md) × 2 -- **Sega System E (with FM expansion)**: [SN76489](sms.md) × 2, [YM2413](opll.md) -- **Sega System E (with FM expansion in drums mode)**: [SN76489](sms.md) × 2, [YM2413](opll.md) -- **Sega Hang-On**: [YM2203](ym2203.md), [SegaPCM](segapcm.md) -- **Sega Hang-On (extended channel 3)**: [YM2203](ym2203.md), [SegaPCM](segapcm.md) + +- **Sega System E (with FM expansion)**,\ + **Sega System E (with FM expansion in drums mode)**: [SN76489](sms.md) × 2, [YM2413](opll.md) + +- **Sega Hang-On**,\ + **Sega Hang-On (extended channel 3)**: [YM2203](ym2203.md), [SegaPCM](segapcm.md) + - **Sega OutRun/X Board**: [YM2151](ym2152.md), [SegaPCM](segapcm.md) + - **Sega System 24**: [YM2151](ym2152.md), DAC -- **Sega System 18**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) -- **Sega System 18 (extended channel 3 on first OPN2C)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) -- **Sega System 18 (extended channel 3 on second OPN2C)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) -- **Sega System 18 (extended channel 3 on both OPN2Cs)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) -- **Sega System 32**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) -- **Sega System 32 (extended channel 3 on first OPN2C)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) -- **Sega System 32 (extended channel 3 on second OPN2C)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) -- **Sega System 32 (extended channel 3 on both OPN2Cs)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) + +- **Sega System 18**,\ + **Sega System 18 (extended channel 3 on first OPN2C)**,\ + **Sega System 18 (extended channel 3 on second OPN2C)**,\ + **Sega System 18 (extended channel 3 on both OPN2Cs)**,\ + **Sega System 32**,\ + **Sega System 32 (extended channel 3 on first OPN2C)**,\ + **Sega System 32 (extended channel 3 on second OPN2C)**,\ + **Sega System 32 (extended channel 3 on both OPN2Cs)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) + - **Capcom Exed Eyes**: [AY-3-8910](ay8910.md), [SN76489](sms.md) × 2 -- **Capcom Arcade**: [YM2203](ym2203.md) × 2 -- **Capcom Arcade (extended channel 3 on first OPN)**: [YM2203](ym2203.md) × 2 -- **Capcom Arcade (extended channel 3 on second OPN)**: [YM2203](ym2203.md) × 2 -- **Capcom Arcade (extended channel 3 on both OPNs)**: [YM2203](ym2203.md) × 2 + +- **Capcom Arcade**,\ + **Capcom Arcade (extended channel 3 on first OPN)**,\ + **Capcom Arcade (extended channel 3 on second OPN)**,\ + **Capcom Arcade (extended channel 3 on both OPNs)**: [YM2203](ym2203.md) × 2 + - **Capcom CPS-1**: [YM2151](ym2152.md), [MSM6295](msm6295.md) + - **Capcom CPS-2 (QSound)**: [QSound](qsound.md) -- **Jaleco Ginga NinkyouDen**: [YM2149(F)](ay8910.md), [Y8950](opl.md) -- **Jaleco Ginga NinkyouDen (drums mode)**: [YM2149(F)](ay8910.md), [Y8950](opl.md) + +- **Jaleco Ginga NinkyouDen**,\ + **Jaleco Ginga NinkyouDen (drums mode)**: [YM2149(F)](ay8910.md), [Y8950](opl.md) + - **Jaleco Mega System 1**: [YM2151](ym2152.md), [MSM6295](msm6295.md) × 2 -- **NMK 16-bit Arcade**: [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 -- **NMK 16-bit Arcade (extended channel 3)**: [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 -- **Kaneko DJ Boy**: [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 -- **Kaneko DJ Boy (extended channel 3)**: [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 -- **Kaneko Air Buster**: [YM2203](ym2203.md), [MSM6295](msm6295.md) -- **Kaneko Air Buster (extended channel 3)**: [YM2203](ym2203.md), [MSM6295](msm6295.md) + +- **NMK 16-bit Arcade**,\ + **NMK 16-bit Arcade (extended channel 3)**,\ + **Kaneko DJ Boy**,\ + **Kaneko DJ Boy (extended channel 3)**: [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 + +- **Kaneko Air Buster**,\ + **Kaneko Air Buster (extended channel 3)**: [YM2203](ym2203.md), [MSM6295](msm6295.md) + - **Kaneko Toybox System**: [YM2149(F)](ay8910.md) × 2, [MSM6295](msm6295.md) -- **Kaneko Jackie Chan**: [YMZ280B](ymz280b.md) -- **Super Kaneko Nova System**: [YMZ280B](ymz280b.md) -- **Tecmo Ninja Gaiden**: [YM2203](ym2203.md) × 2, [MSM6295](msm6295.md) -- **Tecmo Ninja Gaiden (extended channel 3 on first OPN)**: [YM2203](ym2203.md) × 2, [MSM6295](msm6295.md) -- **Tecmo Ninja Gaiden (extended channel 3 on second OPN)**: [YM2203](ym2203.md) × 2, [MSM6295](msm6295.md) -- **Tecmo Ninja Gaiden (extended channel 3 on both OPNs)**: [YM2203](ym2203.md) × 2, [MSM6295](msm6295.md) -- **Tecmo System**: [YMF262](opl.md), [YMZ280B](ymz280b.md), [MSM6295](msm6295.md) -- **Tecmo System (drums mode)**: [YMF262](opl.md), [YMZ280B](ymz280b.md), [MSM6295](msm6295.md) -- **Seibu Kaihatsu Raiden**: [YM3812](opl.md), [MSM6295](msm6295.md) -- **Seibu Kaihatsu Raiden (drums mode)**: [YM3812](opl.md), [MSM6295](msm6295.md) + +- **Kaneko Jackie Chan**,\ + **Super Kaneko Nova System**: [YMZ280B](ymz280b.md) + +- **Tecmo Ninja Gaiden**,\ + **Tecmo Ninja Gaiden (extended channel 3 on first OPN)**,\ + **Tecmo Ninja Gaiden (extended channel 3 on second OPN)**,\ + **Tecmo Ninja Gaiden (extended channel 3 on both OPNs)**: [YM2203](ym2203.md) × 2, [MSM6295](msm6295.md) + +- **Tecmo System**,\ + **Tecmo System (drums mode)**: [YMF262](opl.md), [YMZ280B](ymz280b.md), [MSM6295](msm6295.md) + +- **Seibu Kaihatsu Raiden**,\ + **Seibu Kaihatsu Raiden (drums mode)**: [YM3812](opl.md), [MSM6295](msm6295.md) + - **Sunsoft Shanghai 3**: [YM2149(F)](ay8910.md), [MSM6295](msm6295.md) -- **Sunsoft Arcade**: [YM3438](ym2612.md), [MSM6295](msm6295.md) -- **Sunsoft Arcade (extended channel 3)**: [YM3438](ym2612.md), [MSM6295](msm6295.md) + +- **Sunsoft Arcade**,\ + **Sunsoft Arcade (extended channel 3)**: [YM3438](ym2612.md), [MSM6295](msm6295.md) + - **Atari Klax**: [MSM6295](msm6295.md) -- **Atari Rampart**: [YM2413](opll.md), [MSM6295](msm6295.md) -- **Atari Rampart (drums mode)**: [YM2413](opll.md), [MSM6295](msm6295.md) + +- **Atari Rampart**,\ + **Atari Rampart (drums mode)**: [YM2413](opll.md), [MSM6295](msm6295.md) + - **Atari JSA IIIs**: [YM2151](ym2152.md), [MSM6295](msm6295.md) × 2 + - **Atari Marble Madness**: [YM2151](ym2152.md), [POKEY](pokey.md) + - **Atari Championship Sprint**: [YM2151](ym2152.md), [POKEY](pokey.md) × 2 + - **Atari Tetris**: [POKEY](pokey.md) × 2 + - **Atari I, Robot**: [POKEY](pokey.md) × 4 -- **Data East Karnov**: [YM2203](ym2203.md), [YM3526](opl.md) -- **Data East Karnov (extended channel 3)**: [YM2203](ym2203.md), [YM3526](opl.md) -- **Data East Karnov (drums mode)**: [YM2203](ym2203.md), [YM3526](opl.md) -- **Data East Karnov (extended channel 3; drums mode)**: [YM2203](ym2203.md), [YM3526](opl.md) -- **Data East Arcade**: [YM2203](ym2203.md), [YM3812](opl.md), [MSM6295](msm6295.md) -- **Data East Arcade (extended channel 3)**: [YM2203](ym2203.md), [YM3812](opl.md), [MSM6295](msm6295.md) -- **Data East Arcade (drums mode)**: [YM2203](ym2203.md), [YM3812](opl.md), [MSM6295](msm6295.md) -- **Data East Arcade (extended channel 3; drums mode)**: [YM2203](ym2203.md), [YM3812](opl.md), [MSM6295](msm6295.md) -- **Data East PCX**: [YM2203](ym2203.md), [HuC6280](pce.md) -- **Data East PCX (extended channel 3)**: [YM2203](ym2203.md), [HuC6280](pce.md) -- **Data East Dark Seal**: [YM2151](ym2152.md), [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 -- **Data East Dark Seal (extended channel 3)**: [YM2151](ym2152.md), [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 + +- **Data East Karnov**,\ + **Data East Karnov (extended channel 3)**,\ + **Data East Karnov (drums mode)**,\ + **Data East Karnov (extended channel 3; drums mode)**: [YM2203](ym2203.md), [YM3526](opl.md) + +- **Data East Arcade**,\ + **Data East Arcade (extended channel 3)**,\ + **Data East Arcade (drums mode)**,\ + **Data East Arcade (extended channel 3; drums mode)**: [YM2203](ym2203.md), [YM3812](opl.md), [MSM6295](msm6295.md) + +- **Data East PCX**,\ + **Data East PCX (extended channel 3)**: [YM2203](ym2203.md), [HuC6280](pce.md) + +- **Data East Dark Seal**,\ + **Data East Dark Seal (extended channel 3)**: [YM2151](ym2152.md), [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 + - **Data East Deco 156**: [MSM6295](msm6295.md) × 2 + - **Data East MLC**: [YMZ280B](ymz280b.md) -- **SNK Ikari Warriors**: [YM3526](opl.md) × 2 -- **SNK Ikari Warriors (drums mode on first OPL)**: [YM3526](opl.md) × 2 -- **SNK Ikari Warriors (drums mode on second OPL)**: [YM3526](opl.md) × 2 -- **SNK Ikari Warriors (drums mode on both OPLs)**: [YM3526](opl.md) × 2 -- **SNK Triple Z80**: [Y8950](opl.md), [YM3526](opl.md) -- **SNK Triple Z80 (drums mode on Y8950)**: [Y8950](opl.md), [YM3526](opl.md) -- **SNK Triple Z80 (drums mode on OPL)**: [Y8950](opl.md), [YM3526](opl.md) -- **SNK Triple Z80 (drums mode on Y8950 and OPL)**: [Y8950](opl.md), [YM3526](opl.md) -- **SNK Chopper I**: [Y8950](opl.md), [YM3812](opl.md) -- **SNK Chopper I (drums mode on Y8950)**: [Y8950](opl.md), [YM3812](opl.md) -- **SNK Chopper I (drums mode on OPL2)**: [Y8950](opl.md), [YM3812](opl.md) -- **SNK Chopper I (drums mode on Y8950 and OPL2)**: [Y8950](opl.md), [YM3812](opl.md) -- **SNK Touchdown Fever**: [YM3526](opl.md), [Y8950](opl.md) -- **SNK Touchdown Fever (drums mode on OPL)**: [YM3526](opl.md), [Y8950](opl.md) -- **SNK Touchdown Fever (drums mode on Y8950)**: [YM3526](opl.md), [Y8950](opl.md) -- **SNK Touchdown Fever (drums mode on OPL and Y8950)**: [YM3526](opl.md), [Y8950](opl.md) -- **Alpha denshi Alpha-68K**: [YM2203](ym2203.md), [YM2413](opll.md), DAC -- **Alpha denshi Alpha-68K (extended channel 3)**: [YM2203](ym2203.md), [YM2413](opll.md), DAC -- **Alpha denshi Alpha-68K (drums mode)**: [YM2203](ym2203.md), [YM2413](opll.md), DAC -- **Alpha denshi Alpha-68K (extended channel 3; drums mode)**: [YM2203](ym2203.md), [YM2413](opll.md), DAC + +- **SNK Ikari Warriors**,\ + **SNK Ikari Warriors (drums mode on first OPL)**,\ + **SNK Ikari Warriors (drums mode on second OPL)**,\ + **SNK Ikari Warriors (drums mode on both OPLs)**: [YM3526](opl.md) × 2 + +- **SNK Triple Z80**,\ + **SNK Triple Z80 (drums mode on Y8950)**,\ + **SNK Triple Z80 (drums mode on OPL)**,\ + **SNK Triple Z80 (drums mode on Y8950 and OPL)**: [Y8950](opl.md), [YM3526](opl.md) + +- **SNK Chopper I**,\ + **SNK Chopper I (drums mode on Y8950)**,\ + **SNK Chopper I (drums mode on OPL2)**,\ + **SNK Chopper I (drums mode on Y8950 and OPL2)**: [Y8950](opl.md), [YM3812](opl.md) + +- **SNK Touchdown Fever**,\ + **SNK Touchdown Fever (drums mode on OPL)**,\ + **SNK Touchdown Fever (drums mode on Y8950)**,\ + **SNK Touchdown Fever (drums mode on OPL and Y8950)**: [YM3526](opl.md), [Y8950](opl.md) + +- **Alpha denshi Alpha-68K**,\ + **Alpha denshi Alpha-68K (extended channel 3)**,\ + **Alpha denshi Alpha-68K (drums mode)**,\ + **Alpha denshi Alpha-68K (extended channel 3; drums mode)**: [YM2203](ym2203.md), [YM2413](opll.md), DAC + - **Alpha denshi Equites**: [MSM5232](msm5232.md), [AY-3-8910](ay8910.md), DAC -- **Neo Geo MVS**: [YM2610](ym2610.md) -- **Neo Geo MVS (extended channel 2)**: [YM2610](ym2610.md) + +- **Neo Geo MVS**,\ + **Neo Geo MVS (extended channel 2)**: [YM2610](ym2610.md) + - **Nichibutsu Mag Max**: [AY-3-8910](ay8910.md) × 3 + - **Namco (3-channel WSG)**: [Namco](namco.md) + - **Namco Mappy**: [C15](namco.md) + - **Namco Pac-Land**: [C30](namco.md) + - **Namco System 86**: [YM2151](ym2152.md), [C30](namco.md) -- **Namco Thunder Ceptor**: [YM2151](ym2152.md), [C30](namco.md), DAC -- **Namco System 1**: [YM2151](ym2152.md), [C30](namco.md), DAC -- **Taito Arcade**: [YM2610B](ym2610b.md) -- **Taito Arcade (extended channel 3)**: [YM2610B](ym2610b.md) + +- **Namco Thunder Ceptor**,\ + **Namco System 1**: [YM2151](ym2152.md), [C30](namco.md), DAC + +- **Taito Arcade**,\ + **Taito Arcade (extended channel 3)**: [YM2610B](ym2610b.md) + - **Taito Metal Soldier Isaac II**: [MSM5232](msm5232.md), [AY-3-8910](ay8910.md) × 2 + - **Taito The Fairyland Story**: [MSM5232](msm5232.md), [YM2149(F)](ay8910.md), DAC + - **Taito Wyvern F-0**: [MSM5232](msm5232.md), [YM2149(F)](ay8910.md) × 2, DAC + - **Seta 1**: [X1-010](x1-010.md) -- **Seta 1 + FM addon**: [X1-010](x1-010.md), [YM3438](ym2612.md) -- **Seta 1 + FM addon (extended channel 3)**: [X1-010](x1-010.md), [YM3438](ym2612.md) + +- **Seta 1 + FM addon**,\ + **Seta 1 + FM addon (extended channel 3)**: [X1-010](x1-010.md), [YM3438](ym2612.md) + - **Seta 2**: [X1-010](x1-010.md) + - **Sammy/Seta/Visco SSV**: [ES5506](es5506.md) + - **Cave 68000**: [YMZ280B](ymz280b.md) -- **Coreland Cyber Tank**: [Y8950](opl.md) × 2 -- **Coreland Cyber Tank (drums mode)**: [Y8950](opl.md) × 2 + +- **Coreland Cyber Tank**,\ + **Coreland Cyber Tank (drums mode)**: [Y8950](opl.md) × 2 + - **ICE Skimaxx**: [MSM6295](msm6295.md) × 4 -- **Toaplan 1**: [YM3812](opl.md) -- **Toaplan 1 (drums mode)**: [YM3812](opl.md) -- **Dynax/Nakanihon 3rd generation hardware**: [AY-3-8910](ay8910.md), [YM2413](opll.md), [MSM6295](msm6295.md) -- **Dynax/Nakanihon 3rd generation hardware (drums mode)**: [AY-3-8910](ay8910.md), [YM2413](opll.md), [MSM6295](msm6295.md) -- **Dynax/Nakanihon Real Break**: [YM2413](opll.md), [YMZ280B](ymz280b.md) -- **Dynax/Nakanihon Real Break (drums mode)**: [YM2413](opll.md), [YMZ280B](ymz280b.md) + +- **Toaplan 1**,\ + **Toaplan 1 (drums mode)**: [YM3812](opl.md) + +- **Dynax/Nakanihon 3rd generation hardware**,\ + **Dynax/Nakanihon 3rd generation hardware (drums mode)**: [AY-3-8910](ay8910.md), [YM2413](opll.md), [MSM6295](msm6295.md) + +- **Dynax/Nakanihon Real Break**,\ + **Dynax/Nakanihon Real Break (drums mode)**: [YM2413](opll.md), [YMZ280B](ymz280b.md) + - **Irem M72**: [YM2151](ym2152.md), DAC + - **Irem M92/M107**: [YM2151](ym2152.md), GA20 ## FM - **Yamaha YM2151 (OPM)**: [YM2151](ym2152.md) -- **Yamaha YM2203 (OPN)**: [YM2203](ym2203.md) -- **Yamaha YM2203 (extended channel 3)**: [YM2203](ym2203.md) -- **Yamaha YM2608 (OPNA)**: [YM2608](ym2608.md) -- **Yamaha YM2608 (extended channel 3)**: [YM2608](ym2608.md) -- **Yamaha YM2610 (OPNB)**: [YM2610](ym2610.md) -- **Yamaha YM2610 (extended channel 2)**: [YM2610](ym2610.md) -- **Yamaha YM2610B (OPNB2)**: [YM2610B](ym2610b.md) -- **Yamaha YM2610B (extended channel 3)**: [YM2610B](ym2610b.md) -- **Yamaha YM2612 (OPN2)**: [YM2612](ym2612.md) -- **Yamaha YM2612 (extended channel 3)**: [YM2612](ym2612.md) -- **Yamaha YM2612 (OPN2) CSM**: [YM2612](ym2612.md) -- **Yamaha YM2612 (OPN2) with DualPCM**: [YM2612](ym2612.md) -- **Yamaha YM2612 (extended channel 3) with DualPCM**: [YM2612](ym2612.md) -- **Yamaha YM2413 (OPLL)**: [YM2413](opll.md) -- **Yamaha YM2413 (drums mode)**: [YM2413](opll.md) + +- **Yamaha YM2203 (OPN)**,\ + **Yamaha YM2203 (extended channel 3)**: [YM2203](ym2203.md) + +- **Yamaha YM2608 (OPNA)**,\ + **Yamaha YM2608 (extended channel 3)**: [YM2608](ym2608.md) + +- **Yamaha YM2610 (OPNB)**,\ + **Yamaha YM2610 (extended channel 2)**: [YM2610](ym2610.md) + +- **Yamaha YM2610B (OPNB2)**,\ + **Yamaha YM2610B (extended channel 3)**: [YM2610B](ym2610b.md) + +- **Yamaha YM2612 (OPN2)**,\ + **Yamaha YM2612 (extended channel 3)**,\ + **Yamaha YM2612 (OPN2) CSM**,\ + **Yamaha YM2612 (OPN2) with DualPCM**,\ + **Yamaha YM2612 (extended channel 3) with DualPCM**: [YM2612](ym2612.md) + +- **Yamaha YM2413 (OPLL)**,\ + **Yamaha YM2413 (drums mode)**: [YM2413](opll.md) + - **Yamaha YM2414 (OPZ)**: [YM2414](opz.md) -- **Yamaha YM3438 (OPN2C)**: [YM3438](ym2612.md) -- **Yamaha YM3438 (extended channel 3)**: [YM3438](ym2612.md) -- **Yamaha YM3438 (OPN2C) CSM**: [YM3438](ym2612.md) -- **Yamaha YM3438 (OPN2C) with DualPCM**: [YM3438](ym2612.md) -- **Yamaha YM3438 (extended channel 3) with DualPCM**: [YM3438](ym2612.md) -- **Yamaha YM3526 (OPL)**: [YM3526](opl.md) -- **Yamaha YM3526 (drums mode)**: [YM3526](opl.md) -- **Yamaha Y8950**: [Y8950](opl.md) -- **Yamaha Y8950 (drums mode)**: [Y8950](opl.md) -- **Yamaha YM3812 (OPL2)**: [YM3812](opl.md) -- **Yamaha YM3812 (drums mode)**: [YM3812](opl.md) -- **Yamaha YMF262 (OPL3)**: [YMF262](opl.md) -- **Yamaha YMF262 (drums mode)**: [YMF262](opl.md) + +- **Yamaha YM3438 (OPN2C)**,\ + **Yamaha YM3438 (extended channel 3)**,\ + **Yamaha YM3438 (OPN2C) CSM**,\ + **Yamaha YM3438 (OPN2C) with DualPCM**,\ + **Yamaha YM3438 (extended channel 3) with DualPCM**: [YM3438](ym2612.md) + +- **Yamaha YM3526 (OPL)**,\ + **Yamaha YM3526 (drums mode)**: [YM3526](opl.md) + +- **Yamaha Y8950**,\ + **Yamaha Y8950 (drums mode)**: [Y8950](opl.md) + +- **Yamaha YM3812 (OPL2)**,\ + **Yamaha YM3812 (drums mode)**: [YM3812](opl.md) + +- **Yamaha YMF262 (OPL3)**,\ + **Yamaha YMF262 (drums mode)**: [YMF262](opl.md) + - **Yamaha YMU759 (MA-2)**: [YMU759](ymu759.md) ## Square - **TI SN76489**: [SN76489](sms.md) + - **TI SN76489A**: [SN76489A](sms.md) + - **TI SN76496**: [SN76496](sms.md) + - **NCR 8496**: [8496](sms.md) + - **Tandy PSSJ 3-voice sound**: [PSSJ](sms.md) -- **Sega PSG (SN76489-like)**: [SN76489](sms.md) -- **Sega PSG (SN76489-like, Stereo)**: [SN76489](sms.md) + +- **Sega PSG (SN76489-like)**,\ + **Sega PSG (SN76489-like, Stereo)**: [SN76489](sms.md) + - **TI SN94624**: [SN94624](sms.md) + - **TI SN76494**: [SN76494](sms.md) + - **Toshiba T6W28**: [T6W28](t6w28.md) + - **AY-3-8910**: [AY-3-8910](ay8910.md) + - **AY-3-8914**: [AY-3-8914](ay8910.md) + - **Yamaha YM2149(F)**: [YM2149(F)](ay8910.md) + - **Philips SAA1099**: [SAA1099](saa1099.md) + - **PC Speaker**: [PC Speaker](pcspkr.md) + - **Pokémon Mini**: [Pokémon Mini](pokemini.md) + - **Commodore VIC**: [VIC](vic20.md) + - **OKI MSM5232**: [MSM5232](msm5232.md) + - **Pong**: Pong - **NEC D65010G031**: [PV-1000](pv1000.md) + - **MOS Technology TED**: [TED](ted.md) ## Sample - **Amiga**: [Amiga](amiga.md) + - **SegaPCM**: [SegaPCM](segapcm.md) + - **Capcom QSound**: [QSound](qsound.md) + - **Seta/Allumer X1-010**: [X1-010](x1-010.md) + - **Yamaha YMZ280B (PCMD8)**: [YMZ280B](ymz280b.md) + - **Ricoh RF5C68**: [RF5C68](ricoh.md) + - **OKI MSM6258**: [MSM6258](msm6258.md) + - **OKI MSM6295**: [MSM6295](msm6295.md) + - **SNES**: [SPC700](snes.md) + - **Konami K007232**: [K007232](k007232.md) + - **Irem GA20**: GA20 - **Generic PCM DAC**: DAC - **Ensoniq ES5506 (OTTO)**: [ES5506](es5506.md) + - **Konami K053260**: [K053260](k056320.md) ## Wavetable - **PC Engine**: [HuC6280](pce.md) + - **Konami Bubble System WSG**: [Konami WSG](bubblesystem.md) -- **Konami SCC**: [SCC](ess.md) + +- **Konami SCC**: [SCC](scc.md) + - **Konami SCC+**: [SCC+](scc.md) -- **Namco WSG**: [Namco](namco.md) + +- **Namco WSG**: [Namco WSG](namco.md) + - **Namco C15 (8-channel mono)**: [C15](namco.md) + - **Namco C30 (8-channel stereo)**: [C30](namco.md) + - **Namco 163**: [N163](n163.md) + - **Famicom Disk System (chip)**: [FDS](fds.md) + - **WonderSwan**: [WonderSwan](wonderswan.md) + - **Virtual Boy**: [Virtual Boy](virtual-boy.md) + - **Seta/Allumer X1-010**: [X1-010](x1-010.md) ## Specialized - **MOS Technology SID (6581)**: [MOS 6581](c64.md) + - **MOS Technology SID (8580)**: [MOS 8580](c64.md) + - **Commodore PET (pseudo-wavetable)**: [PET](pet.md) + - **Konami VRC6**: [VRC6](vrc6.md) + - **MMC5**: [MMC5](mmc5.md) + - **Microchip AY8930**: [AY8930](ay8930.md) + - **Game Boy**: [Game Boy](game-boy.md) + - **Atari Lynx**: [Lynx](lynx.md) + - **POKEY**: [POKEY](pokey.md) + - **Atari TIA**: [TIA](tia.md) + - **NES (Ricoh 2A03)**: [2A03](nes.md) + - **Commander X16 (VERA only)**: [VERA](vera.md) -- **ZX Spectrum (beeper only, SFX-like engine)**: [ZXS Beeper](zxbeep.md) -- **ZX Spectrum (beeper only, QuadTone engine)**: [ZXS Beeper](zxbeep.md) + +- **ZX Spectrum (beeper only, SFX-like engine)**,\ + **ZX Spectrum (beeper only, QuadTone engine)**: [ZXS Beeper](zxbeep.md) + - **Sharp SM8521**: [SM8521](sm8521.md) + - **Dummy System**: Dummy - **tildearrow Sound Unit**: [TSU](soundunit.md) ## DefleMask-compatible -- **Sega Genesis**: [YM3438](ym2612.md), [SN76489](sms.md) -- **Sega Genesis (extended channel 3)**: [YM3438](ym2612.md), [SN76489](sms.md) +- **Sega Genesis**,\ + **Sega Genesis (extended channel 3)**: [YM3438](ym2612.md), [SN76489](sms.md) + - **Sega Master System**: [SN76489](sms.md) + - **Sega Master System (with FM expansion)**: [SN76489](sms.md), [YM2413](opll.md) + - **Game Boy**: [Game Boy](game-boy.md) + - **NEC PC Engine/TurboGrafx-16**: [HuC6280](pce.md) + - **NES**: [2A03](nes.md) + - **Famicom with Konami VRC7**: [2A03](nes.md), [VRC7](opl.md) + - **Famicom Disk System**: [2A03](nes.md), [FDS](fds.md) + - **Commodore 64 (6581 SID)**: [MOS 6581](c64.md) + - **Commodore 64 (8580 SID)**: [MOS 8580](c64.md) + - **Arcade (YM2151 and SegaPCM)**: [YM2151](ym2152.md), [SegaPCM](segapcm.md) -- **Neo Geo CD**: [YM2610](ym2610.md) -- **Neo Geo CD (extended channel 2)**: [YM2610](ym2610.md) + +- **Neo Geo CD**,\ + **Neo Geo CD (extended channel 2)**: [YM2610](ym2610.md) + - **Yamaha YMU759 (MA-2)**: [YMU759](ymu759.md) From 2c3bacbd3b0c936ff562805e1cc92baec49d6739 Mon Sep 17 00:00:00 2001 From: Eknous-P Date: Sat, 29 Jul 2023 11:07:20 +0400 Subject: [PATCH 033/202] colored text, arrays instead of many vars --- src/gui/effectList.cpp | 56 ++++++++++++------------------------------ src/gui/gui.cpp | 12 ++------- src/gui/gui.h | 2 +- src/gui/guiConst.cpp | 26 ++++++++++++++++++++ src/gui/guiConst.h | 4 ++- 5 files changed, 48 insertions(+), 52 deletions(-) diff --git a/src/gui/effectList.cpp b/src/gui/effectList.cpp index 8dd0b327a..4da92c29d 100644 --- a/src/gui/effectList.cpp +++ b/src/gui/effectList.cpp @@ -14,39 +14,15 @@ void FurnaceGUI::drawEffectList() { ImGui::Text("Chip at cursor: %s",e->getSystemName(e->sysOfChan[cursor.xCoarse])); if (ImGui::Button("Sort Effects")) ImGui::OpenPopup("effectSort"); if (ImGui::BeginPopupContextItem("effectSort")) { - ImGui::Checkbox("Pitch",&effectShowPitch); - ImGui::Checkbox("Song",&effectShowSong); - ImGui::Checkbox("Time",&effectShowTime); - ImGui::Checkbox("Speed",&effectShowSpeed); - ImGui::Checkbox("Panning",&effectShowPanning); - ImGui::Checkbox("Volume",&effectShowVolume); - ImGui::Checkbox("System (primary)",&effectShowSysPrimary); - ImGui::Checkbox("System (secondary)",&effectShowSysSecondary); - ImGui::Checkbox("Miscellaneous",&effectShowMisc); + for (int i=0; i<9; i++) { + ImGui::PushStyleColor(ImGuiCol_Text,uiColors[fxColorsSort[i]]); + ImGui::Checkbox(fxColorsNames[i],&effectsShow[i]); + ImGui::PopStyleColor(); + } - if (ImGui::Button("All")) { - effectShowMisc = true; - effectShowPanning = true; - effectShowPitch = true; - effectShowVolume = true; - effectShowSong = true; - effectShowTime = true; - effectShowSpeed = true; - effectShowSysPrimary = true; - effectShowSysSecondary = true; - } + if (ImGui::Button("All")) memset(effectsShow,1,sizeof(bool)*10); ImGui::SameLine(); - if (ImGui::Button("None")) { - effectShowMisc = false; - effectShowPanning = false; - effectShowPitch = false; - effectShowVolume = false; - effectShowSong = false; - effectShowTime = false; - effectShowSpeed = false; - effectShowSysPrimary = false; - effectShowSysSecondary = false; - } + if (ImGui::Button("None")) memset(effectsShow,0,sizeof(bool)*10); ImGui::EndPopup(); } @@ -70,15 +46,15 @@ void FurnaceGUI::drawEffectList() { } prevName=name; switch (fxColors[i]) { - case GUI_COLOR_PATTERN_EFFECT_MISC: effectShow = effectShowMisc; break; - case GUI_COLOR_PATTERN_EFFECT_SONG: effectShow = effectShowSong; break; - case GUI_COLOR_PATTERN_EFFECT_SPEED: effectShow = effectShowSpeed; break; - case GUI_COLOR_PATTERN_EFFECT_TIME: effectShow = effectShowTime; break; - case GUI_COLOR_PATTERN_EFFECT_PITCH: effectShow = effectShowPitch; break; - case GUI_COLOR_PATTERN_EFFECT_PANNING: effectShow = effectShowPanning; break; - case GUI_COLOR_PATTERN_EFFECT_VOLUME: effectShow = effectShowVolume; break; - case GUI_COLOR_PATTERN_EFFECT_SYS_PRIMARY: effectShow = effectShowSysPrimary; break; - case GUI_COLOR_PATTERN_EFFECT_SYS_SECONDARY: effectShow = effectShowSysSecondary; break; + case GUI_COLOR_PATTERN_EFFECT_MISC: effectShow = effectsShow[8]; break; + case GUI_COLOR_PATTERN_EFFECT_SONG: effectShow = effectsShow[1]; break; + case GUI_COLOR_PATTERN_EFFECT_SPEED: effectShow = effectsShow[3]; break; + case GUI_COLOR_PATTERN_EFFECT_TIME: effectShow = effectsShow[2]; break; + case GUI_COLOR_PATTERN_EFFECT_PITCH: effectShow = effectsShow[0]; break; + case GUI_COLOR_PATTERN_EFFECT_PANNING: effectShow = effectsShow[4]; break; + case GUI_COLOR_PATTERN_EFFECT_VOLUME: effectShow = effectsShow[5]; break; + case GUI_COLOR_PATTERN_EFFECT_SYS_PRIMARY: effectShow = effectsShow[6]; break; + case GUI_COLOR_PATTERN_EFFECT_SYS_SECONDARY: effectShow = effectsShow[7]; break; default: effectShow = true; break; } if (name!=NULL && effectShow) { diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 0883dce3f..4986cdfb4 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -7134,16 +7134,6 @@ FurnaceGUI::FurnaceGUI(): pianoView(PIANO_LAYOUT_STANDARD), pianoInputPadMode(PIANO_INPUT_PAD_DISABLE), #endif - //effect sorting - effectShowPitch(true), - effectShowVolume(true), - effectShowPanning(true), - effectShowSong(true), - effectShowTime(true), - effectShowSpeed(true), - effectShowSysPrimary(true), - effectShowSysSecondary(true), - effectShowMisc(true), hasACED(false), waveGenBaseShape(0), waveInterpolation(0), @@ -7279,6 +7269,8 @@ FurnaceGUI::FurnaceGUI(): memset(macroRelLabel,0,32); memset(emptyLabel,0,32); memset(emptyLabel2,0,32); + //effect sorting + memset(effectsShow,1,sizeof(bool)*10); strncpy(noteOffLabel,"OFF",32); strncpy(noteRelLabel,"===",32); diff --git a/src/gui/gui.h b/src/gui/gui.h index 65b1cc293..7d3e4cb5b 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -2031,7 +2031,7 @@ class FurnaceGUI { int pianoView, pianoInputPadMode; //effect sorting - bool effectShowPitch, effectShowVolume, effectShowPanning, effectShowSong, effectShowTime, effectShowSpeed, effectShowSysPrimary, effectShowSysSecondary, effectShowMisc; + bool effectsShow[10]; // TX81Z bool hasACED; diff --git a/src/gui/guiConst.cpp b/src/gui/guiConst.cpp index 09fe601d4..c1446ac6f 100644 --- a/src/gui/guiConst.cpp +++ b/src/gui/guiConst.cpp @@ -208,6 +208,32 @@ const char* resampleStrats[]={ "best possible" }; +const FurnaceGUIColors fxColorsSort[]={//used for sorting + GUI_COLOR_PATTERN_EFFECT_PITCH, + GUI_COLOR_PATTERN_EFFECT_SONG, + GUI_COLOR_PATTERN_EFFECT_TIME, + GUI_COLOR_PATTERN_EFFECT_SPEED, + GUI_COLOR_PATTERN_EFFECT_PANNING, + GUI_COLOR_PATTERN_EFFECT_VOLUME, + GUI_COLOR_PATTERN_EFFECT_SYS_PRIMARY, + GUI_COLOR_PATTERN_EFFECT_SYS_SECONDARY, + GUI_COLOR_PATTERN_EFFECT_MISC, + GUI_COLOR_PATTERN_EFFECT_INVALID +}; + +const char* fxColorsNames[]={ + "Pitch", + "Song", + "Time", + "Speed", + "Panning", + "Volume", + "System Primary", + "System Secondary", + "Miscellaneous", + "Invalid" +}; + const FurnaceGUIColors fxColors[256]={ GUI_COLOR_PATTERN_EFFECT_MISC, // 00 GUI_COLOR_PATTERN_EFFECT_PITCH, // 01 diff --git a/src/gui/guiConst.h b/src/gui/guiConst.h index 494ba58dc..616692de5 100644 --- a/src/gui/guiConst.h +++ b/src/gui/guiConst.h @@ -57,4 +57,6 @@ extern const FurnaceGUIActionDef guiActions[]; extern const FurnaceGUIColorDef guiColors[]; extern const int altValues[24]; extern const int vgmVersions[7]; -extern const FurnaceGUIColors fxColors[256]; \ No newline at end of file +extern const FurnaceGUIColors fxColors[256]; +extern const FurnaceGUIColors fxColorsSort[10]; +extern const char* fxColorsNames[10]; \ No newline at end of file From 1aef0079d14eb47e6895e8706c786e50b0d48c6f Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 29 Jul 2023 03:17:15 -0500 Subject: [PATCH 034/202] the first step to deprecating Defle compat Furnace will support .dmf loading/saving however in a far future, compatibility may not be guaranteed... I am not sure this setting is off by default (for now) --- src/engine/fileOps.cpp | 134 +++++++++++++++++++++-------------------- src/gui/gui.h | 2 + src/gui/settings.cpp | 11 ++++ 3 files changed, 81 insertions(+), 66 deletions(-) diff --git a/src/engine/fileOps.cpp b/src/engine/fileOps.cpp index ec7b64955..0ba5a1327 100644 --- a/src/engine/fileOps.cpp +++ b/src/engine/fileOps.cpp @@ -142,76 +142,78 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) { } // compatibility flags - ds.limitSlides=true; - ds.linearPitch=1; - ds.loopModality=0; - ds.properNoiseLayout=false; - ds.waveDutyIsVol=false; - // TODO: WHAT?! geodude.dmf fails when this is true - // but isn't that how Defle behaves??? - ds.resetMacroOnPorta=false; - ds.legacyVolumeSlides=true; - ds.compatibleArpeggio=true; - ds.noteOffResetsSlides=true; - ds.targetResetsSlides=true; - ds.arpNonPorta=false; - ds.algMacroBehavior=false; - ds.brokenShortcutSlides=false; - ds.ignoreDuplicateSlides=true; - ds.brokenDACMode=true; - ds.oneTickCut=false; - ds.newInsTriggersInPorta=true; - ds.arp0Reset=true; - ds.brokenSpeedSel=true; - ds.noSlidesOnFirstTick=false; - ds.rowResetsArpPos=false; - ds.ignoreJumpAtEnd=true; - ds.buggyPortaAfterSlide=true; - ds.gbInsAffectsEnvelope=true; - ds.ignoreDACModeOutsideIntendedChannel=false; - ds.e1e2AlsoTakePriority=true; - ds.fbPortaPause=true; - ds.snDutyReset=true; - ds.oldOctaveBoundary=false; - ds.noOPN2Vol=true; - ds.newVolumeScaling=false; - ds.volMacroLinger=false; - ds.brokenOutVol=true; - ds.brokenOutVol2=true; - ds.e1e2StopOnSameNote=true; - ds.brokenPortaArp=false; - ds.snNoLowPeriods=true; - ds.disableSampleMacro=true; - ds.delayBehavior=0; - ds.jumpTreatment=2; + if (!getConfInt("noDMFCompat",0)) { + ds.limitSlides=true; + ds.linearPitch=1; + ds.loopModality=0; + ds.properNoiseLayout=false; + ds.waveDutyIsVol=false; + // TODO: WHAT?! geodude.dmf fails when this is true + // but isn't that how Defle behaves??? + ds.resetMacroOnPorta=false; + ds.legacyVolumeSlides=true; + ds.compatibleArpeggio=true; + ds.noteOffResetsSlides=true; + ds.targetResetsSlides=true; + ds.arpNonPorta=false; + ds.algMacroBehavior=false; + ds.brokenShortcutSlides=false; + ds.ignoreDuplicateSlides=true; + ds.brokenDACMode=true; + ds.oneTickCut=false; + ds.newInsTriggersInPorta=true; + ds.arp0Reset=true; + ds.brokenSpeedSel=true; + ds.noSlidesOnFirstTick=false; + ds.rowResetsArpPos=false; + ds.ignoreJumpAtEnd=true; + ds.buggyPortaAfterSlide=true; + ds.gbInsAffectsEnvelope=true; + ds.ignoreDACModeOutsideIntendedChannel=false; + ds.e1e2AlsoTakePriority=true; + ds.fbPortaPause=true; + ds.snDutyReset=true; + ds.oldOctaveBoundary=false; + ds.noOPN2Vol=true; + ds.newVolumeScaling=false; + ds.volMacroLinger=false; + ds.brokenOutVol=true; + ds.brokenOutVol2=true; + ds.e1e2StopOnSameNote=true; + ds.brokenPortaArp=false; + ds.snNoLowPeriods=true; + ds.disableSampleMacro=true; + ds.delayBehavior=0; + ds.jumpTreatment=2; - // 1.1 compat flags - if (ds.version>24) { - ds.waveDutyIsVol=true; - ds.legacyVolumeSlides=false; - } + // 1.1 compat flags + if (ds.version>24) { + ds.waveDutyIsVol=true; + ds.legacyVolumeSlides=false; + } - // Neo Geo detune is caused by Defle running Neo Geo at the wrong clock. - /* - if (ds.system[0]==DIV_SYSTEM_YM2610 || ds.system[0]==DIV_SYSTEM_YM2610_EXT - || ds.system[0]==DIV_SYSTEM_YM2610_FULL || ds.system[0]==DIV_SYSTEM_YM2610_FULL_EXT - || ds.system[0]==DIV_SYSTEM_YM2610B || ds.system[0]==DIV_SYSTEM_YM2610B_EXT) { - ds.tuning=443.23; - } - */ + // Neo Geo detune is caused by Defle running Neo Geo at the wrong clock. + /* + if (ds.system[0]==DIV_SYSTEM_YM2610 || ds.system[0]==DIV_SYSTEM_YM2610_EXT + || ds.system[0]==DIV_SYSTEM_YM2610_FULL || ds.system[0]==DIV_SYSTEM_YM2610_FULL_EXT + || ds.system[0]==DIV_SYSTEM_YM2610B || ds.system[0]==DIV_SYSTEM_YM2610B_EXT) { + ds.tuning=443.23; + } + */ - // Genesis detuned on Defle v10 and earlier - /*if (ds.version<19 && ds.system[0]==DIV_SYSTEM_GENESIS) { - ds.tuning=443.23; - }*/ - // C64 detuned on Defle v11 and earlier - /*if (ds.version<21 && (ds.system[0]==DIV_SYSTEM_C64_6581 || ds.system[0]==DIV_SYSTEM_C64_8580)) { - ds.tuning=433.2; - }*/ + // Genesis detuned on Defle v10 and earlier + /*if (ds.version<19 && ds.system[0]==DIV_SYSTEM_GENESIS) { + ds.tuning=443.23; + }*/ + // C64 detuned on Defle v11 and earlier + /*if (ds.version<21 && (ds.system[0]==DIV_SYSTEM_C64_6581 || ds.system[0]==DIV_SYSTEM_C64_8580)) { + ds.tuning=433.2; + }*/ - // Game Boy arp+soundLen screwery - if (ds.system[0]==DIV_SYSTEM_GB) { - ds.systemFlags[0].set("enoughAlready",true); + // Game Boy arp+soundLen screwery + if (ds.system[0]==DIV_SYSTEM_GB) { + ds.systemFlags[0].set("enoughAlready",true); + } } logI("reading module data..."); diff --git a/src/gui/gui.h b/src/gui/gui.h index 42cec092f..433056033 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1523,6 +1523,7 @@ class FurnaceGUI { int newSongBehavior; int memUsageUnit; int cursorFollowsWheel; + int noDMFCompat; unsigned int maxUndoSteps; String mainFontPath; String patFontPath; @@ -1677,6 +1678,7 @@ class FurnaceGUI { newSongBehavior(0), memUsageUnit(1), cursorFollowsWheel(0), + noDMFCompat(0), maxUndoSteps(100), mainFontPath(""), patFontPath(""), diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 57f1fa32a..41f3ff225 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -676,6 +676,14 @@ void FurnaceGUI::drawSettings() { settings.blankIns=blankInsB; } + bool noDMFCompatB=settings.noDMFCompat; + if (ImGui::Checkbox("Don't apply compatibility flags when loading .dmf",&noDMFCompatB)) { + settings.noDMFCompat=noDMFCompatB; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("do not report any issues arising from the use of this option!"); + } + bool saveUnusedPatternsB=settings.saveUnusedPatterns; if (ImGui::Checkbox("Save unused patterns",&saveUnusedPatternsB)) { settings.saveUnusedPatterns=saveUnusedPatternsB; @@ -2821,6 +2829,7 @@ void FurnaceGUI::syncSettings() { settings.newSongBehavior=e->getConfInt("newSongBehavior",0); settings.memUsageUnit=e->getConfInt("memUsageUnit",1); settings.cursorFollowsWheel=e->getConfInt("cursorFollowsWheel",0); + settings.noDMFCompat=e->getConfInt("noDMFCompat",0); clampSetting(settings.mainFontSize,2,96); clampSetting(settings.patFontSize,2,96); @@ -2950,6 +2959,7 @@ void FurnaceGUI::syncSettings() { clampSetting(settings.newSongBehavior,0,1); clampSetting(settings.memUsageUnit,0,1); clampSetting(settings.cursorFollowsWheel,0,1); + clampSetting(settings.noDMFCompat,0,1); if (settings.exportLoops<0.0) settings.exportLoops=0.0; if (settings.exportFadeOut<0.0) settings.exportFadeOut=0.0; @@ -3175,6 +3185,7 @@ void FurnaceGUI::commitSettings() { e->setConf("newSongBehavior",settings.newSongBehavior); e->setConf("memUsageUnit",settings.memUsageUnit); e->setConf("cursorFollowsWheel",settings.cursorFollowsWheel); + e->setConf("noDMFCompat",settings.noDMFCompat); // colors for (int i=0; i Date: Sat, 29 Jul 2023 13:11:52 +0400 Subject: [PATCH 035/202] sameline --- src/gui/effectList.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/effectList.cpp b/src/gui/effectList.cpp index 4da92c29d..0be3d942a 100644 --- a/src/gui/effectList.cpp +++ b/src/gui/effectList.cpp @@ -12,6 +12,7 @@ void FurnaceGUI::drawEffectList() { ImGui::SetNextWindowSizeConstraints(ImVec2(60.0f*dpiScale,20.0f*dpiScale),ImVec2(canvasW,canvasH)); if (ImGui::Begin("Effect List",&effectListOpen,globalWinFlags)) { ImGui::Text("Chip at cursor: %s",e->getSystemName(e->sysOfChan[cursor.xCoarse])); + ImGui::SameLine(); if (ImGui::Button("Sort Effects")) ImGui::OpenPopup("effectSort"); if (ImGui::BeginPopupContextItem("effectSort")) { for (int i=0; i<9; i++) { From 92493485a3b9707cb0434fdd0959f651e0683cf8 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 29 Jul 2023 04:21:27 -0500 Subject: [PATCH 036/202] GUI: prepare for new settings layout --- src/gui/settings.cpp | 860 +++++++++++++++++++++++++------------------ 1 file changed, 493 insertions(+), 367 deletions(-) diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 41f3ff225..8a860c10f 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -236,6 +236,27 @@ const char* specificControls[18]={ } \ if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) actionKeys[what]=0; +#define CONFIG_SUBSECTION(what) \ + if (_subInit) { \ + ImGui::Separator(); \ + } else { \ + _subInit=true; \ + } \ + ImGui::PushFont(bigFont); \ + ImGui::TextUnformatted(what); \ + ImGui::PopFont(); + +#define CONFIG_SECTION(what) \ + if (ImGui::BeginTabItem(what)) { \ + bool _subInit=false; \ + ImVec2 settingsViewSize=ImGui::GetContentRegionAvail(); \ + settingsViewSize.y-=ImGui::GetFrameHeight()+ImGui::GetStyle().WindowPadding.y; \ + if (ImGui::BeginChild("SettingsView",settingsViewSize)) + +#define END_SECTION } \ + ImGui::EndChild(); \ + ImGui::EndTabItem(); + String stripName(String what) { String ret; for (char& i: what) { @@ -286,7 +307,472 @@ void FurnaceGUI::drawSettings() { showWarning("Do you want to save your settings?",GUI_WARN_CLOSE_SETTINGS); } if (ImGui::BeginTabBar("settingsTab")) { - if (ImGui::BeginTabItem("General")) { + // NEW SETTINGS HERE + CONFIG_SECTION("General") { + // SUBSECTION PROGRAM + CONFIG_SUBSECTION("Program"); + String curRenderBackend=settings.renderBackend.empty()?GUI_BACKEND_DEFAULT_NAME:settings.renderBackend; + if (ImGui::BeginCombo("Render backend",curRenderBackend.c_str())) { +#ifdef HAVE_RENDER_SDL + if (ImGui::Selectable("SDL Renderer",curRenderBackend=="SDL")) { + settings.renderBackend="SDL"; + } +#endif +#ifdef HAVE_RENDER_DX11 + if (ImGui::Selectable("DirectX 11",curRenderBackend=="DirectX 11")) { + settings.renderBackend="DirectX 11"; + } +#endif +#ifdef HAVE_RENDER_GL + if (ImGui::Selectable("OpenGL",curRenderBackend=="OpenGL")) { + settings.renderBackend="OpenGL"; + } +#endif + ImGui::EndCombo(); + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("you may need to restart Furnace for this setting to take effect."); + } + if (curRenderBackend=="SDL") { + if (ImGui::BeginCombo("Render driver",settings.renderDriver.empty()?"Automatic":settings.renderDriver.c_str())) { + if (ImGui::Selectable("Automatic",settings.renderDriver.empty())) { + settings.renderDriver=""; + } + for (String& i: availRenderDrivers) { + if (ImGui::Selectable(i.c_str(),i==settings.renderDriver)) { + settings.renderDriver=i; + } + } + ImGui::EndCombo(); + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("you may need to restart Furnace for this setting to take effect."); + } + } + + bool renderClearPosB=settings.renderClearPos; + if (ImGui::Checkbox("Late render clear",&renderClearPosB)) { + settings.renderClearPos=renderClearPosB; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("calls rend->clear() after rend->present(). might reduce UI latency by one frame in some drivers."); + } + + bool powerSaveB=settings.powerSave; + if (ImGui::Checkbox("Power-saving mode",&powerSaveB)) { + settings.powerSave=powerSaveB; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("saves power by lowering the frame rate to 2fps when idle.\nmay cause issues under Mesa drivers!"); + } + +#ifndef IS_MOBILE + bool noThreadedInputB=settings.noThreadedInput; + if (ImGui::Checkbox("Disable threaded input (restart after changing!)",&noThreadedInputB)) { + settings.noThreadedInput=noThreadedInputB; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("threaded input processes key presses for note preview on a separate thread (on supported platforms), which reduces latency.\nhowever, crashes have been reported when threaded input is on. enable this option if that is the case."); + } +#endif + + bool eventDelayB=settings.eventDelay; + if (ImGui::Checkbox("Enable event delay",&eventDelayB)) { + settings.eventDelay=eventDelayB; + applyUISettings(false); + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("may cause issues with high-polling-rate mice when previewing notes."); + } + + // SUBSECTION FILE + CONFIG_SUBSECTION("File"); + + bool sysFileDialogB=settings.sysFileDialog; + if (ImGui::Checkbox("Use system file picker",&sysFileDialogB)) { + settings.sysFileDialog=sysFileDialogB; + } + + if (ImGui::InputInt("Number of recent files",&settings.maxRecentFile)) { + if (settings.maxRecentFile<0) settings.maxRecentFile=0; + if (settings.maxRecentFile>30) settings.maxRecentFile=30; + } + + bool compressB=settings.compress; + if (ImGui::Checkbox("Compress when saving",&compressB)) { + settings.compress=compressB; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("use zlib to compress saved songs."); + } + + bool saveUnusedPatternsB=settings.saveUnusedPatterns; + if (ImGui::Checkbox("Save unused patterns",&saveUnusedPatternsB)) { + settings.saveUnusedPatterns=saveUnusedPatternsB; + } + + bool newPatternFormatB=settings.newPatternFormat; + if (ImGui::Checkbox("Use new pattern format when saving",&newPatternFormatB)) { + settings.newPatternFormat=newPatternFormatB; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("use a packed format which saves space when saving songs.\ndisable if you need compatibility with older Furnace and/or tools\nwhich do not support this format."); + } + + bool noDMFCompatB=settings.noDMFCompat; + if (ImGui::Checkbox("Don't apply compatibility flags when loading .dmf",&noDMFCompatB)) { + settings.noDMFCompat=noDMFCompatB; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("do not report any issues arising from the use of this option!"); + } + + ImGui::Text("Audio export loop/fade out time:"); + if (ImGui::RadioButton("Set to these values on start-up:##fot0",settings.persistFadeOut==0)) { + settings.persistFadeOut=0; + } + ImGui::BeginDisabled(settings.persistFadeOut); + if (ImGui::InputInt("Loops",&settings.exportLoops,1,2)) { + if (exportLoops<0) exportLoops=0; + exportLoops=settings.exportLoops; + } + if (ImGui::InputDouble("Fade out (seconds)",&settings.exportFadeOut,1.0,2.0,"%.1f")) { + if (exportFadeOut<0.0) exportFadeOut=0.0; + exportFadeOut=settings.exportFadeOut; + } + ImGui::EndDisabled(); + if (ImGui::RadioButton("Remember last values##fot1",settings.persistFadeOut==1)) { + settings.persistFadeOut=1; + } + + // SUBSECTION CHIP + CONFIG_SUBSECTION("Chip"); + ImGui::Text("Initial system:"); + ImGui::SameLine(); + if (ImGui::Button("Current system")) { + settings.initialSys.clear(); + for (int i=0; isong.systemLen; i++) { + settings.initialSys.set(fmt::sprintf("id%d",i),e->systemToFileFur(e->song.system[i])); + settings.initialSys.set(fmt::sprintf("vol%d",i),(float)e->song.systemVol[i]); + settings.initialSys.set(fmt::sprintf("pan%d",i),(float)e->song.systemPan[i]); + settings.initialSys.set(fmt::sprintf("fr%d",i),(float)e->song.systemPanFR[i]); + settings.initialSys.set(fmt::sprintf("flags%d",i),e->song.systemFlags[i].toBase64()); + } + settings.initialSysName=e->song.systemName; + } + ImGui::SameLine(); + if (ImGui::Button("Randomize")) { + settings.initialSys.clear(); + int howMany=1+rand()%3; + int totalAvailSys=0; + for (totalAvailSys=0; availableSystems[totalAvailSys]; totalAvailSys++); + if (totalAvailSys>0) { + for (int i=0; isystemToFileFur((DivSystem)availableSystems[rand()%totalAvailSys])); + settings.initialSys.set(fmt::sprintf("vol%d",i),1.0f); + settings.initialSys.set(fmt::sprintf("pan%d",i),0.0f); + settings.initialSys.set(fmt::sprintf("fr%d",i),0.0f); + settings.initialSys.set(fmt::sprintf("flags%d",i),""); + } + } else { + settings.initialSys.set("id0",e->systemToFileFur(DIV_SYSTEM_DUMMY)); + settings.initialSys.set("vol0",1.0f); + settings.initialSys.set("pan0",0.0f); + settings.initialSys.set("fr0",0.0f); + settings.initialSys.set("flags0",""); + howMany=1; + } + // randomize system name + std::vector wordPool[6]; + for (int i=0; isystemFromFileFur(settings.initialSys.getInt(fmt::sprintf("id%d",i),0)); + String sName=e->getSystemName(sysID); + String nameWord; + sName+=" "; + for (char& i: sName) { + if (i==' ') { + if (nameWord!="") { + wordPool[wpPos++].push_back(nameWord); + if (wpPos>=6) break; + nameWord=""; + } + } else { + nameWord+=i; + } + } + } + settings.initialSysName=""; + for (int i=0; i<6; i++) { + if (wordPool[i].empty()) continue; + settings.initialSysName+=wordPool[i][rand()%wordPool[i].size()]; + settings.initialSysName+=" "; + } + } + ImGui::SameLine(); + if (ImGui::Button("Reset to defaults")) { + settings.initialSys.clear(); + settings.initialSys.set("id0",e->systemToFileFur(DIV_SYSTEM_YM2612)); + settings.initialSys.set("vol0",1.0f); + settings.initialSys.set("pan0",0.0f); + settings.initialSys.set("fr0",0.0f); + settings.initialSys.set("flags0",""); + settings.initialSys.set("id1",e->systemToFileFur(DIV_SYSTEM_SMS)); + settings.initialSys.set("vol1",0.5f); + settings.initialSys.set("pan1",0.0f); + settings.initialSys.set("fr1",0.0f); + settings.initialSys.set("flags1",""); + settings.initialSysName="Sega Genesis/Mega Drive"; + } + + ImGui::Text("Name"); + ImGui::SameLine(); + ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); + ImGui::InputText("##InitSysName",&settings.initialSysName); + + int sysCount=0; + int doRemove=-1; + for (size_t i=0; settings.initialSys.getInt(fmt::sprintf("id%d",i),0); i++) { + DivSystem sysID=e->systemFromFileFur(settings.initialSys.getInt(fmt::sprintf("id%d",i),0)); + float sysVol=settings.initialSys.getFloat(fmt::sprintf("vol%d",i),0); + float sysPan=settings.initialSys.getFloat(fmt::sprintf("pan%d",i),0); + float sysPanFR=settings.initialSys.getFloat(fmt::sprintf("fr%d",i),0); + + sysCount=i+1; + + //bool doRemove=false; + bool doInvert=(sysVol<0); + float vol=fabs(sysVol); + ImGui::PushID(i); + + ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x-ImGui::CalcTextSize("Invert").x-ImGui::GetFrameHeightWithSpacing()*2.0-ImGui::GetStyle().ItemSpacing.x); + if (ImGui::BeginCombo("##System",getSystemName(sysID))) { + for (int j=0; availableSystems[j]; j++) { + if (ImGui::Selectable(getSystemName((DivSystem)availableSystems[j]),sysID==availableSystems[j])) { + sysID=(DivSystem)availableSystems[j]; + settings.initialSys.set(fmt::sprintf("id%d",i),(int)e->systemToFileFur(sysID)); + settings.initialSys.set(fmt::sprintf("flags%d",i),""); + } + } + ImGui::EndCombo(); + } + + ImGui::SameLine(); + if (ImGui::Checkbox("Invert",&doInvert)) { + sysVol=-sysVol; + settings.initialSys.set(fmt::sprintf("vol%d",i),sysVol); + } + ImGui::SameLine(); + //ImGui::BeginDisabled(settings.initialSys.size()<=4); + if (ImGui::Button(ICON_FA_MINUS "##InitSysRemove")) { + doRemove=i; + } + //ImGui::EndDisabled(); + ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); + if (CWSliderFloat("Volume",&vol,0.0f,3.0f)) { + if (doInvert) { + if (vol<0.0001) vol=0.0001; + } + if (vol<0) vol=0; + if (vol>10) vol=10; + sysVol=doInvert?-vol:vol; + settings.initialSys.set(fmt::sprintf("vol%d",i),(float)sysVol); + } rightClickable + ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); + if (CWSliderFloat("Panning",&sysPan,-1.0f,1.0f)) { + if (sysPan<-1.0f) sysPan=-1.0f; + if (sysPan>1.0f) sysPan=1.0f; + settings.initialSys.set(fmt::sprintf("pan%d",i),(float)sysPan); + } rightClickable + ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); + if (CWSliderFloat("Front/Rear",&sysPanFR,-1.0f,1.0f)) { + if (sysPanFR<-1.0f) sysPanFR=-1.0f; + if (sysPanFR>1.0f) sysPanFR=1.0f; + settings.initialSys.set(fmt::sprintf("fr%d",i),(float)sysPanFR); + } rightClickable + + // oh please MSVC don't cry + if (ImGui::TreeNode("Configure")) { + String sysFlagsS=settings.initialSys.getString(fmt::sprintf("flags%d",i),""); + DivConfig sysFlags; + sysFlags.loadFromBase64(sysFlagsS.c_str()); + if (drawSysConf(-1,sysID,sysFlags,false)) { + settings.initialSys.set(fmt::sprintf("flags%d",i),sysFlags.toBase64()); + } + ImGui::TreePop(); + } + + ImGui::PopID(); + } + + if (doRemove>=0 && sysCount>1) { + for (int i=doRemove; isystemToFileFur(DIV_SYSTEM_YM2612)); + settings.initialSys.set(fmt::sprintf("vol%d",sysCount),1.0f); + settings.initialSys.set(fmt::sprintf("pan%d",sysCount),0.0f); + settings.initialSys.set(fmt::sprintf("fr%d",sysCount),0.0f); + settings.initialSys.set(fmt::sprintf("flags%d",sysCount),""); + } + + ImGui::Text("When creating new song:"); + if (ImGui::RadioButton("Display system preset selector##NSB0",settings.newSongBehavior==0)) { + settings.newSongBehavior=0; + } + if (ImGui::RadioButton("Start with initial system##NSB1",settings.newSongBehavior==1)) { + settings.newSongBehavior=1; + } + + bool restartOnFlagChangeB=settings.restartOnFlagChange; + if (ImGui::Checkbox("Restart song when changing chip properties",&restartOnFlagChangeB)) { + settings.restartOnFlagChange=restartOnFlagChangeB; + } + + // SUBSECTION START-UP + CONFIG_SUBSECTION("Start-up"); + ImGui::Text("Play intro on start-up:"); + if (ImGui::RadioButton("No##pis0",settings.alwaysPlayIntro==0)) { + settings.alwaysPlayIntro=0; + } + if (ImGui::RadioButton("Short##pis1",settings.alwaysPlayIntro==1)) { + settings.alwaysPlayIntro=1; + } + if (ImGui::RadioButton("Full (short when loading song)##pis2",settings.alwaysPlayIntro==2)) { + settings.alwaysPlayIntro=2; + } + if (ImGui::RadioButton("Full (always)##pis3",settings.alwaysPlayIntro==3)) { + settings.alwaysPlayIntro=3; + } + + bool disableFadeInB=settings.disableFadeIn; + if (ImGui::Checkbox("Disable fade-in during start-up",&disableFadeInB)) { + settings.disableFadeIn=disableFadeInB; + } + + bool partyTimeB=settings.partyTime; + if (ImGui::Checkbox("About screen party time",&partyTimeB)) { + settings.partyTime=partyTimeB; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("Warning: may cause epileptic seizures."); + } + + // SUBSECTION BEHAVIOR + CONFIG_SUBSECTION("Behavior"); + bool blankInsB=settings.blankIns; + if (ImGui::Checkbox("New instruments are blank",&blankInsB)) { + settings.blankIns=blankInsB; + } + + END_SECTION; + } + CONFIG_SECTION("Audio/MIDI") { + // SUBSECTION OUTPUT + CONFIG_SUBSECTION("Output"); + + // SUBSECTION MIXING + CONFIG_SUBSECTION("Mixing"); + + // SUBSECTION METRONOME + CONFIG_SUBSECTION("Metronome"); + + // SUBSECTION MIDI + CONFIG_SUBSECTION("MIDI"); + + END_SECTION; + } + CONFIG_SECTION("Emulation") { + // SUBSECTION LAYOUT + CONFIG_SUBSECTION("Cores"); + END_SECTION; + } + CONFIG_SECTION("Keyboard") { + // SUBSECTION LAYOUT + CONFIG_SUBSECTION("Keyboard"); + END_SECTION; + } + CONFIG_SECTION("Interface") { + // SUBSECTION LAYOUT + CONFIG_SUBSECTION("Layout"); + + // SUBSECTION CLICKING + CONFIG_SUBSECTION("Clicking"); + + // SUBSECTION CURSOR: EDIT + CONFIG_SUBSECTION("Cursor: Edit"); + + // SUBSECTION CURSOR: MOVE + CONFIG_SUBSECTION("Cursor: Move"); + + // SUBSECTION SCROLLING + CONFIG_SUBSECTION("Scrolling"); + + END_SECTION; + } + CONFIG_SECTION("Appearance") { + // SUBSECTION INTERFACE + CONFIG_SUBSECTION("Interface"); + + // SUBSECTION BARS + CONFIG_SUBSECTION("Bars"); + + // SUBSECTION ORDERS + CONFIG_SUBSECTION("Orders"); + + // SUBSECTION PATTERN + CONFIG_SUBSECTION("Pattern"); + + // SUBSECTION CHANNEL + CONFIG_SUBSECTION("Channel"); + + // SUBSECTION ASSETS + CONFIG_SUBSECTION("Assets"); + + // SUBSECTION MACRO EDITOR + CONFIG_SUBSECTION("Macro Editor"); + + // SUBSECTION WAVE EDITOR + CONFIG_SUBSECTION("Wave Editor"); + + // SUBSECTION FM EDITOR + CONFIG_SUBSECTION("FM Editor"); + + // SUBSECTION STATISTICS + CONFIG_SUBSECTION("Statistics"); + + // SUBSECTION OSCILLOSCOPE + CONFIG_SUBSECTION("Oscilloscope"); + + // SUBSECTION WINDOWS + CONFIG_SUBSECTION("Windows"); + + // SUBSECTION COLOR + CONFIG_SUBSECTION("Color"); + + END_SECTION; + } + + // OLD SETTINGS HERE + if (ImGui::BeginTabItem("General (OLD)")) { ImVec2 settingsViewSize=ImGui::GetContentRegionAvail(); settingsViewSize.y-=ImGui::GetFrameHeight()+ImGui::GetStyle().WindowPadding.y; if (ImGui::BeginChild("SettingsView",settingsViewSize)) { @@ -306,216 +792,6 @@ void FurnaceGUI::drawSettings() { ImGui::Separator(); - ImGui::Text("Initial system:"); - ImGui::SameLine(); - if (ImGui::Button("Current system")) { - settings.initialSys.clear(); - for (int i=0; isong.systemLen; i++) { - settings.initialSys.set(fmt::sprintf("id%d",i),e->systemToFileFur(e->song.system[i])); - settings.initialSys.set(fmt::sprintf("vol%d",i),(float)e->song.systemVol[i]); - settings.initialSys.set(fmt::sprintf("pan%d",i),(float)e->song.systemPan[i]); - settings.initialSys.set(fmt::sprintf("fr%d",i),(float)e->song.systemPanFR[i]); - settings.initialSys.set(fmt::sprintf("flags%d",i),e->song.systemFlags[i].toBase64()); - } - settings.initialSysName=e->song.systemName; - } - ImGui::SameLine(); - if (ImGui::Button("Randomize")) { - settings.initialSys.clear(); - int howMany=1+rand()%3; - int totalAvailSys=0; - for (totalAvailSys=0; availableSystems[totalAvailSys]; totalAvailSys++); - if (totalAvailSys>0) { - for (int i=0; isystemToFileFur((DivSystem)availableSystems[rand()%totalAvailSys])); - settings.initialSys.set(fmt::sprintf("vol%d",i),1.0f); - settings.initialSys.set(fmt::sprintf("pan%d",i),0.0f); - settings.initialSys.set(fmt::sprintf("fr%d",i),0.0f); - settings.initialSys.set(fmt::sprintf("flags%d",i),""); - } - } else { - settings.initialSys.set("id0",e->systemToFileFur(DIV_SYSTEM_DUMMY)); - settings.initialSys.set("vol0",1.0f); - settings.initialSys.set("pan0",0.0f); - settings.initialSys.set("fr0",0.0f); - settings.initialSys.set("flags0",""); - howMany=1; - } - // randomize system name - std::vector wordPool[6]; - for (int i=0; isystemFromFileFur(settings.initialSys.getInt(fmt::sprintf("id%d",i),0)); - String sName=e->getSystemName(sysID); - String nameWord; - sName+=" "; - for (char& i: sName) { - if (i==' ') { - if (nameWord!="") { - wordPool[wpPos++].push_back(nameWord); - if (wpPos>=6) break; - nameWord=""; - } - } else { - nameWord+=i; - } - } - } - settings.initialSysName=""; - for (int i=0; i<6; i++) { - if (wordPool[i].empty()) continue; - settings.initialSysName+=wordPool[i][rand()%wordPool[i].size()]; - settings.initialSysName+=" "; - } - } - ImGui::SameLine(); - if (ImGui::Button("Reset to defaults")) { - settings.initialSys.clear(); - settings.initialSys.set("id0",e->systemToFileFur(DIV_SYSTEM_YM2612)); - settings.initialSys.set("vol0",1.0f); - settings.initialSys.set("pan0",0.0f); - settings.initialSys.set("fr0",0.0f); - settings.initialSys.set("flags0",""); - settings.initialSys.set("id1",e->systemToFileFur(DIV_SYSTEM_SMS)); - settings.initialSys.set("vol1",0.5f); - settings.initialSys.set("pan1",0.0f); - settings.initialSys.set("fr1",0.0f); - settings.initialSys.set("flags1",""); - settings.initialSysName="Sega Genesis/Mega Drive"; - } - - ImGui::Text("Name"); - ImGui::SameLine(); - ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - ImGui::InputText("##InitSysName",&settings.initialSysName); - - int sysCount=0; - int doRemove=-1; - for (size_t i=0; settings.initialSys.getInt(fmt::sprintf("id%d",i),0); i++) { - DivSystem sysID=e->systemFromFileFur(settings.initialSys.getInt(fmt::sprintf("id%d",i),0)); - float sysVol=settings.initialSys.getFloat(fmt::sprintf("vol%d",i),0); - float sysPan=settings.initialSys.getFloat(fmt::sprintf("pan%d",i),0); - float sysPanFR=settings.initialSys.getFloat(fmt::sprintf("fr%d",i),0); - - sysCount=i+1; - - //bool doRemove=false; - bool doInvert=(sysVol<0); - float vol=fabs(sysVol); - ImGui::PushID(i); - - ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x-ImGui::CalcTextSize("Invert").x-ImGui::GetFrameHeightWithSpacing()*2.0-ImGui::GetStyle().ItemSpacing.x); - if (ImGui::BeginCombo("##System",getSystemName(sysID))) { - for (int j=0; availableSystems[j]; j++) { - if (ImGui::Selectable(getSystemName((DivSystem)availableSystems[j]),sysID==availableSystems[j])) { - sysID=(DivSystem)availableSystems[j]; - settings.initialSys.set(fmt::sprintf("id%d",i),(int)e->systemToFileFur(sysID)); - settings.initialSys.set(fmt::sprintf("flags%d",i),""); - } - } - ImGui::EndCombo(); - } - - ImGui::SameLine(); - if (ImGui::Checkbox("Invert",&doInvert)) { - sysVol=-sysVol; - settings.initialSys.set(fmt::sprintf("vol%d",i),sysVol); - } - ImGui::SameLine(); - //ImGui::BeginDisabled(settings.initialSys.size()<=4); - if (ImGui::Button(ICON_FA_MINUS "##InitSysRemove")) { - doRemove=i; - } - //ImGui::EndDisabled(); - ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - if (CWSliderFloat("Volume",&vol,0.0f,3.0f)) { - if (doInvert) { - if (vol<0.0001) vol=0.0001; - } - if (vol<0) vol=0; - if (vol>10) vol=10; - sysVol=doInvert?-vol:vol; - settings.initialSys.set(fmt::sprintf("vol%d",i),(float)sysVol); - } rightClickable - ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - if (CWSliderFloat("Panning",&sysPan,-1.0f,1.0f)) { - if (sysPan<-1.0f) sysPan=-1.0f; - if (sysPan>1.0f) sysPan=1.0f; - settings.initialSys.set(fmt::sprintf("pan%d",i),(float)sysPan); - } rightClickable - ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - if (CWSliderFloat("Front/Rear",&sysPanFR,-1.0f,1.0f)) { - if (sysPanFR<-1.0f) sysPanFR=-1.0f; - if (sysPanFR>1.0f) sysPanFR=1.0f; - settings.initialSys.set(fmt::sprintf("fr%d",i),(float)sysPanFR); - } rightClickable - - // oh please MSVC don't cry - if (ImGui::TreeNode("Configure")) { - String sysFlagsS=settings.initialSys.getString(fmt::sprintf("flags%d",i),""); - DivConfig sysFlags; - sysFlags.loadFromBase64(sysFlagsS.c_str()); - if (drawSysConf(-1,sysID,sysFlags,false)) { - settings.initialSys.set(fmt::sprintf("flags%d",i),sysFlags.toBase64()); - } - ImGui::TreePop(); - } - - ImGui::PopID(); - } - - if (doRemove>=0 && sysCount>1) { - for (int i=doRemove; isystemToFileFur(DIV_SYSTEM_YM2612)); - settings.initialSys.set(fmt::sprintf("vol%d",sysCount),1.0f); - settings.initialSys.set(fmt::sprintf("pan%d",sysCount),0.0f); - settings.initialSys.set(fmt::sprintf("fr%d",sysCount),0.0f); - settings.initialSys.set(fmt::sprintf("flags%d",sysCount),""); - } - - ImGui::Separator(); - - ImGui::Text("Play intro on start-up:"); - if (ImGui::RadioButton("No##pis0",settings.alwaysPlayIntro==0)) { - settings.alwaysPlayIntro=0; - } - if (ImGui::RadioButton("Short##pis1",settings.alwaysPlayIntro==1)) { - settings.alwaysPlayIntro=1; - } - if (ImGui::RadioButton("Full (short when loading song)##pis2",settings.alwaysPlayIntro==2)) { - settings.alwaysPlayIntro=2; - } - if (ImGui::RadioButton("Full (always)##pis3",settings.alwaysPlayIntro==3)) { - settings.alwaysPlayIntro=3; - } - - ImGui::Text("When creating new song:"); - if (ImGui::RadioButton("Display system preset selector##NSB0",settings.newSongBehavior==0)) { - settings.newSongBehavior=0; - } - if (ImGui::RadioButton("Start with initial system##NSB1",settings.newSongBehavior==1)) { - settings.newSongBehavior=1; - } ImGui::Separator(); @@ -612,56 +888,13 @@ void FurnaceGUI::drawSettings() { settings.insFocusesPattern=insFocusesPatternB; } - bool restartOnFlagChangeB=settings.restartOnFlagChange; - if (ImGui::Checkbox("Restart song when changing chip properties",&restartOnFlagChangeB)) { - settings.restartOnFlagChange=restartOnFlagChangeB; - } - - bool sysFileDialogB=settings.sysFileDialog; - if (ImGui::Checkbox("Use system file picker",&sysFileDialogB)) { - settings.sysFileDialog=sysFileDialogB; - } - bool moveWindowTitleB=settings.moveWindowTitle; if (ImGui::Checkbox("Only allow window movement when clicking on title bar",&moveWindowTitleB)) { settings.moveWindowTitle=moveWindowTitleB; applyUISettings(false); } - bool eventDelayB=settings.eventDelay; - if (ImGui::Checkbox("Enable event delay",&eventDelayB)) { - settings.eventDelay=eventDelayB; - applyUISettings(false); - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("may cause issues with high-polling-rate mice when previewing notes."); - } - - bool powerSaveB=settings.powerSave; - if (ImGui::Checkbox("Power-saving mode",&powerSaveB)) { - settings.powerSave=powerSaveB; - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("saves power by lowering the frame rate to 2fps when idle.\nmay cause issues under Mesa drivers!"); - } - - bool renderClearPosB=settings.renderClearPos; - if (ImGui::Checkbox("Late render clear",&renderClearPosB)) { - settings.renderClearPos=renderClearPosB; - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("calls rend->clear() after rend->present(). might reduce UI latency by one frame in some drivers."); - } - #ifndef IS_MOBILE - bool noThreadedInputB=settings.noThreadedInput; - if (ImGui::Checkbox("Disable threaded input (restart after changing!)",&noThreadedInputB)) { - settings.noThreadedInput=noThreadedInputB; - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("threaded input processes key presses for note preview on a separate thread (on supported platforms), which reduces latency.\nhowever, crashes have been reported when threaded input is on. enable this option if that is the case."); - } - bool saveWindowPosB=settings.saveWindowPos; if (ImGui::Checkbox("Remember window position",&saveWindowPosB)) { settings.saveWindowPos=saveWindowPosB; @@ -671,40 +904,6 @@ void FurnaceGUI::drawSettings() { } #endif - bool blankInsB=settings.blankIns; - if (ImGui::Checkbox("New instruments are blank",&blankInsB)) { - settings.blankIns=blankInsB; - } - - bool noDMFCompatB=settings.noDMFCompat; - if (ImGui::Checkbox("Don't apply compatibility flags when loading .dmf",&noDMFCompatB)) { - settings.noDMFCompat=noDMFCompatB; - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("do not report any issues arising from the use of this option!"); - } - - bool saveUnusedPatternsB=settings.saveUnusedPatterns; - if (ImGui::Checkbox("Save unused patterns",&saveUnusedPatternsB)) { - settings.saveUnusedPatterns=saveUnusedPatternsB; - } - - bool compressB=settings.compress; - if (ImGui::Checkbox("Compress when saving",&compressB)) { - settings.compress=compressB; - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("use zlib to compress saved songs."); - } - - bool newPatternFormatB=settings.newPatternFormat; - if (ImGui::Checkbox("Use new pattern format when saving",&newPatternFormatB)) { - settings.newPatternFormat=newPatternFormatB; - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("use a packed format which saves space when saving songs.\ndisable if you need compatibility with older Furnace and/or tools\nwhich do not support this format."); - } - bool cursorFollowsOrderB=settings.cursorFollowsOrder; if (ImGui::Checkbox("Cursor follows current order when moving it",&cursorFollowsOrderB)) { settings.cursorFollowsOrder=cursorFollowsOrderB; @@ -713,24 +912,6 @@ void FurnaceGUI::drawSettings() { ImGui::SetTooltip("applies when playback is stopped."); } - ImGui::Text("Audio export loop/fade out time:"); - if (ImGui::RadioButton("Set to these values on start-up:##fot0",settings.persistFadeOut==0)) { - settings.persistFadeOut=0; - } - ImGui::BeginDisabled(settings.persistFadeOut); - if (ImGui::InputInt("Loops",&settings.exportLoops,1,2)) { - if (exportLoops<0) exportLoops=0; - exportLoops=settings.exportLoops; - } - if (ImGui::InputDouble("Fade out (seconds)",&settings.exportFadeOut,1.0,2.0,"%.1f")) { - if (exportFadeOut<0.0) exportFadeOut=0.0; - exportFadeOut=settings.exportFadeOut; - } - ImGui::EndDisabled(); - if (ImGui::RadioButton("Remember last values##fot1",settings.persistFadeOut==1)) { - settings.persistFadeOut=1; - } - ImGui::Text("Note preview behavior:"); if (ImGui::RadioButton("Never##npb0",settings.notePreviewBehavior==0)) { settings.notePreviewBehavior=0; @@ -815,7 +996,7 @@ void FurnaceGUI::drawSettings() { ImGui::EndChild(); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Audio/MIDI")) { + if (ImGui::BeginTabItem("Audio/MIDI (OLD)")) { ImVec2 settingsViewSize=ImGui::GetContentRegionAvail(); settingsViewSize.y-=ImGui::GetFrameHeight()+ImGui::GetStyle().WindowPadding.y; if (ImGui::BeginChild("SettingsView",settingsViewSize)) { @@ -1271,7 +1452,7 @@ void FurnaceGUI::drawSettings() { ImGui::EndChild(); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Emulation")) { + if (ImGui::BeginTabItem("Emulation (OLD)")) { ImVec2 settingsViewSize=ImGui::GetContentRegionAvail(); settingsViewSize.y-=ImGui::GetFrameHeight()+ImGui::GetStyle().WindowPadding.y; if (ImGui::BeginChild("SettingsView",settingsViewSize)) { @@ -1343,49 +1524,10 @@ void FurnaceGUI::drawSettings() { ImGui::EndChild(); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Appearance")) { + if (ImGui::BeginTabItem("Appearance (OLD)")) { ImVec2 settingsViewSize=ImGui::GetContentRegionAvail(); settingsViewSize.y-=ImGui::GetFrameHeight()+ImGui::GetStyle().WindowPadding.y; if (ImGui::BeginChild("SettingsView",settingsViewSize)) { - String curRenderBackend=settings.renderBackend.empty()?GUI_BACKEND_DEFAULT_NAME:settings.renderBackend; - if (ImGui::BeginCombo("Render backend",curRenderBackend.c_str())) { -#ifdef HAVE_RENDER_SDL - if (ImGui::Selectable("SDL Renderer",curRenderBackend=="SDL")) { - settings.renderBackend="SDL"; - } -#endif -#ifdef HAVE_RENDER_DX11 - if (ImGui::Selectable("DirectX 11",curRenderBackend=="DirectX 11")) { - settings.renderBackend="DirectX 11"; - } -#endif -#ifdef HAVE_RENDER_GL - if (ImGui::Selectable("OpenGL",curRenderBackend=="OpenGL")) { - settings.renderBackend="OpenGL"; - } -#endif - ImGui::EndCombo(); - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("you may need to restart Furnace for this setting to take effect."); - } - if (curRenderBackend=="SDL") { - if (ImGui::BeginCombo("Render driver",settings.renderDriver.empty()?"Automatic":settings.renderDriver.c_str())) { - if (ImGui::Selectable("Automatic",settings.renderDriver.empty())) { - settings.renderDriver=""; - } - for (String& i: availRenderDrivers) { - if (ImGui::Selectable(i.c_str(),i==settings.renderDriver)) { - settings.renderDriver=i; - } - } - ImGui::EndCombo(); - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("you may need to restart Furnace for this setting to take effect."); - } - } - bool dpiScaleAuto=(settings.dpiScale<0.5f); if (ImGui::Checkbox("Automatic UI scaling factor",&dpiScaleAuto)) { if (dpiScaleAuto) { @@ -1487,10 +1629,7 @@ void FurnaceGUI::drawSettings() { ImGui::Separator(); - if (ImGui::InputInt("Number of recent files",&settings.maxRecentFile)) { - if (settings.maxRecentFile<0) settings.maxRecentFile=0; - if (settings.maxRecentFile>30) settings.maxRecentFile=30; - } + ImGui::Separator(); @@ -1827,14 +1966,6 @@ void FurnaceGUI::drawSettings() { settings.ordersCursor=ordersCursorB; } - bool partyTimeB=settings.partyTime; - if (ImGui::Checkbox("About screen party time",&partyTimeB)) { - settings.partyTime=partyTimeB; - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Warning: may cause epileptic seizures."); - } - ImGui::Separator(); bool waveLayoutB=settings.waveLayout; @@ -1867,11 +1998,6 @@ void FurnaceGUI::drawSettings() { settings.frameBorders=frameBordersB; } - bool disableFadeInB=settings.disableFadeIn; - if (ImGui::Checkbox("Disable fade-in during start-up",&disableFadeInB)) { - settings.disableFadeIn=disableFadeInB; - } - ImGui::Separator(); ImGui::Text("Oscilloscope settings:"); @@ -2241,7 +2367,7 @@ void FurnaceGUI::drawSettings() { ImGui::EndChild(); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Keyboard")) { + if (ImGui::BeginTabItem("Keyboard (OLD)")) { ImVec2 settingsViewSize=ImGui::GetContentRegionAvail(); settingsViewSize.y-=ImGui::GetFrameHeight()+ImGui::GetStyle().WindowPadding.y; if (ImGui::BeginChild("SettingsView",settingsViewSize)) { @@ -2606,7 +2732,7 @@ void FurnaceGUI::drawSettings() { // "Nice Amiga cover of the song!" - enables hidden systems (YMU759/SoundUnit/Dummy) // "42 63" - enables all instrument types // "????" - enables stuff - if (ImGui::BeginTabItem("Cheat Codes")) { + if (ImGui::BeginTabItem("Cheat Codes (OLD)")) { ImVec2 settingsViewSize=ImGui::GetContentRegionAvail(); settingsViewSize.y-=ImGui::GetFrameHeight()+ImGui::GetStyle().WindowPadding.y; if (ImGui::BeginChild("SettingsView",settingsViewSize)) { From ac011a0fa111e670ecf419e4b9cab3775cc6d136 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 29 Jul 2023 05:39:28 -0500 Subject: [PATCH 037/202] GUI: fix sort button in effect list --- src/gui/effectList.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/gui/effectList.cpp b/src/gui/effectList.cpp index 0be3d942a..6b0ee23f3 100644 --- a/src/gui/effectList.cpp +++ b/src/gui/effectList.cpp @@ -1,6 +1,7 @@ #include "gui.h" #include "guiConst.h" #include +#include "IconsFontAwesome4.h" void FurnaceGUI::drawEffectList() { if (nextWindow==GUI_WINDOW_EFFECT_LIST) { @@ -11,9 +12,14 @@ void FurnaceGUI::drawEffectList() { if (!effectListOpen) return; ImGui::SetNextWindowSizeConstraints(ImVec2(60.0f*dpiScale,20.0f*dpiScale),ImVec2(canvasW,canvasH)); if (ImGui::Begin("Effect List",&effectListOpen,globalWinFlags)) { - ImGui::Text("Chip at cursor: %s",e->getSystemName(e->sysOfChan[cursor.xCoarse])); - ImGui::SameLine(); - if (ImGui::Button("Sort Effects")) ImGui::OpenPopup("effectSort"); + float availB=ImGui::GetContentRegionAvail().x-ImGui::GetFrameHeightWithSpacing(); + if (availB>0) { + ImGui::PushTextWrapPos(availB); + ImGui::TextWrapped("Chip at cursor: %s",e->getSystemName(e->sysOfChan[cursor.xCoarse])); + ImGui::PopTextWrapPos(); + ImGui::SameLine(); + } + ImGui::Button(ICON_FA_BARS "##SortEffects"); if (ImGui::BeginPopupContextItem("effectSort")) { for (int i=0; i<9; i++) { ImGui::PushStyleColor(ImGuiCol_Text,uiColors[fxColorsSort[i]]); From 79d863907520a238084196c557adab54ff1bf702 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Sat, 29 Jul 2023 10:56:19 -0700 Subject: [PATCH 038/202] Visual clarity! It's so much easier to parse (and a bit less intimidating) when only the first system in any set is bolded. --- doc/7-systems/README.md | 280 ++++++++++++++++++++-------------------- 1 file changed, 140 insertions(+), 140 deletions(-) diff --git a/doc/7-systems/README.md b/doc/7-systems/README.md index 877840115..cd816da3b 100644 --- a/doc/7-systems/README.md +++ b/doc/7-systems/README.md @@ -6,19 +6,19 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y ## Game consoles - **Sega Genesis**,\ - **Sega Genesis (extended channel 3)**,\ - **Sega Genesis (CSM)**,\ - **Sega Genesis (DualPCM)**,\ - **Sega Genesis (DualPCM, extended channel 3)**: [YM3438](ym2612.md), [SN76489](sms.md) + Sega Genesis (extended channel 3),\ + Sega Genesis (CSM),\ + Sega Genesis (DualPCM),\ + Sega Genesis (DualPCM, extended channel 3): [YM3438](ym2612.md), [SN76489](sms.md) - **Sega Genesis (with Sega CD)**,\ - **Sega Genesis (extended channel 3 with Sega CD)**,\ - **Sega Genesis (CSM with Sega CD)**: [YM3438](ym2612.md), [SN76489](sms.md), [RF5C164](ricoh.md) + Sega Genesis (extended channel 3 with Sega CD),\ + Sega Genesis (CSM with Sega CD): [YM3438](ym2612.md), [SN76489](sms.md), [RF5C164](ricoh.md) - **Sega Master System**: [SN76489](sms.md) - **Sega Master System (with FM expansion)**,\ - **Sega Master System (with FM expansion in drums mode)**: [SN76489](sms.md), [YM2413](opll.md) + Sega Master System (with FM expansion in drums mode): [SN76489](sms.md), [YM2413](opll.md) - **Sega Game Gear**: [SN76489](sms.md) @@ -49,7 +49,7 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Vectrex**: [AY-3-8910](ay8910.md) - **Neo Geo AES**,\ - **Neo Geo AES (extended channel 2)**: [YM2610](ym2610.md) + Neo Geo AES (extended channel 2): [YM2610](ym2610.md) - **Atari 2600/7800**: [TIA](tia.md) @@ -81,16 +81,16 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Commodore 64 (8580 SID)**: [MOS 8580](c64.md) - **Commodore 64 (6581 SID + Sound Expander)**,\ - **Commodore 64 (6581 SID + Sound Expander in drums mode)**: [MOS 6581](c64.md), [YM3526](opl.md) + Commodore 64 (6581 SID + Sound Expander in drums mode): [MOS 6581](c64.md), [YM3526](opl.md) - **Commodore 64 (8580 SID + Sound Expander)**,\ - **Commodore 64 (8580 SID + Sound Expander in drums mode)**: [MOS 8580](c64.md), [YM3526](opl.md) + Commodore 64 (8580 SID + Sound Expander in drums mode): [MOS 8580](c64.md), [YM3526](opl.md) - **Commodore 64 (6581 SID + FM-YAM)**,\ - **Commodore 64 (6581 SID + FM-YAM in drums mode)**: [MOS 6581](c64.md), [YM3812](opl.md) + Commodore 64 (6581 SID + FM-YAM in drums mode): [MOS 6581](c64.md), [YM3812](opl.md) - **Commodore 64 (8580 SID + FM-YAM)**,\ - **Commodore 64 (8580 SID + FM-YAM in drums mode)**: [MOS 8580](c64.md), [YM3812](opl.md) + Commodore 64 (8580 SID + FM-YAM in drums mode): [MOS 8580](c64.md), [YM3812](opl.md) - **Amiga**: [Amiga](amiga.md) @@ -99,10 +99,10 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **MSX + SFG-01**: [YM2149(F)](ay8910.md), [YM2151](ym2152.md) - **MSX + MSX-AUDIO**,\ - **MSX + MSX-AUDIO (drums mode)**: [YM2149(F)](ay8910.md), [Y8950](opl.md) + MSX + MSX-AUDIO (drums mode): [YM2149(F)](ay8910.md), [Y8950](opl.md) - **MSX + MSX-MUSIC**,\ - **MSX + MSX-MUSIC (drums mode)**: [YM2149(F)](ay8910.md), [YM2413](opll.md) + MSX + MSX-MUSIC (drums mode): [YM2149(F)](ay8910.md), [YM2413](opll.md) - **MSX + Darky**: [YM2149(F)](ay8910.md), [AY8930](ay8930.md) × 2 @@ -113,88 +113,88 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **MSX + SCC+**: [YM2149(F)](ay8910.md), [SCC+](scc.md) - **MSX + Neotron**,\ - **MSX + Neotron (extended channel 2)**: [YM2149(F)](ay8910.md), [YM2610](ym2610.md) + MSX + Neotron (extended channel 2): [YM2149(F)](ay8910.md), [YM2610](ym2610.md) - **MSX + Neotron (with YM2610B)**,\ - **MSX + Neotron (with YM2610B; extended channel 3)**: [YM2149(F)](ay8910.md), [YM2610B](ym2610b.md) + MSX + Neotron (with YM2610B; extended channel 3): [YM2149(F)](ay8910.md), [YM2610B](ym2610b.md) - **MSX + SIMPL**: [YM2149(F)](ay8910.md), DAC - **NEC PC-88 (with PC-8801-10)**: [PC Speaker](pcspkr.md), [AY-3-8910](ay8910.md) × 2 - **NEC PC-88 (with PC-8801-11)**,\ - **NEC PC-88 (with PC-8801-11; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) + NEC PC-88 (with PC-8801-11; extended channel 3): [PC Speaker](pcspkr.md), [YM2203](ym2203.md) - **NEC PC-88 (with PC-8801-23)**,\ - **NEC PC-88 (with PC-8801-23; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) + NEC PC-88 (with PC-8801-23; extended channel 3): [PC Speaker](pcspkr.md), [YM2608](ym2608.md) - **NEC PC-88 (with HMB-20 HIBIKI-8800)**: [PC Speaker](pcspkr.md), [YM2151](ym2152.md) - **NEC PC-8801mk2SR (with PC-8801-10)**,\ - **NEC PC-8801mk2SR (with PC-8801-10; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [AY-3-8910](ay8910.md) × 2 + NEC PC-8801mk2SR (with PC-8801-10; extended channel 3): [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [AY-3-8910](ay8910.md) × 2 - **NEC PC-8801mk2SR (with PC-8801-11)**,\ - **NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on internal OPN)**,\ - **NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on external OPN)**,\ - **NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md) × 2 + NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on internal OPN),\ + NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on external OPN),\ + NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on both OPNs): [PC Speaker](pcspkr.md), [YM2203](ym2203.md) × 2 - **NEC PC-8801mk2SR (with PC-8801-23)**,\ - **NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on internal OPN)**,\ - **NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on external OPN)**,\ - **NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2608](ym2608.md) + NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on internal OPN),\ + NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on external OPN),\ + NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on both OPNs): [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2608](ym2608.md) - **NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800)**,\ - **NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2151](ym2152.md) + NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800; extended channel 3): [PC Speaker](pcspkr.md), [YM2203](ym2203.md), [YM2151](ym2152.md) - **NEC PC-8801FA (with PC-8801-10)**,\ - **NEC PC-8801FA (with PC-8801-10; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [AY-3-8910](ay8910.md) × 2 + NEC PC-8801FA (with PC-8801-10; extended channel 3): [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [AY-3-8910](ay8910.md) × 2 - **NEC PC-8801FA (with PC-8801-11)**,\ - **NEC PC-8801FA (with PC-8801-11; extended channel 3 on internal OPN)**,\ - **NEC PC-8801FA (with PC-8801-11; extended channel 3 on external OPN)**,\ - **NEC PC-8801FA (with PC-8801-11; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2203](ym2203.md) + NEC PC-8801FA (with PC-8801-11; extended channel 3 on internal OPN),\ + NEC PC-8801FA (with PC-8801-11; extended channel 3 on external OPN),\ + NEC PC-8801FA (with PC-8801-11; extended channel 3 on both OPNs): [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2203](ym2203.md) - **NEC PC-8801FA (with PC-8801-23)**,\ - **NEC PC-8801FA (with PC-8801-23; extended channel 3 on internal OPN)**,\ - **NEC PC-8801FA (with PC-8801-23; extended channel 3 on external OPN)**,\ - **NEC PC-8801FA (with PC-8801-23; extended channel 3 on both OPNs)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md) × 2 + NEC PC-8801FA (with PC-8801-23; extended channel 3 on internal OPN),\ + NEC PC-8801FA (with PC-8801-23; extended channel 3 on external OPN),\ + NEC PC-8801FA (with PC-8801-23; extended channel 3 on both OPNs): [PC Speaker](pcspkr.md), [YM2608](ym2608.md) × 2 - **NEC PC-8801FA (with HMB-20 HIBIKI-8800)**,\ - **NEC PC-8801FA (with HMB-20 HIBIKI-8800; extended channel 3)**: [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2151](ym2152.md) + NEC PC-8801FA (with HMB-20 HIBIKI-8800; extended channel 3): [PC Speaker](pcspkr.md), [YM2608](ym2608.md), [YM2151](ym2152.md) - **NEC PC-98 (with PC-9801-26/K)**,\ - **NEC PC-98 (with PC-9801-26/K; extended channel 3)**: [YM2203](ym2203.md), [PC Speaker](pcspkr.md) + NEC PC-98 (with PC-9801-26/K; extended channel 3): [YM2203](ym2203.md), [PC Speaker](pcspkr.md) - **NEC PC-98 (with Sound Orchestra)**,\ - **NEC PC-98 (with Sound Orchestra; extended channel 3)**,\ - **NEC PC-98 (with Sound Orchestra in drums mode)**,\ - **NEC PC-98 (with Sound Orchestra in drums mode; extended channel 3)**: [YM2203](ym2203.md), [YM3812](opl.md), [PC Speaker](pcspkr.md) + NEC PC-98 (with Sound Orchestra; extended channel 3),\ + NEC PC-98 (with Sound Orchestra in drums mode),\ + NEC PC-98 (with Sound Orchestra in drums mode; extended channel 3): [YM2203](ym2203.md), [YM3812](opl.md), [PC Speaker](pcspkr.md) - **NEC PC-98 (with Sound Orchestra V)**,\ - **NEC PC-98 (with Sound Orchestra V; extended channel 3)**,\ - **NEC PC-98 (with Sound Orchestra V in drums mode)**,\ - **NEC PC-98 (with Sound Orchestra V in drums mode; extended channel 3)**: [YM2203](ym2203.md), [Y8950](opl.md), [PC Speaker](pcspkr.md) + NEC PC-98 (with Sound Orchestra V; extended channel 3),\ + NEC PC-98 (with Sound Orchestra V in drums mode),\ + NEC PC-98 (with Sound Orchestra V in drums mode; extended channel 3): [YM2203](ym2203.md), [Y8950](opl.md), [PC Speaker](pcspkr.md) - **NEC PC-98 (with PC-9801-86)**,\ - **NEC PC-98 (with PC-9801-86; extended channel 3)**: [YM2608](ym2608.md), [DAC](pcspkr.md) + NEC PC-98 (with PC-9801-86; extended channel 3): [YM2608](ym2608.md), [DAC](pcspkr.md) - **NEC PC-98 (with PC-9801-73)**,\ - **NEC PC-98 (with PC-9801-73; extended channel 3)**: [YM2608](ym2608.md), [PC Speaker](pcspkr.md) + NEC PC-98 (with PC-9801-73; extended channel 3): [YM2608](ym2608.md), [PC Speaker](pcspkr.md) - **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible)**,\ - **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible; extended channel 3)**,\ - **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode)**,\ - **NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode; extended channel 3)**: [YM2203](ym2203.md), [YMF262](opl.md), [PC Speaker](pcspkr.md) + NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible; extended channel 3),\ + NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode),\ + NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode; extended channel 3): [YM2203](ym2203.md), [YMF262](opl.md), [PC Speaker](pcspkr.md) - **ZX Spectrum (48K, SFX-like engine)**,\ - **ZX Spectrum (48K, QuadTone engine)**: [ZXS Beeper](zxbeep.md) + ZX Spectrum (48K, QuadTone engine): [ZXS Beeper](zxbeep.md) - **ZX Spectrum (128K)**: [AY-3-8910](ay8910.md) - **ZX Spectrum (128K) with TurboSound FM**,\ - **ZX Spectrum (128K) with TurboSound FM (extended channel 3 on first OPN)**,\ - **ZX Spectrum (128K) with TurboSound FM (extended channel 3 on second OPN)**,\ - **ZX Spectrum (128K) with TurboSound FM (extended channel 3 on both OPNs)**: [AY-3-8910](ay8910.md), [YM2203](ym2203.md) × 2 + ZX Spectrum (128K) with TurboSound FM (extended channel 3 on first OPN),\ + ZX Spectrum (128K) with TurboSound FM (extended channel 3 on second OPN),\ + ZX Spectrum (128K) with TurboSound FM (extended channel 3 on both OPNs): [AY-3-8910](ay8910.md), [YM2203](ym2203.md) × 2 - **ZX Spectrum (128K) with TurboSound**: [AY-3-8910](ay8910.md) × 3 @@ -225,19 +225,19 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **PC + Game Blaster**: [SAA1099](saa1099.md) × 2, [PC Speaker](pcspkr.md) - **PC + AdLib**,\ - **PC + AdLib (drums mode)**: [YM3812](opl.md), [PC Speaker](pcspkr.md) + PC + AdLib (drums mode): [YM3812](opl.md), [PC Speaker](pcspkr.md) - **PC + Sound Blaster**,\ - **PC + AdLib/Sound Blaster (drums mode)**: [YM3812](opl.md), [PC Speaker](pcspkr.md), DAC + PC + AdLib/Sound Blaster (drums mode): [YM3812](opl.md), [PC Speaker](pcspkr.md), DAC - **PC + Sound Blaster w/Game Blaster Compatible**,\ - **PC + Sound Blaster w/Game Blaster Compatible (drums mode)**: [YM3812](opl.md), [SAA1099](saa1099.md) × 2, DAC, [PC Speaker](pcspkr.md) + PC + Sound Blaster w/Game Blaster Compatible (drums mode): [YM3812](opl.md), [SAA1099](saa1099.md) × 2, DAC, [PC Speaker](pcspkr.md) - **PC + Sound Blaster Pro**,\ - **PC + Sound Blaster Pro (drums mode)**: [YM3812](opl.md) × 2, DAC, [PC Speaker](pcspkr.md) + PC + Sound Blaster Pro (drums mode): [YM3812](opl.md) × 2, DAC, [PC Speaker](pcspkr.md) - **PC + Sound Blaster Pro 2**,\ - **PC + Sound Blaster Pro 2 (drums mode)**: [YMF262](opl.md), DAC, [PC Speaker](pcspkr.md) + PC + Sound Blaster Pro 2 (drums mode): [YMF262](opl.md), DAC, [PC Speaker](pcspkr.md) - **PC + PC-FXGA**: [HuC6280](pce.md), [PC Speaker](pcspkr.md) @@ -250,8 +250,8 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Sharp X68000**: [YM2151](ym2152.md), [MSM6258](msm6258.md) - **FM Towns**,\ - **FM Towns (extended channel 3)**,\ - **FM Towns (CSM)**: [YM3438](ym2612.md), [RF5C68](ricoh.md) + FM Towns (extended channel 3),\ + FM Towns (CSM): [YM3438](ym2612.md), [RF5C68](ricoh.md) - **Commander X16 (VERA only)**: [VERA](vera.md) @@ -274,24 +274,24 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Konami MX5000**: [YM2151](ym2152.md), [K007232](k007232.md) - **Konami Battlantis**,\ - **Konami Battlantis (drums mode on first OPL2)**,\ - **Konami Battlantis (drums mode on second OPL2)**,\ - **Konami Battlantis (drums mode on both OPL2s)**: [YM3812](opl.md) × 2 + Konami Battlantis (drums mode on first OPL2),\ + Konami Battlantis (drums mode on second OPL2),\ + Konami Battlantis (drums mode on both OPL2s): [YM3812](opl.md) × 2 - **Konami Fast Lane**: [K007232](k007232.md) × 2 - **Konami Chequered Flag**: [YM2151](ym2152.md), [K007232](k007232.md) × 2 - **Konami Haunted Castle**,\ - **Konami Haunted Castle (drums mode)**: [YM3812](opl.md), [SCC](ess.md), [K007232](k007232.md) + Konami Haunted Castle (drums mode): [YM3812](opl.md), [SCC](ess.md), [K007232](k007232.md) - **Konami Hot Chase**: [K007232](k007232.md) × 3 - **Konami S.P.Y.**,\ - **Konami S.P.Y. (drums mode)**: [YM3812](opl.md), [K007232](k007232.md) × 2 + Konami S.P.Y. (drums mode): [YM3812](opl.md), [K007232](k007232.md) × 2 - **Konami Rollergames**,\ - **Konami Rollergames (drums mode)**: [YM3812](opl.md), [K053260](k056320.md) + Konami Rollergames (drums mode): [YM3812](opl.md), [K053260](k056320.md) - **Konami Golfing Greats**: [K053260](k056320.md) @@ -310,73 +310,73 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Sega System E**: [SN76489](sms.md) × 2 - **Sega System E (with FM expansion)**,\ - **Sega System E (with FM expansion in drums mode)**: [SN76489](sms.md) × 2, [YM2413](opll.md) + Sega System E (with FM expansion in drums mode): [SN76489](sms.md) × 2, [YM2413](opll.md) - **Sega Hang-On**,\ - **Sega Hang-On (extended channel 3)**: [YM2203](ym2203.md), [SegaPCM](segapcm.md) + Sega Hang-On (extended channel 3): [YM2203](ym2203.md), [SegaPCM](segapcm.md) - **Sega OutRun/X Board**: [YM2151](ym2152.md), [SegaPCM](segapcm.md) - **Sega System 24**: [YM2151](ym2152.md), DAC - **Sega System 18**,\ - **Sega System 18 (extended channel 3 on first OPN2C)**,\ - **Sega System 18 (extended channel 3 on second OPN2C)**,\ - **Sega System 18 (extended channel 3 on both OPN2Cs)**,\ - **Sega System 32**,\ - **Sega System 32 (extended channel 3 on first OPN2C)**,\ - **Sega System 32 (extended channel 3 on second OPN2C)**,\ - **Sega System 32 (extended channel 3 on both OPN2Cs)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) + Sega System 18 (extended channel 3 on first OPN2C),\ + Sega System 18 (extended channel 3 on second OPN2C),\ + Sega System 18 (extended channel 3 on both OPN2Cs),\ + Sega System 32,\ + Sega System 32 (extended channel 3 on first OPN2C),\ + Sega System 32 (extended channel 3 on second OPN2C),\ + Sega System 32 (extended channel 3 on both OPN2Cs): [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) - **Capcom Exed Eyes**: [AY-3-8910](ay8910.md), [SN76489](sms.md) × 2 - **Capcom Arcade**,\ - **Capcom Arcade (extended channel 3 on first OPN)**,\ - **Capcom Arcade (extended channel 3 on second OPN)**,\ - **Capcom Arcade (extended channel 3 on both OPNs)**: [YM2203](ym2203.md) × 2 + Capcom Arcade (extended channel 3 on first OPN),\ + Capcom Arcade (extended channel 3 on second OPN),\ + Capcom Arcade (extended channel 3 on both OPNs): [YM2203](ym2203.md) × 2 - **Capcom CPS-1**: [YM2151](ym2152.md), [MSM6295](msm6295.md) - **Capcom CPS-2 (QSound)**: [QSound](qsound.md) - **Jaleco Ginga NinkyouDen**,\ - **Jaleco Ginga NinkyouDen (drums mode)**: [YM2149(F)](ay8910.md), [Y8950](opl.md) + Jaleco Ginga NinkyouDen (drums mode): [YM2149(F)](ay8910.md), [Y8950](opl.md) - **Jaleco Mega System 1**: [YM2151](ym2152.md), [MSM6295](msm6295.md) × 2 - **NMK 16-bit Arcade**,\ - **NMK 16-bit Arcade (extended channel 3)**,\ - **Kaneko DJ Boy**,\ - **Kaneko DJ Boy (extended channel 3)**: [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 + NMK 16-bit Arcade (extended channel 3),\ + Kaneko DJ Boy,\ + Kaneko DJ Boy (extended channel 3): [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 - **Kaneko Air Buster**,\ - **Kaneko Air Buster (extended channel 3)**: [YM2203](ym2203.md), [MSM6295](msm6295.md) + Kaneko Air Buster (extended channel 3): [YM2203](ym2203.md), [MSM6295](msm6295.md) - **Kaneko Toybox System**: [YM2149(F)](ay8910.md) × 2, [MSM6295](msm6295.md) - **Kaneko Jackie Chan**,\ - **Super Kaneko Nova System**: [YMZ280B](ymz280b.md) + Super Kaneko Nova System: [YMZ280B](ymz280b.md) - **Tecmo Ninja Gaiden**,\ - **Tecmo Ninja Gaiden (extended channel 3 on first OPN)**,\ - **Tecmo Ninja Gaiden (extended channel 3 on second OPN)**,\ - **Tecmo Ninja Gaiden (extended channel 3 on both OPNs)**: [YM2203](ym2203.md) × 2, [MSM6295](msm6295.md) + Tecmo Ninja Gaiden (extended channel 3 on first OPN),\ + Tecmo Ninja Gaiden (extended channel 3 on second OPN),\ + Tecmo Ninja Gaiden (extended channel 3 on both OPNs): [YM2203](ym2203.md) × 2, [MSM6295](msm6295.md) - **Tecmo System**,\ - **Tecmo System (drums mode)**: [YMF262](opl.md), [YMZ280B](ymz280b.md), [MSM6295](msm6295.md) + Tecmo System (drums mode): [YMF262](opl.md), [YMZ280B](ymz280b.md), [MSM6295](msm6295.md) - **Seibu Kaihatsu Raiden**,\ - **Seibu Kaihatsu Raiden (drums mode)**: [YM3812](opl.md), [MSM6295](msm6295.md) + Seibu Kaihatsu Raiden (drums mode): [YM3812](opl.md), [MSM6295](msm6295.md) - **Sunsoft Shanghai 3**: [YM2149(F)](ay8910.md), [MSM6295](msm6295.md) - **Sunsoft Arcade**,\ - **Sunsoft Arcade (extended channel 3)**: [YM3438](ym2612.md), [MSM6295](msm6295.md) + Sunsoft Arcade (extended channel 3): [YM3438](ym2612.md), [MSM6295](msm6295.md) - **Atari Klax**: [MSM6295](msm6295.md) - **Atari Rampart**,\ - **Atari Rampart (drums mode)**: [YM2413](opll.md), [MSM6295](msm6295.md) + Atari Rampart (drums mode): [YM2413](opll.md), [MSM6295](msm6295.md) - **Atari JSA IIIs**: [YM2151](ym2152.md), [MSM6295](msm6295.md) × 2 @@ -389,54 +389,54 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Atari I, Robot**: [POKEY](pokey.md) × 4 - **Data East Karnov**,\ - **Data East Karnov (extended channel 3)**,\ - **Data East Karnov (drums mode)**,\ - **Data East Karnov (extended channel 3; drums mode)**: [YM2203](ym2203.md), [YM3526](opl.md) + Data East Karnov (extended channel 3),\ + Data East Karnov (drums mode),\ + Data East Karnov (extended channel 3; drums mode): [YM2203](ym2203.md), [YM3526](opl.md) - **Data East Arcade**,\ - **Data East Arcade (extended channel 3)**,\ - **Data East Arcade (drums mode)**,\ - **Data East Arcade (extended channel 3; drums mode)**: [YM2203](ym2203.md), [YM3812](opl.md), [MSM6295](msm6295.md) + Data East Arcade (extended channel 3),\ + Data East Arcade (drums mode),\ + Data East Arcade (extended channel 3; drums mode): [YM2203](ym2203.md), [YM3812](opl.md), [MSM6295](msm6295.md) - **Data East PCX**,\ - **Data East PCX (extended channel 3)**: [YM2203](ym2203.md), [HuC6280](pce.md) + Data East PCX (extended channel 3): [YM2203](ym2203.md), [HuC6280](pce.md) - **Data East Dark Seal**,\ - **Data East Dark Seal (extended channel 3)**: [YM2151](ym2152.md), [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 + Data East Dark Seal (extended channel 3): [YM2151](ym2152.md), [YM2203](ym2203.md), [MSM6295](msm6295.md) × 2 - **Data East Deco 156**: [MSM6295](msm6295.md) × 2 - **Data East MLC**: [YMZ280B](ymz280b.md) - **SNK Ikari Warriors**,\ - **SNK Ikari Warriors (drums mode on first OPL)**,\ - **SNK Ikari Warriors (drums mode on second OPL)**,\ - **SNK Ikari Warriors (drums mode on both OPLs)**: [YM3526](opl.md) × 2 + SNK Ikari Warriors (drums mode on first OPL),\ + SNK Ikari Warriors (drums mode on second OPL),\ + SNK Ikari Warriors (drums mode on both OPLs): [YM3526](opl.md) × 2 - **SNK Triple Z80**,\ - **SNK Triple Z80 (drums mode on Y8950)**,\ - **SNK Triple Z80 (drums mode on OPL)**,\ - **SNK Triple Z80 (drums mode on Y8950 and OPL)**: [Y8950](opl.md), [YM3526](opl.md) + SNK Triple Z80 (drums mode on Y8950),\ + SNK Triple Z80 (drums mode on OPL),\ + SNK Triple Z80 (drums mode on Y8950 and OPL): [Y8950](opl.md), [YM3526](opl.md) - **SNK Chopper I**,\ - **SNK Chopper I (drums mode on Y8950)**,\ - **SNK Chopper I (drums mode on OPL2)**,\ - **SNK Chopper I (drums mode on Y8950 and OPL2)**: [Y8950](opl.md), [YM3812](opl.md) + SNK Chopper I (drums mode on Y8950),\ + SNK Chopper I (drums mode on OPL2),\ + SNK Chopper I (drums mode on Y8950 and OPL2): [Y8950](opl.md), [YM3812](opl.md) - **SNK Touchdown Fever**,\ - **SNK Touchdown Fever (drums mode on OPL)**,\ - **SNK Touchdown Fever (drums mode on Y8950)**,\ - **SNK Touchdown Fever (drums mode on OPL and Y8950)**: [YM3526](opl.md), [Y8950](opl.md) + SNK Touchdown Fever (drums mode on OPL),\ + SNK Touchdown Fever (drums mode on Y8950),\ + SNK Touchdown Fever (drums mode on OPL and Y8950): [YM3526](opl.md), [Y8950](opl.md) - **Alpha denshi Alpha-68K**,\ - **Alpha denshi Alpha-68K (extended channel 3)**,\ - **Alpha denshi Alpha-68K (drums mode)**,\ - **Alpha denshi Alpha-68K (extended channel 3; drums mode)**: [YM2203](ym2203.md), [YM2413](opll.md), DAC + Alpha denshi Alpha-68K (extended channel 3),\ + Alpha denshi Alpha-68K (drums mode),\ + Alpha denshi Alpha-68K (extended channel 3; drums mode): [YM2203](ym2203.md), [YM2413](opll.md), DAC - **Alpha denshi Equites**: [MSM5232](msm5232.md), [AY-3-8910](ay8910.md), DAC - **Neo Geo MVS**,\ - **Neo Geo MVS (extended channel 2)**: [YM2610](ym2610.md) + Neo Geo MVS (extended channel 2): [YM2610](ym2610.md) - **Nichibutsu Mag Max**: [AY-3-8910](ay8910.md) × 3 @@ -449,10 +449,10 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Namco System 86**: [YM2151](ym2152.md), [C30](namco.md) - **Namco Thunder Ceptor**,\ - **Namco System 1**: [YM2151](ym2152.md), [C30](namco.md), DAC + Namco System 1: [YM2151](ym2152.md), [C30](namco.md), DAC - **Taito Arcade**,\ - **Taito Arcade (extended channel 3)**: [YM2610B](ym2610b.md) + Taito Arcade (extended channel 3): [YM2610B](ym2610b.md) - **Taito Metal Soldier Isaac II**: [MSM5232](msm5232.md), [AY-3-8910](ay8910.md) × 2 @@ -463,7 +463,7 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Seta 1**: [X1-010](x1-010.md) - **Seta 1 + FM addon**,\ - **Seta 1 + FM addon (extended channel 3)**: [X1-010](x1-010.md), [YM3438](ym2612.md) + Seta 1 + FM addon (extended channel 3): [X1-010](x1-010.md), [YM3438](ym2612.md) - **Seta 2**: [X1-010](x1-010.md) @@ -472,18 +472,18 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Cave 68000**: [YMZ280B](ymz280b.md) - **Coreland Cyber Tank**,\ - **Coreland Cyber Tank (drums mode)**: [Y8950](opl.md) × 2 + Coreland Cyber Tank (drums mode): [Y8950](opl.md) × 2 - **ICE Skimaxx**: [MSM6295](msm6295.md) × 4 - **Toaplan 1**,\ - **Toaplan 1 (drums mode)**: [YM3812](opl.md) + Toaplan 1 (drums mode): [YM3812](opl.md) - **Dynax/Nakanihon 3rd generation hardware**,\ - **Dynax/Nakanihon 3rd generation hardware (drums mode)**: [AY-3-8910](ay8910.md), [YM2413](opll.md), [MSM6295](msm6295.md) + Dynax/Nakanihon 3rd generation hardware (drums mode): [AY-3-8910](ay8910.md), [YM2413](opll.md), [MSM6295](msm6295.md) - **Dynax/Nakanihon Real Break**,\ - **Dynax/Nakanihon Real Break (drums mode)**: [YM2413](opll.md), [YMZ280B](ymz280b.md) + Dynax/Nakanihon Real Break (drums mode): [YM2413](opll.md), [YMZ280B](ymz280b.md) - **Irem M72**: [YM2151](ym2152.md), DAC @@ -493,45 +493,45 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Yamaha YM2151 (OPM)**: [YM2151](ym2152.md) - **Yamaha YM2203 (OPN)**,\ - **Yamaha YM2203 (extended channel 3)**: [YM2203](ym2203.md) + Yamaha YM2203 (extended channel 3): [YM2203](ym2203.md) - **Yamaha YM2608 (OPNA)**,\ - **Yamaha YM2608 (extended channel 3)**: [YM2608](ym2608.md) + Yamaha YM2608 (extended channel 3): [YM2608](ym2608.md) - **Yamaha YM2610 (OPNB)**,\ - **Yamaha YM2610 (extended channel 2)**: [YM2610](ym2610.md) + Yamaha YM2610 (extended channel 2): [YM2610](ym2610.md) - **Yamaha YM2610B (OPNB2)**,\ - **Yamaha YM2610B (extended channel 3)**: [YM2610B](ym2610b.md) + Yamaha YM2610B (extended channel 3): [YM2610B](ym2610b.md) - **Yamaha YM2612 (OPN2)**,\ - **Yamaha YM2612 (extended channel 3)**,\ - **Yamaha YM2612 (OPN2) CSM**,\ - **Yamaha YM2612 (OPN2) with DualPCM**,\ - **Yamaha YM2612 (extended channel 3) with DualPCM**: [YM2612](ym2612.md) + Yamaha YM2612 (extended channel 3),\ + Yamaha YM2612 (OPN2) CSM,\ + Yamaha YM2612 (OPN2) with DualPCM,\ + Yamaha YM2612 (extended channel 3) with DualPCM: [YM2612](ym2612.md) - **Yamaha YM2413 (OPLL)**,\ - **Yamaha YM2413 (drums mode)**: [YM2413](opll.md) + Yamaha YM2413 (drums mode): [YM2413](opll.md) - **Yamaha YM2414 (OPZ)**: [YM2414](opz.md) - **Yamaha YM3438 (OPN2C)**,\ - **Yamaha YM3438 (extended channel 3)**,\ - **Yamaha YM3438 (OPN2C) CSM**,\ - **Yamaha YM3438 (OPN2C) with DualPCM**,\ - **Yamaha YM3438 (extended channel 3) with DualPCM**: [YM3438](ym2612.md) + Yamaha YM3438 (extended channel 3),\ + Yamaha YM3438 (OPN2C) CSM,\ + Yamaha YM3438 (OPN2C) with DualPCM,\ + Yamaha YM3438 (extended channel 3) with DualPCM: [YM3438](ym2612.md) - **Yamaha YM3526 (OPL)**,\ - **Yamaha YM3526 (drums mode)**: [YM3526](opl.md) + Yamaha YM3526 (drums mode): [YM3526](opl.md) - **Yamaha Y8950**,\ - **Yamaha Y8950 (drums mode)**: [Y8950](opl.md) + Yamaha Y8950 (drums mode): [Y8950](opl.md) - **Yamaha YM3812 (OPL2)**,\ - **Yamaha YM3812 (drums mode)**: [YM3812](opl.md) + Yamaha YM3812 (drums mode): [YM3812](opl.md) - **Yamaha YMF262 (OPL3)**,\ - **Yamaha YMF262 (drums mode)**: [YMF262](opl.md) + Yamaha YMF262 (drums mode): [YMF262](opl.md) - **Yamaha YMU759 (MA-2)**: [YMU759](ymu759.md) @@ -547,7 +547,7 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Tandy PSSJ 3-voice sound**: [PSSJ](sms.md) - **Sega PSG (SN76489-like)**,\ - **Sega PSG (SN76489-like, Stereo)**: [SN76489](sms.md) + Sega PSG (SN76489-like, Stereo): [SN76489](sms.md) - **TI SN94624**: [SN94624](sms.md) @@ -654,7 +654,7 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Commander X16 (VERA only)**: [VERA](vera.md) - **ZX Spectrum (beeper only, SFX-like engine)**,\ - **ZX Spectrum (beeper only, QuadTone engine)**: [ZXS Beeper](zxbeep.md) + ZX Spectrum (beeper only, QuadTone engine): [ZXS Beeper](zxbeep.md) - **Sharp SM8521**: [SM8521](sm8521.md) @@ -663,7 +663,7 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y ## DefleMask-compatible - **Sega Genesis**,\ - **Sega Genesis (extended channel 3)**: [YM3438](ym2612.md), [SN76489](sms.md) + Sega Genesis (extended channel 3): [YM3438](ym2612.md), [SN76489](sms.md) - **Sega Master System**: [SN76489](sms.md) @@ -686,6 +686,6 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Arcade (YM2151 and SegaPCM)**: [YM2151](ym2152.md), [SegaPCM](segapcm.md) - **Neo Geo CD**,\ - **Neo Geo CD (extended channel 2)**: [YM2610](ym2610.md) + Neo Geo CD (extended channel 2): [YM2610](ym2610.md) - **Yamaha YMU759 (MA-2)**: [YMU759](ymu759.md) From 98a6080ca1e5d80d3b35f5b4eff62b429fcc6218 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 29 Jul 2023 13:09:35 -0500 Subject: [PATCH 039/202] fix system fmt, part 2 thanks r-c-f --- src/engine/zsmOps.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/zsmOps.cpp b/src/engine/zsmOps.cpp index b26e7a273..92b8aecb8 100644 --- a/src/engine/zsmOps.cpp +++ b/src/engine/zsmOps.cpp @@ -52,7 +52,7 @@ SafeWriter* DivEngine::saveZSM(unsigned int zsmrate, bool loop) { break; default: IGNORED++; - logD("Ignoring chip %d systemID %d",i,song.system[i]); + logD("Ignoring chip %d systemID %d",i,(int)song.system[i]); break; } } From b83d8f3198e83ddc4bea710d3ac23eb6603975f8 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 29 Jul 2023 13:10:59 -0500 Subject: [PATCH 040/202] fix system fmt, part 3 --- src/engine/sample.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/sample.cpp b/src/engine/sample.cpp index d88bf4bc9..437b8bbcc 100644 --- a/src/engine/sample.cpp +++ b/src/engine/sample.cpp @@ -207,7 +207,7 @@ DivDataErrors DivSample::readSampleData(SafeReader& reader, short version) { // render data if (depth!=DIV_SAMPLE_DEPTH_8BIT && depth!=DIV_SAMPLE_DEPTH_16BIT) { - logW("sample depth is wrong! (%d)",depth); + logW("sample depth is wrong! (%d)",(int)depth); depth=DIV_SAMPLE_DEPTH_16BIT; } samples=(double)samples/samplePitchesSD[pitch]; From bc7e267a85fff685dd55a155b72a0ab2ac5440e9 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 29 Jul 2023 13:22:05 -0500 Subject: [PATCH 041/202] GUI: BeginPopupContextItem fix --- src/gui/effectList.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/effectList.cpp b/src/gui/effectList.cpp index 6b0ee23f3..2d1bd1f1e 100644 --- a/src/gui/effectList.cpp +++ b/src/gui/effectList.cpp @@ -20,7 +20,7 @@ void FurnaceGUI::drawEffectList() { ImGui::SameLine(); } ImGui::Button(ICON_FA_BARS "##SortEffects"); - if (ImGui::BeginPopupContextItem("effectSort")) { + if (ImGui::BeginPopupContextItem("effectSort",ImGuiPopupFlags_MouseButtonLeft)) { for (int i=0; i<9; i++) { ImGui::PushStyleColor(ImGuiCol_Text,uiColors[fxColorsSort[i]]); ImGui::Checkbox(fxColorsNames[i],&effectsShow[i]); From 97d44d9a26d41f4a4cf9687b0a4771b93093a996 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 29 Jul 2023 13:43:49 -0500 Subject: [PATCH 042/202] GUI: Namco 163 offset -> position --- doc/4-instrument/n163.md | 6 +++--- src/gui/insEdit.cpp | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/4-instrument/n163.md b/doc/4-instrument/n163.md index 2e37b0d5f..b12bfe354 100644 --- a/doc/4-instrument/n163.md +++ b/doc/4-instrument/n163.md @@ -5,11 +5,11 @@ The Namco 163 instrument editor consists of two tabs: "Namco 163" for control of ## Namco 163 - **Load waveform**: if enabled, a waveform will be loaded when this instrument plays. - - if it isn't then only the offset/length change. + - if it isn't then only the position/length change. - **Waveform**: determines the waveform that will be loaded. - only appears when Load waveform is enabled. -- **Per-channel wave offset/length**: when enabled, the offset/length settings are split per channel. -- **Offset**: determines the waveform position in RAM. +- **Per-channel wave position/length**: when enabled, the position/length settings are split per channel. +- **Position**: determines the waveform position in RAM. - **Length**: determines the waveform length in RAM. ## Macros diff --git a/src/gui/insEdit.cpp b/src/gui/insEdit.cpp index a490b0a6e..e5f60d86b 100644 --- a/src/gui/insEdit.cpp +++ b/src/gui/insEdit.cpp @@ -4685,7 +4685,7 @@ void FurnaceGUI::drawInsEdit() { ImGui::Separator(); - P(ImGui::Checkbox("Per-channel wave offset/length",&ins->n163.perChanPos)); + P(ImGui::Checkbox("Per-channel wave position/length",&ins->n163.perChanPos)); if (ins->n163.perChanPos) { if (ImGui::BeginTable("N1PerChPos",3)) { @@ -4697,7 +4697,7 @@ void FurnaceGUI::drawInsEdit() { ImGui::TableNextColumn(); ImGui::Text("Ch"); ImGui::TableNextColumn(); - ImGui::Text("Offset"); + ImGui::Text("Position"); ImGui::TableNextColumn(); ImGui::Text("Length"); @@ -4729,7 +4729,7 @@ void FurnaceGUI::drawInsEdit() { ImGui::EndTable(); } } else { - if (ImGui::InputInt("Offset##WAVEPOS",&ins->n163.wavePos,1,16)) { PARAMETER + if (ImGui::InputInt("Position##WAVEPOS",&ins->n163.wavePos,1,16)) { PARAMETER if (ins->n163.wavePos<0) ins->n163.wavePos=0; if (ins->n163.wavePos>255) ins->n163.wavePos=255; } From 233431c2ccd12096a53972b7e9fa17448cd9780c Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 29 Jul 2023 14:17:04 -0500 Subject: [PATCH 043/202] YM2612: implement 30xx on ExtCh --- src/engine/platform/genesisext.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/engine/platform/genesisext.cpp b/src/engine/platform/genesisext.cpp index d4ac27603..1a90adf92 100644 --- a/src/engine/platform/genesisext.cpp +++ b/src/engine/platform/genesisext.cpp @@ -19,6 +19,7 @@ #include "genesisext.h" #include "../engine.h" +#include "../../ta-log.h" #include #define CHIP_FREQBASE fmFreqBase @@ -576,6 +577,7 @@ void DivPlatformGenesisExt::tick(bool sysTick) { bool writeNoteOn=false; unsigned char writeMask=2; + unsigned char hardResetMask=0; if (extMode) for (int i=0; i<4; i++) { if (opChan[i].freqChanged) { if (parent->song.linearPitch==2) { @@ -603,8 +605,13 @@ void DivPlatformGenesisExt::tick(bool sysTick) { writeNoteOn=true; if (opChan[i].mask) { writeMask|=1<<(4+i); + if (opChan[i].hardReset) { + hardResetMask|=1<<(4+i); + } + } + if (!opChan[i].hardReset) { + opChan[i].keyOn=false; } - opChan[i].keyOn=false; } } @@ -638,7 +645,9 @@ void DivPlatformGenesisExt::tick(bool sysTick) { (writeMask&0x40)?'3':'-', (writeMask&0x80)?'4':'-' );*/ + writeMask^=hardResetMask; immWrite(0x28,writeMask); + writeMask^=hardResetMask; // hard reset handling if (mustHardReset) { @@ -648,9 +657,11 @@ void DivPlatformGenesisExt::tick(bool sysTick) { for (int i=0; i<4; i++) { if (opChan[i].keyOn && opChan[i].hardReset) { // restore SL/RR + logV("eco: %d",extChanOffs); unsigned short baseAddr=chanOffs[extChanOffs]|opOffs[i]; DivInstrumentFM::Operator& op=chan[extChanOffs].state.op[i]; immWrite(baseAddr+ADDR_SL_RR,(op.rr&15)|(op.sl<<4)); + opChan[i].keyOn=false; } } immWrite(0x28,writeMask); From 41c41859ed2f522f02a5ba7d03a082ddc4c07097 Mon Sep 17 00:00:00 2001 From: freq-mod <32672779+freq-mod@users.noreply.github.com> Date: Sat, 29 Jul 2023 23:04:55 +0200 Subject: [PATCH 044/202] remove redundant SNES entry --- doc/6-sample/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/6-sample/README.md b/doc/6-sample/README.md index 637884370..66d35479a 100644 --- a/doc/6-sample/README.md +++ b/doc/6-sample/README.md @@ -32,7 +32,6 @@ the following sound chips have sample support: - Ensoniq OTTO/ES5506 - Yamaha PCMD8/YMZ280B - MMC5 (last channel only) -- SNES/S-DSP ## compatible sample mode From 423f2f50697b25a0267b69e8b86c5e359bb0d32d Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 29 Jul 2023 16:04:39 -0500 Subject: [PATCH 045/202] OPN/A/B: implement 30xx on ExtCh issue #1113 --- src/engine/platform/genesisext.cpp | 15 ------------ src/engine/platform/ym2203ext.cpp | 39 +++++++++++++++++++++++++++++- src/engine/platform/ym2608ext.cpp | 39 +++++++++++++++++++++++++++++- src/engine/platform/ym2610bext.cpp | 39 +++++++++++++++++++++++++++++- src/engine/platform/ym2610ext.cpp | 39 +++++++++++++++++++++++++++++- 5 files changed, 152 insertions(+), 19 deletions(-) diff --git a/src/engine/platform/genesisext.cpp b/src/engine/platform/genesisext.cpp index 1a90adf92..7e9278daa 100644 --- a/src/engine/platform/genesisext.cpp +++ b/src/engine/platform/genesisext.cpp @@ -477,13 +477,6 @@ void DivPlatformGenesisExt::tick(bool sysTick) { if (chan[csmChan].active) { // CSM writeMask^=0xf0; } - /*printf( - "Mask: %c %c %c %c\n", - (writeMask&0x10)?'1':'-', - (writeMask&0x20)?'2':'-', - (writeMask&0x40)?'3':'-', - (writeMask&0x80)?'4':'-' - );*/ immWrite(0x28,writeMask); } } @@ -638,13 +631,6 @@ void DivPlatformGenesisExt::tick(bool sysTick) { if (chan[csmChan].active) { // CSM writeMask^=0xf0; } - /*printf( - "Mask: %c %c %c %c\n", - (writeMask&0x10)?'1':'-', - (writeMask&0x20)?'2':'-', - (writeMask&0x40)?'3':'-', - (writeMask&0x80)?'4':'-' - );*/ writeMask^=hardResetMask; immWrite(0x28,writeMask); writeMask^=hardResetMask; @@ -657,7 +643,6 @@ void DivPlatformGenesisExt::tick(bool sysTick) { for (int i=0; i<4; i++) { if (opChan[i].keyOn && opChan[i].hardReset) { // restore SL/RR - logV("eco: %d",extChanOffs); unsigned short baseAddr=chanOffs[extChanOffs]|opOffs[i]; DivInstrumentFM::Operator& op=chan[extChanOffs].state.op[i]; immWrite(baseAddr+ADDR_SL_RR,(op.rr&15)|(op.sl<<4)); diff --git a/src/engine/platform/ym2203ext.cpp b/src/engine/platform/ym2203ext.cpp index 6398ba7f1..8842b3cc8 100644 --- a/src/engine/platform/ym2203ext.cpp +++ b/src/engine/platform/ym2203ext.cpp @@ -355,6 +355,9 @@ int DivPlatformYM2203Ext::dispatch(DivCommand c) { } break; } + case DIV_CMD_FM_HARD_RESET: + opChan[ch].hardReset=c.value; + break; case DIV_CMD_GET_VOLMAX: return 127; break; @@ -385,6 +388,9 @@ static int opChanOffsH[4]={ }; void DivPlatformYM2203Ext::tick(bool sysTick) { + int hardResetElapsed=0; + bool mustHardReset=false; + if (extMode) { bool writeSomething=false; unsigned char writeMask=2; @@ -395,6 +401,12 @@ void DivPlatformYM2203Ext::tick(bool sysTick) { writeMask&=~(1<<(4+i)); opChan[i].keyOff=false; } + if (opChan[i].hardReset && opChan[i].keyOn) { + mustHardReset=true; + unsigned short baseAddr=chanOffs[extChanOffs]|opOffs[i]; + immWrite(baseAddr+ADDR_SL_RR,0x0f); + hardResetElapsed++; + } } if (writeSomething) { immWrite(0x28,writeMask); @@ -491,6 +503,7 @@ void DivPlatformYM2203Ext::tick(bool sysTick) { bool writeNoteOn=false; unsigned char writeMask=2; + unsigned char hardResetMask=0; if (extMode) for (int i=0; i<4; i++) { if (opChan[i].freqChanged) { if (parent->song.linearPitch==2) { @@ -517,12 +530,36 @@ void DivPlatformYM2203Ext::tick(bool sysTick) { writeNoteOn=true; if (opChan[i].mask) { writeMask|=1<<(4+i); + if (opChan[i].hardReset) { + hardResetMask|=1<<(4+i); + } + } + if (!opChan[i].hardReset) { + opChan[i].keyOn=false; } - opChan[i].keyOn=false; } } if (writeNoteOn) { + writeMask^=hardResetMask; immWrite(0x28,writeMask); + writeMask^=hardResetMask; + + // hard reset handling + if (mustHardReset) { + for (unsigned int i=hardResetElapsed; isong.linearPitch==2) { @@ -539,12 +552,36 @@ void DivPlatformYM2608Ext::tick(bool sysTick) { writeNoteOn=true; if (opChan[i].mask) { writeMask|=1<<(4+i); + if (opChan[i].hardReset) { + hardResetMask|=1<<(4+i); + } + } + if (!opChan[i].hardReset) { + opChan[i].keyOn=false; } - opChan[i].keyOn=false; } } if (writeNoteOn) { + writeMask^=hardResetMask; immWrite(0x28,writeMask); + writeMask^=hardResetMask; + + // hard reset handling + if (mustHardReset) { + for (unsigned int i=hardResetElapsed; isong.linearPitch==2) { @@ -535,12 +548,36 @@ void DivPlatformYM2610BExt::tick(bool sysTick) { writeNoteOn=true; if (opChan[i].mask) { writeMask|=1<<(4+i); + if (opChan[i].hardReset) { + hardResetMask|=1<<(4+i); + } + } + if (!opChan[i].hardReset) { + opChan[i].keyOn=false; } - opChan[i].keyOn=false; } } if (writeNoteOn) { + writeMask^=hardResetMask; immWrite(0x28,writeMask); + writeMask^=hardResetMask; + + // hard reset handling + if (mustHardReset) { + for (unsigned int i=hardResetElapsed; isong.linearPitch==2) { @@ -535,12 +548,36 @@ void DivPlatformYM2610Ext::tick(bool sysTick) { writeNoteOn=true; if (opChan[i].mask) { writeMask|=1<<(4+i); + if (opChan[i].hardReset) { + hardResetMask|=1<<(4+i); + } + } + if (!opChan[i].hardReset) { + opChan[i].keyOn=false; } - opChan[i].keyOn=false; } } if (writeNoteOn) { + writeMask^=hardResetMask; immWrite(0x28,writeMask); + writeMask^=hardResetMask; + + // hard reset handling + if (mustHardReset) { + for (unsigned int i=hardResetElapsed; i Date: Sat, 29 Jul 2023 23:12:41 +0200 Subject: [PATCH 046/202] improve table --- doc/5-wave/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/5-wave/README.md b/doc/5-wave/README.md index 59131d39b..7c586ef78 100644 --- a/doc/5-wave/README.md +++ b/doc/5-wave/README.md @@ -2,19 +2,19 @@ Wavetable synthesizers, in context of Furnace, are sound sources that operate on extremely short n-bit PCM streams. By extremely short, no more than 256 bytes. This amount of space is nowhere near enough to store an actual sampled sound, it allows certain amount of freedom to define a waveform shape. -Each chip has its own maximum size, shown in the following table. If a larger wave is defined for these chips, it will be squashed to fit within the constraints of the chips. Some hardware doesn't work well with the wavetable synthesizer (described below); these systems are marked in the "synth?" column. +Each chip has its own maximum size, shown in the following table. If a larger wave is defined for these chips, it will be squashed to fit within the constraints of the chips. Some hardware doesn't work well with the wavetable synthesizer (described below); these systems are marked in the "notes" column. -system | width | height | synth? +system | width | height | notes --------------------|------:|:-------|:------ Bubble System | 32 | 16 | -Game Boy | 32 | 16 | +Game Boy | 32 | 16 | phase reset on waveform change (clicking) SM8521 | 32 | 16 | Namco WSG | 32 | 16 | RAM only WonderSwan | 32 | 16 | -Namco 163 | ≤128 | 16 | +Namco 163 | ≤240 | 16 | limits differ depending on channel count SNES | ≤256 | 16 | -PC Engine | 32 | 32 | -Virtual Boy | 32 | 64 | no +PC Engine | 32 | 32 | phase reset on waveform change (clicking) +Virtual Boy | 32 | 64 | wavesynth unsupported Famicom Disk System | 64 | 64 | Konami SCC | 32 | 256 | Seta X1-010 | 128 | 256 | From 1325664d25fde20ae5b94cbbc8ae2624c9a3bc55 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 29 Jul 2023 17:12:46 -0500 Subject: [PATCH 047/202] SNES: fix possible sample corruption when toggling echo --- src/engine/platform/opll.cpp | 9 +++++++++ src/engine/platform/opll.h | 1 + src/engine/platform/snes.cpp | 8 +++++--- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/engine/platform/opll.cpp b/src/engine/platform/opll.cpp index b0012c224..593b659c3 100644 --- a/src/engine/platform/opll.cpp +++ b/src/engine/platform/opll.cpp @@ -392,6 +392,15 @@ void DivPlatformOPLL::commitState(int ch, DivInstrument* ins) { } } +void DivPlatformOPLL::switchMode(bool mode) { + if (mode==properDrums) return; + if (mode) { + + } else { + + } +} + int DivPlatformOPLL::dispatch(DivCommand c) { switch (c.cmd) { case DIV_CMD_NOTE_ON: { diff --git a/src/engine/platform/opll.h b/src/engine/platform/opll.h index 7333f7298..f5d79b39c 100644 --- a/src/engine/platform/opll.h +++ b/src/engine/platform/opll.h @@ -75,6 +75,7 @@ class DivPlatformOPLL: public DivDispatch { int octave(int freq); int toFreq(int freq); void commitState(int ch, DivInstrument* ins); + void switchMode(bool mode); friend void putDispatchChip(void*,int); friend void putDispatchChan(void*,int,int); diff --git a/src/engine/platform/snes.cpp b/src/engine/platform/snes.cpp index 43401ebcb..a03121613 100644 --- a/src/engine/platform/snes.cpp +++ b/src/engine/platform/snes.cpp @@ -733,6 +733,7 @@ int DivPlatformSNES::getRegisterPoolSize() { void DivPlatformSNES::initEcho() { unsigned char esa=0xf8-(echoDelay<<3); + unsigned char control=(noiseFreq&0x1f)|(echoOn?0:0x20); if (echoOn) { rWrite(0x6d,esa); rWrite(0x7d,echoDelay); @@ -742,13 +743,14 @@ void DivPlatformSNES::initEcho() { for (int i=0; i<8; i++) { rWrite(0x0f+(i<<4),echoFIR[i]); } + rWrite(0x6c,control); } else { - rWrite(0x6d,0); - rWrite(0x7d,0); rWrite(0x2c,0); rWrite(0x3c,0); + rWrite(0x6c,control); + rWrite(0x7d,0); + rWrite(0x6d,0xff); } - writeControl=true; } void DivPlatformSNES::reset() { From 954d91d073f109bb41e65987e69647786d36a6c2 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 30 Jul 2023 02:20:19 -0500 Subject: [PATCH 048/202] OPLL: asdfasfd --- src/engine/platform/opll.cpp | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/engine/platform/opll.cpp b/src/engine/platform/opll.cpp index 593b659c3..1d72760a6 100644 --- a/src/engine/platform/opll.cpp +++ b/src/engine/platform/opll.cpp @@ -782,18 +782,10 @@ int DivPlatformOPLL::dispatch(DivCommand c) { if ((int)properDrums==c.value) break; if (c.value) { properDrums=true; - immWrite(0x0e,0x20); - drumState=0; } else { properDrums=false; - immWrite(0x0e,0x00); - drumState=0; } - chan[6].freqChanged=true; - chan[7].freqChanged=true; - chan[8].freqChanged=true; - chan[9].freqChanged=true; - chan[10].freqChanged=true; + switchMode(properDrums); break; case DIV_CMD_MACRO_OFF: chan[c.chan].std.mask(c.value,true); From 036ba996d56bb698daf68f445d33d25fd055bf0a Mon Sep 17 00:00:00 2001 From: freq-mod <32672779+freq-mod@users.noreply.github.com> Date: Sun, 30 Jul 2023 11:06:38 +0200 Subject: [PATCH 049/202] OPLL patch swiching guide feel free to improve it as you wish --- doc/9-guides/README.md | 3 ++- doc/9-guides/opllswitching.md | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 doc/9-guides/opllswitching.md diff --git a/doc/9-guides/README.md b/doc/9-guides/README.md index 80c96a005..aa6d5cbf6 100644 --- a/doc/9-guides/README.md +++ b/doc/9-guides/README.md @@ -3,4 +3,5 @@ here is a small collection of useful tricks and techniques to really make Furnace sing. - [using samples with limited playback rates](limited-samples.md) -- [choosing emulation cores](emulation-cores.md) \ No newline at end of file +- [choosing emulation cores](emulation-cores.md) +- [guide on using OPLL patch macro](opllswitching.md) \ No newline at end of file diff --git a/doc/9-guides/opllswitching.md b/doc/9-guides/opllswitching.md new file mode 100644 index 000000000..030959b65 --- /dev/null +++ b/doc/9-guides/opllswitching.md @@ -0,0 +1,19 @@ +# using OPLL patch macro + +YM2413's biggest flaw (or, rather, cost-saving feature) was that it could use only one user-defined instrument at once. It wasn't monotimbrial; you could use 15 built-in presets and 5 built-in drum tones freely, but for these going off the beaten path, it surely was limiting. However, there is one technique, as amazing as simple: **mid-note preset switching**. + + the idea is to use the first patch to put the envelope in an unintended state for the second patch so that it sounds different, with a higher or lower modulation level. the sustain level defines at which "envelope level" the envelope will switch to the sustain state (or release depending on envelope type). if the first patch is used to put the envelope into sustain at a higher or lower envelope state than intended for the second patch, it'll still be in sustain/release but at a higher or lower level than it should be at that point. + +therefore, much more variety can be forced out, without using custom instruments. As of July 2023, Furnace is the only tool supporting this feature. It is accessed in 'Macros' tab in OPLL instrument editor. + +For example, try putting the first macro value as 14 (acoustic bass preset), followed by 4 (flute preset). This way you will get distortion guitar-like sound this is nothing like other 2413 preset! There are many combination to test out, which is highly recommended (I can only say, 12->1 or 12->4 produces sound similiar to the well-known 4-op FM mallet brass) + +## drums using this technique + +Using OPLL's drum mode, described is systems/opll.md, you gain access to 5 hardcoded drum tones at the expense of 3 melodic FM channels. Patch switching eliminates that, as using it, it's also possible to construct percussive sounds, some even fuller than their drum mode counterparts! +In short, noise portion of drums (as in hi-hats), can be created of the very high pitched pseudo-distortion guitar, described as above. For kicks, snares, toms and claps, more effort is needed, however using volume and arpeggio macros will help. + +## examples + +[Lman-Clubster cover by Mahbod](https://www.youtube.com/watch?v=jfHs7tSyjXI) +[OPLL Nation by Mahbod](https://www.youtube.com/watch?v=ou6pEfxByeE) \ No newline at end of file From 41f6a6e0a300e70fe659873f129319d98de55919 Mon Sep 17 00:00:00 2001 From: freq-mod <32672779+freq-mod@users.noreply.github.com> Date: Sun, 30 Jul 2023 11:08:27 +0200 Subject: [PATCH 050/202] links aligned properly --- doc/9-guides/opllswitching.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/9-guides/opllswitching.md b/doc/9-guides/opllswitching.md index 030959b65..157a153f5 100644 --- a/doc/9-guides/opllswitching.md +++ b/doc/9-guides/opllswitching.md @@ -15,5 +15,5 @@ In short, noise portion of drums (as in hi-hats), can be created of the very hig ## examples -[Lman-Clubster cover by Mahbod](https://www.youtube.com/watch?v=jfHs7tSyjXI) -[OPLL Nation by Mahbod](https://www.youtube.com/watch?v=ou6pEfxByeE) \ No newline at end of file +- [Lman-Clubster cover by Mahbod](https://www.youtube.com/watch?v=jfHs7tSyjXI) +- [OPLL Nation by Mahbod](https://www.youtube.com/watch?v=ou6pEfxByeE) From 308af5a34efafdffd8254a352298d5abf3335f79 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 30 Jul 2023 04:32:40 -0500 Subject: [PATCH 051/202] GUI: new settings layout --- src/gui/settings.cpp | 3964 +++++++++++++++++++++--------------------- 1 file changed, 1936 insertions(+), 2028 deletions(-) diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 8a860c10f..2d92a4c87 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -685,214 +685,908 @@ void FurnaceGUI::drawSettings() { END_SECTION; } - CONFIG_SECTION("Audio/MIDI") { + CONFIG_SECTION("Audio") { // SUBSECTION OUTPUT CONFIG_SUBSECTION("Output"); +#ifdef HAVE_JACK + ImGui::Text("Backend"); + ImGui::SameLine(); + int prevAudioEngine=settings.audioEngine; + if (ImGui::Combo("##Backend",&settings.audioEngine,audioBackends,2)) { + if (settings.audioEngine!=prevAudioEngine) { + if (!isProAudio[settings.audioEngine]) settings.audioChans=2; + } + } +#endif + + if (settings.audioEngine==DIV_AUDIO_SDL) { + ImGui::Text("Driver"); + ImGui::SameLine(); + if (ImGui::BeginCombo("##SDLADriver",settings.sdlAudioDriver.empty()?"Automatic":settings.sdlAudioDriver.c_str())) { + if (ImGui::Selectable("Automatic",settings.sdlAudioDriver.empty())) { + settings.sdlAudioDriver=""; + } + for (String& i: availAudioDrivers) { + if (ImGui::Selectable(i.c_str(),i==settings.sdlAudioDriver)) { + settings.sdlAudioDriver=i; + } + } + ImGui::EndCombo(); + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("you may need to restart Furnace for this setting to take effect."); + } + } + + ImGui::Text("Device"); + ImGui::SameLine(); + String audioDevName=settings.audioDevice.empty()?"":settings.audioDevice; + if (ImGui::BeginCombo("##AudioDevice",audioDevName.c_str())) { + if (ImGui::Selectable("",settings.audioDevice.empty())) { + settings.audioDevice=""; + } + for (String& i: e->getAudioDevices()) { + if (ImGui::Selectable(i.c_str(),i==settings.audioDevice)) { + settings.audioDevice=i; + } + } + ImGui::EndCombo(); + } + + ImGui::Text("Sample rate"); + ImGui::SameLine(); + String sr=fmt::sprintf("%d",settings.audioRate); + if (ImGui::BeginCombo("##SampleRate",sr.c_str())) { + SAMPLE_RATE_SELECTABLE(8000); + SAMPLE_RATE_SELECTABLE(16000); + SAMPLE_RATE_SELECTABLE(22050); + SAMPLE_RATE_SELECTABLE(32000); + SAMPLE_RATE_SELECTABLE(44100); + SAMPLE_RATE_SELECTABLE(48000); + SAMPLE_RATE_SELECTABLE(88200); + SAMPLE_RATE_SELECTABLE(96000); + SAMPLE_RATE_SELECTABLE(192000); + ImGui::EndCombo(); + } + + if (isProAudio[settings.audioEngine]) { + ImGui::Text("Outputs"); + ImGui::SameLine(); + if (ImGui::InputInt("##AudioChansI",&settings.audioChans,1,1)) { + if (settings.audioChans<1) settings.audioChans=1; + if (settings.audioChans>16) settings.audioChans=16; + } + } else { + ImGui::Text("Channels"); + ImGui::SameLine(); + String chStr=(settings.audioChans<1 || settings.audioChans>8)?"What?":nonProAudioOuts[settings.audioChans-1]; + if (ImGui::BeginCombo("##AudioChans",chStr.c_str())) { + CHANS_SELECTABLE(1); + CHANS_SELECTABLE(2); + CHANS_SELECTABLE(4); + CHANS_SELECTABLE(6); + CHANS_SELECTABLE(8); + ImGui::EndCombo(); + } + } + + ImGui::Text("Buffer size"); + ImGui::SameLine(); + String bs=fmt::sprintf("%d (latency: ~%.1fms)",settings.audioBufSize,2000.0*(double)settings.audioBufSize/(double)MAX(1,settings.audioRate)); + if (ImGui::BeginCombo("##BufferSize",bs.c_str())) { + BUFFER_SIZE_SELECTABLE(64); + BUFFER_SIZE_SELECTABLE(128); + BUFFER_SIZE_SELECTABLE(256); + BUFFER_SIZE_SELECTABLE(512); + BUFFER_SIZE_SELECTABLE(1024); + BUFFER_SIZE_SELECTABLE(2048); + ImGui::EndCombo(); + } + + bool lowLatencyB=settings.lowLatency; + if (ImGui::Checkbox("Low-latency mode (experimental!)",&lowLatencyB)) { + settings.lowLatency=lowLatencyB; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("reduces latency by running the engine faster than the tick rate.\nuseful for live playback/jam mode.\n\nwarning: experimental! may produce glitches.\nonly enable if your buffer size is small (10ms or less)."); + } + + bool forceMonoB=settings.forceMono; + if (ImGui::Checkbox("Force mono audio",&forceMonoB)) { + settings.forceMono=forceMonoB; + } + + TAAudioDesc& audioWant=e->getAudioDescWant(); + TAAudioDesc& audioGot=e->getAudioDescGot(); + + ImGui::Text("want: %d samples @ %.0fHz (%d channels)",audioWant.bufsize,audioWant.rate,audioWant.outChans); + ImGui::Text("got: %d samples @ %.0fHz (%d channels)",audioGot.bufsize,audioGot.rate,audioWant.outChans); // SUBSECTION MIXING CONFIG_SUBSECTION("Mixing"); + ImGui::Text("Quality"); + ImGui::SameLine(); + ImGui::Combo("##Quality",&settings.audioQuality,audioQualities,2); + + bool clampSamplesB=settings.clampSamples; + if (ImGui::Checkbox("Software clipping",&clampSamplesB)) { + settings.clampSamples=clampSamplesB; + } // SUBSECTION METRONOME CONFIG_SUBSECTION("Metronome"); + ImGui::Text("Metronome volume"); + ImGui::SameLine(); + if (ImGui::SliderInt("##MetroVol",&settings.metroVol,0,200,"%d%%")) { + if (settings.metroVol<0) settings.metroVol=0; + if (settings.metroVol>200) settings.metroVol=200; + e->setMetronomeVol(((float)settings.metroVol)/100.0f); + } - // SUBSECTION MIDI - CONFIG_SUBSECTION("MIDI"); + END_SECTION; + } + CONFIG_SECTION("MIDI") { + // SUBSECTION MIDI INPUT + CONFIG_SUBSECTION("MIDI input"); + ImGui::Text("MIDI input"); + ImGui::SameLine(); + String midiInName=settings.midiInDevice.empty()?"":settings.midiInDevice; + bool hasToReloadMidi=false; + if (ImGui::BeginCombo("##MidiInDevice",midiInName.c_str())) { + if (ImGui::Selectable("",settings.midiInDevice.empty())) { + settings.midiInDevice=""; + hasToReloadMidi=true; + } + for (String& i: e->getMidiIns()) { + if (ImGui::Selectable(i.c_str(),i==settings.midiInDevice)) { + settings.midiInDevice=i; + hasToReloadMidi=true; + } + } + ImGui::EndCombo(); + } + + if (hasToReloadMidi) { + midiMap.read(e->getConfigPath()+DIR_SEPARATOR_STR+"midiIn_"+stripName(settings.midiInDevice)+".cfg"); + midiMap.compile(); + } + + ImGui::Checkbox("Note input",&midiMap.noteInput); + ImGui::Checkbox("Velocity input",&midiMap.volInput); + // TODO + //ImGui::Checkbox("Use raw velocity value (don't map from linear to log)",&midiMap.rawVolume); + //ImGui::Checkbox("Polyphonic/chord input",&midiMap.polyInput); + ImGui::Checkbox("Map MIDI channels to direct channels",&midiMap.directChannel); + ImGui::Checkbox("Map Yamaha FM voice data to instruments",&midiMap.yamahaFMResponse); + ImGui::Checkbox("Program change is instrument selection",&midiMap.programChange); + //ImGui::Checkbox("Listen to MIDI clock",&midiMap.midiClock); + //ImGui::Checkbox("Listen to MIDI time code",&midiMap.midiTimeCode); + ImGui::Combo("Value input style",&midiMap.valueInputStyle,valueInputStyles,7); + if (midiMap.valueInputStyle>3) { + if (midiMap.valueInputStyle==6) { + if (ImGui::InputInt("Control##valueCCS",&midiMap.valueInputControlSingle,1,16)) { + if (midiMap.valueInputControlSingle<0) midiMap.valueInputControlSingle=0; + if (midiMap.valueInputControlSingle>127) midiMap.valueInputControlSingle=127; + } + } else { + if (ImGui::InputInt((midiMap.valueInputStyle==4)?"CC of upper nibble##valueCC1":"MSB CC##valueCC1",&midiMap.valueInputControlMSB,1,16)) { + if (midiMap.valueInputControlMSB<0) midiMap.valueInputControlMSB=0; + if (midiMap.valueInputControlMSB>127) midiMap.valueInputControlMSB=127; + } + if (ImGui::InputInt((midiMap.valueInputStyle==4)?"CC of lower nibble##valueCC2":"LSB CC##valueCC2",&midiMap.valueInputControlLSB,1,16)) { + if (midiMap.valueInputControlLSB<0) midiMap.valueInputControlLSB=0; + if (midiMap.valueInputControlLSB>127) midiMap.valueInputControlLSB=127; + } + } + } + if (ImGui::TreeNode("Per-column control change")) { + for (int i=0; i<18; i++) { + ImGui::PushID(i); + ImGui::Combo(specificControls[i],&midiMap.valueInputSpecificStyle[i],valueSInputStyles,4); + if (midiMap.valueInputSpecificStyle[i]>0) { + ImGui::Indent(); + if (midiMap.valueInputSpecificStyle[i]==3) { + if (ImGui::InputInt("Control##valueCCS",&midiMap.valueInputSpecificSingle[i],1,16)) { + if (midiMap.valueInputSpecificSingle[i]<0) midiMap.valueInputSpecificSingle[i]=0; + if (midiMap.valueInputSpecificSingle[i]>127) midiMap.valueInputSpecificSingle[i]=127; + } + } else { + if (ImGui::InputInt((midiMap.valueInputSpecificStyle[i]==4)?"CC of upper nibble##valueCC1":"MSB CC##valueCC1",&midiMap.valueInputSpecificMSB[i],1,16)) { + if (midiMap.valueInputSpecificMSB[i]<0) midiMap.valueInputSpecificMSB[i]=0; + if (midiMap.valueInputSpecificMSB[i]>127) midiMap.valueInputSpecificMSB[i]=127; + } + if (ImGui::InputInt((midiMap.valueInputSpecificStyle[i]==4)?"CC of lower nibble##valueCC2":"LSB CC##valueCC2",&midiMap.valueInputSpecificLSB[i],1,16)) { + if (midiMap.valueInputSpecificLSB[i]<0) midiMap.valueInputSpecificLSB[i]=0; + if (midiMap.valueInputSpecificLSB[i]>127) midiMap.valueInputSpecificLSB[i]=127; + } + } + ImGui::Unindent(); + } + ImGui::PopID(); + } + ImGui::TreePop(); + } + if (ImGui::SliderFloat("Volume curve",&midiMap.volExp,0.01,8.0,"%.2f")) { + if (midiMap.volExp<0.01) midiMap.volExp=0.01; + if (midiMap.volExp>8.0) midiMap.volExp=8.0; + } rightClickable + float curve[128]; + for (int i=0; i<128; i++) { + curve[i]=(int)(pow((double)i/127.0,midiMap.volExp)*127.0); + } + ImGui::PlotLines("##VolCurveDisplay",curve,128,0,"Volume curve",0.0,127.0,ImVec2(200.0f*dpiScale,200.0f*dpiScale)); + + ImGui::Text("Actions:"); + ImGui::SameLine(); + if (ImGui::Button(ICON_FA_PLUS "##AddAction")) { + midiMap.binds.push_back(MIDIBind()); + } + ImGui::SameLine(); + if (ImGui::Button(ICON_FA_EXTERNAL_LINK "##AddLearnAction")) { + midiMap.binds.push_back(MIDIBind()); + learning=midiMap.binds.size()-1; + } + if (learning!=-1) { + ImGui::SameLine(); + ImGui::Text("(learning! press a button or move a slider/knob/something on your device.)"); + } + + if (ImGui::BeginTable("MIDIActions",7)) { + ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthStretch,0.2); + ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch,0.1); + ImGui::TableSetupColumn("c2",ImGuiTableColumnFlags_WidthStretch,0.3); + ImGui::TableSetupColumn("c3",ImGuiTableColumnFlags_WidthStretch,0.2); + ImGui::TableSetupColumn("c4",ImGuiTableColumnFlags_WidthStretch,0.5); + ImGui::TableSetupColumn("c5",ImGuiTableColumnFlags_WidthFixed); + ImGui::TableSetupColumn("c6",ImGuiTableColumnFlags_WidthFixed); + + ImGui::TableNextRow(ImGuiTableRowFlags_Headers); + ImGui::TableNextColumn(); + ImGui::Text("Type"); + ImGui::TableNextColumn(); + ImGui::Text("Channel"); + ImGui::TableNextColumn(); + ImGui::Text("Note/Control"); + ImGui::TableNextColumn(); + ImGui::Text("Velocity/Value"); + ImGui::TableNextColumn(); + ImGui::Text("Action"); + ImGui::TableNextColumn(); + ImGui::Text("Learn"); + ImGui::TableNextColumn(); + ImGui::Text("Remove"); + + for (size_t i=0; i0 && (bind.data1+60)<180) { + nName=noteNames[bind.data1+60]; + } + snprintf(bindID,1024,"%d (0x%.2X, %s)",bind.data1,bind.data1,nName); + } + ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); + if (ImGui::BeginCombo("##BValue1",bindID)) { + if (ImGui::Selectable("Any",bind.data1==128)) { + bind.data1=128; + } + for (int j=0; j<128; j++) { + const char* nName="???"; + if ((j+60)>0 && (j+60)<180) { + nName=noteNames[j+60]; + } + snprintf(bindID,1024,"%d (0x%.2X, %s)##BV1_%d",j,j,nName,j); + if (ImGui::Selectable(bindID,bind.data1==j)) { + bind.data1=j; + } + } + ImGui::EndCombo(); + } + + ImGui::TableNextColumn(); + if (bind.data2==128) { + snprintf(bindID,1024,"Any"); + } else { + snprintf(bindID,1024,"%d (0x%.2X)",bind.data2,bind.data2); + } + ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); + if (ImGui::BeginCombo("##BValue2",bindID)) { + if (ImGui::Selectable("Any",bind.data2==128)) { + bind.data2=128; + } + for (int j=0; j<128; j++) { + snprintf(bindID,1024,"%d (0x%.2X)##BV2_%d",j,j,j); + if (ImGui::Selectable(bindID,bind.data2==j)) { + bind.data2=j; + } + } + ImGui::EndCombo(); + } + + ImGui::TableNextColumn(); + ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); + if (ImGui::BeginCombo("##BAction",(bind.action==0)?"--none--":guiActions[bind.action].friendlyName)) { + if (ImGui::Selectable("--none--",bind.action==0)) { + bind.action=0; + } + for (int j=0; j":settings.midiOutDevice; + if (ImGui::BeginCombo("##MidiOutDevice",midiOutName.c_str())) { + if (ImGui::Selectable("",settings.midiOutDevice.empty())) { + settings.midiOutDevice=""; + } + for (String& i: e->getMidiIns()) { + if (ImGui::Selectable(i.c_str(),i==settings.midiOutDevice)) { + settings.midiOutDevice=i; + } + } + ImGui::EndCombo(); + } + + ImGui::Text("Output mode:"); + if (ImGui::RadioButton("Off (use for TX81Z)",settings.midiOutMode==0)) { + settings.midiOutMode=0; + } + if (ImGui::RadioButton("Melodic",settings.midiOutMode==1)) { + settings.midiOutMode=1; + } + /* + if (ImGui::RadioButton("Light Show (use for Launchpad)",settings.midiOutMode==2)) { + settings.midiOutMode=2; + }*/ + + bool midiOutProgramChangeB=settings.midiOutProgramChange; + if (ImGui::Checkbox("Send Program Change",&midiOutProgramChangeB)) { + settings.midiOutProgramChange=midiOutProgramChangeB; + } + + bool midiOutClockB=settings.midiOutClock; + if (ImGui::Checkbox("Send MIDI clock",&midiOutClockB)) { + settings.midiOutClock=midiOutClockB; + } + + bool midiOutTimeB=settings.midiOutTime; + if (ImGui::Checkbox("Send MIDI timecode",&midiOutTimeB)) { + settings.midiOutTime=midiOutTimeB; + } + + if (settings.midiOutTime) { + ImGui::Text("Timecode frame rate:"); + if (ImGui::RadioButton("Closest to Tick Rate",settings.midiOutTimeRate==0)) { + settings.midiOutTimeRate=0; + } + if (ImGui::RadioButton("Film (24fps)",settings.midiOutTimeRate==1)) { + settings.midiOutTimeRate=1; + } + if (ImGui::RadioButton("PAL (25fps)",settings.midiOutTimeRate==2)) { + settings.midiOutTimeRate=2; + } + if (ImGui::RadioButton("NTSC drop (29.97fps)",settings.midiOutTimeRate==3)) { + settings.midiOutTimeRate=3; + } + if (ImGui::RadioButton("NTSC non-drop (30fps)",settings.midiOutTimeRate==4)) { + settings.midiOutTimeRate=4; + } + } END_SECTION; } CONFIG_SECTION("Emulation") { // SUBSECTION LAYOUT CONFIG_SUBSECTION("Cores"); + ImGui::Text("Arcade/YM2151 core"); + ImGui::SameLine(); + ImGui::Combo("##ArcadeCore",&settings.arcadeCore,arcadeCores,2); + + ImGui::Text("Genesis/YM2612 core"); + ImGui::SameLine(); + ImGui::Combo("##YM2612Core",&settings.ym2612Core,ym2612Cores,2); + + ImGui::Text("SN76489 core"); + ImGui::SameLine(); + ImGui::Combo("##SNCore",&settings.snCore,snCores,2); + + ImGui::Text("NES core"); + ImGui::SameLine(); + ImGui::Combo("##NESCore",&settings.nesCore,nesCores,2); + + ImGui::Text("FDS core"); + ImGui::SameLine(); + ImGui::Combo("##FDSCore",&settings.fdsCore,nesCores,2); + + ImGui::Text("SID core"); + ImGui::SameLine(); + ImGui::Combo("##C64Core",&settings.c64Core,c64Cores,3); + + ImGui::Text("POKEY core"); + ImGui::SameLine(); + ImGui::Combo("##POKEYCore",&settings.pokeyCore,pokeyCores,2); + + ImGui::Text("OPN/OPNA/OPNB cores"); + ImGui::SameLine(); + ImGui::Combo("##OPNCore",&settings.opnCore,opnCores,2); + + ImGui::Separator(); + + ImGui::Text("PC Speaker strategy"); + ImGui::SameLine(); + ImGui::Combo("##PCSOutMethod",&settings.pcSpeakerOutMethod,pcspkrOutMethods,5); + + ImGui::Separator(); + ImGui::Text("Sample ROMs:"); + + ImGui::Text("OPL4 YRW801 path"); + ImGui::SameLine(); + ImGui::InputText("##YRW801Path",&settings.yrw801Path); + ImGui::SameLine(); + if (ImGui::Button(ICON_FA_FOLDER "##YRW801Load")) { + openFileDialog(GUI_FILE_YRW801_ROM_OPEN); + } + + ImGui::Text("MultiPCM TG100 path"); + ImGui::SameLine(); + ImGui::InputText("##TG100Path",&settings.tg100Path); + ImGui::SameLine(); + if (ImGui::Button(ICON_FA_FOLDER "##TG100Load")) { + openFileDialog(GUI_FILE_TG100_ROM_OPEN); + } + + ImGui::Text("MultiPCM MU5 path"); + ImGui::SameLine(); + ImGui::InputText("##MU5Path",&settings.mu5Path); + ImGui::SameLine(); + if (ImGui::Button(ICON_FA_FOLDER "##MU5Load")) { + openFileDialog(GUI_FILE_MU5_ROM_OPEN); + } + END_SECTION; } CONFIG_SECTION("Keyboard") { // SUBSECTION LAYOUT CONFIG_SUBSECTION("Keyboard"); + if (ImGui::Button("Import")) { + openFileDialog(GUI_FILE_IMPORT_KEYBINDS); + } + ImGui::SameLine(); + if (ImGui::Button("Export")) { + openFileDialog(GUI_FILE_EXPORT_KEYBINDS); + } + ImGui::SameLine(); + if (ImGui::Button("Reset defaults")) { + showWarning("Are you sure you want to reset the keyboard settings?",GUI_WARN_RESET_KEYBINDS); + } + if (ImGui::TreeNode("Global hotkeys")) { + KEYBIND_CONFIG_BEGIN("keysGlobal"); + + UI_KEYBIND_CONFIG(GUI_ACTION_NEW); + UI_KEYBIND_CONFIG(GUI_ACTION_OPEN); + UI_KEYBIND_CONFIG(GUI_ACTION_OPEN_BACKUP); + UI_KEYBIND_CONFIG(GUI_ACTION_SAVE); + UI_KEYBIND_CONFIG(GUI_ACTION_SAVE_AS); + UI_KEYBIND_CONFIG(GUI_ACTION_UNDO); + UI_KEYBIND_CONFIG(GUI_ACTION_REDO); + UI_KEYBIND_CONFIG(GUI_ACTION_PLAY_TOGGLE); + UI_KEYBIND_CONFIG(GUI_ACTION_PLAY); + UI_KEYBIND_CONFIG(GUI_ACTION_STOP); + UI_KEYBIND_CONFIG(GUI_ACTION_PLAY_START); + UI_KEYBIND_CONFIG(GUI_ACTION_PLAY_REPEAT); + UI_KEYBIND_CONFIG(GUI_ACTION_PLAY_CURSOR); + UI_KEYBIND_CONFIG(GUI_ACTION_STEP_ONE); + UI_KEYBIND_CONFIG(GUI_ACTION_OCTAVE_UP); + UI_KEYBIND_CONFIG(GUI_ACTION_OCTAVE_DOWN); + UI_KEYBIND_CONFIG(GUI_ACTION_INS_UP); + UI_KEYBIND_CONFIG(GUI_ACTION_INS_DOWN); + UI_KEYBIND_CONFIG(GUI_ACTION_STEP_UP); + UI_KEYBIND_CONFIG(GUI_ACTION_STEP_DOWN); + UI_KEYBIND_CONFIG(GUI_ACTION_TOGGLE_EDIT); + UI_KEYBIND_CONFIG(GUI_ACTION_METRONOME); + UI_KEYBIND_CONFIG(GUI_ACTION_REPEAT_PATTERN); + UI_KEYBIND_CONFIG(GUI_ACTION_FOLLOW_ORDERS); + UI_KEYBIND_CONFIG(GUI_ACTION_FOLLOW_PATTERN); + UI_KEYBIND_CONFIG(GUI_ACTION_FULLSCREEN); + UI_KEYBIND_CONFIG(GUI_ACTION_PANIC); + + KEYBIND_CONFIG_END; + ImGui::TreePop(); + } + if (ImGui::TreeNode("Window activation")) { + KEYBIND_CONFIG_BEGIN("keysWindow"); + + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_EDIT_CONTROLS); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_ORDERS); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_INS_LIST); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_INS_EDIT); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_SONG_INFO); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_SUBSONGS); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_PATTERN); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_WAVE_LIST); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_WAVE_EDIT); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_SAMPLE_LIST); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_SAMPLE_EDIT); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_ABOUT); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_SETTINGS); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_MIXER); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_DEBUG); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_OSCILLOSCOPE); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_CHAN_OSC); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_EFFECT_LIST); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_VOL_METER); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_STATS); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_COMPAT_FLAGS); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_PIANO); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_NOTES); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_CHANNELS); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_REGISTER_VIEW); + UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_LOG); + + UI_KEYBIND_CONFIG(GUI_ACTION_COLLAPSE_WINDOW); + UI_KEYBIND_CONFIG(GUI_ACTION_CLOSE_WINDOW); + + KEYBIND_CONFIG_END; + ImGui::TreePop(); + } + if (ImGui::TreeNode("Note input")) { + std::vector sorted; + if (ImGui::BeginTable("keysNoteInput",4)) { + for (std::map::value_type& i: noteKeys) { + std::vector::iterator j; + for (j=sorted.begin(); j!=sorted.end(); j++) { + if (j->val>i.second) { + break; + } + } + sorted.insert(j,MappedInput(i.first,i.second)); + } + + static char id[4096]; + + ImGui::TableNextRow(ImGuiTableRowFlags_Headers); + ImGui::TableNextColumn(); + ImGui::Text("Key"); + ImGui::TableNextColumn(); + ImGui::Text("Type"); + ImGui::TableNextColumn(); + ImGui::Text("Value"); + ImGui::TableNextColumn(); + ImGui::Text("Remove"); + + for (MappedInput& i: sorted) { + ImGui::TableNextRow(); + ImGui::TableNextColumn(); + ImGui::Text("%s",SDL_GetScancodeName((SDL_Scancode)i.scan)); + ImGui::TableNextColumn(); + if (i.val==102) { + snprintf(id,4095,"Macro release##SNType_%d",i.scan); + if (ImGui::Button(id)) { + noteKeys[i.scan]=0; + } + } else if (i.val==101) { + snprintf(id,4095,"Note release##SNType_%d",i.scan); + if (ImGui::Button(id)) { + noteKeys[i.scan]=102; + } + } else if (i.val==100) { + snprintf(id,4095,"Note off##SNType_%d",i.scan); + if (ImGui::Button(id)) { + noteKeys[i.scan]=101; + } + } else { + snprintf(id,4095,"Note##SNType_%d",i.scan); + if (ImGui::Button(id)) { + noteKeys[i.scan]=100; + } + } + ImGui::TableNextColumn(); + if (i.val<100) { + snprintf(id,4095,"##SNValue_%d",i.scan); + if (ImGui::InputInt(id,&i.val,1,1)) { + if (i.val<0) i.val=0; + if (i.val>96) i.val=96; + noteKeys[i.scan]=i.val; + } + } + ImGui::TableNextColumn(); + snprintf(id,4095,ICON_FA_TIMES "##SNRemove_%d",i.scan); + if (ImGui::Button(id)) { + noteKeys.erase(i.scan); + } + } + ImGui::EndTable(); + + if (ImGui::BeginCombo("##SNAddNew","Add...")) { + for (int i=0; i1.0) settings.doubleClickTime=1.0; - - applyUISettings(false); - } - - ImGui::Text("Toggle channel solo on:"); - if (ImGui::RadioButton("Right-click or double-click##soloA",settings.soloAction==0)) { - settings.soloAction=0; - } - if (ImGui::RadioButton("Right-click##soloR",settings.soloAction==1)) { - settings.soloAction=1; - } - if (ImGui::RadioButton("Double-click##soloD",settings.soloAction==2)) { - settings.soloAction=2; - } - - bool pushNibbleB=settings.pushNibble; - if (ImGui::Checkbox("Push value when overwriting instead of clearing it",&pushNibbleB)) { - settings.pushNibble=pushNibbleB; - } - - bool pullDeleteBehaviorB=settings.pullDeleteBehavior; - if (ImGui::Checkbox("Move cursor up on backspace-delete",&pullDeleteBehaviorB)) { - settings.pullDeleteBehavior=pullDeleteBehaviorB; - } - - bool stepOnDeleteB=settings.stepOnDelete; - if (ImGui::Checkbox("Move cursor by edit step on delete",&stepOnDeleteB)) { - settings.stepOnDelete=stepOnDeleteB; - } - - bool insertBehaviorB=settings.insertBehavior; - if (ImGui::Checkbox("Insert pushes entire channel row",&insertBehaviorB)) { - settings.insertBehavior=insertBehaviorB; - } - - bool pullDeleteRowB=settings.pullDeleteRow; - if (ImGui::Checkbox("Pull delete affects entire channel row",&pullDeleteRowB)) { - settings.pullDeleteRow=pullDeleteRowB; - } - - bool absorbInsInputB=settings.absorbInsInput; - if (ImGui::Checkbox("Change current instrument when changing instrument column (absorb)",&absorbInsInputB)) { - settings.absorbInsInput=absorbInsInputB; - } - - bool effectDeletionAltersValueB=settings.effectDeletionAltersValue; - if (ImGui::Checkbox("Delete effect value when deleting effect",&effectDeletionAltersValueB)) { - settings.effectDeletionAltersValue=effectDeletionAltersValueB; - } - - bool stepOnInsertB=settings.stepOnInsert; - if (ImGui::Checkbox("Move cursor by edit step on insert (push)",&stepOnInsertB)) { - settings.stepOnInsert=stepOnInsertB; - } - - bool cursorPastePosB=settings.cursorPastePos; - if (ImGui::Checkbox("Move cursor to end of clipboard content when pasting",&cursorPastePosB)) { - settings.cursorPastePos=cursorPastePosB; - } - - bool cursorMoveNoScrollB=settings.cursorMoveNoScroll; - if (ImGui::Checkbox("Don't scroll when moving cursor",&cursorMoveNoScrollB)) { - settings.cursorMoveNoScroll=cursorMoveNoScrollB; - } - - bool cursorFollowsWheelB=settings.cursorFollowsWheel; - if (ImGui::Checkbox("Move cursor with scroll wheel",&cursorFollowsWheelB)) { - settings.cursorFollowsWheel=cursorFollowsWheelB; - } - - bool doubleClickColumnB=settings.doubleClickColumn; - if (ImGui::Checkbox("Double click selects entire column",&doubleClickColumnB)) { - settings.doubleClickColumn=doubleClickColumnB; - } - - bool allowEditDockingB=settings.allowEditDocking; - if (ImGui::Checkbox("Allow docking editors",&allowEditDockingB)) { - settings.allowEditDocking=allowEditDockingB; - } - - bool avoidRaisingPatternB=settings.avoidRaisingPattern; - if (ImGui::Checkbox("Don't raise pattern editor on click",&avoidRaisingPatternB)) { - settings.avoidRaisingPattern=avoidRaisingPatternB; - } - - bool insFocusesPatternB=settings.insFocusesPattern; - if (ImGui::Checkbox("Focus pattern editor when selecting instrument",&insFocusesPatternB)) { - settings.insFocusesPattern=insFocusesPatternB; - } - - bool moveWindowTitleB=settings.moveWindowTitle; - if (ImGui::Checkbox("Only allow window movement when clicking on title bar",&moveWindowTitleB)) { - settings.moveWindowTitle=moveWindowTitleB; - applyUISettings(false); - } + bool allowEditDockingB=settings.allowEditDocking; + if (ImGui::Checkbox("Allow docking editors",&allowEditDockingB)) { + settings.allowEditDocking=allowEditDockingB; + } #ifndef IS_MOBILE bool saveWindowPosB=settings.saveWindowPos; @@ -904,1826 +1598,1043 @@ void FurnaceGUI::drawSettings() { } #endif - bool cursorFollowsOrderB=settings.cursorFollowsOrder; - if (ImGui::Checkbox("Cursor follows current order when moving it",&cursorFollowsOrderB)) { - settings.cursorFollowsOrder=cursorFollowsOrderB; - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("applies when playback is stopped."); - } - - ImGui::Text("Note preview behavior:"); - if (ImGui::RadioButton("Never##npb0",settings.notePreviewBehavior==0)) { - settings.notePreviewBehavior=0; - } - if (ImGui::RadioButton("When cursor is in Note column##npb1",settings.notePreviewBehavior==1)) { - settings.notePreviewBehavior=1; - } - if (ImGui::RadioButton("When cursor is in Note column or not in edit mode##npb2",settings.notePreviewBehavior==2)) { - settings.notePreviewBehavior=2; - } - if (ImGui::RadioButton("Always##npb3",settings.notePreviewBehavior==3)) { - settings.notePreviewBehavior=3; - } - - ImGui::Text("Wrap pattern cursor horizontally:"); - if (ImGui::RadioButton("No##wrapH0",settings.wrapHorizontal==0)) { - settings.wrapHorizontal=0; - } - if (ImGui::RadioButton("Yes##wrapH1",settings.wrapHorizontal==1)) { - settings.wrapHorizontal=1; - } - if (ImGui::RadioButton("Yes, and move to next/prev row##wrapH2",settings.wrapHorizontal==2)) { - settings.wrapHorizontal=2; - } - - ImGui::Text("Wrap pattern cursor vertically:"); - if (ImGui::RadioButton("No##wrapV0",settings.wrapVertical==0)) { - settings.wrapVertical=0; - } - if (ImGui::RadioButton("Yes##wrapV1",settings.wrapVertical==1)) { - settings.wrapVertical=1; - } - if (ImGui::RadioButton("Yes, and move to next/prev pattern##wrapV2",settings.wrapVertical==2)) { - settings.wrapVertical=2; - } - if (ImGui::RadioButton("Yes, and move to next/prev pattern (wrap around)##wrapV2",settings.wrapVertical==3)) { - settings.wrapVertical=3; - } - - ImGui::Text("Change order when scrolling outside of pattern bounds:"); - if (ImGui::RadioButton("No##pscroll0",settings.scrollChangesOrder==0)) { - settings.scrollChangesOrder=0; - } - if (ImGui::RadioButton("Yes##pscroll1",settings.scrollChangesOrder==1)) { - settings.scrollChangesOrder=1; - } - if (ImGui::RadioButton("Yes, and wrap around song##pscroll2",settings.scrollChangesOrder==2)) { - settings.scrollChangesOrder=2; - } - - - ImGui::Text("Cursor movement keys behavior:"); - if (ImGui::RadioButton("Move by one##cmk0",settings.scrollStep==0)) { - settings.scrollStep=0; - } - if (ImGui::RadioButton("Move by Edit Step##cmk1",settings.scrollStep==1)) { - settings.scrollStep=1; - } - - ImGui::Text("Effect input cursor behavior:"); - if (ImGui::RadioButton("Move down##eicb0",settings.effectCursorDir==0)) { - settings.effectCursorDir=0; - } - if (ImGui::RadioButton("Move to effect value (otherwise move down)##eicb1",settings.effectCursorDir==1)) { - settings.effectCursorDir=1; - } - if (ImGui::RadioButton("Move to effect value/next effect and wrap around##eicb2",settings.effectCursorDir==2)) { - settings.effectCursorDir=2; - } - - ImGui::Text("Allow dragging selection:"); - if (ImGui::RadioButton("No##dms0",settings.dragMovesSelection==0)) { - settings.dragMovesSelection=0; - } - if (ImGui::RadioButton("Yes##dms1",settings.dragMovesSelection==1)) { - settings.dragMovesSelection=1; - } - if (ImGui::RadioButton("Yes (while holding Ctrl only)##dms2",settings.dragMovesSelection==2)) { - settings.dragMovesSelection=2; - } + bool moveWindowTitleB=settings.moveWindowTitle; + if (ImGui::Checkbox("Only allow window movement when clicking on title bar",&moveWindowTitleB)) { + settings.moveWindowTitle=moveWindowTitleB; + applyUISettings(false); } - ImGui::EndChild(); - ImGui::EndTabItem(); + + ImGui::Text("Play/edit controls layout:"); + if (ImGui::RadioButton("Classic##ecl0",settings.controlLayout==0)) { + settings.controlLayout=0; + } + if (ImGui::RadioButton("Compact##ecl1",settings.controlLayout==1)) { + settings.controlLayout=1; + } + if (ImGui::RadioButton("Compact (vertical)##ecl2",settings.controlLayout==2)) { + settings.controlLayout=2; + } + if (ImGui::RadioButton("Split##ecl3",settings.controlLayout==3)) { + settings.controlLayout=3; + } + + ImGui::Text("Position of buttons in Orders:"); + if (ImGui::RadioButton("Top##obp0",settings.orderButtonPos==0)) { + settings.orderButtonPos=0; + } + if (ImGui::RadioButton("Left##obp1",settings.orderButtonPos==1)) { + settings.orderButtonPos=1; + } + if (ImGui::RadioButton("Right##obp2",settings.orderButtonPos==2)) { + settings.orderButtonPos=2; + } + + // SUBSECTION MOUSE + CONFIG_SUBSECTION("Mouse"); + + if (CWSliderFloat("Double-click time (seconds)",&settings.doubleClickTime,0.02,1.0,"%.2f")) { + if (settings.doubleClickTime<0.02) settings.doubleClickTime=0.02; + if (settings.doubleClickTime>1.0) settings.doubleClickTime=1.0; + + applyUISettings(false); + } + + bool avoidRaisingPatternB=settings.avoidRaisingPattern; + if (ImGui::Checkbox("Don't raise pattern editor on click",&avoidRaisingPatternB)) { + settings.avoidRaisingPattern=avoidRaisingPatternB; + } + + bool insFocusesPatternB=settings.insFocusesPattern; + if (ImGui::Checkbox("Focus pattern editor when selecting instrument",&insFocusesPatternB)) { + settings.insFocusesPattern=insFocusesPatternB; + } + + ImGui::Text("Note preview behavior:"); + if (ImGui::RadioButton("Never##npb0",settings.notePreviewBehavior==0)) { + settings.notePreviewBehavior=0; + } + if (ImGui::RadioButton("When cursor is in Note column##npb1",settings.notePreviewBehavior==1)) { + settings.notePreviewBehavior=1; + } + if (ImGui::RadioButton("When cursor is in Note column or not in edit mode##npb2",settings.notePreviewBehavior==2)) { + settings.notePreviewBehavior=2; + } + if (ImGui::RadioButton("Always##npb3",settings.notePreviewBehavior==3)) { + settings.notePreviewBehavior=3; + } + + ImGui::Text("Allow dragging selection:"); + if (ImGui::RadioButton("No##dms0",settings.dragMovesSelection==0)) { + settings.dragMovesSelection=0; + } + if (ImGui::RadioButton("Yes##dms1",settings.dragMovesSelection==1)) { + settings.dragMovesSelection=1; + } + if (ImGui::RadioButton("Yes (while holding Ctrl only)##dms2",settings.dragMovesSelection==2)) { + settings.dragMovesSelection=2; + } + + ImGui::Text("Toggle channel solo on:"); + if (ImGui::RadioButton("Right-click or double-click##soloA",settings.soloAction==0)) { + settings.soloAction=0; + } + if (ImGui::RadioButton("Right-click##soloR",settings.soloAction==1)) { + settings.soloAction=1; + } + if (ImGui::RadioButton("Double-click##soloD",settings.soloAction==2)) { + settings.soloAction=2; + } + + bool doubleClickColumnB=settings.doubleClickColumn; + if (ImGui::Checkbox("Double click selects entire column",&doubleClickColumnB)) { + settings.doubleClickColumn=doubleClickColumnB; + } + + // SUBSECTION CURSOR BEHAVIOR + CONFIG_SUBSECTION("Cursor behavior"); + bool insertBehaviorB=settings.insertBehavior; + if (ImGui::Checkbox("Insert pushes entire channel row",&insertBehaviorB)) { + settings.insertBehavior=insertBehaviorB; + } + + bool pullDeleteRowB=settings.pullDeleteRow; + if (ImGui::Checkbox("Pull delete affects entire channel row",&pullDeleteRowB)) { + settings.pullDeleteRow=pullDeleteRowB; + } + + bool pushNibbleB=settings.pushNibble; + if (ImGui::Checkbox("Push value when overwriting instead of clearing it",&pushNibbleB)) { + settings.pushNibble=pushNibbleB; + } + + ImGui::Text("Effect input behavior:"); + if (ImGui::RadioButton("Move down##eicb0",settings.effectCursorDir==0)) { + settings.effectCursorDir=0; + } + if (ImGui::RadioButton("Move to effect value (otherwise move down)##eicb1",settings.effectCursorDir==1)) { + settings.effectCursorDir=1; + } + if (ImGui::RadioButton("Move to effect value/next effect and wrap around##eicb2",settings.effectCursorDir==2)) { + settings.effectCursorDir=2; + } + + bool effectDeletionAltersValueB=settings.effectDeletionAltersValue; + if (ImGui::Checkbox("Delete effect value when deleting effect",&effectDeletionAltersValueB)) { + settings.effectDeletionAltersValue=effectDeletionAltersValueB; + } + + bool absorbInsInputB=settings.absorbInsInput; + if (ImGui::Checkbox("Change current instrument when changing instrument column (absorb)",&absorbInsInputB)) { + settings.absorbInsInput=absorbInsInputB; + } + + // SUBSECTION CURSOR MOVEMENT + CONFIG_SUBSECTION("Cursor movement"); + + ImGui::Text("Wrap horizontally:"); + if (ImGui::RadioButton("No##wrapH0",settings.wrapHorizontal==0)) { + settings.wrapHorizontal=0; + } + if (ImGui::RadioButton("Yes##wrapH1",settings.wrapHorizontal==1)) { + settings.wrapHorizontal=1; + } + if (ImGui::RadioButton("Yes, and move to next/prev row##wrapH2",settings.wrapHorizontal==2)) { + settings.wrapHorizontal=2; + } + + ImGui::Text("Wrap vertically:"); + if (ImGui::RadioButton("No##wrapV0",settings.wrapVertical==0)) { + settings.wrapVertical=0; + } + if (ImGui::RadioButton("Yes##wrapV1",settings.wrapVertical==1)) { + settings.wrapVertical=1; + } + if (ImGui::RadioButton("Yes, and move to next/prev pattern##wrapV2",settings.wrapVertical==2)) { + settings.wrapVertical=2; + } + if (ImGui::RadioButton("Yes, and move to next/prev pattern (wrap around)##wrapV2",settings.wrapVertical==3)) { + settings.wrapVertical=3; + } + + ImGui::Text("Cursor movement keys behavior:"); + if (ImGui::RadioButton("Move by one##cmk0",settings.scrollStep==0)) { + settings.scrollStep=0; + } + if (ImGui::RadioButton("Move by Edit Step##cmk1",settings.scrollStep==1)) { + settings.scrollStep=1; + } + + bool stepOnDeleteB=settings.stepOnDelete; + if (ImGui::Checkbox("Move cursor by edit step on delete",&stepOnDeleteB)) { + settings.stepOnDelete=stepOnDeleteB; + } + + bool stepOnInsertB=settings.stepOnInsert; + if (ImGui::Checkbox("Move cursor by edit step on insert (push)",&stepOnInsertB)) { + settings.stepOnInsert=stepOnInsertB; + } + + bool pullDeleteBehaviorB=settings.pullDeleteBehavior; + if (ImGui::Checkbox("Move cursor up on backspace-delete",&pullDeleteBehaviorB)) { + settings.pullDeleteBehavior=pullDeleteBehaviorB; + } + + bool cursorPastePosB=settings.cursorPastePos; + if (ImGui::Checkbox("Move cursor to end of clipboard content when pasting",&cursorPastePosB)) { + settings.cursorPastePos=cursorPastePosB; + } + + // SUBSECTION SCROLLING + CONFIG_SUBSECTION("Scrolling"); + + ImGui::Text("Change order when scrolling outside of pattern bounds:"); + if (ImGui::RadioButton("No##pscroll0",settings.scrollChangesOrder==0)) { + settings.scrollChangesOrder=0; + } + if (ImGui::RadioButton("Yes##pscroll1",settings.scrollChangesOrder==1)) { + settings.scrollChangesOrder=1; + } + if (ImGui::RadioButton("Yes, and wrap around song##pscroll2",settings.scrollChangesOrder==2)) { + settings.scrollChangesOrder=2; + } + + bool cursorFollowsOrderB=settings.cursorFollowsOrder; + if (ImGui::Checkbox("Cursor follows current order when moving it",&cursorFollowsOrderB)) { + settings.cursorFollowsOrder=cursorFollowsOrderB; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("applies when playback is stopped."); + } + + bool cursorMoveNoScrollB=settings.cursorMoveNoScroll; + if (ImGui::Checkbox("Don't scroll when moving cursor",&cursorMoveNoScrollB)) { + settings.cursorMoveNoScroll=cursorMoveNoScrollB; + } + + bool cursorFollowsWheelB=settings.cursorFollowsWheel; + if (ImGui::Checkbox("Move cursor with scroll wheel",&cursorFollowsWheelB)) { + settings.cursorFollowsWheel=cursorFollowsWheelB; + } + + END_SECTION; } - if (ImGui::BeginTabItem("Audio/MIDI (OLD)")) { - ImVec2 settingsViewSize=ImGui::GetContentRegionAvail(); - settingsViewSize.y-=ImGui::GetFrameHeight()+ImGui::GetStyle().WindowPadding.y; - if (ImGui::BeginChild("SettingsView",settingsViewSize)) { -#ifdef HAVE_JACK - ImGui::Text("Backend"); - ImGui::SameLine(); - int prevAudioEngine=settings.audioEngine; - if (ImGui::Combo("##Backend",&settings.audioEngine,audioBackends,2)) { - if (settings.audioEngine!=prevAudioEngine) { - if (!isProAudio[settings.audioEngine]) settings.audioChans=2; - } - } -#endif - - if (settings.audioEngine==DIV_AUDIO_SDL) { - ImGui::Text("Driver"); - ImGui::SameLine(); - if (ImGui::BeginCombo("##SDLADriver",settings.sdlAudioDriver.empty()?"Automatic":settings.sdlAudioDriver.c_str())) { - if (ImGui::Selectable("Automatic",settings.sdlAudioDriver.empty())) { - settings.sdlAudioDriver=""; - } - for (String& i: availAudioDrivers) { - if (ImGui::Selectable(i.c_str(),i==settings.sdlAudioDriver)) { - settings.sdlAudioDriver=i; - } - } - ImGui::EndCombo(); - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("you may need to restart Furnace for this setting to take effect."); - } - } - - ImGui::Text("Device"); - ImGui::SameLine(); - String audioDevName=settings.audioDevice.empty()?"":settings.audioDevice; - if (ImGui::BeginCombo("##AudioDevice",audioDevName.c_str())) { - if (ImGui::Selectable("",settings.audioDevice.empty())) { - settings.audioDevice=""; - } - for (String& i: e->getAudioDevices()) { - if (ImGui::Selectable(i.c_str(),i==settings.audioDevice)) { - settings.audioDevice=i; - } - } - ImGui::EndCombo(); - } - - ImGui::Text("Sample rate"); - ImGui::SameLine(); - String sr=fmt::sprintf("%d",settings.audioRate); - if (ImGui::BeginCombo("##SampleRate",sr.c_str())) { - SAMPLE_RATE_SELECTABLE(8000); - SAMPLE_RATE_SELECTABLE(16000); - SAMPLE_RATE_SELECTABLE(22050); - SAMPLE_RATE_SELECTABLE(32000); - SAMPLE_RATE_SELECTABLE(44100); - SAMPLE_RATE_SELECTABLE(48000); - SAMPLE_RATE_SELECTABLE(88200); - SAMPLE_RATE_SELECTABLE(96000); - SAMPLE_RATE_SELECTABLE(192000); - ImGui::EndCombo(); - } - - if (isProAudio[settings.audioEngine]) { - ImGui::Text("Outputs"); - ImGui::SameLine(); - if (ImGui::InputInt("##AudioChansI",&settings.audioChans,1,1)) { - if (settings.audioChans<1) settings.audioChans=1; - if (settings.audioChans>16) settings.audioChans=16; - } + CONFIG_SECTION("Appearance") { + // SUBSECTION INTERFACE + CONFIG_SUBSECTION("Scaling"); + bool dpiScaleAuto=(settings.dpiScale<0.5f); + if (ImGui::Checkbox("Automatic UI scaling factor",&dpiScaleAuto)) { + if (dpiScaleAuto) { + settings.dpiScale=0.0f; } else { - ImGui::Text("Channels"); - ImGui::SameLine(); - String chStr=(settings.audioChans<1 || settings.audioChans>8)?"What?":nonProAudioOuts[settings.audioChans-1]; - if (ImGui::BeginCombo("##AudioChans",chStr.c_str())) { - CHANS_SELECTABLE(1); - CHANS_SELECTABLE(2); - CHANS_SELECTABLE(4); - CHANS_SELECTABLE(6); - CHANS_SELECTABLE(8); - ImGui::EndCombo(); - } - } - - ImGui::Text("Buffer size"); - ImGui::SameLine(); - String bs=fmt::sprintf("%d (latency: ~%.1fms)",settings.audioBufSize,2000.0*(double)settings.audioBufSize/(double)MAX(1,settings.audioRate)); - if (ImGui::BeginCombo("##BufferSize",bs.c_str())) { - BUFFER_SIZE_SELECTABLE(64); - BUFFER_SIZE_SELECTABLE(128); - BUFFER_SIZE_SELECTABLE(256); - BUFFER_SIZE_SELECTABLE(512); - BUFFER_SIZE_SELECTABLE(1024); - BUFFER_SIZE_SELECTABLE(2048); - ImGui::EndCombo(); - } - - ImGui::Text("Quality"); - ImGui::SameLine(); - ImGui::Combo("##Quality",&settings.audioQuality,audioQualities,2); - - ImGui::Text("Metronome volume"); - ImGui::SameLine(); - if (ImGui::SliderInt("##MetroVol",&settings.metroVol,0,200,"%d%%")) { - if (settings.metroVol<0) settings.metroVol=0; - if (settings.metroVol>200) settings.metroVol=200; - e->setMetronomeVol(((float)settings.metroVol)/100.0f); - } - - bool lowLatencyB=settings.lowLatency; - if (ImGui::Checkbox("Low-latency mode (experimental!)",&lowLatencyB)) { - settings.lowLatency=lowLatencyB; - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("reduces latency by running the engine faster than the tick rate.\nuseful for live playback/jam mode.\n\nwarning: experimental! may produce glitches.\nonly enable if your buffer size is small (10ms or less)."); - } - - bool forceMonoB=settings.forceMono; - if (ImGui::Checkbox("Force mono audio",&forceMonoB)) { - settings.forceMono=forceMonoB; - } - - bool clampSamplesB=settings.clampSamples; - if (ImGui::Checkbox("Software clipping",&clampSamplesB)) { - settings.clampSamples=clampSamplesB; - } - - TAAudioDesc& audioWant=e->getAudioDescWant(); - TAAudioDesc& audioGot=e->getAudioDescGot(); - - ImGui::Text("want: %d samples @ %.0fHz (%d channels)",audioWant.bufsize,audioWant.rate,audioWant.outChans); - ImGui::Text("got: %d samples @ %.0fHz (%d channels)",audioGot.bufsize,audioGot.rate,audioWant.outChans); - - ImGui::Separator(); - - ImGui::Text("MIDI input"); - ImGui::SameLine(); - String midiInName=settings.midiInDevice.empty()?"":settings.midiInDevice; - bool hasToReloadMidi=false; - if (ImGui::BeginCombo("##MidiInDevice",midiInName.c_str())) { - if (ImGui::Selectable("",settings.midiInDevice.empty())) { - settings.midiInDevice=""; - hasToReloadMidi=true; - } - for (String& i: e->getMidiIns()) { - if (ImGui::Selectable(i.c_str(),i==settings.midiInDevice)) { - settings.midiInDevice=i; - hasToReloadMidi=true; - } - } - ImGui::EndCombo(); - } - - if (hasToReloadMidi) { - midiMap.read(e->getConfigPath()+DIR_SEPARATOR_STR+"midiIn_"+stripName(settings.midiInDevice)+".cfg"); - midiMap.compile(); - } - - ImGui::Text("MIDI output"); - ImGui::SameLine(); - String midiOutName=settings.midiOutDevice.empty()?"":settings.midiOutDevice; - if (ImGui::BeginCombo("##MidiOutDevice",midiOutName.c_str())) { - if (ImGui::Selectable("",settings.midiOutDevice.empty())) { - settings.midiOutDevice=""; - } - for (String& i: e->getMidiIns()) { - if (ImGui::Selectable(i.c_str(),i==settings.midiOutDevice)) { - settings.midiOutDevice=i; - } - } - ImGui::EndCombo(); - } - - if (ImGui::TreeNode("MIDI input settings")) { - ImGui::Checkbox("Note input",&midiMap.noteInput); - ImGui::Checkbox("Velocity input",&midiMap.volInput); - // TODO - //ImGui::Checkbox("Use raw velocity value (don't map from linear to log)",&midiMap.rawVolume); - //ImGui::Checkbox("Polyphonic/chord input",&midiMap.polyInput); - ImGui::Checkbox("Map MIDI channels to direct channels",&midiMap.directChannel); - ImGui::Checkbox("Map Yamaha FM voice data to instruments",&midiMap.yamahaFMResponse); - ImGui::Checkbox("Program change is instrument selection",&midiMap.programChange); - //ImGui::Checkbox("Listen to MIDI clock",&midiMap.midiClock); - //ImGui::Checkbox("Listen to MIDI time code",&midiMap.midiTimeCode); - ImGui::Combo("Value input style",&midiMap.valueInputStyle,valueInputStyles,7); - if (midiMap.valueInputStyle>3) { - if (midiMap.valueInputStyle==6) { - if (ImGui::InputInt("Control##valueCCS",&midiMap.valueInputControlSingle,1,16)) { - if (midiMap.valueInputControlSingle<0) midiMap.valueInputControlSingle=0; - if (midiMap.valueInputControlSingle>127) midiMap.valueInputControlSingle=127; - } - } else { - if (ImGui::InputInt((midiMap.valueInputStyle==4)?"CC of upper nibble##valueCC1":"MSB CC##valueCC1",&midiMap.valueInputControlMSB,1,16)) { - if (midiMap.valueInputControlMSB<0) midiMap.valueInputControlMSB=0; - if (midiMap.valueInputControlMSB>127) midiMap.valueInputControlMSB=127; - } - if (ImGui::InputInt((midiMap.valueInputStyle==4)?"CC of lower nibble##valueCC2":"LSB CC##valueCC2",&midiMap.valueInputControlLSB,1,16)) { - if (midiMap.valueInputControlLSB<0) midiMap.valueInputControlLSB=0; - if (midiMap.valueInputControlLSB>127) midiMap.valueInputControlLSB=127; - } - } - } - if (ImGui::TreeNode("Per-column control change")) { - for (int i=0; i<18; i++) { - ImGui::PushID(i); - ImGui::Combo(specificControls[i],&midiMap.valueInputSpecificStyle[i],valueSInputStyles,4); - if (midiMap.valueInputSpecificStyle[i]>0) { - ImGui::Indent(); - if (midiMap.valueInputSpecificStyle[i]==3) { - if (ImGui::InputInt("Control##valueCCS",&midiMap.valueInputSpecificSingle[i],1,16)) { - if (midiMap.valueInputSpecificSingle[i]<0) midiMap.valueInputSpecificSingle[i]=0; - if (midiMap.valueInputSpecificSingle[i]>127) midiMap.valueInputSpecificSingle[i]=127; - } - } else { - if (ImGui::InputInt((midiMap.valueInputSpecificStyle[i]==4)?"CC of upper nibble##valueCC1":"MSB CC##valueCC1",&midiMap.valueInputSpecificMSB[i],1,16)) { - if (midiMap.valueInputSpecificMSB[i]<0) midiMap.valueInputSpecificMSB[i]=0; - if (midiMap.valueInputSpecificMSB[i]>127) midiMap.valueInputSpecificMSB[i]=127; - } - if (ImGui::InputInt((midiMap.valueInputSpecificStyle[i]==4)?"CC of lower nibble##valueCC2":"LSB CC##valueCC2",&midiMap.valueInputSpecificLSB[i],1,16)) { - if (midiMap.valueInputSpecificLSB[i]<0) midiMap.valueInputSpecificLSB[i]=0; - if (midiMap.valueInputSpecificLSB[i]>127) midiMap.valueInputSpecificLSB[i]=127; - } - } - ImGui::Unindent(); - } - ImGui::PopID(); - } - ImGui::TreePop(); - } - if (ImGui::SliderFloat("Volume curve",&midiMap.volExp,0.01,8.0,"%.2f")) { - if (midiMap.volExp<0.01) midiMap.volExp=0.01; - if (midiMap.volExp>8.0) midiMap.volExp=8.0; - } rightClickable - float curve[128]; - for (int i=0; i<128; i++) { - curve[i]=(int)(pow((double)i/127.0,midiMap.volExp)*127.0); - } - ImGui::PlotLines("##VolCurveDisplay",curve,128,0,"Volume curve",0.0,127.0,ImVec2(200.0f*dpiScale,200.0f*dpiScale)); - - ImGui::Text("Actions:"); - ImGui::SameLine(); - if (ImGui::Button(ICON_FA_PLUS "##AddAction")) { - midiMap.binds.push_back(MIDIBind()); - } - ImGui::SameLine(); - if (ImGui::Button(ICON_FA_EXTERNAL_LINK "##AddLearnAction")) { - midiMap.binds.push_back(MIDIBind()); - learning=midiMap.binds.size()-1; - } - if (learning!=-1) { - ImGui::SameLine(); - ImGui::Text("(learning! press a button or move a slider/knob/something on your device.)"); - } - - if (ImGui::BeginTable("MIDIActions",7)) { - ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthStretch,0.2); - ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch,0.1); - ImGui::TableSetupColumn("c2",ImGuiTableColumnFlags_WidthStretch,0.3); - ImGui::TableSetupColumn("c3",ImGuiTableColumnFlags_WidthStretch,0.2); - ImGui::TableSetupColumn("c4",ImGuiTableColumnFlags_WidthStretch,0.5); - ImGui::TableSetupColumn("c5",ImGuiTableColumnFlags_WidthFixed); - ImGui::TableSetupColumn("c6",ImGuiTableColumnFlags_WidthFixed); - - ImGui::TableNextRow(ImGuiTableRowFlags_Headers); - ImGui::TableNextColumn(); - ImGui::Text("Type"); - ImGui::TableNextColumn(); - ImGui::Text("Channel"); - ImGui::TableNextColumn(); - ImGui::Text("Note/Control"); - ImGui::TableNextColumn(); - ImGui::Text("Velocity/Value"); - ImGui::TableNextColumn(); - ImGui::Text("Action"); - ImGui::TableNextColumn(); - ImGui::Text("Learn"); - ImGui::TableNextColumn(); - ImGui::Text("Remove"); - - for (size_t i=0; i0 && (bind.data1+60)<180) { - nName=noteNames[bind.data1+60]; - } - snprintf(bindID,1024,"%d (0x%.2X, %s)",bind.data1,bind.data1,nName); - } - ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - if (ImGui::BeginCombo("##BValue1",bindID)) { - if (ImGui::Selectable("Any",bind.data1==128)) { - bind.data1=128; - } - for (int j=0; j<128; j++) { - const char* nName="???"; - if ((j+60)>0 && (j+60)<180) { - nName=noteNames[j+60]; - } - snprintf(bindID,1024,"%d (0x%.2X, %s)##BV1_%d",j,j,nName,j); - if (ImGui::Selectable(bindID,bind.data1==j)) { - bind.data1=j; - } - } - ImGui::EndCombo(); - } - - ImGui::TableNextColumn(); - if (bind.data2==128) { - snprintf(bindID,1024,"Any"); - } else { - snprintf(bindID,1024,"%d (0x%.2X)",bind.data2,bind.data2); - } - ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - if (ImGui::BeginCombo("##BValue2",bindID)) { - if (ImGui::Selectable("Any",bind.data2==128)) { - bind.data2=128; - } - for (int j=0; j<128; j++) { - snprintf(bindID,1024,"%d (0x%.2X)##BV2_%d",j,j,j); - if (ImGui::Selectable(bindID,bind.data2==j)) { - bind.data2=j; - } - } - ImGui::EndCombo(); - } - - ImGui::TableNextColumn(); - ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - if (ImGui::BeginCombo("##BAction",(bind.action==0)?"--none--":guiActions[bind.action].friendlyName)) { - if (ImGui::Selectable("--none--",bind.action==0)) { - bind.action=0; - } - for (int j=0; j3.0f) settings.dpiScale=3.0f; + } rightClickable + } + + if (ImGui::InputInt("Icon size",&settings.iconSize)) { + if (settings.iconSize<3) settings.iconSize=3; + if (settings.iconSize>48) settings.iconSize=48; + } + + // SUBSECTION TEXT + CONFIG_SUBSECTION("Text"); + ImGui::Text("Main font"); + ImGui::SameLine(); + ImGui::Combo("##MainFont",&settings.mainFont,mainFonts,7); + if (settings.mainFont==6) { + ImGui::InputText("##MainFontPath",&settings.mainFontPath); + ImGui::SameLine(); + if (ImGui::Button(ICON_FA_FOLDER "##MainFontLoad")) { + openFileDialog(GUI_FILE_LOAD_MAIN_FONT); + } + } + if (ImGui::InputInt("Size##MainFontSize",&settings.mainFontSize)) { + if (settings.mainFontSize<3) settings.mainFontSize=3; + if (settings.mainFontSize>96) settings.mainFontSize=96; + } + ImGui::Text("Pattern font"); + ImGui::SameLine(); + ImGui::Combo("##PatFont",&settings.patFont,patFonts,7); + if (settings.patFont==6) { + ImGui::InputText("##PatFontPath",&settings.patFontPath); + ImGui::SameLine(); + if (ImGui::Button(ICON_FA_FOLDER "##PatFontLoad")) { + openFileDialog(GUI_FILE_LOAD_PAT_FONT); + } + } + if (ImGui::InputInt("Size##PatFontSize",&settings.patFontSize)) { + if (settings.patFontSize<3) settings.patFontSize=3; + if (settings.patFontSize>96) settings.patFontSize=96; + } + + bool loadJapaneseB=settings.loadJapanese; + if (ImGui::Checkbox("Display Japanese characters",&loadJapaneseB)) { + settings.loadJapanese=loadJapaneseB; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip( + "Only toggle this option if you have enough graphics memory.\n" + "This is a temporary solution until dynamic font atlas is implemented in Dear ImGui.\n\n" + "このオプションは、十分なグラフィックメモリがある場合にのみ切り替えてください。\n" + "これは、Dear ImGuiにダイナミックフォントアトラスが実装されるまでの一時的な解決策です。" + ); + } + + bool loadChineseB=settings.loadChinese; + if (ImGui::Checkbox("Display Chinese (Simplified) characters",&loadChineseB)) { + settings.loadChinese=loadChineseB; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip( + "Only toggle this option if you have enough graphics memory.\n" + "This is a temporary solution until dynamic font atlas is implemented in Dear ImGui.\n\n" + "请在确保你有足够的显存后再启动此设定\n" + "这是一个在ImGui实现动态字体加载之前的临时解决方案" + ); + } + + bool loadChineseTraditionalB=settings.loadChineseTraditional; + if (ImGui::Checkbox("Display Chinese (Traditional) characters",&loadChineseTraditionalB)) { + settings.loadChineseTraditional=loadChineseTraditionalB; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip( + "Only toggle this option if you have enough graphics memory.\n" + "This is a temporary solution until dynamic font atlas is implemented in Dear ImGui.\n\n" + "請在確保你有足夠的顯存后再啟動此設定\n" + "這是一個在ImGui實現動態字體加載之前的臨時解決方案" + ); + } + + bool loadKoreanB=settings.loadKorean; + if (ImGui::Checkbox("Display Korean characters",&loadKoreanB)) { + settings.loadKorean=loadKoreanB; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip( + "Only toggle this option if you have enough graphics memory.\n" + "This is a temporary solution until dynamic font atlas is implemented in Dear ImGui.\n\n" + "그래픽 메모리가 충분한 경우에만 이 옵션을 선택하십시오.\n" + "이 옵션은 Dear ImGui에 동적 글꼴 아틀라스가 구현될 때까지 임시 솔루션입니다." + ); + } + + // SUBSECTION PROGRAM + CONFIG_SUBSECTION("Program"); + ImGui::Text("Title bar:"); + if (ImGui::RadioButton("Furnace##tbar0",settings.titleBarInfo==0)) { + settings.titleBarInfo=0; + updateWindowTitle(); + } + if (ImGui::RadioButton("Song Name - Furnace##tbar1",settings.titleBarInfo==1)) { + settings.titleBarInfo=1; + updateWindowTitle(); + } + if (ImGui::RadioButton("file_name.fur - Furnace##tbar2",settings.titleBarInfo==2)) { + settings.titleBarInfo=2; + updateWindowTitle(); + } + if (ImGui::RadioButton("/path/to/file.fur - Furnace##tbar3",settings.titleBarInfo==3)) { + settings.titleBarInfo=3; + updateWindowTitle(); + } + + bool titleBarSysB=settings.titleBarSys; + if (ImGui::Checkbox("Display system name on title bar",&titleBarSysB)) { + settings.titleBarSys=titleBarSysB; + updateWindowTitle(); + } + + bool noMultiSystemB=settings.noMultiSystem; + if (ImGui::Checkbox("Display chip names instead of \"multi-system\" in title bar",&noMultiSystemB)) { + settings.noMultiSystem=noMultiSystemB; + updateWindowTitle(); + } + + ImGui::Text("Status bar:"); + if (ImGui::RadioButton("Cursor details##sbar0",settings.statusDisplay==0)) { + settings.statusDisplay=0; + } + if (ImGui::RadioButton("File path##sbar1",settings.statusDisplay==1)) { + settings.statusDisplay=1; + } + if (ImGui::RadioButton("Cursor details or file path##sbar2",settings.statusDisplay==2)) { + settings.statusDisplay=2; + } + if (ImGui::RadioButton("Nothing##sbar3",settings.statusDisplay==3)) { + settings.statusDisplay=3; + } + + // SUBSECTION ORDERS + CONFIG_SUBSECTION("Orders"); + // sorry. temporarily disabled until ImGui has a way to add separators in tables arbitrarily. + /*bool sysSeparatorsB=settings.sysSeparators; + if (ImGui::Checkbox("Add separators between systems in Orders",&sysSeparatorsB)) { + settings.sysSeparators=sysSeparatorsB; + }*/ + + bool ordersCursorB=settings.ordersCursor; + if (ImGui::Checkbox("Highlight channel at cursor in Orders",&ordersCursorB)) { + settings.ordersCursor=ordersCursorB; + } + + ImGui::Text("Orders row number format:"); + if (ImGui::RadioButton("Decimal##orbD",settings.orderRowsBase==0)) { + settings.orderRowsBase=0; + } + if (ImGui::RadioButton("Hexadecimal##orbH",settings.orderRowsBase==1)) { + settings.orderRowsBase=1; + } + + // SUBSECTION PATTERN + CONFIG_SUBSECTION("Pattern"); + bool centerPatternB=settings.centerPattern; + if (ImGui::Checkbox("Center pattern view",¢erPatternB)) { + settings.centerPattern=centerPatternB; + } + + bool overflowHighlightB=settings.overflowHighlight; + if (ImGui::Checkbox("Overflow pattern highlights",&overflowHighlightB)) { + settings.overflowHighlight=overflowHighlightB; + } + + bool viewPrevPatternB=settings.viewPrevPattern; + if (ImGui::Checkbox("Display previous/next pattern",&viewPrevPatternB)) { + settings.viewPrevPattern=viewPrevPatternB; + } + + ImGui::Text("Pattern row number format:"); + if (ImGui::RadioButton("Decimal##prbD",settings.patRowsBase==0)) { + settings.patRowsBase=0; + } + if (ImGui::RadioButton("Hexadecimal##prbH",settings.patRowsBase==1)) { + settings.patRowsBase=1; + } + + ImGui::Text("Pattern view labels:"); + ImGui::InputTextWithHint("Note off (3-char)","OFF",&settings.noteOffLabel); + ImGui::InputTextWithHint("Note release (3-char)","===",&settings.noteRelLabel); + ImGui::InputTextWithHint("Macro release (3-char)","REL",&settings.macroRelLabel); + ImGui::InputTextWithHint("Empty field (3-char)","...",&settings.emptyLabel); + ImGui::InputTextWithHint("Empty field (2-char)","..",&settings.emptyLabel2); + + ImGui::Text("Pattern view spacing after:"); + + if (CWSliderInt("Note",&settings.noteCellSpacing,0,32)) { + if (settings.noteCellSpacing<0) settings.noteCellSpacing=0; + if (settings.noteCellSpacing>32) settings.noteCellSpacing=32; + } + + if (CWSliderInt("Instrument",&settings.insCellSpacing,0,32)) { + if (settings.insCellSpacing<0) settings.insCellSpacing=0; + if (settings.insCellSpacing>32) settings.insCellSpacing=32; + } + + if (CWSliderInt("Volume",&settings.volCellSpacing,0,32)) { + if (settings.volCellSpacing<0) settings.volCellSpacing=0; + if (settings.volCellSpacing>32) settings.volCellSpacing=32; + } + + if (CWSliderInt("Effect",&settings.effectCellSpacing,0,32)) { + if (settings.effectCellSpacing<0) settings.effectCellSpacing=0; + if (settings.effectCellSpacing>32) settings.effectCellSpacing=32; + } + + if (CWSliderInt("Effect value",&settings.effectValCellSpacing,0,32)) { + if (settings.effectValCellSpacing<0) settings.effectValCellSpacing=0; + if (settings.effectValCellSpacing>32) settings.effectValCellSpacing=32; + } + + bool oneDigitEffectsB=settings.oneDigitEffects; + if (ImGui::Checkbox("Single-digit effects for 00-0F",&oneDigitEffectsB)) { + settings.oneDigitEffects=oneDigitEffectsB; + } + + bool flatNotesB=settings.flatNotes; + if (ImGui::Checkbox("Use flats instead of sharps",&flatNotesB)) { + settings.flatNotes=flatNotesB; + } + + bool germanNotationB=settings.germanNotation; + if (ImGui::Checkbox("Use German notation",&germanNotationB)) { + settings.germanNotation=germanNotationB; + } + + // SUBSECTION CHANNEL + CONFIG_SUBSECTION("Channel"); + + ImGui::Text("Channel style:"); + if (ImGui::RadioButton("Classic##CHS0",settings.channelStyle==0)) { + settings.channelStyle=0; + } + if (ImGui::RadioButton("Line##CHS1",settings.channelStyle==1)) { + settings.channelStyle=1; + } + if (ImGui::RadioButton("Round##CHS2",settings.channelStyle==2)) { + settings.channelStyle=2; + } + if (ImGui::RadioButton("Split button##CHS3",settings.channelStyle==3)) { + settings.channelStyle=3; + } + if (ImGui::RadioButton("Square border##CH42",settings.channelStyle==4)) { + settings.channelStyle=4; + } + if (ImGui::RadioButton("Round border##CHS5",settings.channelStyle==5)) { + settings.channelStyle=5; + } + + ImGui::Text("Channel volume bar:"); + if (ImGui::RadioButton("None##CHV0",settings.channelVolStyle==0)) { + settings.channelVolStyle=0; + } + if (ImGui::RadioButton("Simple##CHV1",settings.channelVolStyle==1)) { + settings.channelVolStyle=1; + } + if (ImGui::RadioButton("Stereo##CHV2",settings.channelVolStyle==2)) { + settings.channelVolStyle=2; + } + if (ImGui::RadioButton("Real##CHV3",settings.channelVolStyle==3)) { + settings.channelVolStyle=3; + } + if (ImGui::RadioButton("Real (stereo)##CHV4",settings.channelVolStyle==4)) { + settings.channelVolStyle=4; + } + + ImGui::Text("Channel feedback style:"); + + if (ImGui::RadioButton("Off##CHF0",settings.channelFeedbackStyle==0)) { + settings.channelFeedbackStyle=0; + } + if (ImGui::RadioButton("Note##CHF1",settings.channelFeedbackStyle==1)) { + settings.channelFeedbackStyle=1; + } + if (ImGui::RadioButton("Volume##CHF2",settings.channelFeedbackStyle==2)) { + settings.channelFeedbackStyle=2; + } + if (ImGui::RadioButton("Active##CHF3",settings.channelFeedbackStyle==3)) { + settings.channelFeedbackStyle=3; + } + + ImGui::Text("Channel font:"); + + if (ImGui::RadioButton("Regular##CHFont0",settings.channelFont==0)) { + settings.channelFont=0; + } + if (ImGui::RadioButton("Monospace##CHFont1",settings.channelFont==1)) { + settings.channelFont=1; + } + + bool channelTextCenterB=settings.channelTextCenter; + if (ImGui::Checkbox("Center channel name",&channelTextCenterB)) { + settings.channelTextCenter=channelTextCenterB; + } + + ImGui::Text("Channel colors:"); + if (ImGui::RadioButton("Single##CHC0",settings.channelColors==0)) { + settings.channelColors=0; + } + if (ImGui::RadioButton("Channel type##CHC1",settings.channelColors==1)) { + settings.channelColors=1; + } + if (ImGui::RadioButton("Instrument type##CHC2",settings.channelColors==2)) { + settings.channelColors=2; + } + + ImGui::Text("Channel name colors:"); + if (ImGui::RadioButton("Single##CTC0",settings.channelTextColors==0)) { + settings.channelTextColors=0; + } + if (ImGui::RadioButton("Channel type##CTC1",settings.channelTextColors==1)) { + settings.channelTextColors=1; + } + if (ImGui::RadioButton("Instrument type##CTC2",settings.channelTextColors==2)) { + settings.channelTextColors=2; + } + + // SUBSECTION ASSETS + CONFIG_SUBSECTION("Assets"); + bool unifiedDataViewB=settings.unifiedDataView; + if (ImGui::Checkbox("Unified instrument/wavetable/sample list",&unifiedDataViewB)) { + settings.unifiedDataView=unifiedDataViewB; + } + if (settings.unifiedDataView) { + settings.horizontalDataView=0; + } + + ImGui::BeginDisabled(settings.unifiedDataView); + bool horizontalDataViewB=settings.horizontalDataView; + if (ImGui::Checkbox("Horizontal instrument list",&horizontalDataViewB)) { + settings.horizontalDataView=horizontalDataViewB; + } + ImGui::EndDisabled(); + + bool insEditColorizeB=settings.insEditColorize; + if (ImGui::Checkbox("Colorize instrument editor using instrument type",&insEditColorizeB)) { + settings.insEditColorize=insEditColorizeB; + } + + // SUBSECTION MACRO EDITOR + CONFIG_SUBSECTION("Macro Editor"); + ImGui::Text("Macro editor layout:"); + if (ImGui::RadioButton("Unified##mel0",settings.macroLayout==0)) { + settings.macroLayout=0; + } + if (ImGui::RadioButton("Mobile##mel1",settings.macroLayout==1)) { + settings.macroLayout=1; + } + if (ImGui::RadioButton("Grid##mel2",settings.macroLayout==2)) { + settings.macroLayout=2; + } + if (ImGui::RadioButton("Single (with list)##mel3",settings.macroLayout==3)) { + settings.macroLayout=3; + } + if (ImGui::RadioButton("Single (combo box)##mel4",settings.macroLayout==4)) { + settings.macroLayout=4; + } + + bool oldMacroVSliderB=settings.oldMacroVSlider; + if (ImGui::Checkbox("Use classic macro editor vertical slider",&oldMacroVSliderB)) { + settings.oldMacroVSlider=oldMacroVSliderB; + } + + // SUBSECTION WAVE EDITOR + CONFIG_SUBSECTION("Wave Editor"); + bool waveLayoutB=settings.waveLayout; + if (ImGui::Checkbox("Use compact wave editor",&waveLayoutB)) { + settings.waveLayout=waveLayoutB; + } + + // SUBSECTION FM EDITOR + CONFIG_SUBSECTION("FM Editor"); + ImGui::Text("FM parameter names:"); + if (ImGui::RadioButton("Friendly##fmn0",settings.fmNames==0)) { + settings.fmNames=0; + } + if (ImGui::RadioButton("Technical##fmn1",settings.fmNames==1)) { + settings.fmNames=1; + } + if (ImGui::RadioButton("Technical (alternate)##fmn2",settings.fmNames==2)) { + settings.fmNames=2; + } + + bool oplStandardWaveNamesB=settings.oplStandardWaveNames; + if (ImGui::Checkbox("Use standard OPL waveform names",&oplStandardWaveNamesB)) { + settings.oplStandardWaveNames=oplStandardWaveNamesB; + } + + ImGui::Text("FM parameter editor layout:"); + if (ImGui::RadioButton("Modern##fml0",settings.fmLayout==0)) { + settings.fmLayout=0; + } + if (ImGui::RadioButton("Compact (2x2, classic)##fml1",settings.fmLayout==1)) { + settings.fmLayout=1; + } + if (ImGui::RadioButton("Compact (1x4)##fml2",settings.fmLayout==2)) { + settings.fmLayout=2; + } + if (ImGui::RadioButton("Compact (4x1)##fml3",settings.fmLayout==3)) { + settings.fmLayout=3; + } + if (ImGui::RadioButton("Alternate (2x2)##fml4",settings.fmLayout==4)) { + settings.fmLayout=4; + } + if (ImGui::RadioButton("Alternate (1x4)##fml5",settings.fmLayout==5)) { + settings.fmLayout=5; + } + if (ImGui::RadioButton("Alternate (4x1)##fml5",settings.fmLayout==6)) { + settings.fmLayout=6; + } + + ImGui::Text("Position of Sustain in FM editor:"); + if (ImGui::RadioButton("Between Decay and Sustain Rate##susp0",settings.susPosition==0)) { + settings.susPosition=0; + } + if (ImGui::RadioButton("After Release Rate##susp1",settings.susPosition==1)) { + settings.susPosition=1; + } + + bool separateFMColorsB=settings.separateFMColors; + if (ImGui::Checkbox("Use separate colors for carriers/modulators in FM editor",&separateFMColorsB)) { + settings.separateFMColors=separateFMColorsB; + } + + bool unsignedDetuneB=settings.unsignedDetune; + if (ImGui::Checkbox("Unsigned FM detune values",&unsignedDetuneB)) { + settings.unsignedDetune=unsignedDetuneB; + } + + // SUBSECTION STATISTICS + CONFIG_SUBSECTION("Statistics"); + ImGui::Text("Chip memory usage unit:"); + if (ImGui::RadioButton("Bytes##MUU0",settings.memUsageUnit==0)) { + settings.memUsageUnit=0; + } + if (ImGui::RadioButton("Kilobytes##MUU1",settings.memUsageUnit==1)) { + settings.memUsageUnit=1; + } + + // SUBSECTION OSCILLOSCOPE + CONFIG_SUBSECTION("Oscilloscope"); + bool oscRoundedCornersB=settings.oscRoundedCorners; + if (ImGui::Checkbox("Rounded corners",&oscRoundedCornersB)) { + settings.oscRoundedCorners=oscRoundedCornersB; + } + + bool oscBorderB=settings.oscBorder; + if (ImGui::Checkbox("Border",&oscBorderB)) { + settings.oscBorder=oscBorderB; + } + + bool oscTakesEntireWindowB=settings.oscTakesEntireWindow; + if (ImGui::Checkbox("Fill entire window",&oscTakesEntireWindowB)) { + settings.oscTakesEntireWindow=oscTakesEntireWindowB; + } + + bool oscEscapesBoundaryB=settings.oscEscapesBoundary; + if (ImGui::Checkbox("Waveform goes out of bounds",&oscEscapesBoundaryB)) { + settings.oscEscapesBoundary=oscEscapesBoundaryB; + } + + // SUBSECTION WINDOWS + CONFIG_SUBSECTION("Windows"); + bool roundedWindowsB=settings.roundedWindows; + if (ImGui::Checkbox("Rounded window corners",&roundedWindowsB)) { + settings.roundedWindows=roundedWindowsB; + } + + bool roundedButtonsB=settings.roundedButtons; + if (ImGui::Checkbox("Rounded buttons",&roundedButtonsB)) { + settings.roundedButtons=roundedButtonsB; + } + + bool roundedMenusB=settings.roundedMenus; + if (ImGui::Checkbox("Rounded menu corners",&roundedMenusB)) { + settings.roundedMenus=roundedMenusB; + } + + bool frameBordersB=settings.frameBorders; + if (ImGui::Checkbox("Borders around widgets",&frameBordersB)) { + settings.frameBorders=frameBordersB; + } + + END_SECTION; } - if (ImGui::BeginTabItem("Emulation (OLD)")) { - ImVec2 settingsViewSize=ImGui::GetContentRegionAvail(); - settingsViewSize.y-=ImGui::GetFrameHeight()+ImGui::GetStyle().WindowPadding.y; - if (ImGui::BeginChild("SettingsView",settingsViewSize)) { - ImGui::Text("Arcade/YM2151 core"); - ImGui::SameLine(); - ImGui::Combo("##ArcadeCore",&settings.arcadeCore,arcadeCores,2); - - ImGui::Text("Genesis/YM2612 core"); - ImGui::SameLine(); - ImGui::Combo("##YM2612Core",&settings.ym2612Core,ym2612Cores,2); - - ImGui::Text("SN76489 core"); - ImGui::SameLine(); - ImGui::Combo("##SNCore",&settings.snCore,snCores,2); - - ImGui::Text("NES core"); - ImGui::SameLine(); - ImGui::Combo("##NESCore",&settings.nesCore,nesCores,2); - - ImGui::Text("FDS core"); - ImGui::SameLine(); - ImGui::Combo("##FDSCore",&settings.fdsCore,nesCores,2); - - ImGui::Text("SID core"); - ImGui::SameLine(); - ImGui::Combo("##C64Core",&settings.c64Core,c64Cores,3); - - ImGui::Text("POKEY core"); - ImGui::SameLine(); - ImGui::Combo("##POKEYCore",&settings.pokeyCore,pokeyCores,2); - - ImGui::Text("OPN/OPNA/OPNB cores"); - ImGui::SameLine(); - ImGui::Combo("##OPNCore",&settings.opnCore,opnCores,2); - - ImGui::Separator(); - - ImGui::Text("PC Speaker strategy"); - ImGui::SameLine(); - ImGui::Combo("##PCSOutMethod",&settings.pcSpeakerOutMethod,pcspkrOutMethods,5); - - ImGui::Separator(); - ImGui::Text("Sample ROMs:"); - - ImGui::Text("OPL4 YRW801 path"); - ImGui::SameLine(); - ImGui::InputText("##YRW801Path",&settings.yrw801Path); - ImGui::SameLine(); - if (ImGui::Button(ICON_FA_FOLDER "##YRW801Load")) { - openFileDialog(GUI_FILE_YRW801_ROM_OPEN); - } - - ImGui::Text("MultiPCM TG100 path"); - ImGui::SameLine(); - ImGui::InputText("##TG100Path",&settings.tg100Path); - ImGui::SameLine(); - if (ImGui::Button(ICON_FA_FOLDER "##TG100Load")) { - openFileDialog(GUI_FILE_TG100_ROM_OPEN); - } - - ImGui::Text("MultiPCM MU5 path"); - ImGui::SameLine(); - ImGui::InputText("##MU5Path",&settings.mu5Path); - ImGui::SameLine(); - if (ImGui::Button(ICON_FA_FOLDER "##MU5Load")) { - openFileDialog(GUI_FILE_MU5_ROM_OPEN); - } + CONFIG_SECTION("Color") { + // SUBSECTION COLOR SCHEME + CONFIG_SUBSECTION("Color scheme"); + if (ImGui::Button("Import")) { + openFileDialog(GUI_FILE_IMPORT_COLORS); } - ImGui::EndChild(); - ImGui::EndTabItem(); - } - if (ImGui::BeginTabItem("Appearance (OLD)")) { - ImVec2 settingsViewSize=ImGui::GetContentRegionAvail(); - settingsViewSize.y-=ImGui::GetFrameHeight()+ImGui::GetStyle().WindowPadding.y; - if (ImGui::BeginChild("SettingsView",settingsViewSize)) { - bool dpiScaleAuto=(settings.dpiScale<0.5f); - if (ImGui::Checkbox("Automatic UI scaling factor",&dpiScaleAuto)) { - if (dpiScaleAuto) { - settings.dpiScale=0.0f; - } else { - settings.dpiScale=1.0f; - } - } - if (!dpiScaleAuto) { - if (ImGui::SliderFloat("UI scaling factor",&settings.dpiScale,1.0f,3.0f,"%.2fx")) { - if (settings.dpiScale<0.5f) settings.dpiScale=0.5f; - if (settings.dpiScale>3.0f) settings.dpiScale=3.0f; - } rightClickable - } - ImGui::Text("Main font"); - ImGui::SameLine(); - ImGui::Combo("##MainFont",&settings.mainFont,mainFonts,7); - if (settings.mainFont==6) { - ImGui::InputText("##MainFontPath",&settings.mainFontPath); - ImGui::SameLine(); - if (ImGui::Button(ICON_FA_FOLDER "##MainFontLoad")) { - openFileDialog(GUI_FILE_LOAD_MAIN_FONT); - } - } - if (ImGui::InputInt("Size##MainFontSize",&settings.mainFontSize)) { - if (settings.mainFontSize<3) settings.mainFontSize=3; - if (settings.mainFontSize>96) settings.mainFontSize=96; - } - ImGui::Text("Pattern font"); - ImGui::SameLine(); - ImGui::Combo("##PatFont",&settings.patFont,patFonts,7); - if (settings.patFont==6) { - ImGui::InputText("##PatFontPath",&settings.patFontPath); - ImGui::SameLine(); - if (ImGui::Button(ICON_FA_FOLDER "##PatFontLoad")) { - openFileDialog(GUI_FILE_LOAD_PAT_FONT); - } - } - if (ImGui::InputInt("Size##PatFontSize",&settings.patFontSize)) { - if (settings.patFontSize<3) settings.patFontSize=3; - if (settings.patFontSize>96) settings.patFontSize=96; - } - if (ImGui::InputInt("Icon size",&settings.iconSize)) { - if (settings.iconSize<3) settings.iconSize=3; - if (settings.iconSize>48) settings.iconSize=48; - } - - bool loadJapaneseB=settings.loadJapanese; - if (ImGui::Checkbox("Display Japanese characters",&loadJapaneseB)) { - settings.loadJapanese=loadJapaneseB; - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip( - "Only toggle this option if you have enough graphics memory.\n" - "This is a temporary solution until dynamic font atlas is implemented in Dear ImGui.\n\n" - "このオプションは、十分なグラフィックメモリがある場合にのみ切り替えてください。\n" - "これは、Dear ImGuiにダイナミックフォントアトラスが実装されるまでの一時的な解決策です。" - ); - } - - bool loadChineseB=settings.loadChinese; - if (ImGui::Checkbox("Display Chinese (Simplified) characters",&loadChineseB)) { - settings.loadChinese=loadChineseB; - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip( - "Only toggle this option if you have enough graphics memory.\n" - "This is a temporary solution until dynamic font atlas is implemented in Dear ImGui.\n\n" - "请在确保你有足够的显存后再启动此设定\n" - "这是一个在ImGui实现动态字体加载之前的临时解决方案" - ); - } - - bool loadChineseTraditionalB=settings.loadChineseTraditional; - if (ImGui::Checkbox("Display Chinese (Traditional) characters",&loadChineseTraditionalB)) { - settings.loadChineseTraditional=loadChineseTraditionalB; - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip( - "Only toggle this option if you have enough graphics memory.\n" - "This is a temporary solution until dynamic font atlas is implemented in Dear ImGui.\n\n" - "請在確保你有足夠的顯存后再啟動此設定\n" - "這是一個在ImGui實現動態字體加載之前的臨時解決方案" - ); - } - - bool loadKoreanB=settings.loadKorean; - if (ImGui::Checkbox("Display Korean characters",&loadKoreanB)) { - settings.loadKorean=loadKoreanB; - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip( - "Only toggle this option if you have enough graphics memory.\n" - "This is a temporary solution until dynamic font atlas is implemented in Dear ImGui.\n\n" - "그래픽 메모리가 충분한 경우에만 이 옵션을 선택하십시오.\n" - "이 옵션은 Dear ImGui에 동적 글꼴 아틀라스가 구현될 때까지 임시 솔루션입니다." - ); - } - - ImGui::Separator(); - - - - ImGui::Separator(); - - ImGui::Text("Pattern view labels:"); - ImGui::InputTextWithHint("Note off (3-char)","OFF",&settings.noteOffLabel); - ImGui::InputTextWithHint("Note release (3-char)","===",&settings.noteRelLabel); - ImGui::InputTextWithHint("Macro release (3-char)","REL",&settings.macroRelLabel); - ImGui::InputTextWithHint("Empty field (3-char)","...",&settings.emptyLabel); - ImGui::InputTextWithHint("Empty field (2-char)","..",&settings.emptyLabel2); - - ImGui::Separator(); - - ImGui::Text("Orders row number format:"); - if (ImGui::RadioButton("Decimal##orbD",settings.orderRowsBase==0)) { - settings.orderRowsBase=0; - } - if (ImGui::RadioButton("Hexadecimal##orbH",settings.orderRowsBase==1)) { - settings.orderRowsBase=1; - } - - ImGui::Text("Pattern row number format:"); - if (ImGui::RadioButton("Decimal##prbD",settings.patRowsBase==0)) { - settings.patRowsBase=0; - } - if (ImGui::RadioButton("Hexadecimal##prbH",settings.patRowsBase==1)) { - settings.patRowsBase=1; - } - - ImGui::Text("FM parameter names:"); - if (ImGui::RadioButton("Friendly##fmn0",settings.fmNames==0)) { - settings.fmNames=0; - } - if (ImGui::RadioButton("Technical##fmn1",settings.fmNames==1)) { - settings.fmNames=1; - } - if (ImGui::RadioButton("Technical (alternate)##fmn2",settings.fmNames==2)) { - settings.fmNames=2; - } - - ImGui::Separator(); - - ImGui::Text("Title bar:"); - if (ImGui::RadioButton("Furnace##tbar0",settings.titleBarInfo==0)) { - settings.titleBarInfo=0; - updateWindowTitle(); - } - if (ImGui::RadioButton("Song Name - Furnace##tbar1",settings.titleBarInfo==1)) { - settings.titleBarInfo=1; - updateWindowTitle(); - } - if (ImGui::RadioButton("file_name.fur - Furnace##tbar2",settings.titleBarInfo==2)) { - settings.titleBarInfo=2; - updateWindowTitle(); - } - if (ImGui::RadioButton("/path/to/file.fur - Furnace##tbar3",settings.titleBarInfo==3)) { - settings.titleBarInfo=3; - updateWindowTitle(); - } - - bool titleBarSysB=settings.titleBarSys; - if (ImGui::Checkbox("Display system name on title bar",&titleBarSysB)) { - settings.titleBarSys=titleBarSysB; - updateWindowTitle(); - } - - bool noMultiSystemB=settings.noMultiSystem; - if (ImGui::Checkbox("Display chip names instead of \"multi-system\" in title bar",&noMultiSystemB)) { - settings.noMultiSystem=noMultiSystemB; - updateWindowTitle(); - } - - ImGui::Text("Status bar:"); - if (ImGui::RadioButton("Cursor details##sbar0",settings.statusDisplay==0)) { - settings.statusDisplay=0; - } - if (ImGui::RadioButton("File path##sbar1",settings.statusDisplay==1)) { - settings.statusDisplay=1; - } - if (ImGui::RadioButton("Cursor details or file path##sbar2",settings.statusDisplay==2)) { - settings.statusDisplay=2; - } - if (ImGui::RadioButton("Nothing##sbar3",settings.statusDisplay==3)) { - settings.statusDisplay=3; - } - - ImGui::Text("Play/edit controls layout:"); - if (ImGui::RadioButton("Classic##ecl0",settings.controlLayout==0)) { - settings.controlLayout=0; - } - if (ImGui::RadioButton("Compact##ecl1",settings.controlLayout==1)) { - settings.controlLayout=1; - } - if (ImGui::RadioButton("Compact (vertical)##ecl2",settings.controlLayout==2)) { - settings.controlLayout=2; - } - if (ImGui::RadioButton("Split##ecl3",settings.controlLayout==3)) { - settings.controlLayout=3; - } - - ImGui::Text("Position of buttons in Orders:"); - if (ImGui::RadioButton("Top##obp0",settings.orderButtonPos==0)) { - settings.orderButtonPos=0; - } - if (ImGui::RadioButton("Left##obp1",settings.orderButtonPos==1)) { - settings.orderButtonPos=1; - } - if (ImGui::RadioButton("Right##obp2",settings.orderButtonPos==2)) { - settings.orderButtonPos=2; - } - - ImGui::Text("FM parameter editor layout:"); - if (ImGui::RadioButton("Modern##fml0",settings.fmLayout==0)) { - settings.fmLayout=0; - } - if (ImGui::RadioButton("Compact (2x2, classic)##fml1",settings.fmLayout==1)) { - settings.fmLayout=1; - } - if (ImGui::RadioButton("Compact (1x4)##fml2",settings.fmLayout==2)) { - settings.fmLayout=2; - } - if (ImGui::RadioButton("Compact (4x1)##fml3",settings.fmLayout==3)) { - settings.fmLayout=3; - } - if (ImGui::RadioButton("Alternate (2x2)##fml4",settings.fmLayout==4)) { - settings.fmLayout=4; - } - if (ImGui::RadioButton("Alternate (1x4)##fml5",settings.fmLayout==5)) { - settings.fmLayout=5; - } - if (ImGui::RadioButton("Alternate (4x1)##fml5",settings.fmLayout==6)) { - settings.fmLayout=6; - } - - ImGui::Text("Position of Sustain in FM editor:"); - if (ImGui::RadioButton("Between Decay and Sustain Rate##susp0",settings.susPosition==0)) { - settings.susPosition=0; - } - if (ImGui::RadioButton("After Release Rate##susp1",settings.susPosition==1)) { - settings.susPosition=1; - } - - ImGui::Text("Macro editor layout:"); - if (ImGui::RadioButton("Unified##mel0",settings.macroLayout==0)) { - settings.macroLayout=0; - } - if (ImGui::RadioButton("Mobile##mel1",settings.macroLayout==1)) { - settings.macroLayout=1; - } - if (ImGui::RadioButton("Grid##mel2",settings.macroLayout==2)) { - settings.macroLayout=2; - } - if (ImGui::RadioButton("Single (with list)##mel3",settings.macroLayout==3)) { - settings.macroLayout=3; - } - if (ImGui::RadioButton("Single (combo box)##mel4",settings.macroLayout==4)) { - settings.macroLayout=4; - } - - ImGui::Separator(); - - ImGui::Text("Chip memory usage unit:"); - if (ImGui::RadioButton("Bytes##MUU0",settings.memUsageUnit==0)) { - settings.memUsageUnit=0; - } - if (ImGui::RadioButton("Kilobytes##MUU1",settings.memUsageUnit==1)) { - settings.memUsageUnit=1; - } - - ImGui::Separator(); - - ImGui::Text("Channel colors:"); - if (ImGui::RadioButton("Single##CHC0",settings.channelColors==0)) { - settings.channelColors=0; - } - if (ImGui::RadioButton("Channel type##CHC1",settings.channelColors==1)) { - settings.channelColors=1; - } - if (ImGui::RadioButton("Instrument type##CHC2",settings.channelColors==2)) { - settings.channelColors=2; - } - - ImGui::Text("Channel name colors:"); - if (ImGui::RadioButton("Single##CTC0",settings.channelTextColors==0)) { - settings.channelTextColors=0; - } - if (ImGui::RadioButton("Channel type##CTC1",settings.channelTextColors==1)) { - settings.channelTextColors=1; - } - if (ImGui::RadioButton("Instrument type##CTC2",settings.channelTextColors==2)) { - settings.channelTextColors=2; - } - - ImGui::Text("Channel style:"); - if (ImGui::RadioButton("Classic##CHS0",settings.channelStyle==0)) { - settings.channelStyle=0; - } - if (ImGui::RadioButton("Line##CHS1",settings.channelStyle==1)) { - settings.channelStyle=1; - } - if (ImGui::RadioButton("Round##CHS2",settings.channelStyle==2)) { - settings.channelStyle=2; - } - if (ImGui::RadioButton("Split button##CHS3",settings.channelStyle==3)) { - settings.channelStyle=3; - } - if (ImGui::RadioButton("Square border##CH42",settings.channelStyle==4)) { - settings.channelStyle=4; - } - if (ImGui::RadioButton("Round border##CHS5",settings.channelStyle==5)) { - settings.channelStyle=5; - } - - ImGui::Text("Channel volume bar:"); - if (ImGui::RadioButton("None##CHV0",settings.channelVolStyle==0)) { - settings.channelVolStyle=0; - } - if (ImGui::RadioButton("Simple##CHV1",settings.channelVolStyle==1)) { - settings.channelVolStyle=1; - } - if (ImGui::RadioButton("Stereo##CHV2",settings.channelVolStyle==2)) { - settings.channelVolStyle=2; - } - if (ImGui::RadioButton("Real##CHV3",settings.channelVolStyle==3)) { - settings.channelVolStyle=3; - } - if (ImGui::RadioButton("Real (stereo)##CHV4",settings.channelVolStyle==4)) { - settings.channelVolStyle=4; - } - - ImGui::Text("Channel feedback style:"); - - if (ImGui::RadioButton("Off##CHF0",settings.channelFeedbackStyle==0)) { - settings.channelFeedbackStyle=0; - } - if (ImGui::RadioButton("Note##CHF1",settings.channelFeedbackStyle==1)) { - settings.channelFeedbackStyle=1; - } - if (ImGui::RadioButton("Volume##CHF2",settings.channelFeedbackStyle==2)) { - settings.channelFeedbackStyle=2; - } - if (ImGui::RadioButton("Active##CHF3",settings.channelFeedbackStyle==3)) { - settings.channelFeedbackStyle=3; - } - - ImGui::Text("Channel font:"); - - if (ImGui::RadioButton("Regular##CHFont0",settings.channelFont==0)) { - settings.channelFont=0; - } - if (ImGui::RadioButton("Monospace##CHFont1",settings.channelFont==1)) { - settings.channelFont=1; - } - - bool channelTextCenterB=settings.channelTextCenter; - if (ImGui::Checkbox("Center channel name",&channelTextCenterB)) { - settings.channelTextCenter=channelTextCenterB; - } - - ImGui::Separator(); - - bool insEditColorizeB=settings.insEditColorize; - if (ImGui::Checkbox("Colorize instrument editor using instrument type",&insEditColorizeB)) { - settings.insEditColorize=insEditColorizeB; - } - - bool separateFMColorsB=settings.separateFMColors; - if (ImGui::Checkbox("Use separate colors for carriers/modulators in FM editor",&separateFMColorsB)) { - settings.separateFMColors=separateFMColorsB; - } - - bool unifiedDataViewB=settings.unifiedDataView; - if (ImGui::Checkbox("Unified instrument/wavetable/sample list",&unifiedDataViewB)) { - settings.unifiedDataView=unifiedDataViewB; - } - if (settings.unifiedDataView) { - settings.horizontalDataView=0; - } - - ImGui::BeginDisabled(settings.unifiedDataView); - bool horizontalDataViewB=settings.horizontalDataView; - if (ImGui::Checkbox("Horizontal instrument list",&horizontalDataViewB)) { - settings.horizontalDataView=horizontalDataViewB; - } - ImGui::EndDisabled(); - - bool oplStandardWaveNamesB=settings.oplStandardWaveNames; - if (ImGui::Checkbox("Use standard OPL waveform names",&oplStandardWaveNamesB)) { - settings.oplStandardWaveNames=oplStandardWaveNamesB; - } - - bool overflowHighlightB=settings.overflowHighlight; - if (ImGui::Checkbox("Overflow pattern highlights",&overflowHighlightB)) { - settings.overflowHighlight=overflowHighlightB; - } - - bool viewPrevPatternB=settings.viewPrevPattern; - if (ImGui::Checkbox("Display previous/next pattern",&viewPrevPatternB)) { - settings.viewPrevPattern=viewPrevPatternB; - } - - bool flatNotesB=settings.flatNotes; - if (ImGui::Checkbox("Use flats instead of sharps",&flatNotesB)) { - settings.flatNotes=flatNotesB; - } - - bool germanNotationB=settings.germanNotation; - if (ImGui::Checkbox("Use German notation",&germanNotationB)) { - settings.germanNotation=germanNotationB; - } - - bool oneDigitEffectsB=settings.oneDigitEffects; - if (ImGui::Checkbox("Single-digit effects for 00-0F",&oneDigitEffectsB)) { - settings.oneDigitEffects=oneDigitEffectsB; - } - - bool centerPatternB=settings.centerPattern; - if (ImGui::Checkbox("Center pattern view",¢erPatternB)) { - settings.centerPattern=centerPatternB; - } - - bool unsignedDetuneB=settings.unsignedDetune; - if (ImGui::Checkbox("Unsigned FM detune values",&unsignedDetuneB)) { - settings.unsignedDetune=unsignedDetuneB; - } - - // sorry. temporarily disabled until ImGui has a way to add separators in tables arbitrarily. - /*bool sysSeparatorsB=settings.sysSeparators; - if (ImGui::Checkbox("Add separators between systems in Orders",&sysSeparatorsB)) { - settings.sysSeparators=sysSeparatorsB; - }*/ - - bool ordersCursorB=settings.ordersCursor; - if (ImGui::Checkbox("Highlight channel at cursor in Orders",&ordersCursorB)) { - settings.ordersCursor=ordersCursorB; - } - - ImGui::Separator(); - - bool waveLayoutB=settings.waveLayout; - if (ImGui::Checkbox("Use compact wave editor",&waveLayoutB)) { - settings.waveLayout=waveLayoutB; - } - - bool oldMacroVSliderB=settings.oldMacroVSlider; - if (ImGui::Checkbox("Use classic macro editor vertical slider",&oldMacroVSliderB)) { - settings.oldMacroVSlider=oldMacroVSliderB; - } - - bool roundedWindowsB=settings.roundedWindows; - if (ImGui::Checkbox("Rounded window corners",&roundedWindowsB)) { - settings.roundedWindows=roundedWindowsB; - } - - bool roundedButtonsB=settings.roundedButtons; - if (ImGui::Checkbox("Rounded buttons",&roundedButtonsB)) { - settings.roundedButtons=roundedButtonsB; - } - - bool roundedMenusB=settings.roundedMenus; - if (ImGui::Checkbox("Rounded menu corners",&roundedMenusB)) { - settings.roundedMenus=roundedMenusB; - } - - bool frameBordersB=settings.frameBorders; - if (ImGui::Checkbox("Borders around widgets",&frameBordersB)) { - settings.frameBorders=frameBordersB; - } - - ImGui::Separator(); - - ImGui::Text("Oscilloscope settings:"); - - bool oscRoundedCornersB=settings.oscRoundedCorners; - if (ImGui::Checkbox("Rounded corners",&oscRoundedCornersB)) { - settings.oscRoundedCorners=oscRoundedCornersB; - } - - bool oscTakesEntireWindowB=settings.oscTakesEntireWindow; - if (ImGui::Checkbox("Fill entire window",&oscTakesEntireWindowB)) { - settings.oscTakesEntireWindow=oscTakesEntireWindowB; - } - - bool oscEscapesBoundaryB=settings.oscEscapesBoundary; - if (ImGui::Checkbox("Waveform goes out of bounds",&oscEscapesBoundaryB)) { - settings.oscEscapesBoundary=oscEscapesBoundaryB; - } - - bool oscBorderB=settings.oscBorder; - if (ImGui::Checkbox("Border",&oscBorderB)) { - settings.oscBorder=oscBorderB; - } - - ImGui::Separator(); - - ImGui::Text("Pattern view spacing after:"); - - if (CWSliderInt("Note",&settings.noteCellSpacing,0,32)) { - if (settings.noteCellSpacing<0) settings.noteCellSpacing=0; - if (settings.noteCellSpacing>32) settings.noteCellSpacing=32; - } - - if (CWSliderInt("Instrument",&settings.insCellSpacing,0,32)) { - if (settings.insCellSpacing<0) settings.insCellSpacing=0; - if (settings.insCellSpacing>32) settings.insCellSpacing=32; - } - - if (CWSliderInt("Volume",&settings.volCellSpacing,0,32)) { - if (settings.volCellSpacing<0) settings.volCellSpacing=0; - if (settings.volCellSpacing>32) settings.volCellSpacing=32; - } - - if (CWSliderInt("Effect",&settings.effectCellSpacing,0,32)) { - if (settings.effectCellSpacing<0) settings.effectCellSpacing=0; - if (settings.effectCellSpacing>32) settings.effectCellSpacing=32; - } - - if (CWSliderInt("Effect value",&settings.effectValCellSpacing,0,32)) { - if (settings.effectValCellSpacing<0) settings.effectValCellSpacing=0; - if (settings.effectValCellSpacing>32) settings.effectValCellSpacing=32; - } - - ImGui::Separator(); - - if (ImGui::TreeNode("Color scheme")) { - if (ImGui::Button("Import")) { - openFileDialog(GUI_FILE_IMPORT_COLORS); - } - ImGui::SameLine(); - if (ImGui::Button("Export")) { - openFileDialog(GUI_FILE_EXPORT_COLORS); - } - ImGui::SameLine(); - if (ImGui::Button("Reset defaults")) { - showWarning("Are you sure you want to reset the color scheme?",GUI_WARN_RESET_COLORS); - } - if (ImGui::TreeNode("General")) { - ImGui::Text("Color scheme type:"); - if (ImGui::RadioButton("Dark##gcb0",settings.guiColorsBase==0)) { - settings.guiColorsBase=0; - applyUISettings(false); - } - if (ImGui::RadioButton("Light##gcb1",settings.guiColorsBase==1)) { - settings.guiColorsBase=1; - applyUISettings(false); - } - if (ImGui::SliderInt("Frame shading",&settings.guiColorsShading,0,100,"%d%%")) { - if (settings.guiColorsShading<0) settings.guiColorsShading=0; - if (settings.guiColorsShading>100) settings.guiColorsShading=100; - applyUISettings(false); - } - UI_COLOR_CONFIG(GUI_COLOR_BACKGROUND,"Background"); - UI_COLOR_CONFIG(GUI_COLOR_FRAME_BACKGROUND,"Window background"); - UI_COLOR_CONFIG(GUI_COLOR_FRAME_BACKGROUND_CHILD,"Sub-window background"); - UI_COLOR_CONFIG(GUI_COLOR_FRAME_BACKGROUND_POPUP,"Pop-up background"); - UI_COLOR_CONFIG(GUI_COLOR_MODAL_BACKDROP,"Modal backdrop"); - UI_COLOR_CONFIG(GUI_COLOR_HEADER,"Header"); - UI_COLOR_CONFIG(GUI_COLOR_TEXT,"Text"); - UI_COLOR_CONFIG(GUI_COLOR_ACCENT_PRIMARY,"Primary"); - UI_COLOR_CONFIG(GUI_COLOR_ACCENT_SECONDARY,"Secondary"); - UI_COLOR_CONFIG(GUI_COLOR_TITLE_INACTIVE,"Title bar (inactive)"); - UI_COLOR_CONFIG(GUI_COLOR_TITLE_COLLAPSED,"Title bar (collapsed)"); - UI_COLOR_CONFIG(GUI_COLOR_MENU_BAR,"Menu bar"); - UI_COLOR_CONFIG(GUI_COLOR_BORDER,"Border"); - UI_COLOR_CONFIG(GUI_COLOR_BORDER_SHADOW,"Border shadow"); - UI_COLOR_CONFIG(GUI_COLOR_SCROLL,"Scroll bar"); - UI_COLOR_CONFIG(GUI_COLOR_SCROLL_HOVER,"Scroll bar (hovered)"); - UI_COLOR_CONFIG(GUI_COLOR_SCROLL_ACTIVE,"Scroll bar (clicked)"); - UI_COLOR_CONFIG(GUI_COLOR_SCROLL_BACKGROUND,"Scroll bar background"); - UI_COLOR_CONFIG(GUI_COLOR_SEPARATOR,"Separator"); - UI_COLOR_CONFIG(GUI_COLOR_SEPARATOR_HOVER,"Separator (hover)"); - UI_COLOR_CONFIG(GUI_COLOR_SEPARATOR_ACTIVE,"Separator (active)"); - UI_COLOR_CONFIG(GUI_COLOR_DOCKING_PREVIEW,"Docking preview"); - UI_COLOR_CONFIG(GUI_COLOR_DOCKING_EMPTY,"Docking empty"); - UI_COLOR_CONFIG(GUI_COLOR_TABLE_HEADER,"Table header"); - UI_COLOR_CONFIG(GUI_COLOR_TABLE_BORDER_HARD,"Table border (hard)"); - UI_COLOR_CONFIG(GUI_COLOR_TABLE_BORDER_SOFT,"Table border (soft)"); - UI_COLOR_CONFIG(GUI_COLOR_DRAG_DROP_TARGET,"Drag and drop target"); - UI_COLOR_CONFIG(GUI_COLOR_NAV_WIN_HIGHLIGHT,"Window switcher (highlight)"); - UI_COLOR_CONFIG(GUI_COLOR_NAV_WIN_BACKDROP,"Window switcher backdrop"); - UI_COLOR_CONFIG(GUI_COLOR_TOGGLE_ON,"Toggle on"); - UI_COLOR_CONFIG(GUI_COLOR_TOGGLE_OFF,"Toggle off"); - UI_COLOR_CONFIG(GUI_COLOR_EDITING,"Editing"); - UI_COLOR_CONFIG(GUI_COLOR_SONG_LOOP,"Song loop"); - UI_COLOR_CONFIG(GUI_COLOR_PLAYBACK_STAT,"Playback status"); - UI_COLOR_CONFIG(GUI_COLOR_DESTRUCTIVE,"Destructive hint"); - UI_COLOR_CONFIG(GUI_COLOR_WARNING,"Warning hint"); - UI_COLOR_CONFIG(GUI_COLOR_ERROR,"Error hint"); - ImGui::TreePop(); - } - if (ImGui::TreeNode("File Picker (built-in)")) { - UI_COLOR_CONFIG(GUI_COLOR_FILE_DIR,"Directory"); - UI_COLOR_CONFIG(GUI_COLOR_FILE_SONG_NATIVE,"Song (native)"); - UI_COLOR_CONFIG(GUI_COLOR_FILE_SONG_IMPORT,"Song (import)"); - UI_COLOR_CONFIG(GUI_COLOR_FILE_INSTR,"Instrument"); - UI_COLOR_CONFIG(GUI_COLOR_FILE_AUDIO,"Audio"); - UI_COLOR_CONFIG(GUI_COLOR_FILE_WAVE,"Wavetable"); - UI_COLOR_CONFIG(GUI_COLOR_FILE_VGM,"VGM"); - UI_COLOR_CONFIG(GUI_COLOR_FILE_ZSM,"ZSM"); - UI_COLOR_CONFIG(GUI_COLOR_FILE_FONT,"Font"); - UI_COLOR_CONFIG(GUI_COLOR_FILE_OTHER,"Other"); - ImGui::TreePop(); - } - if (ImGui::TreeNode("Oscilloscope")) { - UI_COLOR_CONFIG(GUI_COLOR_OSC_BORDER,"Border"); - UI_COLOR_CONFIG(GUI_COLOR_OSC_BG1,"Background (top-left)"); - UI_COLOR_CONFIG(GUI_COLOR_OSC_BG2,"Background (top-right)"); - UI_COLOR_CONFIG(GUI_COLOR_OSC_BG3,"Background (bottom-left)"); - UI_COLOR_CONFIG(GUI_COLOR_OSC_BG4,"Background (bottom-right)"); - UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE,"Waveform"); - UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_PEAK,"Waveform (clip)"); - UI_COLOR_CONFIG(GUI_COLOR_OSC_REF,"Reference"); - UI_COLOR_CONFIG(GUI_COLOR_OSC_GUIDE,"Guide"); - ImGui::TreePop(); - } - if (ImGui::TreeNode("Volume Meter")) { - UI_COLOR_CONFIG(GUI_COLOR_VOLMETER_LOW,"Low"); - UI_COLOR_CONFIG(GUI_COLOR_VOLMETER_HIGH,"High"); - UI_COLOR_CONFIG(GUI_COLOR_VOLMETER_PEAK,"Clip"); - ImGui::TreePop(); - } - if (ImGui::TreeNode("Orders")) { - UI_COLOR_CONFIG(GUI_COLOR_ORDER_ROW_INDEX,"Order number"); - UI_COLOR_CONFIG(GUI_COLOR_ORDER_ACTIVE,"Playing order background"); - UI_COLOR_CONFIG(GUI_COLOR_ORDER_SELECTED,"Selected order"); - UI_COLOR_CONFIG(GUI_COLOR_ORDER_SIMILAR,"Similar patterns"); - UI_COLOR_CONFIG(GUI_COLOR_ORDER_INACTIVE,"Inactive patterns"); - ImGui::TreePop(); - } - if (ImGui::TreeNode("Envelope View")) { - UI_COLOR_CONFIG(GUI_COLOR_FM_ENVELOPE,"Envelope"); - UI_COLOR_CONFIG(GUI_COLOR_FM_ENVELOPE_SUS_GUIDE,"Sustain guide"); - UI_COLOR_CONFIG(GUI_COLOR_FM_ENVELOPE_RELEASE,"Release"); - - ImGui::TreePop(); - } - if (ImGui::TreeNode("FM Editor")) { - UI_COLOR_CONFIG(GUI_COLOR_FM_ALG_BG,"Algorithm background"); - UI_COLOR_CONFIG(GUI_COLOR_FM_ALG_LINE,"Algorithm lines"); - UI_COLOR_CONFIG(GUI_COLOR_FM_MOD,"Modulator"); - UI_COLOR_CONFIG(GUI_COLOR_FM_CAR,"Carrier"); - - UI_COLOR_CONFIG(GUI_COLOR_FM_SSG,"SSG-EG"); - UI_COLOR_CONFIG(GUI_COLOR_FM_WAVE,"Waveform"); - - ImGui::TextWrapped("(the following colors only apply when \"Use separate colors for carriers/modulators in FM editor\" is on!)"); - - UI_COLOR_CONFIG(GUI_COLOR_FM_PRIMARY_MOD,"Mod. accent (primary)"); - UI_COLOR_CONFIG(GUI_COLOR_FM_SECONDARY_MOD,"Mod. accent (secondary)"); - UI_COLOR_CONFIG(GUI_COLOR_FM_BORDER_MOD,"Mod. border"); - UI_COLOR_CONFIG(GUI_COLOR_FM_BORDER_SHADOW_MOD,"Mod. border shadow"); - - UI_COLOR_CONFIG(GUI_COLOR_FM_PRIMARY_CAR,"Car. accent (primary"); - UI_COLOR_CONFIG(GUI_COLOR_FM_SECONDARY_CAR,"Car. accent (secondary)"); - UI_COLOR_CONFIG(GUI_COLOR_FM_BORDER_CAR,"Car. border"); - UI_COLOR_CONFIG(GUI_COLOR_FM_BORDER_SHADOW_CAR,"Car. border shadow"); - - ImGui::TreePop(); - } - if (ImGui::TreeNode("Macro Editor")) { - UI_COLOR_CONFIG(GUI_COLOR_MACRO_VOLUME,"Volume"); - UI_COLOR_CONFIG(GUI_COLOR_MACRO_PITCH,"Pitch"); - UI_COLOR_CONFIG(GUI_COLOR_MACRO_WAVE,"Wave"); - UI_COLOR_CONFIG(GUI_COLOR_MACRO_OTHER,"Other"); - ImGui::TreePop(); - } - if (ImGui::TreeNode("Instrument Types")) { - UI_COLOR_CONFIG(GUI_COLOR_INSTR_FM,"FM (OPN)"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_STD,"SN76489/Sega PSG"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_T6W28,"T6W28"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_GB,"Game Boy"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_C64,"C64"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_AMIGA,"Amiga/Generic Sample"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_PCE,"PC Engine"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_AY,"AY-3-8910/SSG"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_AY8930,"AY8930"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_TIA,"TIA"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_SAA1099,"SAA1099"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_VIC,"VIC"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_PET,"PET"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_VRC6,"VRC6"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_VRC6_SAW,"VRC6 (saw)"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_OPLL,"FM (OPLL)"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_OPL,"FM (OPL)"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_FDS,"FDS"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_VBOY,"Virtual Boy"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_N163,"Namco 163"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_SCC,"Konami SCC"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_OPZ,"FM (OPZ)"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_POKEY,"POKEY"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_BEEPER,"PC Beeper"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_SWAN,"WonderSwan"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_MIKEY,"Lynx"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_VERA,"VERA"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_X1_010,"X1-010"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_ES5506,"ES5506"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_MULTIPCM,"MultiPCM"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_SNES,"SNES"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_SU,"Sound Unit"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_NAMCO,"Namco WSG"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_OPL_DRUMS,"FM (OPL Drums)"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_OPM,"FM (OPM)"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_NES,"NES"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_MSM6258,"MSM6258"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_MSM6295,"MSM6295"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_ADPCMA,"ADPCM-A"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_ADPCMB,"ADPCM-B"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_SEGAPCM,"Sega PCM"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_QSOUND,"QSound"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_YMZ280B,"YMZ280B"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_RF5C68,"RF5C68"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_MSM5232,"MSM5232"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_K007232,"K007232"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_GA20,"GA20"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_POKEMINI,"Pokémon Mini"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_SM8521,"SM8521"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_PV1000,"PV-1000"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_K053260,"K053260"); - UI_COLOR_CONFIG(GUI_COLOR_INSTR_UNKNOWN,"Other/Unknown"); - ImGui::TreePop(); - } - if (ImGui::TreeNode("Channel")) { - UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_BG,"Single color (background)"); - UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_FG,"Single color (text)"); - UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_FM,"FM"); - UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_PULSE,"Pulse"); - UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_NOISE,"Noise"); - UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_PCM,"PCM"); - UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_WAVE,"Wave"); - UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_OP,"FM operator"); - UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_MUTED,"Muted"); - ImGui::TreePop(); - } - if (ImGui::TreeNode("Pattern")) { - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_PLAY_HEAD,"Playhead"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_CURSOR,"Cursor"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_CURSOR_HOVER,"Cursor (hovered)"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_CURSOR_ACTIVE,"Cursor (clicked)"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_SELECTION,"Selection"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_SELECTION_HOVER,"Selection (hovered)"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_SELECTION_ACTIVE,"Selection (clicked)"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_HI_1,"Highlight 1"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_HI_2,"Highlight 2"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_ROW_INDEX,"Row number"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_ROW_INDEX_HI1,"Row number (highlight 1)"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_ROW_INDEX_HI2,"Row number (highlight 2)"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_ACTIVE,"Note"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_ACTIVE_HI1,"Note (highlight 1)"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_ACTIVE_HI2,"Note (highlight 2)"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_INACTIVE,"Blank"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_INACTIVE_HI1,"Blank (highlight 1)"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_INACTIVE_HI2,"Blank (highlight 2)"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_INS,"Instrument"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_INS_WARN,"Instrument (invalid type)"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_INS_ERROR,"Instrument (out of range)"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_VOLUME_MIN,"Volume (0%)"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_VOLUME_HALF,"Volume (50%)"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_VOLUME_MAX,"Volume (100%)"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_INVALID,"Invalid effect"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_PITCH,"Pitch effect"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_VOLUME,"Volume effect"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_PANNING,"Panning effect"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_SONG,"Song effect"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_TIME,"Time effect"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_SPEED,"Speed effect"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_SYS_PRIMARY,"Primary specific effect"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_SYS_SECONDARY,"Secondary specific effect"); - UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_MISC,"Miscellaneous"); - UI_COLOR_CONFIG(GUI_COLOR_EE_VALUE,"External command output"); - ImGui::TreePop(); - } - if (ImGui::TreeNode("Sample Editor")) { - UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_BG,"Background"); - UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_FG,"Waveform"); - UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_TIME_BG,"Time background"); - UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_TIME_FG,"Time text"); - UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_LOOP,"Loop region"); - UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_CENTER,"Center guide"); - UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_GRID,"Grid"); - UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_SEL,"Selection"); - UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_SEL_POINT,"Selection points"); - UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_NEEDLE,"Preview needle"); - UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_NEEDLE_PLAYING,"Playing needles"); - UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_LOOP_POINT,"Loop markers"); - UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_CHIP_DISABLED,"Chip select: disabled"); - UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_CHIP_ENABLED,"Chip select: enabled"); - UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_CHIP_WARNING,"Chip select: enabled (failure)"); - ImGui::TreePop(); - } - if (ImGui::TreeNode("Pattern Manager")) { - UI_COLOR_CONFIG(GUI_COLOR_PAT_MANAGER_NULL,"Unallocated"); - UI_COLOR_CONFIG(GUI_COLOR_PAT_MANAGER_UNUSED,"Unused"); - UI_COLOR_CONFIG(GUI_COLOR_PAT_MANAGER_USED,"Used"); - UI_COLOR_CONFIG(GUI_COLOR_PAT_MANAGER_OVERUSED,"Overused"); - UI_COLOR_CONFIG(GUI_COLOR_PAT_MANAGER_EXTREMELY_OVERUSED,"Really overused"); - UI_COLOR_CONFIG(GUI_COLOR_PAT_MANAGER_COMBO_BREAKER,"Combo Breaker"); - ImGui::TreePop(); - } - if (ImGui::TreeNode("Piano")) { - UI_COLOR_CONFIG(GUI_COLOR_PIANO_BACKGROUND,"Background"); - UI_COLOR_CONFIG(GUI_COLOR_PIANO_KEY_TOP,"Upper key"); - UI_COLOR_CONFIG(GUI_COLOR_PIANO_KEY_TOP_HIT,"Upper key (feedback)"); - UI_COLOR_CONFIG(GUI_COLOR_PIANO_KEY_TOP_ACTIVE,"Upper key (pressed)"); - UI_COLOR_CONFIG(GUI_COLOR_PIANO_KEY_BOTTOM,"Lower key"); - UI_COLOR_CONFIG(GUI_COLOR_PIANO_KEY_BOTTOM_HIT,"Lower key (feedback)"); - UI_COLOR_CONFIG(GUI_COLOR_PIANO_KEY_BOTTOM_ACTIVE,"Lower key (pressed)"); - ImGui::TreePop(); - } - if (ImGui::TreeNode("Clock")) { - UI_COLOR_CONFIG(GUI_COLOR_CLOCK_TEXT,"Clock text"); - UI_COLOR_CONFIG(GUI_COLOR_CLOCK_BEAT_LOW,"Beat (off)"); - UI_COLOR_CONFIG(GUI_COLOR_CLOCK_BEAT_HIGH,"Beat (on)"); - - ImGui::TreePop(); - } - if (ImGui::TreeNode("Patchbay")) { - UI_COLOR_CONFIG(GUI_COLOR_PATCHBAY_PORTSET,"PortSet"); - UI_COLOR_CONFIG(GUI_COLOR_PATCHBAY_PORT,"Port"); - UI_COLOR_CONFIG(GUI_COLOR_PATCHBAY_PORT_HIDDEN,"Port (hidden/unavailable)"); - UI_COLOR_CONFIG(GUI_COLOR_PATCHBAY_CONNECTION,"Connection (selected)"); - UI_COLOR_CONFIG(GUI_COLOR_PATCHBAY_CONNECTION_BG,"Connection (other)"); - - ImGui::TreePop(); - } - if (ImGui::TreeNode("Log Viewer")) { - UI_COLOR_CONFIG(GUI_COLOR_LOGLEVEL_ERROR,"Log level: Error"); - UI_COLOR_CONFIG(GUI_COLOR_LOGLEVEL_WARNING,"Log level: Warning"); - UI_COLOR_CONFIG(GUI_COLOR_LOGLEVEL_INFO,"Log level: Info"); - UI_COLOR_CONFIG(GUI_COLOR_LOGLEVEL_DEBUG,"Log level: Debug"); - UI_COLOR_CONFIG(GUI_COLOR_LOGLEVEL_TRACE,"Log level: Trace/Verbose"); - ImGui::TreePop(); - } - ImGui::TreePop(); - } + ImGui::SameLine(); + if (ImGui::Button("Export")) { + openFileDialog(GUI_FILE_EXPORT_COLORS); } - ImGui::EndChild(); - ImGui::EndTabItem(); - } - if (ImGui::BeginTabItem("Keyboard (OLD)")) { - ImVec2 settingsViewSize=ImGui::GetContentRegionAvail(); - settingsViewSize.y-=ImGui::GetFrameHeight()+ImGui::GetStyle().WindowPadding.y; - if (ImGui::BeginChild("SettingsView",settingsViewSize)) { - if (ImGui::Button("Import")) { - openFileDialog(GUI_FILE_IMPORT_KEYBINDS); - } - ImGui::SameLine(); - if (ImGui::Button("Export")) { - openFileDialog(GUI_FILE_EXPORT_KEYBINDS); - } - ImGui::SameLine(); - if (ImGui::Button("Reset defaults")) { - showWarning("Are you sure you want to reset the keyboard settings?",GUI_WARN_RESET_KEYBINDS); - } - if (ImGui::TreeNode("Global hotkeys")) { - KEYBIND_CONFIG_BEGIN("keysGlobal"); - - UI_KEYBIND_CONFIG(GUI_ACTION_NEW); - UI_KEYBIND_CONFIG(GUI_ACTION_OPEN); - UI_KEYBIND_CONFIG(GUI_ACTION_OPEN_BACKUP); - UI_KEYBIND_CONFIG(GUI_ACTION_SAVE); - UI_KEYBIND_CONFIG(GUI_ACTION_SAVE_AS); - UI_KEYBIND_CONFIG(GUI_ACTION_UNDO); - UI_KEYBIND_CONFIG(GUI_ACTION_REDO); - UI_KEYBIND_CONFIG(GUI_ACTION_PLAY_TOGGLE); - UI_KEYBIND_CONFIG(GUI_ACTION_PLAY); - UI_KEYBIND_CONFIG(GUI_ACTION_STOP); - UI_KEYBIND_CONFIG(GUI_ACTION_PLAY_START); - UI_KEYBIND_CONFIG(GUI_ACTION_PLAY_REPEAT); - UI_KEYBIND_CONFIG(GUI_ACTION_PLAY_CURSOR); - UI_KEYBIND_CONFIG(GUI_ACTION_STEP_ONE); - UI_KEYBIND_CONFIG(GUI_ACTION_OCTAVE_UP); - UI_KEYBIND_CONFIG(GUI_ACTION_OCTAVE_DOWN); - UI_KEYBIND_CONFIG(GUI_ACTION_INS_UP); - UI_KEYBIND_CONFIG(GUI_ACTION_INS_DOWN); - UI_KEYBIND_CONFIG(GUI_ACTION_STEP_UP); - UI_KEYBIND_CONFIG(GUI_ACTION_STEP_DOWN); - UI_KEYBIND_CONFIG(GUI_ACTION_TOGGLE_EDIT); - UI_KEYBIND_CONFIG(GUI_ACTION_METRONOME); - UI_KEYBIND_CONFIG(GUI_ACTION_REPEAT_PATTERN); - UI_KEYBIND_CONFIG(GUI_ACTION_FOLLOW_ORDERS); - UI_KEYBIND_CONFIG(GUI_ACTION_FOLLOW_PATTERN); - UI_KEYBIND_CONFIG(GUI_ACTION_FULLSCREEN); - UI_KEYBIND_CONFIG(GUI_ACTION_PANIC); - - KEYBIND_CONFIG_END; - ImGui::TreePop(); - } - if (ImGui::TreeNode("Window activation")) { - KEYBIND_CONFIG_BEGIN("keysWindow"); - - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_EDIT_CONTROLS); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_ORDERS); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_INS_LIST); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_INS_EDIT); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_SONG_INFO); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_SUBSONGS); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_PATTERN); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_WAVE_LIST); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_WAVE_EDIT); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_SAMPLE_LIST); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_SAMPLE_EDIT); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_ABOUT); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_SETTINGS); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_MIXER); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_DEBUG); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_OSCILLOSCOPE); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_CHAN_OSC); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_EFFECT_LIST); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_VOL_METER); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_STATS); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_COMPAT_FLAGS); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_PIANO); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_NOTES); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_CHANNELS); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_REGISTER_VIEW); - UI_KEYBIND_CONFIG(GUI_ACTION_WINDOW_LOG); - - UI_KEYBIND_CONFIG(GUI_ACTION_COLLAPSE_WINDOW); - UI_KEYBIND_CONFIG(GUI_ACTION_CLOSE_WINDOW); - - KEYBIND_CONFIG_END; - ImGui::TreePop(); - } - if (ImGui::TreeNode("Note input")) { - std::vector sorted; - if (ImGui::BeginTable("keysNoteInput",4)) { - for (std::map::value_type& i: noteKeys) { - std::vector::iterator j; - for (j=sorted.begin(); j!=sorted.end(); j++) { - if (j->val>i.second) { - break; - } - } - sorted.insert(j,MappedInput(i.first,i.second)); - } - - static char id[4096]; - - ImGui::TableNextRow(ImGuiTableRowFlags_Headers); - ImGui::TableNextColumn(); - ImGui::Text("Key"); - ImGui::TableNextColumn(); - ImGui::Text("Type"); - ImGui::TableNextColumn(); - ImGui::Text("Value"); - ImGui::TableNextColumn(); - ImGui::Text("Remove"); - - for (MappedInput& i: sorted) { - ImGui::TableNextRow(); - ImGui::TableNextColumn(); - ImGui::Text("%s",SDL_GetScancodeName((SDL_Scancode)i.scan)); - ImGui::TableNextColumn(); - if (i.val==102) { - snprintf(id,4095,"Macro release##SNType_%d",i.scan); - if (ImGui::Button(id)) { - noteKeys[i.scan]=0; - } - } else if (i.val==101) { - snprintf(id,4095,"Note release##SNType_%d",i.scan); - if (ImGui::Button(id)) { - noteKeys[i.scan]=102; - } - } else if (i.val==100) { - snprintf(id,4095,"Note off##SNType_%d",i.scan); - if (ImGui::Button(id)) { - noteKeys[i.scan]=101; - } - } else { - snprintf(id,4095,"Note##SNType_%d",i.scan); - if (ImGui::Button(id)) { - noteKeys[i.scan]=100; - } - } - ImGui::TableNextColumn(); - if (i.val<100) { - snprintf(id,4095,"##SNValue_%d",i.scan); - if (ImGui::InputInt(id,&i.val,1,1)) { - if (i.val<0) i.val=0; - if (i.val>96) i.val=96; - noteKeys[i.scan]=i.val; - } - } - ImGui::TableNextColumn(); - snprintf(id,4095,ICON_FA_TIMES "##SNRemove_%d",i.scan); - if (ImGui::Button(id)) { - noteKeys.erase(i.scan); - } - } - ImGui::EndTable(); - - if (ImGui::BeginCombo("##SNAddNew","Add...")) { - for (int i=0; i100) settings.guiColorsShading=100; + applyUISettings(false); + } + UI_COLOR_CONFIG(GUI_COLOR_BACKGROUND,"Background"); + UI_COLOR_CONFIG(GUI_COLOR_FRAME_BACKGROUND,"Window background"); + UI_COLOR_CONFIG(GUI_COLOR_FRAME_BACKGROUND_CHILD,"Sub-window background"); + UI_COLOR_CONFIG(GUI_COLOR_FRAME_BACKGROUND_POPUP,"Pop-up background"); + UI_COLOR_CONFIG(GUI_COLOR_MODAL_BACKDROP,"Modal backdrop"); + UI_COLOR_CONFIG(GUI_COLOR_HEADER,"Header"); + UI_COLOR_CONFIG(GUI_COLOR_TEXT,"Text"); + UI_COLOR_CONFIG(GUI_COLOR_ACCENT_PRIMARY,"Primary"); + UI_COLOR_CONFIG(GUI_COLOR_ACCENT_SECONDARY,"Secondary"); + UI_COLOR_CONFIG(GUI_COLOR_TITLE_INACTIVE,"Title bar (inactive)"); + UI_COLOR_CONFIG(GUI_COLOR_TITLE_COLLAPSED,"Title bar (collapsed)"); + UI_COLOR_CONFIG(GUI_COLOR_MENU_BAR,"Menu bar"); + UI_COLOR_CONFIG(GUI_COLOR_BORDER,"Border"); + UI_COLOR_CONFIG(GUI_COLOR_BORDER_SHADOW,"Border shadow"); + UI_COLOR_CONFIG(GUI_COLOR_SCROLL,"Scroll bar"); + UI_COLOR_CONFIG(GUI_COLOR_SCROLL_HOVER,"Scroll bar (hovered)"); + UI_COLOR_CONFIG(GUI_COLOR_SCROLL_ACTIVE,"Scroll bar (clicked)"); + UI_COLOR_CONFIG(GUI_COLOR_SCROLL_BACKGROUND,"Scroll bar background"); + UI_COLOR_CONFIG(GUI_COLOR_SEPARATOR,"Separator"); + UI_COLOR_CONFIG(GUI_COLOR_SEPARATOR_HOVER,"Separator (hover)"); + UI_COLOR_CONFIG(GUI_COLOR_SEPARATOR_ACTIVE,"Separator (active)"); + UI_COLOR_CONFIG(GUI_COLOR_DOCKING_PREVIEW,"Docking preview"); + UI_COLOR_CONFIG(GUI_COLOR_DOCKING_EMPTY,"Docking empty"); + UI_COLOR_CONFIG(GUI_COLOR_TABLE_HEADER,"Table header"); + UI_COLOR_CONFIG(GUI_COLOR_TABLE_BORDER_HARD,"Table border (hard)"); + UI_COLOR_CONFIG(GUI_COLOR_TABLE_BORDER_SOFT,"Table border (soft)"); + UI_COLOR_CONFIG(GUI_COLOR_DRAG_DROP_TARGET,"Drag and drop target"); + UI_COLOR_CONFIG(GUI_COLOR_NAV_WIN_HIGHLIGHT,"Window switcher (highlight)"); + UI_COLOR_CONFIG(GUI_COLOR_NAV_WIN_BACKDROP,"Window switcher backdrop"); + UI_COLOR_CONFIG(GUI_COLOR_TOGGLE_ON,"Toggle on"); + UI_COLOR_CONFIG(GUI_COLOR_TOGGLE_OFF,"Toggle off"); + UI_COLOR_CONFIG(GUI_COLOR_EDITING,"Editing"); + UI_COLOR_CONFIG(GUI_COLOR_SONG_LOOP,"Song loop"); + UI_COLOR_CONFIG(GUI_COLOR_PLAYBACK_STAT,"Playback status"); + UI_COLOR_CONFIG(GUI_COLOR_DESTRUCTIVE,"Destructive hint"); + UI_COLOR_CONFIG(GUI_COLOR_WARNING,"Warning hint"); + UI_COLOR_CONFIG(GUI_COLOR_ERROR,"Error hint"); + ImGui::TreePop(); + } + if (ImGui::TreeNode("File Picker (built-in)")) { + UI_COLOR_CONFIG(GUI_COLOR_FILE_DIR,"Directory"); + UI_COLOR_CONFIG(GUI_COLOR_FILE_SONG_NATIVE,"Song (native)"); + UI_COLOR_CONFIG(GUI_COLOR_FILE_SONG_IMPORT,"Song (import)"); + UI_COLOR_CONFIG(GUI_COLOR_FILE_INSTR,"Instrument"); + UI_COLOR_CONFIG(GUI_COLOR_FILE_AUDIO,"Audio"); + UI_COLOR_CONFIG(GUI_COLOR_FILE_WAVE,"Wavetable"); + UI_COLOR_CONFIG(GUI_COLOR_FILE_VGM,"VGM"); + UI_COLOR_CONFIG(GUI_COLOR_FILE_ZSM,"ZSM"); + UI_COLOR_CONFIG(GUI_COLOR_FILE_FONT,"Font"); + UI_COLOR_CONFIG(GUI_COLOR_FILE_OTHER,"Other"); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Oscilloscope")) { + UI_COLOR_CONFIG(GUI_COLOR_OSC_BORDER,"Border"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_BG1,"Background (top-left)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_BG2,"Background (top-right)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_BG3,"Background (bottom-left)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_BG4,"Background (bottom-right)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE,"Waveform"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_PEAK,"Waveform (clip)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_REF,"Reference"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_GUIDE,"Guide"); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Volume Meter")) { + UI_COLOR_CONFIG(GUI_COLOR_VOLMETER_LOW,"Low"); + UI_COLOR_CONFIG(GUI_COLOR_VOLMETER_HIGH,"High"); + UI_COLOR_CONFIG(GUI_COLOR_VOLMETER_PEAK,"Clip"); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Orders")) { + UI_COLOR_CONFIG(GUI_COLOR_ORDER_ROW_INDEX,"Order number"); + UI_COLOR_CONFIG(GUI_COLOR_ORDER_ACTIVE,"Playing order background"); + UI_COLOR_CONFIG(GUI_COLOR_ORDER_SELECTED,"Selected order"); + UI_COLOR_CONFIG(GUI_COLOR_ORDER_SIMILAR,"Similar patterns"); + UI_COLOR_CONFIG(GUI_COLOR_ORDER_INACTIVE,"Inactive patterns"); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Envelope View")) { + UI_COLOR_CONFIG(GUI_COLOR_FM_ENVELOPE,"Envelope"); + UI_COLOR_CONFIG(GUI_COLOR_FM_ENVELOPE_SUS_GUIDE,"Sustain guide"); + UI_COLOR_CONFIG(GUI_COLOR_FM_ENVELOPE_RELEASE,"Release"); + + ImGui::TreePop(); + } + if (ImGui::TreeNode("FM Editor")) { + UI_COLOR_CONFIG(GUI_COLOR_FM_ALG_BG,"Algorithm background"); + UI_COLOR_CONFIG(GUI_COLOR_FM_ALG_LINE,"Algorithm lines"); + UI_COLOR_CONFIG(GUI_COLOR_FM_MOD,"Modulator"); + UI_COLOR_CONFIG(GUI_COLOR_FM_CAR,"Carrier"); + + UI_COLOR_CONFIG(GUI_COLOR_FM_SSG,"SSG-EG"); + UI_COLOR_CONFIG(GUI_COLOR_FM_WAVE,"Waveform"); + + ImGui::TextWrapped("(the following colors only apply when \"Use separate colors for carriers/modulators in FM editor\" is on!)"); + + UI_COLOR_CONFIG(GUI_COLOR_FM_PRIMARY_MOD,"Mod. accent (primary)"); + UI_COLOR_CONFIG(GUI_COLOR_FM_SECONDARY_MOD,"Mod. accent (secondary)"); + UI_COLOR_CONFIG(GUI_COLOR_FM_BORDER_MOD,"Mod. border"); + UI_COLOR_CONFIG(GUI_COLOR_FM_BORDER_SHADOW_MOD,"Mod. border shadow"); + + UI_COLOR_CONFIG(GUI_COLOR_FM_PRIMARY_CAR,"Car. accent (primary"); + UI_COLOR_CONFIG(GUI_COLOR_FM_SECONDARY_CAR,"Car. accent (secondary)"); + UI_COLOR_CONFIG(GUI_COLOR_FM_BORDER_CAR,"Car. border"); + UI_COLOR_CONFIG(GUI_COLOR_FM_BORDER_SHADOW_CAR,"Car. border shadow"); + + ImGui::TreePop(); + } + if (ImGui::TreeNode("Macro Editor")) { + UI_COLOR_CONFIG(GUI_COLOR_MACRO_VOLUME,"Volume"); + UI_COLOR_CONFIG(GUI_COLOR_MACRO_PITCH,"Pitch"); + UI_COLOR_CONFIG(GUI_COLOR_MACRO_WAVE,"Wave"); + UI_COLOR_CONFIG(GUI_COLOR_MACRO_OTHER,"Other"); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Instrument Types")) { + UI_COLOR_CONFIG(GUI_COLOR_INSTR_FM,"FM (OPN)"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_STD,"SN76489/Sega PSG"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_T6W28,"T6W28"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_GB,"Game Boy"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_C64,"C64"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_AMIGA,"Amiga/Generic Sample"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_PCE,"PC Engine"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_AY,"AY-3-8910/SSG"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_AY8930,"AY8930"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_TIA,"TIA"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_SAA1099,"SAA1099"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_VIC,"VIC"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_PET,"PET"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_VRC6,"VRC6"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_VRC6_SAW,"VRC6 (saw)"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_OPLL,"FM (OPLL)"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_OPL,"FM (OPL)"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_FDS,"FDS"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_VBOY,"Virtual Boy"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_N163,"Namco 163"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_SCC,"Konami SCC"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_OPZ,"FM (OPZ)"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_POKEY,"POKEY"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_BEEPER,"PC Beeper"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_SWAN,"WonderSwan"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_MIKEY,"Lynx"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_VERA,"VERA"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_X1_010,"X1-010"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_ES5506,"ES5506"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_MULTIPCM,"MultiPCM"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_SNES,"SNES"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_SU,"Sound Unit"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_NAMCO,"Namco WSG"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_OPL_DRUMS,"FM (OPL Drums)"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_OPM,"FM (OPM)"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_NES,"NES"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_MSM6258,"MSM6258"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_MSM6295,"MSM6295"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_ADPCMA,"ADPCM-A"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_ADPCMB,"ADPCM-B"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_SEGAPCM,"Sega PCM"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_QSOUND,"QSound"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_YMZ280B,"YMZ280B"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_RF5C68,"RF5C68"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_MSM5232,"MSM5232"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_K007232,"K007232"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_GA20,"GA20"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_POKEMINI,"Pokémon Mini"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_SM8521,"SM8521"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_PV1000,"PV-1000"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_K053260,"K053260"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_UNKNOWN,"Other/Unknown"); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Channel")) { + UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_BG,"Single color (background)"); + UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_FG,"Single color (text)"); + UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_FM,"FM"); + UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_PULSE,"Pulse"); + UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_NOISE,"Noise"); + UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_PCM,"PCM"); + UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_WAVE,"Wave"); + UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_OP,"FM operator"); + UI_COLOR_CONFIG(GUI_COLOR_CHANNEL_MUTED,"Muted"); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Pattern")) { + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_PLAY_HEAD,"Playhead"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_CURSOR,"Cursor"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_CURSOR_HOVER,"Cursor (hovered)"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_CURSOR_ACTIVE,"Cursor (clicked)"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_SELECTION,"Selection"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_SELECTION_HOVER,"Selection (hovered)"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_SELECTION_ACTIVE,"Selection (clicked)"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_HI_1,"Highlight 1"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_HI_2,"Highlight 2"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_ROW_INDEX,"Row number"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_ROW_INDEX_HI1,"Row number (highlight 1)"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_ROW_INDEX_HI2,"Row number (highlight 2)"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_ACTIVE,"Note"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_ACTIVE_HI1,"Note (highlight 1)"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_ACTIVE_HI2,"Note (highlight 2)"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_INACTIVE,"Blank"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_INACTIVE_HI1,"Blank (highlight 1)"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_INACTIVE_HI2,"Blank (highlight 2)"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_INS,"Instrument"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_INS_WARN,"Instrument (invalid type)"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_INS_ERROR,"Instrument (out of range)"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_VOLUME_MIN,"Volume (0%)"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_VOLUME_HALF,"Volume (50%)"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_VOLUME_MAX,"Volume (100%)"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_INVALID,"Invalid effect"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_PITCH,"Pitch effect"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_VOLUME,"Volume effect"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_PANNING,"Panning effect"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_SONG,"Song effect"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_TIME,"Time effect"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_SPEED,"Speed effect"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_SYS_PRIMARY,"Primary specific effect"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_SYS_SECONDARY,"Secondary specific effect"); + UI_COLOR_CONFIG(GUI_COLOR_PATTERN_EFFECT_MISC,"Miscellaneous"); + UI_COLOR_CONFIG(GUI_COLOR_EE_VALUE,"External command output"); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Sample Editor")) { + UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_BG,"Background"); + UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_FG,"Waveform"); + UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_TIME_BG,"Time background"); + UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_TIME_FG,"Time text"); + UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_LOOP,"Loop region"); + UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_CENTER,"Center guide"); + UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_GRID,"Grid"); + UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_SEL,"Selection"); + UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_SEL_POINT,"Selection points"); + UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_NEEDLE,"Preview needle"); + UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_NEEDLE_PLAYING,"Playing needles"); + UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_LOOP_POINT,"Loop markers"); + UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_CHIP_DISABLED,"Chip select: disabled"); + UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_CHIP_ENABLED,"Chip select: enabled"); + UI_COLOR_CONFIG(GUI_COLOR_SAMPLE_CHIP_WARNING,"Chip select: enabled (failure)"); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Pattern Manager")) { + UI_COLOR_CONFIG(GUI_COLOR_PAT_MANAGER_NULL,"Unallocated"); + UI_COLOR_CONFIG(GUI_COLOR_PAT_MANAGER_UNUSED,"Unused"); + UI_COLOR_CONFIG(GUI_COLOR_PAT_MANAGER_USED,"Used"); + UI_COLOR_CONFIG(GUI_COLOR_PAT_MANAGER_OVERUSED,"Overused"); + UI_COLOR_CONFIG(GUI_COLOR_PAT_MANAGER_EXTREMELY_OVERUSED,"Really overused"); + UI_COLOR_CONFIG(GUI_COLOR_PAT_MANAGER_COMBO_BREAKER,"Combo Breaker"); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Piano")) { + UI_COLOR_CONFIG(GUI_COLOR_PIANO_BACKGROUND,"Background"); + UI_COLOR_CONFIG(GUI_COLOR_PIANO_KEY_TOP,"Upper key"); + UI_COLOR_CONFIG(GUI_COLOR_PIANO_KEY_TOP_HIT,"Upper key (feedback)"); + UI_COLOR_CONFIG(GUI_COLOR_PIANO_KEY_TOP_ACTIVE,"Upper key (pressed)"); + UI_COLOR_CONFIG(GUI_COLOR_PIANO_KEY_BOTTOM,"Lower key"); + UI_COLOR_CONFIG(GUI_COLOR_PIANO_KEY_BOTTOM_HIT,"Lower key (feedback)"); + UI_COLOR_CONFIG(GUI_COLOR_PIANO_KEY_BOTTOM_ACTIVE,"Lower key (pressed)"); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Clock")) { + UI_COLOR_CONFIG(GUI_COLOR_CLOCK_TEXT,"Clock text"); + UI_COLOR_CONFIG(GUI_COLOR_CLOCK_BEAT_LOW,"Beat (off)"); + UI_COLOR_CONFIG(GUI_COLOR_CLOCK_BEAT_HIGH,"Beat (on)"); + + ImGui::TreePop(); + } + if (ImGui::TreeNode("Patchbay")) { + UI_COLOR_CONFIG(GUI_COLOR_PATCHBAY_PORTSET,"PortSet"); + UI_COLOR_CONFIG(GUI_COLOR_PATCHBAY_PORT,"Port"); + UI_COLOR_CONFIG(GUI_COLOR_PATCHBAY_PORT_HIDDEN,"Port (hidden/unavailable)"); + UI_COLOR_CONFIG(GUI_COLOR_PATCHBAY_CONNECTION,"Connection (selected)"); + UI_COLOR_CONFIG(GUI_COLOR_PATCHBAY_CONNECTION_BG,"Connection (other)"); + + ImGui::TreePop(); + } + if (ImGui::TreeNode("Log Viewer")) { + UI_COLOR_CONFIG(GUI_COLOR_LOGLEVEL_ERROR,"Log level: Error"); + UI_COLOR_CONFIG(GUI_COLOR_LOGLEVEL_WARNING,"Log level: Warning"); + UI_COLOR_CONFIG(GUI_COLOR_LOGLEVEL_INFO,"Log level: Info"); + UI_COLOR_CONFIG(GUI_COLOR_LOGLEVEL_DEBUG,"Log level: Debug"); + UI_COLOR_CONFIG(GUI_COLOR_LOGLEVEL_TRACE,"Log level: Trace/Verbose"); + ImGui::TreePop(); + } + END_SECTION; } if (nonLatchNibble) { // ok, so you decided to read the code. @@ -2732,44 +2643,41 @@ void FurnaceGUI::drawSettings() { // "Nice Amiga cover of the song!" - enables hidden systems (YMU759/SoundUnit/Dummy) // "42 63" - enables all instrument types // "????" - enables stuff - if (ImGui::BeginTabItem("Cheat Codes (OLD)")) { - ImVec2 settingsViewSize=ImGui::GetContentRegionAvail(); - settingsViewSize.y-=ImGui::GetFrameHeight()+ImGui::GetStyle().WindowPadding.y; - if (ImGui::BeginChild("SettingsView",settingsViewSize)) { - ImGui::Text("Enter code:"); - ImGui::InputText("##CheatCode",&mmlString[31]); - if (ImGui::Button("Submit")) { - unsigned int checker=0x11111111; - unsigned int checker1=0; - int index=0; - mmlString[30]="invalid code"; + CONFIG_SECTION("Cheat Codes") { + // SUBSECTION ENTER CODE: + CONFIG_SUBSECTION("Enter code:"); + ImGui::InputText("##CheatCode",&mmlString[31]); + if (ImGui::Button("Submit")) { + unsigned int checker=0x11111111; + unsigned int checker1=0; + int index=0; + mmlString[30]="invalid code"; - for (char& i: mmlString[31]) { - checker^=((unsigned int)i)<>1|(((checker)^(checker>>2)^(checker>>3)^(checker>>5))&1)<<31); - checker1<<=1; - index=(index+1)&31; - } - if (checker==0x90888b65 && checker1==0x1482) { - mmlString[30]="toggled alternate UI"; - toggleMobileUI(!mobileUI); - } - if (checker==0x5a42a113 && checker1==0xe4ef451e) { - mmlString[30]=":smile: :star_struck: :sunglasses: :ok_hand:"; - settings.hiddenSystems=!settings.hiddenSystems; - } - if (checker==0xe888896b && checker1==0xbde) { - mmlString[30]="enabled all instrument types"; - settings.displayAllInsTypes=!settings.displayAllInsTypes; - } - - mmlString[31]=""; + for (char& i: mmlString[31]) { + checker^=((unsigned int)i)<>1|(((checker)^(checker>>2)^(checker>>3)^(checker>>5))&1)<<31); + checker1<<=1; + index=(index+1)&31; } - ImGui::Text("%s",mmlString[30].c_str()); + if (checker==0x90888b65 && checker1==0x1482) { + mmlString[30]="toggled alternate UI"; + toggleMobileUI(!mobileUI); + } + if (checker==0x5a42a113 && checker1==0xe4ef451e) { + mmlString[30]=":smile: :star_struck: :sunglasses: :ok_hand:"; + settings.hiddenSystems=!settings.hiddenSystems; + } + if (checker==0xe888896b && checker1==0xbde) { + mmlString[30]="enabled all instrument types"; + settings.displayAllInsTypes=!settings.displayAllInsTypes; + } + + mmlString[31]=""; } - ImGui::EndChild(); - ImGui::EndTabItem(); + ImGui::Text("%s",mmlString[30].c_str()); + + END_SECTION; } } ImGui::EndTabBar(); From e9af48cf8b27daac28b21310cd1c1f81d3c802a9 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 30 Jul 2023 04:34:24 -0500 Subject: [PATCH 052/202] GUI: update credits --- src/gui/about.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/about.cpp b/src/gui/about.cpp index a79ce6e34..b849c6bbe 100644 --- a/src/gui/about.cpp +++ b/src/gui/about.cpp @@ -84,7 +84,7 @@ const char* aboutLine[]={ "djtuBIG-MaliceX", "dumbut", "Eknous-P", - "ElectricKeet", + "Electric Keet", "EpicTyphlosion", "FΛDE", "Forte", @@ -138,6 +138,7 @@ const char* aboutLine[]={ "ZoomTen (Zumi)", "", "-- additional feedback/fixes --", + "Electric Keet", "fd", "GENATARi", "host12prog", From 9420bbe0583422e6b5d2ad53cf1ca5ec26f1e5c0 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 30 Jul 2023 14:43:25 -0500 Subject: [PATCH 053/202] GUI: mark modified when swapping channels --- src/gui/channels.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/channels.cpp b/src/gui/channels.cpp index 48d5ed8cb..dd19d652d 100644 --- a/src/gui/channels.cpp +++ b/src/gui/channels.cpp @@ -69,6 +69,7 @@ void FurnaceGUI::drawChannels() { if (dragItem->IsDataType("FUR_CHAN")) { if (chanToMove!=i && chanToMove>=0) { e->swapChannelsP(chanToMove,i); + MARK_MODIFIED; } chanToMove=-1; } From 4c13fe08d28e6cf1fe2862f894d090fbf56b1a9f Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 30 Jul 2023 14:53:26 -0500 Subject: [PATCH 054/202] YM2612: prioritize urgentWrite() on hard reset --- src/engine/platform/fmsharedbase.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/engine/platform/fmsharedbase.h b/src/engine/platform/fmsharedbase.h index c0fb7dd2f..4200d7570 100644 --- a/src/engine/platform/fmsharedbase.h +++ b/src/engine/platform/fmsharedbase.h @@ -109,7 +109,8 @@ class DivPlatformFMBase: public DivDispatch { if (!skipRegisterWrites && !flushFirst) { if (writes.empty()) { writes.push_back(QueuedWrite(a,v)); - } else if (writes.size()>16 || writes.front().addrOrVal) { + } else if ((writes.size()>16 && writes.front().addr!=0xf0) || writes.front().addrOrVal) { + // $f0 is used by OPN hard reset writes.push_back(QueuedWrite(a,v)); } else { writes.push_front(QueuedWrite(a,v)); From 24e7d4b9ce821d0c4faf5fc6e5f64e7b1055feba Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Sun, 30 Jul 2023 11:07:09 -0700 Subject: [PATCH 055/202] Updating settings docs to match new arrangement. --- doc/2-interface/settings.md | 558 +++++++++++++++++++++--------------- 1 file changed, 328 insertions(+), 230 deletions(-) diff --git a/doc/2-interface/settings.md b/doc/2-interface/settings.md index d6ed79c60..32c85242b 100644 --- a/doc/2-interface/settings.md +++ b/doc/2-interface/settings.md @@ -4,12 +4,38 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. -# General +## General -- **Workspace layout** - - **Import**: reads a .ini layout file. - - **Export**: writes current layout to a .ini file. - - **Reset**: resets layout to default. +### Program + +- **Render backend** + - changing this may help with performace issues. +- **Late render clear** +- **Power-saving mode** + - saves power by lowering the frame rate to 2fps when idle. + - may cause issues under Mesa drivers! +- **Disable threaded input (restart after changing!)** + - threaded input processes key presses for note preview on a separate thread (on supported platforms), which reduces latency. + - however, crashes have been reported when threaded input is on. enable this option if that is the case. +- **Enable event delay** + - may cause issues with high-polling-rate mice when previewing notes. + +### File + +- **Use system file picker**: use native OS file dialog instead of Furnace's. +- **Number of recent files** +- **Compress when saving** + - use zlib to compress saved songs. +- **Save unused patterns** +- **Use new pattern format when saving** +- **Don't apply compatibility flags when loading .dmf** +- **Audio export loop/fade out time:** + - **Set to these values on start-up:** + - **Loops**: number of additional times to play through `0Bxx` song loop. + - **Fade out (seconds)**: length of fade out after final loop. + - **Remember last values** + +### Chip - **Initial system**: the system of chips loaded on starting Furnace. - **Current system**: sets current chips as default. @@ -18,172 +44,131 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **Reset to defaults**: sets default to "Sega Genesis/Mega Drive". - **Name**: name for the default system. may be set to any text. - system configuration: same as in the [chip manager](../8-advanced/chip-manager.md) and [mixer](../8-advanced/mixer.md). +- **When creating new song**: + - **Display system preset selector** + - **Start with initial system** +- **Restart song when changing chip properties** + +### Start-up - **Play intro on start-up:** - **No**: skips intro entirely. - **Short**: shows silent title screen briefly. - **Full (short when loading song)**: shows animated musical intro unless started with a song (command line, double-clicking a .fur file, etc.) - **Full (always)**: always shows animated musical intro. -- **When creating new song**: - - **Display system preset selector** - - **Start with initial system** +- **Disable fade-in during start-up** +- **About screen party time** + - _warning:_ may cause epileptic seizures. + +### Behavior -- **Double-click time (seconds)**: maximum time between mouse clicks to recognize them as a double-click. -- **Toggle channel solo on:** select which interactions with a channel header will toggle solo for that channel. -- **Push value when overwriting instead of clearing it**: in the order list and pattern editors, typing into an already-filled value will shift digits instead of starting fresh. - - if off: moving the cursor onto the value `A5` and typing a "B" results in `0B`. - - if on: with the cursor on the value `A5` and typing a "B" results in `5B`. -- **Move cursor up on backspace-delete** -- **Move cursor by edit step on delete** -- **Change current instrument when changing instrument column (absorb)** -- **Delete effect value when deleting effect** -- **Change order when scrolling outside of pattern bounds**: - - if off, the pattern edit cursor will stay locked within the current order. - - if on, moving the cursor past the edge of the previous or next order will move to that order. -- **Move cursor by edit step on insert (push)** -- **Move cursor to end of clipboard content when pasting** -- **Don't scroll when moving cursor** -- **Double click selects entire column** -- **Allow docking editors** -- **Don't raise pattern editor on click** -- **Focus pattern editor when selecting instrument** -- **Restart song when changing chip properties** -- **Use system file picker**: use native OS file dialog instead of Furnace's. -- **Only allow window movement when clicking on title bar** -- **Enable event delay** - - may cause issues with high-polling-rate mice when previewing notes. -- **Power-saving mode** - - saves power by lowering the frame rate to 2fps when idle. - - may cause issues under Mesa drivers! -- **Disable threaded input (restart after changing!)** - - threaded input processes key presses for note preview on a separate thread (on supported platforms), which reduces latency. - - however, crashes have been reported when threaded input is on. enable this option if that is the case. -- **Remember window position** - - remembers the window's last position on start-up. - **New instruments are blank** -- **Save unused patterns** -- **Compress when saving** - - use zlib to compress saved songs. -- **Cursor follows current order when moving it** - - applies when playback is stopped. -- **Audio export loop/fade out time:** - - **Set to these values on start-up:** - - **Loops**: number of additional times to play through `0Bxx` song loop. - - **Fade out (seconds)**: length of fade out after final loop. - - **Remember last values** -- **Note preview behavior:** - - **Never** - - **When cursor is in Note column** - - **When cursor is in Note column or not in edit mode** - - **Always** -- **Wrap pattern cursor horizontally:** - - **No** - - **Yes** - - **Yes, and move to next/prev row** -- **Wrap pattern cursor vertically:** - - **No** - - **Yes** - - **Yes, and move to next/prev pattern** -- **Cursor movement keys behavior:** - - **Move by one** - - **Move by Edit Step** -- **Effect input cursor behavior:** - - **Move down** - - **Move to effect value (otherwise move down)** - - **Move to effect value/next effect and wrap around** -- **Allow dragging selection:** - - **No** - - **Yes** - - **Yes (while holding Ctrl only)** -# Audio/MIDI +## Audio + +### Output - **Backend**: select SDL or JACK for audio output. - only appears on Linux, or MacOS compiled with JACK support +- **Driver** - **Device**: audio device for playback. - **Sample rate** - **Outputs**: select number of audio outputs created, up to 16. - only appears when Backend is JACK. - **Channels**: number of output channels to use. - **Buffer size**: size of buffer in both samples and milliseconds. -- **Quality**: selects quality of resampling. low quality reduces CPU load. -- **Metronome volume** - **Low-latency mode (experimental!)**: reduces latency by running the engine faster than the tick rate. useful for live playback/jam mode. - _warning:_ experimental! may produce glitches. only enable if your buffer size is small (10ms or less). - **Force mono audio** -- **Software clipping**: clips output to nominal range (-1.0 to 1.0) before passing it to the audio device. - - this avoids activating Windows' built-in limiter. - **want:** displays requested audio configuration. - **got:** displays actual audio configuration returned by audio backend. -- **MIDI input** -- **MIDI output** -- **MIDI input settings** - - **Note input** - - **Velocity input** - - **Map MIDI channels to direct channels** - - **Map Yamaha FM voice data to instruments** - - **Program change is instrument selection** - - **Value input style**: +### Mixing + +- **Quality**: selects quality of resampling. low quality reduces CPU load. +- **Software clipping**: clips output to nominal range (-1.0 to 1.0) before passing it to the audio device. + - this avoids activating Windows' built-in limiter. + +### Metronome + +- **Metronome volume** + + + +## MIDI + +### MIDI input + +- **MIDI input**: input device. +- **Note input** +- **Velocity input** +- **Map MIDI channels to direct channels** +- **Map Yamaha FM voice data to instruments** +- **Program change is instrument selection** +- **Value input style**: + - **Disabled/custom** + - **Two octaves (0 is C-4, F is D#5)** + - **Raw (note number is value)** + - **Two octaves alternate (lower keys are 0-9, upper keys are A-F)** + - **Use dual control change (one for each nibble)** + - **CC of upper nibble** + - **CC of lower nibble** + - **Use 14-bit control change** + - **MSB CC** + - **LSB CC** + - **Use single control change** + - **Control** +- **Per-column control change** + - **Instrument**\ + **Volume**\ + **Effect `x` type**\ + **Effect `x` value** - **Disabled/custom** - - **Two octaves (0 is C-4, F is D#5)** - - **Raw (note number is value)** - - **Two octaves alternate (lower keys are 0-9, upper keys are A-F)** - **Use dual control change (one for each nibble)** - **CC of upper nibble** - **CC of lower nibble** - **Use 14-bit control change** - **MSB CC** - **LSB CC** - - **Use single control change** + - **Use single control change (imprecise)** - **Control** - - **Per-column control change** - - **Instrument**\ - **Volume**\ - **Effect `x` type**\ - **Effect `x` value** - - **Disabled/custom** - - **Use dual control change (one for each nibble)** - - **CC of upper nibble** - - **CC of lower nibble** - - **Use 14-bit control change** - - **MSB CC** - - **LSB CC** - - **Use single control change (imprecise)** - - **Control** - - **Volume curve** - - **Actions:** - - **`+`** button: adds a new action. - - window-with-arrow button: new action with learning! press a button or move a slider/knob/something on your device. - - each action has the following: - - **Type** - - **Channel** - - **Note/Control** - - **Velocity/Value** - - **Action** - - **Learn** - - **Remove** +- **Volume curve** +- **Actions:** + - **`+`** button: adds a new action. + - window-with-arrow button: new action with learning! press a button or move a slider/knob/something on your device. + - each action has the following: + - **Type** + - **Channel** + - **Note/Control** + - **Velocity/Value** + - **Action** + - **Learn** + - **Remove** -- **MIDI output settings** - - **Output mode:** - - **Off (use for TX81Z)** - - **Melodic** - - **Send Program Change** - - **Send MIDI clock** - - **Send MIDI timecode** - - **Timecode frame rate:** - - **Closest to Tick Rate** - - **Film (24fps)** - - **PAL (25fps)** - - **NTSC drop (29.97fps)** - - **NTSC non-drop (30fps)** +### MIDI output -# Emulation +- **MIDI output**: output device. +- **Output mode:** + - **Off (use for TX81Z)** + - **Melodic** +- **Send Program Change** +- **Send MIDI clock** +- **Send MIDI timecode** + - **Timecode frame rate:** + - **Closest to Tick Rate** + - **Film (24fps)** + - **PAL (25fps)** + - **NTSC drop (29.97fps)** + - **NTSC non-drop (30fps)** +## Emulation + +### Cores + - **Arcade/YM2151 core**\ **Genesis/YM2612 core**\ **SN76489 core**\ @@ -202,16 +187,122 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. -# Appearance +## Keyboard + +### Keyboard + +- **Import** +- **Export** +- **Reset defaults** +- several categories of keybinds... + - click on a keybind then enter a key or key combination to change it + - right-click to clear the keybind + + + +## Interface + +### Layout + +- **Workspace layout** + - **Import**: reads a .ini layout file. + - **Export**: writes current layout to a .ini file. + - **Reset**: resets layout to default. +- **Allow docking editors** +- **Remember window position** + - remembers the window's last position on start-up. +- **Only allow window movement when clicking on title bar** +- **Play/edit controls layout:** + - **Classic** + - **Compact** + - **Compact (vertical)** + - **Split** +- **Position of buttons in Orders:** + - **Top** + - **Left** + - **Right** + +### Mouse + +- **Double-click time (seconds)**: maximum time between mouse clicks to recognize them as a double-click. +- **Don't raise pattern editor on click** +- **Focus pattern editor when selecting instrument** +- **Note preview behavior:** + - **Never** + - **When cursor is in Note column** + - **When cursor is in Note column or not in edit mode** + - **Always** +- **Allow dragging selection:** + - **No** + - **Yes** + - **Yes (while holding Ctrl only)** +- **Toggle channel solo on:** select which interactions with a channel header will toggle solo for that channel. + - Right-click or double click + - Right-click + - Double-click +- **Double click selects entire column** + +### Cursor behavior + +- **Insert pushes entire channel row** +- **Pull delete affects entire channel row** +- **Push value when overwriting instead of clearing it**: in the order list and pattern editors, typing into an already-filled value will shift digits instead of starting fresh. + - if off: moving the cursor onto the value `A5` and typing a "B" results in `0B`. + - if on: with the cursor on the value `A5` and typing a "B" results in `5B`. +- **Effect input behavior:** + - **Move down** + - **Move to effect value (otherwise move down)** + - **Move to effect value/next effect and wrap around** +- **Delete effect value when deleting effect** +- **Change current instrument when changing instrument column (absorb)** + + +### Cursor movement + +- **Wrap horizontally:** + - **No** + - **Yes** + - **Yes, and move to next/prev row** +- **Wrap vertically:** + - **No** + - **Yes** + - **Yes, and move to next/prev pattern** + - **Yes, and move to next/prev pattern (wrap around)** +- **Cursor movement keys behavior:** + - **Move by one** + - **Move by Edit Step** +- **Move cursor by edit step on delete** +- **Move cursor by edit step on insert (push)** +- **Move cursor up on backspace-delete** +- **Move cursor to end of clipboard content when pasting** + +### Scrolling + +- **Change order when scrolling outside of pattern bounds**: + - **No**: the pattern edit cursor will stay locked within the current order. + - **Yes**: moving the cursor past the edge of the previous or next order will move to that order, but not past the start or end of a song. + - **Yes, and wrap around song**: as above, but will wrap from song end to start. +- **Cursor follows current order when moving it** + - applies when playback is stopped. +- **Don't scroll when moving cursor** +- **Move cursor with scroll wheel** + + + +## Appearance + +### Scaling -- **Render driver** - **Automatic UI scaling factor**: automatically match the OS's UI scaling. - **UI scaling factor**: only if "Automatic UI scaling factor" is off. +- **Icon size** + +### Text + - **Main font**: if "Custom...", a file path selector will appear beneath. - **Size** - **Pattern font**: if "Custom...", a file path selector will appear beneath. - **Size** -- **Icon size** - **Display Japanese characters**\ **Display Chinese (Simplified) characters**\ **Display Chinese (Traditional) characters**\ @@ -219,25 +310,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - only toggle these options if you have enough graphics memory. - these are a temporary solution until dynamic font atlas is implemented in Dear ImGui. -- **Number of recent files** - -- **Pattern view labels:** -- **Note off (3-char)**: default is `OFF` -- **Note release (3-char)**: default is `===`. -- **Macro release (3-char)**: default is `REL`. -- **Empty field (3-char)**: default is `...`. -- **Empty field (2-char)**: default is `..`. - -- **Orders row number format:** - - **Decimal** - - **Hexadecimal** -- **Pattern row number format:** - - **Decimal** - - **Hexadecimal** -- **FM parameter names:** - - **Friendly** - - **Technical** - - **Technical (alternate)** +### Program - **Title bar:** - **Furnace** @@ -251,43 +324,40 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **File path** - **Cursor details or file path** - **Nothing** -- **Play/edit controls layout:** - - **Classic** - - **Compact** - - **Compact (vertical)** - - **Split** -- **Position of buttons in Orders:** - - **Top** - - **Left** - - **Right** -- **FM parameter editor layout:** - - **Modern** - - **Compact (2x2, classic)** - - **Compact (1x4)** - - **Compact (4x1)** - - **Alternate (2x2)** - - **Alternate (1x4)** - - **Alternate (4x1)** -- **Position of Sustain in FM editor:** - - **Between Decay and Sustain Rate** - - **After Release Rate** -- **Macro editor layout:** - - **Unified** - - **Mobile** - - **Grid** - - **Single (with list)** - - **Single (combo box)** -- **Namco 163 chip name** +### Orders + +- **Highlight channel at cursor in Orders** +- **Orders row number format:** + - **Decimal** + - **Hexadecimal** + +### Pattern + +- **Center pattern view**: centers pattern horizontally in view. +- **Overflow pattern highlights** +- **Display previous/next pattern** +- **Pattern row number format:** + - **Decimal** + - **Hexadecimal** +- **Pattern view labels:** + - **Note off (3-char)**: default is `OFF` + - **Note release (3-char)**: default is `===`. + - **Macro release (3-char)**: default is `REL`. + - **Empty field (3-char)**: default is `...`. + - **Empty field (2-char)**: default is `..`. +- **Pattern view spacing after:** number of pixels of space between columns. + - **Note** + - **Instrument** + - **Volume** + - **Effect** + - **Effect value** +- **Single-digit effects for 00-0F** +- **Use flats instead of sharps** +- **Use German notation**: display `B` notes as `H`, and `A#` notes as `B`. + +### Channel -- **Channel colors:** - - **Single** - - **Channel type** - - **Instrument type** -- **Channel name colors:** - - **Single** - - **Channel type** - - **Instrument type** - **Channel style:** - **Classic** - **Line** @@ -310,60 +380,88 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **Regular** - **Monospace** - **Center channel name** +- **Channel colors:** + - **Single** + - **Channel type** + - **Instrument type** +- **Channel name colors:** + - **Single** + - **Channel type** + - **Instrument type** + +### Assets -- **Colorize instrument editor using instrument type** -- **Use separate colors for carriers/modulators in FM editor** - **Unified instrument/wavetable/sample list** - **Horizontal instrument list** -- **Use standard OPL waveform names** -- **Overflow pattern highlights** -- **Display previous/next pattern** -- **Use German notation**: display `B` notes as `H`, and `A#` notes as `B`. -- **Single-digit effects for 00-0F** -- **Center pattern view**: centers pattern horizontally in view. -- **Unsigned FM detune values** -- **Highlight channel at cursor in Orders** -- **About screen party time** - - _warning:_ may cause epileptic seizures. +- **Colorize instrument editor using instrument type** + +### Macro Editor + +- **Macro editor layout:** + - **Unified** + - **Mobile** + - **Grid** + - **Single (with list)** + - **Single (combo box)** +- **Use classic macro editor vertical slider** + +### Wave Editor - **Use compact wave editor** -- **Use classic macro editor vertical slider** + +### FM Editor + +- **FM parameter names:** + - **Friendly** + - **Technical** + - **Technical (alternate)** +- **Use standard OPL waveform names** +- **FM parameter editor layout:** + - **Modern** + - **Compact (2x2, classic)** + - **Compact (1x4)** + - **Compact (4x1)** + - **Alternate (2x2)** + - **Alternate (1x4)** + - **Alternate (4x1)** +- **Position of Sustain in FM editor:** + - **Between Decay and Sustain Rate** + - **After Release Rate** +- **Use separate colors for carriers/modulators in FM editor** +- **Unsigned FM detune values** + +### Statistics + +- **Chip memory usage unit:** + - **Bytes** + - **Kilobytes** + +### Oscilloscope + +- **Rounded corners** +- **Border** +- **Fill entire window** +- **Waveform goes out of bounds** + +### Windows + - **Rounded window corners** - **Rounded buttons** - **Rounded menu corners** - **Borders around widgets** -- **Disable fade-in during start-up** - -- **Oscilloscope settings:** - - **Rounded corners** - - **Fill entire window** - - **Waveform goes out of bounds** - - **Border** - -- **Pattern view spacing after:** - - **Note** - - **Instrument** - - **Volume** - - **Effect** - - **Effect value** -- **Color scheme** - - **Import** - - **Export** - - **Reset defaults** - - **General** - - **Color scheme type:** - - **Dark** - - **Light** - - **Frame shading** - - several more categories... -# Keyboard +## Color + +### Color scheme - **Import** - **Export** - **Reset defaults** -- several categories of keybinds... - - click on a keybind then enter a key or key combination to change it - - right-click to clear the keybind +- **General** + - **Color scheme type:** + - **Dark** + - **Light** + - **Frame shading**: applies a gradient effect to buttons and input boxes. +- several more categories... From 20ea5827cf3068590882ff1bf1dff481059d2370 Mon Sep 17 00:00:00 2001 From: Eknous-P Date: Sun, 30 Jul 2023 15:10:45 +0400 Subject: [PATCH 056/202] chanOsc note name --- src/gui/chanOsc.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gui/chanOsc.cpp b/src/gui/chanOsc.cpp index 803a5665b..4b575b52b 100644 --- a/src/gui/chanOsc.cpp +++ b/src/gui/chanOsc.cpp @@ -304,6 +304,7 @@ void FurnaceGUI::drawChanOsc() { "- %C: channel short name\n" "- %d: channel number (starting from 0)\n" "- %D: channel number (starting from 1)\n" + "- %n: channel note\n" "- %i: instrument name\n" "- %I: instrument number (decimal)\n" "- %x: instrument number (hex)\n" @@ -539,6 +540,12 @@ void FurnaceGUI::drawChanOsc() { text+=fmt::sprintf("%.2X",chanState->volume>>8); break; } + case 'n': { + DivChannelState* chanState=e->getChanState(ch); + if (chanState==NULL || !(chanState->keyOn)) break; + text+=fmt::sprintf("%s",noteName(short (chanState->note),0)); + break; + } case '%': text+='%'; break; From 71b76e3e88426ea18bb69231f57645e9c4803284 Mon Sep 17 00:00:00 2001 From: cam900 Date: Mon, 31 Jul 2023 20:06:07 +0900 Subject: [PATCH 057/202] Fix K053260 sample offset --- .../vgsound_emu/src/k053260/k053260.cpp | 2 +- src/engine/platform/k053260.cpp | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/extern/vgsound_emu-modified/vgsound_emu/src/k053260/k053260.cpp b/extern/vgsound_emu-modified/vgsound_emu/src/k053260/k053260.cpp index 59d8af8f7..cd6fe8e89 100644 --- a/extern/vgsound_emu-modified/vgsound_emu/src/k053260/k053260.cpp +++ b/extern/vgsound_emu-modified/vgsound_emu/src/k053260/k053260.cpp @@ -226,7 +226,7 @@ void k053260_core::voice_t::write(u8 address, u8 data) m_start = (m_start & ~0x00ff00) | (u32(data) << 8); break; case 6: // start address bit 16-20 - m_start = (m_start & ~0x1f0000) | (u32(bitfield(data, 16, 5)) << 16); + m_start = (m_start & ~0x1f0000) | (u32(bitfield(data, 0, 5)) << 16); break; case 7: // volume m_volume = bitfield(data, 0, 7); diff --git a/src/engine/platform/k053260.cpp b/src/engine/platform/k053260.cpp index 7ba1cc2ca..5791d2426 100644 --- a/src/engine/platform/k053260.cpp +++ b/src/engine/platform/k053260.cpp @@ -145,15 +145,15 @@ void DivPlatformK053260::tick(bool sysTick) { off=8363.0/s->centerRate; } } - DivSample* s=parent->getSample(chan[i].sample); + DivSample* s=parent->getSample(sample); chan[i].freq=0x1000-(int)(off*parent->calcFreq(chan[i].baseFreq,chan[i].pitch,chan[i].fixedArp?chan[i].baseNoteOverride:chan[i].arpOff,chan[i].fixedArp,true,0,chan[i].pitch2,chipClock,CHIP_DIVIDER)); if (chan[i].freq>4095) chan[i].freq=4095; if (chan[i].freq<0) chan[i].freq=0; if (chan[i].keyOn) { unsigned int start=0; unsigned int length=0; - if (chan[i].sample>=0 && chan[i].samplesong.sampleLen) { - start=sampleOffK053260[chan[i].sample]; + if (sample>=0 && samplesong.sampleLen) { + start=sampleOffK053260[sample]; length=s->length8; if (chan[i].reverse) { start+=length; @@ -163,8 +163,7 @@ void DivPlatformK053260::tick(bool sysTick) { if (chan[i].audPos>0) { if (chan[i].reverse) { start=start-MIN(chan[i].audPos,s->length8); - } - else { + } else { start=start+MIN(chan[i].audPos,s->length8); } length=MAX(1,length-chan[i].audPos); From bafb78cb67f799f4765ea6ae6a6b5561479e1d4b Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Mon, 31 Jul 2023 10:44:30 -0700 Subject: [PATCH 058/202] Spacing for clarity, tiny fix. Added spacing to make it easier to work with the document. Also, I keep doing that thing with the SNES where I put "SPC700" but really should just put "SNES". Bad habit. (The real reason for the commit.) --- doc/7-systems/README.md | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/doc/7-systems/README.md b/doc/7-systems/README.md index cd816da3b..c1cf9bbf4 100644 --- a/doc/7-systems/README.md +++ b/doc/7-systems/README.md @@ -4,7 +4,10 @@ this is a list of systems that Furnace supports, as listed in the new file dialo some systems have alternate chips, such as the Sega Genesis having a YM2612, a YM3438, or YMF276 depending on the model. this list shows the default configuration. + + ## Game consoles + - **Sega Genesis**,\ Sega Genesis (extended channel 3),\ Sega Genesis (CSM),\ @@ -42,7 +45,7 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Famicom Disk System**: [2A03](nes.md), [FDS](fds.md) -- **SNES**: [SPC700](snes.md) +- **SNES**: [SNES](snes.md) - **Mattel Intellivision**: [AY-3-8914](ay8910.md) @@ -69,7 +72,10 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Casio PV-1000**: [PV-1000](pv1000.md) + + ## Computers + - **Commodore PET**: [PET](pet.md) - **Commodore VIC-20**: [VIC](vic20.md) @@ -261,8 +267,12 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **TI-99/4A**: [SN94624](sms.md) + + ## Arcade systems + - **Pong**: Pong + - **Bally Midway MCR**: [AY-3-8910](ay8910.md) × 2 - **Williams/Midway Y/T unit w/ADPCM sound board**: [YM2151](ym2152.md), [MSM6295](msm6295.md) @@ -489,7 +499,10 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Irem M92/M107**: [YM2151](ym2152.md), GA20 + + ## FM + - **Yamaha YM2151 (OPM)**: [YM2151](ym2152.md) - **Yamaha YM2203 (OPN)**,\ @@ -535,7 +548,10 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Yamaha YMU759 (MA-2)**: [YMU759](ymu759.md) + + ## Square + - **TI SN76489**: [SN76489](sms.md) - **TI SN76489A**: [SN76489A](sms.md) @@ -572,11 +588,15 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **OKI MSM5232**: [MSM5232](msm5232.md) - **Pong**: Pong + - **NEC D65010G031**: [PV-1000](pv1000.md) - **MOS Technology TED**: [TED](ted.md) + + ## Sample + - **Amiga**: [Amiga](amiga.md) - **SegaPCM**: [SegaPCM](segapcm.md) @@ -593,17 +613,22 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **OKI MSM6295**: [MSM6295](msm6295.md) -- **SNES**: [SPC700](snes.md) +- **SNES**: [SNES](snes.md) - **Konami K007232**: [K007232](k007232.md) - **Irem GA20**: GA20 + - **Generic PCM DAC**: DAC + - **Ensoniq ES5506 (OTTO)**: [ES5506](es5506.md) - **Konami K053260**: [K053260](k056320.md) + + ## Wavetable + - **PC Engine**: [HuC6280](pce.md) - **Konami Bubble System WSG**: [Konami WSG](bubblesystem.md) @@ -659,9 +684,13 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Sharp SM8521**: [SM8521](sm8521.md) - **Dummy System**: Dummy + - **tildearrow Sound Unit**: [TSU](soundunit.md) + + ## DefleMask-compatible + - **Sega Genesis**,\ Sega Genesis (extended channel 3): [YM3438](ym2612.md), [SN76489](sms.md) From ff51f97606e1748724d9be4e2b0a450153165aa9 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Mon, 31 Jul 2023 10:58:19 -0700 Subject: [PATCH 059/202] Document new chanOsc parameter. --- doc/8-advanced/chanosc.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/8-advanced/chanosc.md b/doc/8-advanced/chanosc.md index 4e3962ced..8bcb09125 100644 --- a/doc/8-advanced/chanosc.md +++ b/doc/8-advanced/chanosc.md @@ -19,6 +19,7 @@ right-clicking within the view will change it to the configuration view shown ab - `%C`: channel short name - `%d`: channel number (starting from 0) - `%D`: channel number (starting from 1) + - `%n`: channel note - `%i`: instrument name - `%I`: instrument number (decimal) - `%x`: instrument number (hex) From ed56fc274f17371eec7e6f7893be1e6b16c47574 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Tue, 1 Aug 2023 04:25:21 -0500 Subject: [PATCH 060/202] update the_best-1990.fur --- demos/nes/the_best-1990.fur | Bin 10600 -> 16531 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/demos/nes/the_best-1990.fur b/demos/nes/the_best-1990.fur index c5b62f15f39de90d3e421a3dd053e8966b04db45..ca599260b083cf39b53c8411d71a2bbc561f6dea 100644 GIT binary patch literal 16531 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 C4XN+| From 0c606103e3339f38f05f17566be1193c802c8db1 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Tue, 1 Aug 2023 13:30:57 -0500 Subject: [PATCH 061/202] GUI: fix pushNibble in orders issue #1309 --- src/gui/gui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 4986cdfb4..b2021869d 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -1438,8 +1438,8 @@ void FurnaceGUI::keyDown(SDL_Event& ev) { e->curOrders->ord[orderCursor][curOrder]=((e->curOrders->ord[orderCursor][curOrder]<<4)|num); }); MARK_MODIFIED; + curNibble=!curNibble; if (orderEditMode==2 || orderEditMode==3) { - curNibble=!curNibble; if (!curNibble) { if (orderEditMode==2) { orderCursor++; From f1b560cce993f06a6a2b81d275c624aed917cb37 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Tue, 1 Aug 2023 16:00:13 -0500 Subject: [PATCH 062/202] PC speaker: fix cut freq issue #1307 --- src/engine/platform/pcspkr.cpp | 18 +++++++++++++----- src/engine/platform/pcspkr.h | 3 +++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/engine/platform/pcspkr.cpp b/src/engine/platform/pcspkr.cpp index a275c6350..d6dcc02c8 100644 --- a/src/engine/platform/pcspkr.cpp +++ b/src/engine/platform/pcspkr.cpp @@ -190,9 +190,6 @@ const char** DivPlatformPCSpeaker::getRegisterSheet() { return regCheatSheetPCSpeaker; } -const float cut=0.05; -const float reso=0.06; - void DivPlatformPCSpeaker::acquire_unfilt(short** buf, size_t len) { int out=0; for (size_t i=0; i((freq+16)>>1) && !isMuted[0])?1:0; - low+=0.04*band; - band+=0.04*(next-low-band); + low+=cut*band; + band+=cut*(next-low-band); float out=(low+band)*0.75; if (out>1.0) out=1.0; if (out<-1.0) out=-1.0; @@ -612,6 +609,17 @@ void DivPlatformPCSpeaker::setFlags(const DivConfig& flags) { rate=chipClock/PCSPKR_DIVIDER; speakerType=flags.getInt("speakerType",0)&3; oscBuf->rate=rate; + + switch (speakerType) { + case 1: + cut=2.0*sin(M_PI*1900.0/rate); + reso=0.0; + break; + default: + cut=2.0*sin(M_PI*2375.0/rate); + reso=0.06; + break; + } } void DivPlatformPCSpeaker::notifyInsDeletion(void* ins) { diff --git a/src/engine/platform/pcspkr.h b/src/engine/platform/pcspkr.h index 0437a90c4..d9315b5ec 100644 --- a/src/engine/platform/pcspkr.h +++ b/src/engine/platform/pcspkr.h @@ -57,6 +57,9 @@ class DivPlatformPCSpeaker: public DivDispatch { float low, band; float low2, high2, band2; float low3, band3; + float cut; + float reso; + unsigned short freq, lastFreq; unsigned char regPool[2]; From 85d90b78ea1f5e78b764d92bbd85de47cfaa9040 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Tue, 1 Aug 2023 20:13:34 -0500 Subject: [PATCH 063/202] Furnace CAN TOO!!!!!!!!!!!!!!!!!!!!!!111111 --- demos/gameboy/dtect.fur | Bin 0 -> 4275 bytes demos/gameboy/ice_3_advert.fur | Bin 0 -> 2112 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/gameboy/dtect.fur create mode 100644 demos/gameboy/ice_3_advert.fur diff --git a/demos/gameboy/dtect.fur b/demos/gameboy/dtect.fur new file mode 100644 index 0000000000000000000000000000000000000000..17c5f5bc45618de2ab9fc64b822141f77fe48a1b GIT binary patch literal 4275 zcmdT`%WoS+82{G0cHC|H;#m|P!$Uj-wWT5fDni6boDk7EQPMO*aA32$vA3~zoZWSu z76CCd5*#XV;U!TJ2aep}3_{`r2X07kF^7sj03>dN-#4>sJ1rF)K!TBfyEET>-^};; z&8&~jcB0U6ebJI$r|BR2gop%?wfWlY!n*~G3I&6xJ+)2aWF6i|7|;!Xl__55J^2^y zI%fYFv6uL6LM!1$D7&F}(3R)>NUWU~Nzn9sCyHeEA^7^kH05%f5;D|N_kKa%?inMh z0WSle0zU#1MWQpn`@omL%08moZKC&pZ-5W?6II8Fo(IkXPaPl{JBYdfW#A+b09!!y z5YcUii9Q0vSWC z1%78caUvYi43ebj3(s%CO4>n)gTux%X3SM%a0{3_gW1$myyRx z)%B=*`gnKq@e9|g4Kq@bQN8?h`zemgaT6wmi2cxuMLqI;(4ZbOKb&S$$WCPM2|oyR zEgKSqQ0(E7p*~1U*B1@h=3=8f%#MMjZ#x5eXc{p+6hE;8^qNhaUnIb`YqG0$a3kLf zl33{^Oh;ywJuN-BCr*gd^CxGjm8GSHRr^#YcDA-4Td6%;TUf1?{Vg$5S}0B1vj{N8 zL`6)k)TW;i3$tRey0Cb%nld~L_(o-O(RE_cay-Pue8ADLXIGYLmFcSJHUhVy=9v#3 zZWVjDxuS!FdKBv%;QmqW$8Ln6M4UJgTyW}65F$@FyxUK!6KvoD;vX(%?h@tHUHuNd zqo#?n)07S~I}GnhMTWBYZr7mic5{FUSU?^q0AoNA*az6aeqbCp02~Ak0YrV+_hH|M zeINFH*!N-IhkYORec1P5--mr4_I=p*Vc&;6+h)!bu4?oJuGQ~>pMlEE{1V@MN*&iI zUw-+*SdrzpS+yLKJkCB<^R?yU4`A*Sq^4HMQx~kFQT6CM)9UgOh;%FHJZHM2OK$}3##Kv`TDlCU_0kVw5$#EV;?RlwKi8kk^zR?& zTjWITtF&`!^@j)APYkpVkdxq0Zh-EtbN(tbcIp5%v|2e+y#zH9{6J$HZp;XL?GTavlY*d#amxs9MnA(%=re9i!GCTTTxVt& zzOxGW<`TZggl{zATTLJx-45IV+zIghiXKuok7)XFkdR>k8%63di zJ%H!6u7n79GL*^Qp zE}0&gKAG!e)_D&zP@8S2U0Z5%E-h-WfE#4Xp(5s?2M3w$U+rw8XQ6YV$A_PfM9uUKdwnr+X>%q0q^~jF@fAXjwQIYW3K?UDB zdINnhT137}brJc-#FdSpeB-j|0xtqD7%ClllFzJfd~6kamen&pyI9;EvVkvTz0lXZ zkjV>eULm(}r zYGOFb#WVf^{s;a8idRqjS8%Q0H@n*)Au--OIO%t1-rM(i`{vDV`$yNxC40$HMK8Bj zaQY94NI~()WJf0w5>_%Ph@K7ANRZi`z?I016vv)5r~WX`V*Vwci`EP(JGbtXeHt0= zpK^0fS>0Ol;82TI<-3KPW0%X`#%+}SbC?W+TSG!$!_{l_?-TS5x{RicL!Y4^(6U8z z3~eNczCa-%^a!o+T6KJ7mpng@$4-V(D>`bq>=g$(I^1Pd_0~efE~#|UU9k~eSydaZpAQ*qv8o?&N4+UH zcEwS?Qz)pSGk}_EPjq3tPyS&m;g${kY8=o(RQ;HZhYoqw$c#Cd*CUtE#8FewQPY4V zWI`5{fZCuW)DCq(ozOX`3px*7fQSO{0r&uX06qX8fDgb2-~;dh_yBwWJ^&wp55O}U z7n4l8F{gE=1~ZoR%=8X|XdIJ8_3?v_p?fcKZGUtPaVbY}z8UF-PO+ zZc372Q4@&--WOps$A-G-dx|6-r;Nu$_fjKSX8TUCi*}`QiUny1uqLw zNG~2I+RP?>CDBWix&mE<&O@D0JA~b&bf&vE;!ORmOeW=RABiq;A_H|tiSW*cP+w0B zJ#Rq?s+8=q1MDGV$)?5>5XP=SS0S$DqznUbXo(gW+RhK*3kC0utrI&=cCO07;;X9aX z&^9&Tuft#0={6A?r{#34ZHQy4w1>xW><8`Nq9)g)zeru^yx5cTqOSEyker1*3p*6a zIoNZsSqr#tiw5S<{u_1<>;l+1p$iz~ZgAIob}f3e-?L-U*uJb;`?6s*FgH&5KlZ#s yoJQZq4VDXrT#)h4Jh6ZuW_UOB Date: Tue, 1 Aug 2023 20:22:44 -0500 Subject: [PATCH 064/202] GUI: fix note trigger chan osc mode when channel not visible in pattern --- src/gui/gui.cpp | 5 +++++ src/gui/pattern.cpp | 2 -- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index b2021869d..aa85a877b 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -4521,6 +4521,11 @@ bool FurnaceGUI::loop() { MEASURE(effectList,drawEffectList()); } + for (int i=0; igetTotalChannelCount(); i++) { + keyHit1[i]-=0.2f; + if (keyHit1[i]<0.0f) keyHit1[i]=0.0f; + } + activateTutorial(GUI_TUTORIAL_OVERVIEW); if (inspectorOpen) ImGui::ShowMetricsWindow(&inspectorOpen); diff --git a/src/gui/pattern.cpp b/src/gui/pattern.cpp index 590676fc7..c21372466 100644 --- a/src/gui/pattern.cpp +++ b/src/gui/pattern.cpp @@ -829,8 +829,6 @@ void FurnaceGUI::drawPattern() { ImGui::GetColorU32(chanHeadBase) ); } - keyHit1[i]-=0.2f; - if (keyHit1[i]<0.0f) keyHit1[i]=0.0f; } } From cf80eca19ffa9c0a90595d758973d0ff5bfe1bd8 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 2 Aug 2023 01:27:29 -0500 Subject: [PATCH 065/202] FIX build --- src/engine/platform/pcspkr.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/engine/platform/pcspkr.cpp b/src/engine/platform/pcspkr.cpp index d6dcc02c8..4ead1f11f 100644 --- a/src/engine/platform/pcspkr.cpp +++ b/src/engine/platform/pcspkr.cpp @@ -20,6 +20,8 @@ #include "pcspkr.h" #include "../engine.h" #include "../../ta-log.h" + +#define _USE_MATH_DEFINES #include #ifdef __linux__ From 537f90c3f1d7aa3999d94c97a6751d56d4e32d81 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 2 Aug 2023 14:58:10 -0500 Subject: [PATCH 066/202] fix again --- src/engine/platform/pcspkr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/platform/pcspkr.cpp b/src/engine/platform/pcspkr.cpp index 4ead1f11f..593c41b8a 100644 --- a/src/engine/platform/pcspkr.cpp +++ b/src/engine/platform/pcspkr.cpp @@ -17,11 +17,11 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#define _USE_MATH_DEFINES #include "pcspkr.h" #include "../engine.h" #include "../../ta-log.h" -#define _USE_MATH_DEFINES #include #ifdef __linux__ From 11836ad0796358c315ff182bd4eddab4fd1765be Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Wed, 2 Aug 2023 10:39:46 -0700 Subject: [PATCH 067/202] Doc `0Dxx` better, add tutorial link. ...because I can never seem to do one thing at a time? --- doc/1-intro/README.md | 8 +++++++- doc/3-pattern/effects.md | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/doc/1-intro/README.md b/doc/1-intro/README.md index 8e9289fc6..e5430504b 100644 --- a/doc/1-intro/README.md +++ b/doc/1-intro/README.md @@ -20,4 +20,10 @@ it also has a flexible windowing system which you may move around and organize. see [2-interface](../2-interface/README.md) and [3-pattern](../3-pattern/README.md) for more information. -once familiar with the tracker, look to [9-guides](../9-guides/README.md) for useful techniques. \ No newline at end of file +once familiar with the tracker, look to [9-guides](../9-guides/README.md) for useful techniques. + + + +# links + +[Furnace Tutorials](https://youtube.com/playlist?list=PLCELB6AsTZUnwv0PC5AAGHjvg47F44YQ1): video tutorials created by Spinning Square Waves. \ No newline at end of file diff --git a/doc/3-pattern/effects.md b/doc/3-pattern/effects.md index 91e311473..5b1e6397a 100644 --- a/doc/3-pattern/effects.md +++ b/doc/3-pattern/effects.md @@ -71,8 +71,8 @@ not all chips support these effects. - `0Bxx`: **Jump to order.** `x` is the order to play after the current row. - this marks the end of a loop with order `x` as the loop start. -- `0Dxx`: **Jump to next pattern.** skips the current row and remainder of current order. - - this can be used to shorten the current order. +- `0Dxx`: **Jump to next pattern.** skips the current row and remainder of current order. `x` is the row at which to start playing the next pattern. + - this can be used to shorten the current order as though it had a different pattern length. - `FFxx`: **Stop song.** stops playback and ends the song. `x` is ignored. ## note From 0f4f1a1cf5c5f2a1edbfadc4c62c79066ace7161 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Wed, 2 Aug 2023 13:48:07 -0700 Subject: [PATCH 068/202] Big font configuration options! --- src/gui/gui.cpp | 14 ++++++++ src/gui/gui.h | 6 +++- src/gui/settings.cpp | 85 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 104 insertions(+), 1 deletion(-) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index aa85a877b..8ec8dba63 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -1835,6 +1835,16 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { dpiScale ); break; + case GUI_FILE_LOAD_BIG_FONT: + if (!dirExists(workingDirFont)) workingDirFont=getHomeDir(); + hasOpened=fileDialog->openLoad( + "Select Font", + {"compatible files", "*.ttf *.otf *.ttc"}, + "compatible files{.ttf,.otf,.ttc}", + workingDirFont, + dpiScale + ); + break; case GUI_FILE_LOAD_PAT_FONT: if (!dirExists(workingDirFont)) workingDirFont=getHomeDir(); hasOpened=fileDialog->openLoad( @@ -4622,6 +4632,7 @@ bool FurnaceGUI::loop() { workingDirROMExport=fileDialog->getPath()+DIR_SEPARATOR_STR; break; case GUI_FILE_LOAD_MAIN_FONT: + case GUI_FILE_LOAD_BIG_FONT: case GUI_FILE_LOAD_PAT_FONT: workingDirFont=fileDialog->getPath()+DIR_SEPARATOR_STR; break; @@ -5083,6 +5094,9 @@ bool FurnaceGUI::loop() { case GUI_FILE_LOAD_MAIN_FONT: settings.mainFontPath=copyOfName; break; + case GUI_FILE_LOAD_BIG_FONT: + settings.bigFontPath=copyOfName; + break; case GUI_FILE_LOAD_PAT_FONT: settings.patFontPath=copyOfName; break; diff --git a/src/gui/gui.h b/src/gui/gui.h index ee158f6af..c2aa280c4 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -423,6 +423,7 @@ enum FurnaceGUIFileDialogs { GUI_FILE_EXPORT_CMDSTREAM_BINARY, GUI_FILE_EXPORT_ROM, GUI_FILE_LOAD_MAIN_FONT, + GUI_FILE_LOAD_BIG_FONT, GUI_FILE_LOAD_PAT_FONT, GUI_FILE_IMPORT_COLORS, GUI_FILE_IMPORT_KEYBINDS, @@ -1387,7 +1388,7 @@ class FurnaceGUI { char emptyLabel2[32]; struct Settings { - int mainFontSize, patFontSize, iconSize; + int mainFontSize, bigFontSize, patFontSize, iconSize; int audioEngine; int audioQuality; int audioChans; @@ -1404,6 +1405,7 @@ class FurnaceGUI { String tg100Path; String mu5Path; int mainFont; + int bigFont; int patFont; int audioRate; int audioBufSize; @@ -1526,6 +1528,7 @@ class FurnaceGUI { int noDMFCompat; unsigned int maxUndoSteps; String mainFontPath; + String bigFontPath; String patFontPath; String audioDevice; String midiInDevice; @@ -1681,6 +1684,7 @@ class FurnaceGUI { noDMFCompat(0), maxUndoSteps(100), mainFontPath(""), + bigFontPath(""), patFontPath(""), audioDevice(""), midiInDevice(""), diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 2d92a4c87..be83d6198 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -58,6 +58,16 @@ const char* mainFonts[]={ "" }; +const char* bigFonts[]={ + "IBM Plex Sans", + "Liberation Sans", + "Exo", + "Proggy Clean", + "GNU Unifont", + "", + "" +}; + const char* patFonts[]={ "IBM Plex Mono", "Mononoki", @@ -1857,6 +1867,20 @@ void FurnaceGUI::drawSettings() { if (settings.mainFontSize<3) settings.mainFontSize=3; if (settings.mainFontSize>96) settings.mainFontSize=96; } + ImGui::Text("Big font"); + ImGui::SameLine(); + ImGui::Combo("##BigFont",&settings.bigFont,bigFonts,7); + if (settings.bigFont==6) { + ImGui::InputText("##BigFontPath",&settings.bigFontPath); + ImGui::SameLine(); + if (ImGui::Button(ICON_FA_FOLDER "##BigFontLoad")) { + openFileDialog(GUI_FILE_LOAD_BIG_FONT); + } + } + if (ImGui::InputInt("Size##BigFontSize",&settings.bigFontSize)) { + if (settings.bigFontSize<3) settings.bigFontSize=3; + if (settings.bigFontSize>96) settings.bigFontSize=96; + } ImGui::Text("Pattern font"); ImGui::SameLine(); ImGui::Combo("##PatFont",&settings.patFont,patFonts,7); @@ -2712,6 +2736,7 @@ void FurnaceGUI::drawSettings() { void FurnaceGUI::syncSettings() { settings.mainFontSize=e->getConfInt("mainFontSize",18); + settings.bigFontSize=e->getConfInt("bigFontSize",36); settings.patFontSize=e->getConfInt("patFontSize",18); settings.iconSize=e->getConfInt("iconSize",16); settings.audioEngine=(e->getConfString("audioEngine","SDL")=="SDL")?1:0; @@ -2739,6 +2764,7 @@ void FurnaceGUI::syncSettings() { settings.mainFont=e->getConfInt("mainFont",0); settings.patFont=e->getConfInt("patFont",0); settings.mainFontPath=e->getConfString("mainFontPath",""); + settings.bigFontPath=e->getConfString("bigFontPath",""); settings.patFontPath=e->getConfString("patFontPath",""); settings.patRowsBase=e->getConfInt("patRowsBase",0); settings.orderRowsBase=e->getConfInt("orderRowsBase",1); @@ -2866,6 +2892,7 @@ void FurnaceGUI::syncSettings() { settings.noDMFCompat=e->getConfInt("noDMFCompat",0); clampSetting(settings.mainFontSize,2,96); + clampSetting(settings.bigFontSize,2,96); clampSetting(settings.patFontSize,2,96); clampSetting(settings.iconSize,2,48); clampSetting(settings.audioEngine,0,1); @@ -3067,6 +3094,7 @@ void FurnaceGUI::commitSettings() { ); e->setConf("mainFontSize",settings.mainFontSize); + e->setConf("bigFontSize",settings.bigFontSize); e->setConf("patFontSize",settings.patFontSize); e->setConf("iconSize",settings.iconSize); e->setConf("audioEngine",String(audioBackends[settings.audioEngine])); @@ -3092,8 +3120,10 @@ void FurnaceGUI::commitSettings() { e->setConf("tg100Path",settings.tg100Path); e->setConf("mu5Path",settings.mu5Path); e->setConf("mainFont",settings.mainFont); + e->setConf("bigFont",settings.mainFont); e->setConf("patFont",settings.patFont); e->setConf("mainFontPath",settings.mainFontPath); + e->setConf("bigFontPath",settings.bigFontPath); e->setConf("patFontPath",settings.patFontPath); e->setConf("patRowsBase",settings.patRowsBase); e->setConf("orderRowsBase",settings.orderRowsBase); @@ -3650,6 +3680,11 @@ void FurnaceGUI::popWarningColor() { // TODO! #define SYSTEM_FONT_PATH_3 "C:\\Windows\\Fonts\\tahoma.ttf" // TODO! +#define SYSTEM_BIG_FONT_PATH_1 "C:\\Windows\\Fonts\\segoeui.ttf" +#define SYSTEM_BIG_FONT_PATH_2 "C:\\Windows\\Fonts\\tahoma.ttf" +// TODO! +#define SYSTEM_BIG_FONT_PATH_3 "C:\\Windows\\Fonts\\tahoma.ttf" +// TODO! #define SYSTEM_PAT_FONT_PATH_1 "C:\\Windows\\Fonts\\consola.ttf" #define SYSTEM_PAT_FONT_PATH_2 "C:\\Windows\\Fonts\\cour.ttf" // GOOD LUCK WITH THIS ONE - UNTESTED @@ -3658,6 +3693,9 @@ void FurnaceGUI::popWarningColor() { #define SYSTEM_FONT_PATH_1 "/System/Library/Fonts/SFAANS.ttf" #define SYSTEM_FONT_PATH_2 "/System/Library/Fonts/Helvetica.ttc" #define SYSTEM_FONT_PATH_3 "/System/Library/Fonts/Helvetica.dfont" +#define SYSTEM_BIG_FONT_PATH_1 "/System/Library/Fonts/SFAANS.ttf" +#define SYSTEM_BIG_FONT_PATH_2 "/System/Library/Fonts/Helvetica.ttc" +#define SYSTEM_BIG_FONT_PATH_3 "/System/Library/Fonts/Helvetica.dfont" #define SYSTEM_PAT_FONT_PATH_1 "/System/Library/Fonts/SFNSMono.ttf" #define SYSTEM_PAT_FONT_PATH_2 "/System/Library/Fonts/Courier New.ttf" #define SYSTEM_PAT_FONT_PATH_3 "/System/Library/Fonts/Courier New.ttf" @@ -3666,6 +3704,9 @@ void FurnaceGUI::popWarningColor() { #define SYSTEM_FONT_PATH_2 "/system/fonts/DroidSans.ttf" #define SYSTEM_FONT_PATH_3 "/system/fonts/DroidSans.ttf" // ??? +#define SYSTEM_BIG_FONT_PATH_1 "/system/fonts/Roboto-Regular.ttf" +#define SYSTEM_BIG_FONT_PATH_2 "/system/fonts/DroidSans.ttf" +#define SYSTEM_BIG_FONT_PATH_3 "/system/fonts/DroidSans.ttf" #define SYSTEM_PAT_FONT_PATH_1 "/system/fonts/RobotoMono-Regular.ttf" #define SYSTEM_PAT_FONT_PATH_2 "/system/fonts/DroidSansMono.ttf" #define SYSTEM_PAT_FONT_PATH_3 "/system/fonts/CutiveMono.ttf" @@ -3673,6 +3714,9 @@ void FurnaceGUI::popWarningColor() { #define SYSTEM_FONT_PATH_1 "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf" #define SYSTEM_FONT_PATH_2 "/usr/share/fonts/TTF/DejaVuSans.ttf" #define SYSTEM_FONT_PATH_3 "/usr/share/fonts/ubuntu/Ubuntu-R.ttf" +#define SYSTEM_BIG_FONT_PATH_1 "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf" +#define SYSTEM_BIG_FONT_PATH_2 "/usr/share/fonts/TTF/DejaVuSans.ttf" +#define SYSTEM_BIG_FONT_PATH_3 "/usr/share/fonts/ubuntu/Ubuntu-R.ttf" #define SYSTEM_PAT_FONT_PATH_1 "/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf" #define SYSTEM_PAT_FONT_PATH_2 "/usr/share/fonts/TTF/DejaVuSansMono.ttf" #define SYSTEM_PAT_FONT_PATH_3 "/usr/share/fonts/ubuntu/UbuntuMono-R.ttf" @@ -3913,12 +3957,17 @@ void FurnaceGUI::applyUISettings(bool updateFonts) { } if (settings.mainFont<0 || settings.mainFont>6) settings.mainFont=0; + if (settings.bigFont<0 || settings.bigFont>6) settings.bigFont=0; if (settings.patFont<0 || settings.patFont>6) settings.patFont=0; if (settings.mainFont==6 && settings.mainFontPath.empty()) { logW("UI font path is empty! reverting to default font"); settings.mainFont=0; } + if (settings.bigFont==6 && settings.bigFontPath.empty()) { + logW("UI font path is empty! reverting to default font"); + settings.bigFont=0; + } if (settings.patFont==6 && settings.patFontPath.empty()) { logW("pattern font path is empty! reverting to default font"); settings.patFont=0; @@ -4004,9 +4053,45 @@ void FurnaceGUI::applyUISettings(bool updateFonts) { // 0x39B = Λ static const ImWchar bigFontRange[]={0x20,0xFF,0x39b,0x39b,0}; +/* if ((bigFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(font_plexSans_compressed_data,font_plexSans_compressed_size,MAX(1,40*dpiScale),NULL,bigFontRange))==NULL) { logE("could not load big UI font!"); } +*/ + if (settings.mainFontSize==settings.bigFontSize && settings.bigFont<5 && builtinFontM[settings.bigFont]==builtinFont[settings.mainFont]) { + logD("using main font for big font."); + bigFont=mainFont; + } else { + if (settings.bigFont==6) { // custom font + if ((bigFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(settings.bigFontPath.c_str(),MAX(1,e->getConfInt("bigFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + logW("could not load big font! reverting to default font"); + settings.bigFont=0; + if ((bigFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.bigFont],builtinFontMLen[settings.bigFont],MAX(1,e->getConfInt("bigFontSize",36)*dpiScale),NULL,bigFontRange))==NULL) { + logE("could not load big font! falling back to IBM Plex Sans."); + bigFont=ImGui::GetIO().Fonts->AddFontDefault(); + } + } + } else if (settings.bigFont==5) { // system font + if ((bigFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(SYSTEM_BIG_FONT_PATH_1,MAX(1,e->getConfInt("bigFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + if ((bigFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(SYSTEM_BIG_FONT_PATH_2,MAX(1,e->getConfInt("bigFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + if ((bigFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(SYSTEM_BIG_FONT_PATH_3,MAX(1,e->getConfInt("bigFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + logW("could not load big font! reverting to default font"); + settings.bigFont=0; + if ((bigFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.bigFont],builtinFontMLen[settings.bigFont],MAX(1,e->getConfInt("bigFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + logE("could not load big font! falling back to IBM Plex Sans."); + bigFont=ImGui::GetIO().Fonts->AddFontDefault(); + } + } + } + } + } else { + if ((bigFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.bigFont],builtinFontMLen[settings.bigFont],MAX(1,e->getConfInt("bigFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + logE("could not load big font!"); + bigFont=ImGui::GetIO().Fonts->AddFontDefault(); + } + } + } + mainFont->FallbackChar='?'; mainFont->EllipsisChar='.'; From bf9f37e8d9fb2a193e4227ceaba578fd3d348b84 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Wed, 2 Aug 2023 14:05:36 -0700 Subject: [PATCH 069/202] Fixed up about screen. Inter-line spacing didn't scale with font size. Oops! --- src/gui/about.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/about.cpp b/src/gui/about.cpp index b849c6bbe..24d96f6b8 100644 --- a/src/gui/about.cpp +++ b/src/gui/about.cpp @@ -285,7 +285,7 @@ void FurnaceGUI::drawAbout() { for (size_t i=0; icanvasH) continue; dl->AddText(bigFont,bigFont->FontSize, ImVec2(posX+dpiScale,posY+dpiScale), From 14d1e83cd6d48d9ff603a6c9e639c31971e9b19d Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Wed, 2 Aug 2023 14:22:21 -0700 Subject: [PATCH 070/202] Oh, and it'd be good to load the big font setting. Can't believe I missed this! --- src/gui/settings.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index be83d6198..2274345bf 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -2762,6 +2762,7 @@ void FurnaceGUI::syncSettings() { settings.tg100Path=e->getConfString("tg100Path",""); settings.mu5Path=e->getConfString("mu5Path",""); settings.mainFont=e->getConfInt("mainFont",0); + settings.bigFont=e->getConfInt("bigFont",0); settings.patFont=e->getConfInt("patFont",0); settings.mainFontPath=e->getConfString("mainFontPath",""); settings.bigFontPath=e->getConfString("bigFontPath",""); From ebf8ebf7c0e93cc06cc0390b867d39a0ac3e0fbb Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Wed, 2 Aug 2023 20:49:01 -0700 Subject: [PATCH 071/202] Restoring old bigFont, making new headFont instead. Now we'll see the original font for the credits and the clock. --- src/gui/about.cpp | 2 +- src/gui/gui.cpp | 8 +-- src/gui/gui.h | 11 ++-- src/gui/settings.cpp | 116 +++++++++++++++++++++---------------------- 4 files changed, 69 insertions(+), 68 deletions(-) diff --git a/src/gui/about.cpp b/src/gui/about.cpp index 24d96f6b8..b849c6bbe 100644 --- a/src/gui/about.cpp +++ b/src/gui/about.cpp @@ -285,7 +285,7 @@ void FurnaceGUI::drawAbout() { for (size_t i=0; icanvasH) continue; dl->AddText(bigFont,bigFont->FontSize, ImVec2(posX+dpiScale,posY+dpiScale), diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 8ec8dba63..6f48c9c62 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -1835,7 +1835,7 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { dpiScale ); break; - case GUI_FILE_LOAD_BIG_FONT: + case GUI_FILE_LOAD_HEAD_FONT: if (!dirExists(workingDirFont)) workingDirFont=getHomeDir(); hasOpened=fileDialog->openLoad( "Select Font", @@ -4632,7 +4632,7 @@ bool FurnaceGUI::loop() { workingDirROMExport=fileDialog->getPath()+DIR_SEPARATOR_STR; break; case GUI_FILE_LOAD_MAIN_FONT: - case GUI_FILE_LOAD_BIG_FONT: + case GUI_FILE_LOAD_HEAD_FONT: case GUI_FILE_LOAD_PAT_FONT: workingDirFont=fileDialog->getPath()+DIR_SEPARATOR_STR; break; @@ -5094,8 +5094,8 @@ bool FurnaceGUI::loop() { case GUI_FILE_LOAD_MAIN_FONT: settings.mainFontPath=copyOfName; break; - case GUI_FILE_LOAD_BIG_FONT: - settings.bigFontPath=copyOfName; + case GUI_FILE_LOAD_HEAD_FONT: + settings.headFontPath=copyOfName; break; case GUI_FILE_LOAD_PAT_FONT: settings.patFontPath=copyOfName; diff --git a/src/gui/gui.h b/src/gui/gui.h index c2aa280c4..8fa81c1bf 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -423,7 +423,7 @@ enum FurnaceGUIFileDialogs { GUI_FILE_EXPORT_CMDSTREAM_BINARY, GUI_FILE_EXPORT_ROM, GUI_FILE_LOAD_MAIN_FONT, - GUI_FILE_LOAD_BIG_FONT, + GUI_FILE_LOAD_HEAD_FONT, GUI_FILE_LOAD_PAT_FONT, GUI_FILE_IMPORT_COLORS, GUI_FILE_IMPORT_KEYBINDS, @@ -1370,6 +1370,7 @@ class FurnaceGUI { ImFont* iconFont; ImFont* patFont; ImFont* bigFont; + ImFont* headFont; ImWchar* fontRange; ImVec4 uiColors[GUI_COLOR_MAX]; ImVec4 volColors[128]; @@ -1388,7 +1389,7 @@ class FurnaceGUI { char emptyLabel2[32]; struct Settings { - int mainFontSize, bigFontSize, patFontSize, iconSize; + int mainFontSize, headFontSize, patFontSize, iconSize; int audioEngine; int audioQuality; int audioChans; @@ -1405,7 +1406,7 @@ class FurnaceGUI { String tg100Path; String mu5Path; int mainFont; - int bigFont; + int headFont; int patFont; int audioRate; int audioBufSize; @@ -1528,7 +1529,7 @@ class FurnaceGUI { int noDMFCompat; unsigned int maxUndoSteps; String mainFontPath; - String bigFontPath; + String headFontPath; String patFontPath; String audioDevice; String midiInDevice; @@ -1684,7 +1685,7 @@ class FurnaceGUI { noDMFCompat(0), maxUndoSteps(100), mainFontPath(""), - bigFontPath(""), + headFontPath(""), patFontPath(""), audioDevice(""), midiInDevice(""), diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 2274345bf..4980d7e58 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -58,7 +58,7 @@ const char* mainFonts[]={ "" }; -const char* bigFonts[]={ +const char* headFonts[]={ "IBM Plex Sans", "Liberation Sans", "Exo", @@ -252,7 +252,7 @@ const char* specificControls[18]={ } else { \ _subInit=true; \ } \ - ImGui::PushFont(bigFont); \ + ImGui::PushFont(headFont); \ ImGui::TextUnformatted(what); \ ImGui::PopFont(); @@ -1867,19 +1867,19 @@ void FurnaceGUI::drawSettings() { if (settings.mainFontSize<3) settings.mainFontSize=3; if (settings.mainFontSize>96) settings.mainFontSize=96; } - ImGui::Text("Big font"); + ImGui::Text("Head font"); ImGui::SameLine(); - ImGui::Combo("##BigFont",&settings.bigFont,bigFonts,7); - if (settings.bigFont==6) { - ImGui::InputText("##BigFontPath",&settings.bigFontPath); + ImGui::Combo("##HeadFont",&settings.headFont,headFonts,7); + if (settings.headFont==6) { + ImGui::InputText("##HeadFontPath",&settings.headFontPath); ImGui::SameLine(); - if (ImGui::Button(ICON_FA_FOLDER "##BigFontLoad")) { - openFileDialog(GUI_FILE_LOAD_BIG_FONT); + if (ImGui::Button(ICON_FA_FOLDER "##HeadFontLoad")) { + openFileDialog(GUI_FILE_LOAD_HEAD_FONT); } } - if (ImGui::InputInt("Size##BigFontSize",&settings.bigFontSize)) { - if (settings.bigFontSize<3) settings.bigFontSize=3; - if (settings.bigFontSize>96) settings.bigFontSize=96; + if (ImGui::InputInt("Size##HeadFontSize",&settings.headFontSize)) { + if (settings.headFontSize<3) settings.headFontSize=3; + if (settings.headFontSize>96) settings.headFontSize=96; } ImGui::Text("Pattern font"); ImGui::SameLine(); @@ -2736,7 +2736,7 @@ void FurnaceGUI::drawSettings() { void FurnaceGUI::syncSettings() { settings.mainFontSize=e->getConfInt("mainFontSize",18); - settings.bigFontSize=e->getConfInt("bigFontSize",36); + settings.headFontSize=e->getConfInt("headFontSize",36); settings.patFontSize=e->getConfInt("patFontSize",18); settings.iconSize=e->getConfInt("iconSize",16); settings.audioEngine=(e->getConfString("audioEngine","SDL")=="SDL")?1:0; @@ -2762,10 +2762,10 @@ void FurnaceGUI::syncSettings() { settings.tg100Path=e->getConfString("tg100Path",""); settings.mu5Path=e->getConfString("mu5Path",""); settings.mainFont=e->getConfInt("mainFont",0); - settings.bigFont=e->getConfInt("bigFont",0); + settings.headFont=e->getConfInt("headFont",0); settings.patFont=e->getConfInt("patFont",0); settings.mainFontPath=e->getConfString("mainFontPath",""); - settings.bigFontPath=e->getConfString("bigFontPath",""); + settings.headFontPath=e->getConfString("headFontPath",""); settings.patFontPath=e->getConfString("patFontPath",""); settings.patRowsBase=e->getConfInt("patRowsBase",0); settings.orderRowsBase=e->getConfInt("orderRowsBase",1); @@ -2893,7 +2893,7 @@ void FurnaceGUI::syncSettings() { settings.noDMFCompat=e->getConfInt("noDMFCompat",0); clampSetting(settings.mainFontSize,2,96); - clampSetting(settings.bigFontSize,2,96); + clampSetting(settings.headFontSize,2,96); clampSetting(settings.patFontSize,2,96); clampSetting(settings.iconSize,2,48); clampSetting(settings.audioEngine,0,1); @@ -3095,7 +3095,7 @@ void FurnaceGUI::commitSettings() { ); e->setConf("mainFontSize",settings.mainFontSize); - e->setConf("bigFontSize",settings.bigFontSize); + e->setConf("headFontSize",settings.headFontSize); e->setConf("patFontSize",settings.patFontSize); e->setConf("iconSize",settings.iconSize); e->setConf("audioEngine",String(audioBackends[settings.audioEngine])); @@ -3121,10 +3121,10 @@ void FurnaceGUI::commitSettings() { e->setConf("tg100Path",settings.tg100Path); e->setConf("mu5Path",settings.mu5Path); e->setConf("mainFont",settings.mainFont); - e->setConf("bigFont",settings.mainFont); + e->setConf("headFont",settings.mainFont); e->setConf("patFont",settings.patFont); e->setConf("mainFontPath",settings.mainFontPath); - e->setConf("bigFontPath",settings.bigFontPath); + e->setConf("headFontPath",settings.headFontPath); e->setConf("patFontPath",settings.patFontPath); e->setConf("patRowsBase",settings.patRowsBase); e->setConf("orderRowsBase",settings.orderRowsBase); @@ -3297,7 +3297,7 @@ void FurnaceGUI::commitSettings() { ImGui::GetIO().Fonts->Clear(); mainFont=ImGui::GetIO().Fonts->AddFontDefault(); patFont=mainFont; - bigFont=mainFont; + headFont=mainFont; if (rend) rend->destroyFontsTexture(); if (!ImGui::GetIO().Fonts->Build()) { logE("error again while building font atlas!"); @@ -3681,10 +3681,10 @@ void FurnaceGUI::popWarningColor() { // TODO! #define SYSTEM_FONT_PATH_3 "C:\\Windows\\Fonts\\tahoma.ttf" // TODO! -#define SYSTEM_BIG_FONT_PATH_1 "C:\\Windows\\Fonts\\segoeui.ttf" -#define SYSTEM_BIG_FONT_PATH_2 "C:\\Windows\\Fonts\\tahoma.ttf" +#define SYSTEM_HEAD_FONT_PATH_1 "C:\\Windows\\Fonts\\segoeui.ttf" +#define SYSTEM_HEAD_FONT_PATH_2 "C:\\Windows\\Fonts\\tahoma.ttf" // TODO! -#define SYSTEM_BIG_FONT_PATH_3 "C:\\Windows\\Fonts\\tahoma.ttf" +#define SYSTEM_HEAD_FONT_PATH_3 "C:\\Windows\\Fonts\\tahoma.ttf" // TODO! #define SYSTEM_PAT_FONT_PATH_1 "C:\\Windows\\Fonts\\consola.ttf" #define SYSTEM_PAT_FONT_PATH_2 "C:\\Windows\\Fonts\\cour.ttf" @@ -3694,9 +3694,9 @@ void FurnaceGUI::popWarningColor() { #define SYSTEM_FONT_PATH_1 "/System/Library/Fonts/SFAANS.ttf" #define SYSTEM_FONT_PATH_2 "/System/Library/Fonts/Helvetica.ttc" #define SYSTEM_FONT_PATH_3 "/System/Library/Fonts/Helvetica.dfont" -#define SYSTEM_BIG_FONT_PATH_1 "/System/Library/Fonts/SFAANS.ttf" -#define SYSTEM_BIG_FONT_PATH_2 "/System/Library/Fonts/Helvetica.ttc" -#define SYSTEM_BIG_FONT_PATH_3 "/System/Library/Fonts/Helvetica.dfont" +#define SYSTEM_HEAD_FONT_PATH_1 "/System/Library/Fonts/SFAANS.ttf" +#define SYSTEM_HEAD_FONT_PATH_2 "/System/Library/Fonts/Helvetica.ttc" +#define SYSTEM_HEAD_FONT_PATH_3 "/System/Library/Fonts/Helvetica.dfont" #define SYSTEM_PAT_FONT_PATH_1 "/System/Library/Fonts/SFNSMono.ttf" #define SYSTEM_PAT_FONT_PATH_2 "/System/Library/Fonts/Courier New.ttf" #define SYSTEM_PAT_FONT_PATH_3 "/System/Library/Fonts/Courier New.ttf" @@ -3705,9 +3705,9 @@ void FurnaceGUI::popWarningColor() { #define SYSTEM_FONT_PATH_2 "/system/fonts/DroidSans.ttf" #define SYSTEM_FONT_PATH_3 "/system/fonts/DroidSans.ttf" // ??? -#define SYSTEM_BIG_FONT_PATH_1 "/system/fonts/Roboto-Regular.ttf" -#define SYSTEM_BIG_FONT_PATH_2 "/system/fonts/DroidSans.ttf" -#define SYSTEM_BIG_FONT_PATH_3 "/system/fonts/DroidSans.ttf" +#define SYSTEM_HEAD_FONT_PATH_1 "/system/fonts/Roboto-Regular.ttf" +#define SYSTEM_HEAD_FONT_PATH_2 "/system/fonts/DroidSans.ttf" +#define SYSTEM_HEAD_FONT_PATH_3 "/system/fonts/DroidSans.ttf" #define SYSTEM_PAT_FONT_PATH_1 "/system/fonts/RobotoMono-Regular.ttf" #define SYSTEM_PAT_FONT_PATH_2 "/system/fonts/DroidSansMono.ttf" #define SYSTEM_PAT_FONT_PATH_3 "/system/fonts/CutiveMono.ttf" @@ -3715,9 +3715,9 @@ void FurnaceGUI::popWarningColor() { #define SYSTEM_FONT_PATH_1 "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf" #define SYSTEM_FONT_PATH_2 "/usr/share/fonts/TTF/DejaVuSans.ttf" #define SYSTEM_FONT_PATH_3 "/usr/share/fonts/ubuntu/Ubuntu-R.ttf" -#define SYSTEM_BIG_FONT_PATH_1 "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf" -#define SYSTEM_BIG_FONT_PATH_2 "/usr/share/fonts/TTF/DejaVuSans.ttf" -#define SYSTEM_BIG_FONT_PATH_3 "/usr/share/fonts/ubuntu/Ubuntu-R.ttf" +#define SYSTEM_HEAD_FONT_PATH_1 "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf" +#define SYSTEM_HEAD_FONT_PATH_2 "/usr/share/fonts/TTF/DejaVuSans.ttf" +#define SYSTEM_HEAD_FONT_PATH_3 "/usr/share/fonts/ubuntu/Ubuntu-R.ttf" #define SYSTEM_PAT_FONT_PATH_1 "/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf" #define SYSTEM_PAT_FONT_PATH_2 "/usr/share/fonts/TTF/DejaVuSansMono.ttf" #define SYSTEM_PAT_FONT_PATH_3 "/usr/share/fonts/ubuntu/UbuntuMono-R.ttf" @@ -3958,16 +3958,16 @@ void FurnaceGUI::applyUISettings(bool updateFonts) { } if (settings.mainFont<0 || settings.mainFont>6) settings.mainFont=0; - if (settings.bigFont<0 || settings.bigFont>6) settings.bigFont=0; + if (settings.headFont<0 || settings.headFont>6) settings.headFont=0; if (settings.patFont<0 || settings.patFont>6) settings.patFont=0; if (settings.mainFont==6 && settings.mainFontPath.empty()) { logW("UI font path is empty! reverting to default font"); settings.mainFont=0; } - if (settings.bigFont==6 && settings.bigFontPath.empty()) { + if (settings.headFont==6 && settings.headFontPath.empty()) { logW("UI font path is empty! reverting to default font"); - settings.bigFont=0; + settings.headFont=0; } if (settings.patFont==6 && settings.patFontPath.empty()) { logW("pattern font path is empty! reverting to default font"); @@ -4054,41 +4054,41 @@ void FurnaceGUI::applyUISettings(bool updateFonts) { // 0x39B = Λ static const ImWchar bigFontRange[]={0x20,0xFF,0x39b,0x39b,0}; -/* + if ((bigFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(font_plexSans_compressed_data,font_plexSans_compressed_size,MAX(1,40*dpiScale),NULL,bigFontRange))==NULL) { logE("could not load big UI font!"); } -*/ - if (settings.mainFontSize==settings.bigFontSize && settings.bigFont<5 && builtinFontM[settings.bigFont]==builtinFont[settings.mainFont]) { - logD("using main font for big font."); - bigFont=mainFont; + + if (settings.mainFontSize==settings.headFontSize && settings.headFont<5 && builtinFontM[settings.headFont]==builtinFont[settings.mainFont]) { + logD("using main font for header font."); + headFont=mainFont; } else { - if (settings.bigFont==6) { // custom font - if ((bigFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(settings.bigFontPath.c_str(),MAX(1,e->getConfInt("bigFontSize",36)*dpiScale),NULL,upTo800))==NULL) { - logW("could not load big font! reverting to default font"); - settings.bigFont=0; - if ((bigFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.bigFont],builtinFontMLen[settings.bigFont],MAX(1,e->getConfInt("bigFontSize",36)*dpiScale),NULL,bigFontRange))==NULL) { - logE("could not load big font! falling back to IBM Plex Sans."); - bigFont=ImGui::GetIO().Fonts->AddFontDefault(); + if (settings.headFont==6) { // custom font + if ((headFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(settings.headFontPath.c_str(),MAX(1,e->getConfInt("headFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + logW("could not load header font! reverting to default font"); + settings.headFont=0; + if ((headFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.headFont],builtinFontMLen[settings.headFont],MAX(1,e->getConfInt("headFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + logE("could not load header font! falling back to IBM Plex Sans."); + headFont=ImGui::GetIO().Fonts->AddFontDefault(); } } - } else if (settings.bigFont==5) { // system font - if ((bigFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(SYSTEM_BIG_FONT_PATH_1,MAX(1,e->getConfInt("bigFontSize",36)*dpiScale),NULL,upTo800))==NULL) { - if ((bigFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(SYSTEM_BIG_FONT_PATH_2,MAX(1,e->getConfInt("bigFontSize",36)*dpiScale),NULL,upTo800))==NULL) { - if ((bigFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(SYSTEM_BIG_FONT_PATH_3,MAX(1,e->getConfInt("bigFontSize",36)*dpiScale),NULL,upTo800))==NULL) { - logW("could not load big font! reverting to default font"); - settings.bigFont=0; - if ((bigFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.bigFont],builtinFontMLen[settings.bigFont],MAX(1,e->getConfInt("bigFontSize",36)*dpiScale),NULL,upTo800))==NULL) { - logE("could not load big font! falling back to IBM Plex Sans."); - bigFont=ImGui::GetIO().Fonts->AddFontDefault(); + } else if (settings.headFont==5) { // system font + if ((headFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(SYSTEM_HEAD_FONT_PATH_1,MAX(1,e->getConfInt("headFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + if ((headFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(SYSTEM_HEAD_FONT_PATH_2,MAX(1,e->getConfInt("headFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + if ((headFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(SYSTEM_HEAD_FONT_PATH_3,MAX(1,e->getConfInt("headFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + logW("could not load header font! reverting to default font"); + settings.headFont=0; + if ((headFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.headFont],builtinFontMLen[settings.headFont],MAX(1,e->getConfInt("headFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + logE("could not load header font! falling back to IBM Plex Sans."); + headFont=ImGui::GetIO().Fonts->AddFontDefault(); } } } } } else { - if ((bigFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.bigFont],builtinFontMLen[settings.bigFont],MAX(1,e->getConfInt("bigFontSize",36)*dpiScale),NULL,upTo800))==NULL) { - logE("could not load big font!"); - bigFont=ImGui::GetIO().Fonts->AddFontDefault(); + if ((headFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.headFont],builtinFontMLen[settings.headFont],MAX(1,e->getConfInt("headFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + logE("could not load header font!"); + headFont=ImGui::GetIO().Fonts->AddFontDefault(); } } } From 7d8c1b6efc20134a3db6d7b41b25e67b01f79698 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 3 Aug 2023 00:32:50 -0500 Subject: [PATCH 072/202] NES: fix DPCM samples having wrong size --- src/engine/sample.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/engine/sample.cpp b/src/engine/sample.cpp index 437b8bbcc..17cd235c1 100644 --- a/src/engine/sample.cpp +++ b/src/engine/sample.cpp @@ -480,6 +480,7 @@ bool DivSample::saveRaw(const char* path) { // 16-bit memory is padded to 512, to make things easier for ADPCM-A/B. bool DivSample::initInternal(DivSampleDepth d, int count) { + logV("initInternal(%d,%d)",(int)d,count); switch (d) { case DIV_SAMPLE_DEPTH_1BIT: // 1-bit if (data1!=NULL) delete[] data1; @@ -489,7 +490,7 @@ bool DivSample::initInternal(DivSampleDepth d, int count) { break; case DIV_SAMPLE_DEPTH_1BIT_DPCM: // DPCM if (dataDPCM!=NULL) delete[] dataDPCM; - lengthDPCM=1+((((count+7)/8)+15)&(~15)); + lengthDPCM=1+((((count-1)/8)+15)&(~15)); dataDPCM=new unsigned char[lengthDPCM]; memset(dataDPCM,0xaa,lengthDPCM); break; @@ -748,7 +749,11 @@ void DivSample::convert(DivSampleDepth newDepth) { setSampleCount((samples+7)&(~7)); break; case DIV_SAMPLE_DEPTH_1BIT_DPCM: - setSampleCount((1+((((samples+7)/8)+15)&(~15)))<<3); + if (samples) { + setSampleCount((1+((((samples-1)/8)+15)&(~15)))<<3); + } else { + setSampleCount(8); + } break; case DIV_SAMPLE_DEPTH_YMZ_ADPCM: setSampleCount(((lengthZ+3)&(~0x03))*2); @@ -1168,7 +1173,7 @@ void DivSample::render(unsigned int formatMask) { if (!initInternal(DIV_SAMPLE_DEPTH_1BIT_DPCM,samples)) return; int accum=63; int next=63; - for (unsigned int i=0; i>3)>9; if (next>accum) { dataDPCM[i>>3]|=1<<(i&7); From 747b5d19bd4c2bec73067a9235b19e66bab96850 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 3 Aug 2023 00:40:53 -0500 Subject: [PATCH 073/202] NES: whoops! issue #1313 --- src/engine/platform/nes.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/platform/nes.cpp b/src/engine/platform/nes.cpp index 2ea68f756..657a084e0 100644 --- a/src/engine/platform/nes.cpp +++ b/src/engine/platform/nes.cpp @@ -332,7 +332,7 @@ void DivPlatformNES::tick(bool sysTick) { if (chan[4].keyOn) { if (dpcmMode && !skipRegisterWrites && dacSample>=0 && dacSamplesong.sampleLen) { unsigned int dpcmAddr=sampleOffDPCM[dacSample]; - unsigned int dpcmLen=(parent->getSample(dacSample)->lengthDPCM+15)>>4; + unsigned int dpcmLen=parent->getSample(dacSample)->lengthDPCM>>4; if (dpcmLen>255) dpcmLen=255; goingToLoop=parent->getSample(dacSample)->isLoopable(); // write DPCM From 23daabf5b98ae85333b8fb0f23033f47777886c5 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 3 Aug 2023 00:45:03 -0500 Subject: [PATCH 074/202] Game Boy: remove debug message --- src/engine/platform/gb.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/engine/platform/gb.cpp b/src/engine/platform/gb.cpp index cec83e6df..7e2086db0 100644 --- a/src/engine/platform/gb.cpp +++ b/src/engine/platform/gb.cpp @@ -81,7 +81,6 @@ void DivPlatformGB::acquire(short** buf, size_t len) { } void DivPlatformGB::updateWave() { - logV("WAVE UPDATE"); rWrite(0x1a,0); for (int i=0; i<16; i++) { int nibble1=ws.output[((i<<1)+antiClickWavePos)&31]; From 06d3e8a4b30b8f778125579eb1290cbd09ffd87a Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Wed, 2 Aug 2023 22:59:45 -0700 Subject: [PATCH 075/202] Initializing variables, font size change. --- src/gui/gui.cpp | 4 ++++ src/gui/gui.h | 3 ++- src/gui/settings.cpp | 16 ++++++++-------- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 6f48c9c62..61cddac39 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -3869,6 +3869,7 @@ bool FurnaceGUI::loop() { mainFont=ImGui::GetIO().Fonts->AddFontDefault(); patFont=mainFont; bigFont=mainFont; + headFont=mainFont; if (rend) rend->destroyFontsTexture(); if (!ImGui::GetIO().Fonts->Build()) { logE("error again while building font atlas!"); @@ -6025,6 +6026,7 @@ bool FurnaceGUI::loop() { mainFont=ImGui::GetIO().Fonts->AddFontDefault(); patFont=mainFont; bigFont=mainFont; + headFont=mainFont; if (rend) rend->destroyFontsTexture(); if (!ImGui::GetIO().Fonts->Build()) { logE("error again while building font atlas!"); @@ -6480,6 +6482,7 @@ bool FurnaceGUI::init() { mainFont=ImGui::GetIO().Fonts->AddFontDefault(); patFont=mainFont; bigFont=mainFont; + headFont=headFont; if (rend) rend->destroyFontsTexture(); if (!ImGui::GetIO().Fonts->Build()) { logE("error again while building font atlas!"); @@ -6826,6 +6829,7 @@ FurnaceGUI::FurnaceGUI(): iconFont(NULL), patFont(NULL), bigFont(NULL), + headFont(NULL), fontRange(NULL), prevInsData(NULL), curIns(0), diff --git a/src/gui/gui.h b/src/gui/gui.h index 8fa81c1bf..b4deadf27 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1389,7 +1389,7 @@ class FurnaceGUI { char emptyLabel2[32]; struct Settings { - int mainFontSize, headFontSize, patFontSize, iconSize; + int mainFontSize, patFontSize, headFontSize, iconSize; int audioEngine; int audioQuality; int audioChans; @@ -1548,6 +1548,7 @@ class FurnaceGUI { Settings(): mainFontSize(18), patFontSize(18), + headFontSize(27), iconSize(16), audioEngine(DIV_AUDIO_SDL), audioQuality(0), diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 4980d7e58..b1fc3e2b0 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -2736,7 +2736,7 @@ void FurnaceGUI::drawSettings() { void FurnaceGUI::syncSettings() { settings.mainFontSize=e->getConfInt("mainFontSize",18); - settings.headFontSize=e->getConfInt("headFontSize",36); + settings.headFontSize=e->getConfInt("headFontSize",27); settings.patFontSize=e->getConfInt("patFontSize",18); settings.iconSize=e->getConfInt("iconSize",16); settings.audioEngine=(e->getConfString("audioEngine","SDL")=="SDL")?1:0; @@ -4064,21 +4064,21 @@ void FurnaceGUI::applyUISettings(bool updateFonts) { headFont=mainFont; } else { if (settings.headFont==6) { // custom font - if ((headFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(settings.headFontPath.c_str(),MAX(1,e->getConfInt("headFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + if ((headFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(settings.headFontPath.c_str(),MAX(1,e->getConfInt("headFontSize",27)*dpiScale),NULL,upTo800))==NULL) { logW("could not load header font! reverting to default font"); settings.headFont=0; - if ((headFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.headFont],builtinFontMLen[settings.headFont],MAX(1,e->getConfInt("headFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + if ((headFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.headFont],builtinFontMLen[settings.headFont],MAX(1,e->getConfInt("headFontSize",27)*dpiScale),NULL,upTo800))==NULL) { logE("could not load header font! falling back to IBM Plex Sans."); headFont=ImGui::GetIO().Fonts->AddFontDefault(); } } } else if (settings.headFont==5) { // system font - if ((headFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(SYSTEM_HEAD_FONT_PATH_1,MAX(1,e->getConfInt("headFontSize",36)*dpiScale),NULL,upTo800))==NULL) { - if ((headFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(SYSTEM_HEAD_FONT_PATH_2,MAX(1,e->getConfInt("headFontSize",36)*dpiScale),NULL,upTo800))==NULL) { - if ((headFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(SYSTEM_HEAD_FONT_PATH_3,MAX(1,e->getConfInt("headFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + if ((headFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(SYSTEM_HEAD_FONT_PATH_1,MAX(1,e->getConfInt("headFontSize",27)*dpiScale),NULL,upTo800))==NULL) { + if ((headFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(SYSTEM_HEAD_FONT_PATH_2,MAX(1,e->getConfInt("headFontSize",27)*dpiScale),NULL,upTo800))==NULL) { + if ((headFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(SYSTEM_HEAD_FONT_PATH_3,MAX(1,e->getConfInt("headFontSize",27)*dpiScale),NULL,upTo800))==NULL) { logW("could not load header font! reverting to default font"); settings.headFont=0; - if ((headFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.headFont],builtinFontMLen[settings.headFont],MAX(1,e->getConfInt("headFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + if ((headFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.headFont],builtinFontMLen[settings.headFont],MAX(1,e->getConfInt("headFontSize",27)*dpiScale),NULL,upTo800))==NULL) { logE("could not load header font! falling back to IBM Plex Sans."); headFont=ImGui::GetIO().Fonts->AddFontDefault(); } @@ -4086,7 +4086,7 @@ void FurnaceGUI::applyUISettings(bool updateFonts) { } } } else { - if ((headFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.headFont],builtinFontMLen[settings.headFont],MAX(1,e->getConfInt("headFontSize",36)*dpiScale),NULL,upTo800))==NULL) { + if ((headFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.headFont],builtinFontMLen[settings.headFont],MAX(1,e->getConfInt("headFontSize",27)*dpiScale),NULL,upTo800))==NULL) { logE("could not load header font!"); headFont=ImGui::GetIO().Fonts->AddFontDefault(); } From 3837fe59fb5038544efcfe2679140c3201da1676 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 3 Aug 2023 01:10:25 -0500 Subject: [PATCH 076/202] SN: fix key off --- src/engine/platform/sms.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/engine/platform/sms.cpp b/src/engine/platform/sms.cpp index 640f364ea..76aa62fcb 100644 --- a/src/engine/platform/sms.cpp +++ b/src/engine/platform/sms.cpp @@ -296,6 +296,10 @@ void DivPlatformSMS::tick(bool sysTick) { rWrite(0,0x90|(i<<5)|(isMuted[i]?15:(15-(chan[i].outVol&15)))); chan[i].writeVol=false; } + if (chan[i].keyOff) { + rWrite(0,0x9f|i<<5); + chan[i].keyOff=false; + } } } @@ -309,6 +313,7 @@ int DivPlatformSMS::dispatch(DivCommand c) { chan[c.chan].actualNote=c.value; } chan[c.chan].active=true; + chan[c.chan].keyOff=false; //if (!parent->song.brokenOutVol2) { chan[c.chan].writeVol=true; chan[c.chan].outVol=chan[c.chan].vol; @@ -321,7 +326,7 @@ int DivPlatformSMS::dispatch(DivCommand c) { break; case DIV_CMD_NOTE_OFF: chan[c.chan].active=false; - rWrite(0,0x9f|c.chan<<5); + chan[c.chan].keyOff=true; chan[c.chan].macroInit(NULL); break; case DIV_CMD_NOTE_OFF_ENV: From 3ca687553f2c0f0937d2421b62d112f83b29fc75 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Wed, 2 Aug 2023 23:20:59 -0700 Subject: [PATCH 077/202] At least it's fixed now. --- src/gui/gui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 61cddac39..58fb3e7d5 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -6482,7 +6482,7 @@ bool FurnaceGUI::init() { mainFont=ImGui::GetIO().Fonts->AddFontDefault(); patFont=mainFont; bigFont=mainFont; - headFont=headFont; + headFont=mainFont; if (rend) rend->destroyFontsTexture(); if (!ImGui::GetIO().Fonts->Build()) { logE("error again while building font atlas!"); From c58eec5753ef6a09761573f1053f1d1b579819cf Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 3 Aug 2023 03:54:06 -0500 Subject: [PATCH 078/202] do not reset the timer (and remove intro monitor) --- src/engine/playback.cpp | 4 ++-- src/gui/gui.cpp | 14 -------------- src/gui/gui.h | 2 +- 3 files changed, 3 insertions(+), 17 deletions(-) diff --git a/src/engine/playback.cpp b/src/engine/playback.cpp index aabce5c6a..544d59250 100644 --- a/src/engine/playback.cpp +++ b/src/engine/playback.cpp @@ -1967,8 +1967,8 @@ void DivEngine::nextBuf(float** in, float** out, int inChans, int outChans, unsi if (cycles<=0) { // we have to tick if (nextTick()) { - totalTicks=0; - totalSeconds=0; + /*totalTicks=0; + totalSeconds=0;*/ lastLoopPos=size-(runLeftG>>MASTER_CLOCK_PREC); logD("last loop pos: %d for a size of %d and runLeftG of %d",lastLoopPos,size,runLeftG); totalLoops++; diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index aa85a877b..e7221f941 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -4476,17 +4476,6 @@ bool FurnaceGUI::loop() { } MEASURE(songInfo,drawSongInfo()); MEASURE(orders,drawOrders()); - if (introMonOpen) { - int totalTicks=e->getTotalTicks(); - int totalSeconds=e->getTotalSeconds(); - double newMonitorPos=totalSeconds+((double)totalTicks/1000000.0); - - if (fabs(newMonitorPos-monitorPos)>0.08) monitorPos=newMonitorPos; - - drawIntro(monitorPos,true); - - if (e->isPlaying()) monitorPos+=ImGui::GetIO().DeltaTime; - } MEASURE(sampleList,drawSampleList()); MEASURE(sampleEdit,drawSampleEdit()); MEASURE(waveList,drawWaveList()); @@ -6079,7 +6068,6 @@ bool FurnaceGUI::init() { clockOpen=e->getConfBool("clockOpen",false); speedOpen=e->getConfBool("speedOpen",true); groovesOpen=e->getConfBool("groovesOpen",false); - introMonOpen=e->getConfBool("introMonOpen",false); regViewOpen=e->getConfBool("regViewOpen",false); logOpen=e->getConfBool("logOpen",false); effectListOpen=e->getConfBool("effectListOpen",true); @@ -6597,7 +6585,6 @@ void FurnaceGUI::commitState() { e->setConf("clockOpen",clockOpen); e->setConf("speedOpen",speedOpen); e->setConf("groovesOpen",groovesOpen); - e->setConf("introMonOpen",introMonOpen); e->setConf("regViewOpen",regViewOpen); e->setConf("logOpen",logOpen); e->setConf("effectListOpen",effectListOpen); @@ -6881,7 +6868,6 @@ FurnaceGUI::FurnaceGUI(): clockOpen(false), speedOpen(true), groovesOpen(false), - introMonOpen(false), basicMode(true), shortIntro(false), insListDir(false), diff --git a/src/gui/gui.h b/src/gui/gui.h index ee158f6af..f35b0b692 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1727,7 +1727,7 @@ class FurnaceGUI { bool mixerOpen, debugOpen, inspectorOpen, oscOpen, volMeterOpen, statsOpen, compatFlagsOpen; bool pianoOpen, notesOpen, channelsOpen, regViewOpen, logOpen, effectListOpen, chanOscOpen; bool subSongsOpen, findOpen, spoilerOpen, patManagerOpen, sysManagerOpen, clockOpen, speedOpen; - bool groovesOpen, introMonOpen; + bool groovesOpen; bool basicMode, shortIntro; bool insListDir, waveListDir, sampleListDir; From 69c4c58cc5580402d3613f7cfdee50a3e848a32d Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 3 Aug 2023 04:11:36 -0500 Subject: [PATCH 079/202] ARREGLAR --- src/gui/intro.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/gui/intro.cpp b/src/gui/intro.cpp index bace14396..0fc1c9600 100644 --- a/src/gui/intro.cpp +++ b/src/gui/intro.cpp @@ -104,10 +104,7 @@ void FurnaceGUI::endIntroTune() { void FurnaceGUI::drawIntro(double introTime, bool monitor) { if (monitor) { - if (introTime<0.0) introTime=0.0; - if (introTime>11.0) introTime=11.0; - if (!introMonOpen) return; - if (introPos<(shortIntro?1.0:11.0)) return; + return; } if (introPos<(shortIntro?1.0:11.0) || monitor) { if (!monitor) { @@ -117,7 +114,7 @@ void FurnaceGUI::drawIntro(double introTime, bool monitor) { ImGui::SetNextWindowSize(ImVec2(canvasW,canvasH)); if (introPos<0.1) ImGui::SetNextWindowFocus(); } - if (ImGui::Begin(monitor?"IntroMon X":"Intro",monitor?(&introMonOpen):NULL,monitor?globalWinFlags:(ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoDocking|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoBackground))) { + if (ImGui::Begin(monitor?"IntroMon X":"Intro",NULL,monitor?globalWinFlags:(ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoDocking|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoBackground))) { if (monitor) { if (ImGui::Button("Preview")) { introPos=0; From cafc6f391de555bdcfd4212659ac59853e86c538 Mon Sep 17 00:00:00 2001 From: Eknous <61464512+Eknous-P@users.noreply.github.com> Date: Thu, 3 Aug 2023 14:25:26 +0400 Subject: [PATCH 080/202] chanOsc automatic columns + fix chanOsc channel note text (#1305) * chanOsc note name * chanOsc auto cols * lowercase c for consistency * fix chan note text * change int to short * simplify * visible chan count for calculation * cleanup * cleanup 2 (not removing the comma yet) * remove extra spaces * add id --- src/gui/chanOsc.cpp | 35 ++++++++++++++++++++++++++++++++++- src/gui/gui.cpp | 3 +++ src/gui/gui.h | 2 +- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/gui/chanOsc.cpp b/src/gui/chanOsc.cpp index 4b575b52b..8ace8a5b2 100644 --- a/src/gui/chanOsc.cpp +++ b/src/gui/chanOsc.cpp @@ -41,6 +41,13 @@ const char* chanOscRefs[]={ "Note Trigger" }; +const char* autoColsTypes[]={ + "Off", + "Mode 1", + "Mode 2", + "Mode 3" +}; + float FurnaceGUI::computeGradPos(int type, int chan) { switch (type) { case GUI_OSCREF_NONE: @@ -146,6 +153,19 @@ void FurnaceGUI::drawChanOsc() { centerSettingReset=true; } + ImGui::TableNextColumn(); + ImGui::Text("Automatic columns"); + ImGui::SameLine(); + ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); + const char* previewColType = autoColsTypes[chanOscAutoColsType&3]; + if (ImGui::BeginCombo("##AutoCols",previewColType)) { + for (int j=0; j<4; j++) { + const bool isSelected=(chanOscAutoColsType==j); + if (ImGui::Selectable(autoColsTypes[j],isSelected)) chanOscAutoColsType=j; + if (isSelected) ImGui::SetItemDefaultFocus(); + } + ImGui::EndCombo(); + } ImGui::EndTable(); } @@ -346,6 +366,16 @@ void FurnaceGUI::drawChanOsc() { oscChans.push_back(i); } } + + switch (chanOscAutoColsType) { + case 1: chanOscCols=sqrt(oscChans.size()); break; + case 2: chanOscCols=sqrt(oscChans.size()+1); break; + case 3: chanOscCols=sqrt(oscChans.size())+1; break; + default: break; + } + if (chanOscCols<1) chanOscCols=1; + if (chanOscCols>64) chanOscCols=64; + int rows=(oscBufs.size()+(chanOscCols-1))/chanOscCols; for (size_t i=0; igetChanState(ch); if (chanState==NULL || !(chanState->keyOn)) break; - text+=fmt::sprintf("%s",noteName(short (chanState->note),0)); + short tempNote=chanState->note; //all of this conversion is necessary because notes 100-102 are special chars + short noteMod=tempNote%12+12; //also note 0 is a BUG, hence +12 on the note and -1 on the octave + short oct=tempNote/12-1; + text+=fmt::sprintf("%s",noteName(noteMod,oct)); break; } case '%': diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index e7221f941..1d1b21207 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -6126,6 +6126,7 @@ bool FurnaceGUI::init() { pianoInputPadMode=e->getConfInt("pianoInputPadMode",pianoInputPadMode); chanOscCols=e->getConfInt("chanOscCols",3); + chanOscAutoColsType=e->getConfInt("chanOscAutoColsType",0); chanOscColorX=e->getConfInt("chanOscColorX",GUI_OSCREF_CENTER); chanOscColorY=e->getConfInt("chanOscColorY",GUI_OSCREF_CENTER); chanOscTextX=e->getConfFloat("chanOscTextX",0.0f); @@ -6643,6 +6644,7 @@ void FurnaceGUI::commitState() { // commit per-chan osc state e->setConf("chanOscCols",chanOscCols); + e->setConf("chanOscAutoColsType",chanOscAutoColsType); e->setConf("chanOscColorX",chanOscColorX); e->setConf("chanOscColorY",chanOscColorY); e->setConf("chanOscTextX",chanOscTextX); @@ -7086,6 +7088,7 @@ FurnaceGUI::FurnaceGUI(): oscWindowSize(20.0f), oscZoomSlider(false), chanOscCols(3), + chanOscAutoColsType(0), chanOscColorX(GUI_OSCREF_CENTER), chanOscColorY(GUI_OSCREF_CENTER), chanOscWindowSize(20.0f), diff --git a/src/gui/gui.h b/src/gui/gui.h index f35b0b692..f6eb1d58c 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1970,7 +1970,7 @@ class FurnaceGUI { bool oscZoomSlider; // per-channel oscilloscope - int chanOscCols, chanOscColorX, chanOscColorY; + int chanOscCols, chanOscAutoColsType, chanOscColorX, chanOscColorY; float chanOscWindowSize, chanOscTextX, chanOscTextY, chanOscAmplify; bool chanOscWaveCorr, chanOscOptions, updateChanOscGradTex, chanOscUseGrad, chanOscNormalize; String chanOscTextFormat; From 629d73f421cbe0232fd725a72dd90f34af214ae8 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 3 Aug 2023 05:27:20 -0500 Subject: [PATCH 081/202] address review comments --- src/gui/settings.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index b1fc3e2b0..e8ec87699 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -3297,6 +3297,7 @@ void FurnaceGUI::commitSettings() { ImGui::GetIO().Fonts->Clear(); mainFont=ImGui::GetIO().Fonts->AddFontDefault(); patFont=mainFont; + bigFont=mainFont; headFont=mainFont; if (rend) rend->destroyFontsTexture(); if (!ImGui::GetIO().Fonts->Build()) { From fcba244c847849cda6e3bbd8d9e98c9cc7acf772 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 3 Aug 2023 05:31:55 -0500 Subject: [PATCH 082/202] fix --- src/gui/settings.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index e8ec87699..5faa3f2be 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -1867,7 +1867,7 @@ void FurnaceGUI::drawSettings() { if (settings.mainFontSize<3) settings.mainFontSize=3; if (settings.mainFontSize>96) settings.mainFontSize=96; } - ImGui::Text("Head font"); + ImGui::Text("Header font"); ImGui::SameLine(); ImGui::Combo("##HeadFont",&settings.headFont,headFonts,7); if (settings.headFont==6) { @@ -4060,7 +4060,7 @@ void FurnaceGUI::applyUISettings(bool updateFonts) { logE("could not load big UI font!"); } - if (settings.mainFontSize==settings.headFontSize && settings.headFont<5 && builtinFontM[settings.headFont]==builtinFont[settings.mainFont]) { + if (settings.mainFontSize==settings.headFontSize && settings.headFont<5 && builtinFont[settings.headFont]==builtinFont[settings.mainFont]) { logD("using main font for header font."); headFont=mainFont; } else { From eb9bd913e2499ba2157c3c060f0bf73c10535435 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 3 Aug 2023 05:34:49 -0500 Subject: [PATCH 083/202] and one more fix --- src/gui/settings.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 5faa3f2be..7f582f6c8 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -4068,7 +4068,7 @@ void FurnaceGUI::applyUISettings(bool updateFonts) { if ((headFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(settings.headFontPath.c_str(),MAX(1,e->getConfInt("headFontSize",27)*dpiScale),NULL,upTo800))==NULL) { logW("could not load header font! reverting to default font"); settings.headFont=0; - if ((headFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.headFont],builtinFontMLen[settings.headFont],MAX(1,e->getConfInt("headFontSize",27)*dpiScale),NULL,upTo800))==NULL) { + if ((headFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFont[settings.headFont],builtinFontLen[settings.headFont],MAX(1,e->getConfInt("headFontSize",27)*dpiScale),NULL,upTo800))==NULL) { logE("could not load header font! falling back to IBM Plex Sans."); headFont=ImGui::GetIO().Fonts->AddFontDefault(); } @@ -4079,7 +4079,7 @@ void FurnaceGUI::applyUISettings(bool updateFonts) { if ((headFont=ImGui::GetIO().Fonts->AddFontFromFileTTF(SYSTEM_HEAD_FONT_PATH_3,MAX(1,e->getConfInt("headFontSize",27)*dpiScale),NULL,upTo800))==NULL) { logW("could not load header font! reverting to default font"); settings.headFont=0; - if ((headFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.headFont],builtinFontMLen[settings.headFont],MAX(1,e->getConfInt("headFontSize",27)*dpiScale),NULL,upTo800))==NULL) { + if ((headFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFont[settings.headFont],builtinFontLen[settings.headFont],MAX(1,e->getConfInt("headFontSize",27)*dpiScale),NULL,upTo800))==NULL) { logE("could not load header font! falling back to IBM Plex Sans."); headFont=ImGui::GetIO().Fonts->AddFontDefault(); } @@ -4087,7 +4087,7 @@ void FurnaceGUI::applyUISettings(bool updateFonts) { } } } else { - if ((headFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFontM[settings.headFont],builtinFontMLen[settings.headFont],MAX(1,e->getConfInt("headFontSize",27)*dpiScale),NULL,upTo800))==NULL) { + if ((headFont=ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF(builtinFont[settings.headFont],builtinFontLen[settings.headFont],MAX(1,e->getConfInt("headFontSize",27)*dpiScale),NULL,upTo800))==NULL) { logE("could not load header font!"); headFont=ImGui::GetIO().Fonts->AddFontDefault(); } From 235a58d110324a1a57e69acf77a4c65a8142f888 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Thu, 3 Aug 2023 10:40:16 -0700 Subject: [PATCH 084/202] Reformat for conciseness. (Not done yet.) Instead of a full list of systems, we'll choose a few highlight systems and then have a full list of chips for reference. (Everything else is commented out for now. for convenience.) What systems should be added or removed? Oh, and the little empty comment lines provide list grouping while keeping the lists more compact, at least for GitHub's Markdown reader. --- doc/7-systems/README.md | 596 +++++++++++++++++++++++----------------- 1 file changed, 345 insertions(+), 251 deletions(-) diff --git a/doc/7-systems/README.md b/doc/7-systems/README.md index c1cf9bbf4..a406363a6 100644 --- a/doc/7-systems/README.md +++ b/doc/7-systems/README.md @@ -6,22 +6,81 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y +## DefleMask-compatible + +- **Sega Genesis**: [YM3438](ym2612.md), [SN76489](sms.md) +- **Sega Genesis (extended channel 3)**: [YM3438](ym2612.md), [SN76489](sms.md) + +- **Sega Master System**: [SN76489](sms.md) +- **Sega Master System (with FM expansion)**: [SN76489](sms.md), [YM2413](opll.md) + +- **Game Boy**: [Game Boy](game-boy.md) + +- **NEC PC Engine/TurboGrafx-16**: [HuC6280](pce.md) + +- **NES**: [2A03](nes.md) +- **Famicom with Konami VRC7**: [2A03](nes.md), [VRC7](opl.md) +- **Famicom Disk System**: [2A03](nes.md), [FDS](fds.md) + +- **Commodore 64 (6581 SID)**: [MOS 6581](c64.md) +- **Commodore 64 (8580 SID)**: [MOS 8580](c64.md) + +- **Arcade (YM2151 and SegaPCM)**: [YM2151](ym2152.md), [SegaPCM](segapcm.md) + +- **Neo Geo CD**: [YM2610](ym2610.md) +- **Neo Geo CD (extended channel 2)**: [YM2610](ym2610.md) + +- **Yamaha YMU759 (MA-2)**: [YMU759](ymu759.md) + + + +## additional systems + +- **Sega Genesis (with Sega CD)**: [YM3438](ym2612.md), [SN76489](sms.md), [RF5C164](ricoh.md) + +- **Neo Geo Pocket**: [T6W28](t6w28.md), DAC + +- **Famicom with Konami VRC6**: [2A03](nes.md), [VRC6](vrc6.md) +- **Famicom with MMC5**: [2A03](nes.md), [MMC5](mmc5.md) +- **Famicom with Sunsoft 5B**: [2A03](nes.md), [5B](ay8910.md) +- **Famicom with Namco 163**: [2A03](nes.md), [N163](n163.md) + +- **SNES**: [SNES](snes.md) + +- **Mattel Intellivision**: [AY-3-8914](ay8910.md) + +- **Atari 2600/7800**: [TIA](tia.md) + +- **Atari 800**: [POKEY](pokey.md) + +- **Capcom CPS-1**: [YM2151](ym2152.md), [MSM6295](msm6295.md) +- **Capcom CPS-2 (QSound)**: [QSound](qsound.md) + +- **Sharp X68000**: [YM2151](ym2152.md), [MSM6258](msm6258.md) + +- **PC + Sound Blaster Pro**: [YM3812](opl.md) × 2, DAC, [PC Speaker](pcspkr.md) + +- **Commander X16 (VERA only)**: [VERA](vera.md) + +- and many, many more! + + +# chips - -## DefleMask-compatible - -- **Sega Genesis**,\ - Sega Genesis (extended channel 3): [YM3438](ym2612.md), [SN76489](sms.md) - -- **Sega Master System**: [SN76489](sms.md) - -- **Sega Master System (with FM expansion)**: [SN76489](sms.md), [YM2413](opll.md) - -- **Game Boy**: [Game Boy](game-boy.md) - -- **NEC PC Engine/TurboGrafx-16**: [HuC6280](pce.md) - -- **NES**: [2A03](nes.md) - -- **Famicom with Konami VRC7**: [2A03](nes.md), [VRC7](opl.md) - -- **Famicom Disk System**: [2A03](nes.md), [FDS](fds.md) - -- **Commodore 64 (6581 SID)**: [MOS 6581](c64.md) - -- **Commodore 64 (8580 SID)**: [MOS 8580](c64.md) - -- **Arcade (YM2151 and SegaPCM)**: [YM2151](ym2152.md), [SegaPCM](segapcm.md) - -- **Neo Geo CD**,\ - Neo Geo CD (extended channel 2): [YM2610](ym2610.md) - -- **Yamaha YMU759 (MA-2)**: [YMU759](ymu759.md) +- [Amiga](amiga.md) +- [AY-3-8910, AY-3-8914, YM2149(F), 5B](ay8910.md) +- [AY8930](ay8930.md) +- [Konami WSG](bubblesystem.md) +- [MOS 6581, MOS 8580](c64.md) +- [ES5506](es5506.md) +- [SCC](scc.md) +- [FDS](fds.md) +- [Game Boy](game-boy.md) +- [Generic PCM DAC](dac.md) +- [K007232](k007232.md) +- [K053260](k056320.md) +- [Lynx](lynx.md) +- [MMC5](mmc5.md) +- [MSM5232](msm5232.md) +- [MSM6258](msm6258.md) +- [MSM6295](msm6295.md) +- [N163](n163.md) +- [Namco WSG, C15, C30](namco.md) +- [2A03](nes.md) +- [HuC6280](pce.md) +- [PC Speaker](pcspkr.md) +- [PET](pet.md) +- [Pokémon Mini](pokemini.md) +- [POKEY](pokey.md) +- [PV-1000](pv1000.md) +- [QSound](qsound.md) +- [RF5C164, RF5C68](ricoh.md) +- [SAA1099](saa1099.md) +- [SCC, SCC+](scc.md) +- [SegaPCM](segapcm.md) +- [SM8521](sm8521.md) +- [SN76489, SN76489A, SN76494, SN76496, SN94624, 8496, PSSJ](sms.md) +- [SNES](snes.md) +- [tildearrow Sound Unit](soundunit.md) +- [T6W28](t6w28.md) +- [TED](ted.md) +- [TIA](tia.md) +- [VERA](vera.md) +- [VIC](vic20.md) +- [Virtual Boy](virtual-boy.md) +- [VRC6](vrc6.md) +- [WonderSwan](wonderswan.md) +- [X1-010](x1-010.md) +- [(OPL) VRC7, Y8950, YM3526, YM3812, YMF262](opl.md) +- [(OPLL) YM2413](opll.md) +- [(OPZ) YM2414](opz.md) +- [YM2151](ym2152.md) +- [YM2203](ym2203.md) +- [YM2608](ym2608.md) +- [YM2610](ym2610.md) +- [YM2610B](ym2610b.md) +- [(OPN2) YM2612, YM3438](ym2612.md) +- [YMU759](ymu759.md) +- [YMZ280B](ymz280b.md) +- [ZXS Beeper](zxbeep.md) + \ No newline at end of file From cf1f741769f9ff10e66d6f52fc47de97a0146244 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 3 Aug 2023 14:55:30 -0500 Subject: [PATCH 085/202] GUI: fix SNES chip config out of bounds issue #1319 --- src/gui/gui.cpp | 2 +- src/gui/gui.h | 2 +- src/gui/sysConf.cpp | 10 ++++++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index d37e04418..a262b9da2 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -4160,7 +4160,7 @@ bool FurnaceGUI::loop() { exitDisabledTimer=1; for (int i=0; isong.systemLen; i++) { if (ImGui::TreeNode(fmt::sprintf("%d. %s##_SYSP%d",i+1,getSystemName(e->song.system[i]),i).c_str())) { - drawSysConf(i,e->song.system[i],e->song.systemFlags[i],true); + drawSysConf(i,e->song.system[i],e->song.systemFlags[i],true,true); ImGui::TreePop(); } } diff --git a/src/gui/gui.h b/src/gui/gui.h index 308e799da..101247dc0 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -2083,7 +2083,7 @@ class FurnaceGUI { void drawAlgorithm(unsigned char alg, FurnaceGUIFMAlgs algType, const ImVec2& size); void drawFMEnv(unsigned char tl, unsigned char ar, unsigned char dr, unsigned char d2r, unsigned char rr, unsigned char sl, unsigned char sus, unsigned char egt, unsigned char algOrGlobalSus, float maxTl, float maxArDr, float maxRr, const ImVec2& size, unsigned short instType); void drawGBEnv(unsigned char vol, unsigned char len, unsigned char sLen, bool dir, const ImVec2& size); - bool drawSysConf(int chan, DivSystem type, DivConfig& flags, bool modifyOnChange); + bool drawSysConf(int chan, DivSystem type, DivConfig& flags, bool modifyOnChange, bool fromMenu=false); void kvsConfig(DivInstrument* ins); void drawFMPreview(const ImVec2& size); void renderFMPreview(const DivInstrumentFM& params, int pos=0); diff --git a/src/gui/sysConf.cpp b/src/gui/sysConf.cpp index 0a746e61f..283fad98d 100644 --- a/src/gui/sysConf.cpp +++ b/src/gui/sysConf.cpp @@ -22,7 +22,7 @@ #include "misc/cpp/imgui_stdlib.h" #include -bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool modifyOnChange) { +bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool modifyOnChange, bool fromMenu) { bool altered=false; bool restart=settings.restartOnFlagChange && modifyOnChange; bool supportsCustomRate=true; @@ -1564,7 +1564,13 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo } altered=true; } - if (i<7) ImGui::SameLine(); + if (i<7) { + if (fromMenu) { + ImGui::SameLine(); + } else { + sameLineMaybe(); + } + } } if (CWSliderInt("Delay##EchoDelay",&echoDelay,0,15)) { From 5db924835b640eab0df07595f21ad0a79387757c Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Thu, 3 Aug 2023 14:46:10 -0700 Subject: [PATCH 086/202] Revised list of featured systems. --- doc/7-systems/README.md | 179 ++++++++++++++++++++-------------------- 1 file changed, 89 insertions(+), 90 deletions(-) diff --git a/doc/7-systems/README.md b/doc/7-systems/README.md index a406363a6..7b8105a7c 100644 --- a/doc/7-systems/README.md +++ b/doc/7-systems/README.md @@ -1,26 +1,29 @@ # systems -this is a list of systems that Furnace supports, as listed in the new file dialog. each chip links to a page with information and a list of supported effects. +this is a list of some of the systems that Furnace supports, as shown in the new file dialog. each chip links to a page with information and a list of supported effects. some systems have alternate chips, such as the Sega Genesis having a YM2612, a YM3438, or YMF276 depending on the model. this list shows the default configuration. - - -## DefleMask-compatible - - **Sega Genesis**: [YM3438](ym2612.md), [SN76489](sms.md) - **Sega Genesis (extended channel 3)**: [YM3438](ym2612.md), [SN76489](sms.md) +- **Sega Genesis (with Sega CD)**: [YM3438](ym2612.md), [SN76489](sms.md), [RF5C164](ricoh.md) - **Sega Master System**: [SN76489](sms.md) - **Sega Master System (with FM expansion)**: [SN76489](sms.md), [YM2413](opll.md) +- **NES**: [2A03](nes.md) +- **Famicom with Konami VRC6**: [2A03](nes.md), [VRC6](vrc6.md) +- **Famicom with Konami VRC7**: [2A03](nes.md), [VRC7](opl.md) +- **Famicom with MMC5**: [2A03](nes.md), [MMC5](mmc5.md) +- **Famicom with Sunsoft 5B**: [2A03](nes.md), [5B](ay8910.md) +- **Famicom with Namco 163**: [2A03](nes.md), [N163](n163.md) +- **Famicom Disk System**: [2A03](nes.md), [FDS](fds.md) + - **Game Boy**: [Game Boy](game-boy.md) -- **NEC PC Engine/TurboGrafx-16**: [HuC6280](pce.md) +- **SNES**: [SNES](snes.md) -- **NES**: [2A03](nes.md) -- **Famicom with Konami VRC7**: [2A03](nes.md), [VRC7](opl.md) -- **Famicom Disk System**: [2A03](nes.md), [FDS](fds.md) +- **NEC PC Engine/TurboGrafx-16**: [HuC6280](pce.md) - **Commodore 64 (6581 SID)**: [MOS 6581](c64.md) - **Commodore 64 (8580 SID)**: [MOS 8580](c64.md) @@ -30,25 +33,8 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Neo Geo CD**: [YM2610](ym2610.md) - **Neo Geo CD (extended channel 2)**: [YM2610](ym2610.md) -- **Yamaha YMU759 (MA-2)**: [YMU759](ymu759.md) - - - -## additional systems - -- **Sega Genesis (with Sega CD)**: [YM3438](ym2612.md), [SN76489](sms.md), [RF5C164](ricoh.md) - - **Neo Geo Pocket**: [T6W28](t6w28.md), DAC -- **Famicom with Konami VRC6**: [2A03](nes.md), [VRC6](vrc6.md) -- **Famicom with MMC5**: [2A03](nes.md), [MMC5](mmc5.md) -- **Famicom with Sunsoft 5B**: [2A03](nes.md), [5B](ay8910.md) -- **Famicom with Namco 163**: [2A03](nes.md), [N163](n163.md) - -- **SNES**: [SNES](snes.md) - -- **Mattel Intellivision**: [AY-3-8914](ay8910.md) - - **Atari 2600/7800**: [TIA](tia.md) - **Atari 800**: [POKEY](pokey.md) @@ -56,15 +42,91 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **Capcom CPS-1**: [YM2151](ym2152.md), [MSM6295](msm6295.md) - **Capcom CPS-2 (QSound)**: [QSound](qsound.md) +- **Konami Bubble System**: [AY-3-8910](ay8910.md) × 2, [Konami WSG](bubblesystem.md) + - **Sharp X68000**: [YM2151](ym2152.md), [MSM6258](msm6258.md) - **PC + Sound Blaster Pro**: [YM3812](opl.md) × 2, DAC, [PC Speaker](pcspkr.md) +- **Amiga**: [Amiga](amiga.md) + +- **MSX**: [AY-3-8910](ay8910.md) +- **MSX + SCC**: [YM2149(F)](ay8910.md), [SCC](scc.md) + - **Commander X16 (VERA only)**: [VERA](vera.md) - and many, many more! + + +# chips + +this is the full list of chips that Furnace supports. + +- [2A03](nes.md) +- [Amiga](amiga.md) +- [AY-3-8910, AY-3-8914, YM2149(F), 5B](ay8910.md) +- [AY8930](ay8930.md) +- [MOS 6581, MOS 8580](c64.md) +- [ES5506](es5506.md) +- [SCC](scc.md) +- [FDS](fds.md) +- [Game Boy](game-boy.md) +- [Generic PCM DAC](dac.md) +- Irem GA20 +- [Konami WSG](bubblesystem.md) +- [K007232](k007232.md) +- [K053260](k056320.md) +- [Lynx](lynx.md) +- [MMC5](mmc5.md) +- [MSM5232](msm5232.md) +- [MSM6258](msm6258.md) +- [MSM6295](msm6295.md) +- [N163](n163.md) +- [Namco WSG, C15, C30](namco.md) +- [HuC6280](pce.md) +- [PC Speaker](pcspkr.md) +- [PET](pet.md) +- [Pokémon Mini](pokemini.md) +- [POKEY](pokey.md) +- Pong +- [PV-1000](pv1000.md) +- [QSound](qsound.md) +- [RF5C68, RF5C164](ricoh.md) +- [SAA1099](saa1099.md) +- [SCC, SCC+](scc.md) +- [SegaPCM](segapcm.md) +- [SM8521](sm8521.md) +- [SN76489, SN76489A, SN76494, SN76496, SN94624, 8496, PSSJ](sms.md) +- [SNES](snes.md) +- [tildearrow Sound Unit](soundunit.md) +- [T6W28](t6w28.md) +- [TED](ted.md) +- [TIA](tia.md) +- [VERA](vera.md) +- [VIC](vic20.md) +- [Virtual Boy](virtual-boy.md) +- [VRC6](vrc6.md) +- [WonderSwan](wonderswan.md) +- [X1-010](x1-010.md) +- [(OPL) VRC7, Y8950, YM3526, YM3812, YMF262](opl.md) +- [(OPLL) YM2413](opll.md) +- [(OPZ) YM2414](opz.md) +- [(OPM) YM2151](ym2152.md) +- [(OPN) YM2203](ym2203.md) +- [(OPNA) YM2608](ym2608.md) +- [(OPNB) YM2610](ym2610.md) +- [(OPNB) YM2610B](ym2610b.md) +- [(OPN2) YM2612, YM3438](ym2612.md) +- [YMU759 (MA-2)](ymu759.md) +- [YMZ280B](ymz280b.md) +- [ZXS Beeper](zxbeep.md) + + + - -# chips - -- [Amiga](amiga.md) -- [AY-3-8910, AY-3-8914, YM2149(F), 5B](ay8910.md) -- [AY8930](ay8930.md) -- [Konami WSG](bubblesystem.md) -- [MOS 6581, MOS 8580](c64.md) -- [ES5506](es5506.md) -- [SCC](scc.md) -- [FDS](fds.md) -- [Game Boy](game-boy.md) -- [Generic PCM DAC](dac.md) -- [K007232](k007232.md) -- [K053260](k056320.md) -- [Lynx](lynx.md) -- [MMC5](mmc5.md) -- [MSM5232](msm5232.md) -- [MSM6258](msm6258.md) -- [MSM6295](msm6295.md) -- [N163](n163.md) -- [Namco WSG, C15, C30](namco.md) -- [2A03](nes.md) -- [HuC6280](pce.md) -- [PC Speaker](pcspkr.md) -- [PET](pet.md) -- [Pokémon Mini](pokemini.md) -- [POKEY](pokey.md) -- [PV-1000](pv1000.md) -- [QSound](qsound.md) -- [RF5C164, RF5C68](ricoh.md) -- [SAA1099](saa1099.md) -- [SCC, SCC+](scc.md) -- [SegaPCM](segapcm.md) -- [SM8521](sm8521.md) -- [SN76489, SN76489A, SN76494, SN76496, SN94624, 8496, PSSJ](sms.md) -- [SNES](snes.md) -- [tildearrow Sound Unit](soundunit.md) -- [T6W28](t6w28.md) -- [TED](ted.md) -- [TIA](tia.md) -- [VERA](vera.md) -- [VIC](vic20.md) -- [Virtual Boy](virtual-boy.md) -- [VRC6](vrc6.md) -- [WonderSwan](wonderswan.md) -- [X1-010](x1-010.md) -- [(OPL) VRC7, Y8950, YM3526, YM3812, YMF262](opl.md) -- [(OPLL) YM2413](opll.md) -- [(OPZ) YM2414](opz.md) -- [YM2151](ym2152.md) -- [YM2203](ym2203.md) -- [YM2608](ym2608.md) -- [YM2610](ym2610.md) -- [YM2610B](ym2610b.md) -- [(OPN2) YM2612, YM3438](ym2612.md) -- [YMU759](ymu759.md) -- [YMZ280B](ymz280b.md) -- [ZXS Beeper](zxbeep.md) - \ No newline at end of file From 358118f1f996a49d7477b079b51421b69ba3a04f Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 3 Aug 2023 21:32:57 -0500 Subject: [PATCH 087/202] sorry respect my formatting style --- src/gui/chanOsc.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/gui/chanOsc.cpp b/src/gui/chanOsc.cpp index 8ace8a5b2..e4e9e85fb 100644 --- a/src/gui/chanOsc.cpp +++ b/src/gui/chanOsc.cpp @@ -157,7 +157,7 @@ void FurnaceGUI::drawChanOsc() { ImGui::Text("Automatic columns"); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - const char* previewColType = autoColsTypes[chanOscAutoColsType&3]; + const char* previewColType=autoColsTypes[chanOscAutoColsType&3]; if (ImGui::BeginCombo("##AutoCols",previewColType)) { for (int j=0; j<4; j++) { const bool isSelected=(chanOscAutoColsType==j); @@ -367,11 +367,20 @@ void FurnaceGUI::drawChanOsc() { } } + // 0: none + // 1: sqrt(chans) + // 2: sqrt(chans+1) + // 3: sqrt(chans)+1 switch (chanOscAutoColsType) { - case 1: chanOscCols=sqrt(oscChans.size()); break; - case 2: chanOscCols=sqrt(oscChans.size()+1); break; - case 3: chanOscCols=sqrt(oscChans.size())+1; break; - default: break; + case 1: + chanOscCols=sqrt(oscChans.size()); + break; + case 2: + chanOscCols=sqrt(oscChans.size()+1); + break; + case 3: + chanOscCols=sqrt(oscChans.size())+1; + break; } if (chanOscCols<1) chanOscCols=1; if (chanOscCols>64) chanOscCols=64; From 9b6ce68a22a96004717dfe98037c7b68163c6a99 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Thu, 3 Aug 2023 19:45:00 -0700 Subject: [PATCH 088/202] Edits as requested. --- doc/7-systems/README.md | 70 ++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/doc/7-systems/README.md b/doc/7-systems/README.md index 7b8105a7c..5b353fa67 100644 --- a/doc/7-systems/README.md +++ b/doc/7-systems/README.md @@ -5,7 +5,6 @@ this is a list of some of the systems that Furnace supports, as shown in the new some systems have alternate chips, such as the Sega Genesis having a YM2612, a YM3438, or YMF276 depending on the model. this list shows the default configuration. - **Sega Genesis**: [YM3438](ym2612.md), [SN76489](sms.md) -- **Sega Genesis (extended channel 3)**: [YM3438](ym2612.md), [SN76489](sms.md) - **Sega Genesis (with Sega CD)**: [YM3438](ym2612.md), [SN76489](sms.md), [RF5C164](ricoh.md) - **Sega Master System**: [SN76489](sms.md) @@ -25,30 +24,31 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612, a Y - **NEC PC Engine/TurboGrafx-16**: [HuC6280](pce.md) +- **Commodore VIC-20**: [VIC](vic20.md) + - **Commodore 64 (6581 SID)**: [MOS 6581](c64.md) - **Commodore 64 (8580 SID)**: [MOS 8580](c64.md) +- **Amiga**: [Amiga](amiga.md) + - **Arcade (YM2151 and SegaPCM)**: [YM2151](ym2152.md), [SegaPCM](segapcm.md) +- **Capcom CPS-1**: [YM2151](ym2152.md), [MSM6295](msm6295.md) +- **Capcom CPS-2 (QSound)**: [QSound](qsound.md) + - **Neo Geo CD**: [YM2610](ym2610.md) - **Neo Geo CD (extended channel 2)**: [YM2610](ym2610.md) -- **Neo Geo Pocket**: [T6W28](t6w28.md), DAC +- **Neo Geo Pocket**: [T6W28](t6w28.md), [DAC](dac.md) - **Atari 2600/7800**: [TIA](tia.md) - - **Atari 800**: [POKEY](pokey.md) -- **Capcom CPS-1**: [YM2151](ym2152.md), [MSM6295](msm6295.md) -- **Capcom CPS-2 (QSound)**: [QSound](qsound.md) - - **Konami Bubble System**: [AY-3-8910](ay8910.md) × 2, [Konami WSG](bubblesystem.md) - **Sharp X68000**: [YM2151](ym2152.md), [MSM6258](msm6258.md) -- **PC + Sound Blaster Pro**: [YM3812](opl.md) × 2, DAC, [PC Speaker](pcspkr.md) - -- **Amiga**: [Amiga](amiga.md) +- **PC + Sound Blaster Pro**: [YM3812](opl.md) × 2, [DAC](dac.md), [PC Speaker](pcspkr.md) - **MSX**: [AY-3-8910](ay8910.md) - **MSX + SCC**: [YM2149(F)](ay8910.md), [SCC](scc.md) @@ -72,7 +72,7 @@ this is the full list of chips that Furnace supports. - [SCC](scc.md) - [FDS](fds.md) - [Game Boy](game-boy.md) -- [Generic PCM DAC](dac.md) +- [Generic PCM [DAC](dac.md)](dac.md) - Irem GA20 - [Konami WSG](bubblesystem.md) - [K007232](k007232.md) @@ -148,7 +148,7 @@ this is the full list of chips that Furnace supports. - **Game Boy**: [Game Boy](game-boy.md) -- **Neo Geo Pocket**: [T6W28](t6w28.md), DAC +- **Neo Geo Pocket**: [T6W28](t6w28.md), [DAC](dac.md) - **NEC PC Engine/TurboGrafx-16**: [HuC6280](pce.md) @@ -245,7 +245,7 @@ this is the full list of chips that Furnace supports. - **MSX + Neotron (with YM2610B)**: [YM2149(F)](ay8910.md), [YM2610B](ym2610b.md) - **MSX + Neotron (with YM2610B; extended channel 3)**: [YM2149(F)](ay8910.md), [YM2610B](ym2610b.md) -- **MSX + SIMPL**: [YM2149(F)](ay8910.md), DAC +- **MSX + SIMPL**: [YM2149(F)](ay8910.md), [DAC](dac.md) - **NEC PC-88 (with PC-8801-10)**: [PC Speaker](pcspkr.md), [AY-3-8910](ay8910.md) × 2 @@ -302,8 +302,8 @@ this is the full list of chips that Furnace supports. - **NEC PC-98 (with Sound Orchestra V in drums mode)**: [YM2203](ym2203.md), [Y8950](opl.md), [PC Speaker](pcspkr.md) - **NEC PC-98 (with Sound Orchestra V in drums mode; extended channel 3)**: [YM2203](ym2203.md), [Y8950](opl.md), [PC Speaker](pcspkr.md) -- **NEC PC-98 (with PC-9801-86)**: [YM2608](ym2608.md), [DAC](pcspkr.md) -- **NEC PC-98 (with PC-9801-86; extended channel 3)**: [YM2608](ym2608.md), [DAC](pcspkr.md) +- **NEC PC-98 (with PC-9801-86)**: [YM2608](ym2608.md), [PC Speaker](pcspkr.md) +- **NEC PC-98 (with PC-9801-86; extended channel 3)**: [YM2608](ym2608.md), [PC Speaker](pcspkr.md) - **NEC PC-98 (with PC-9801-73)**: [YM2608](ym2608.md), [PC Speaker](pcspkr.md) - **NEC PC-98 (with PC-9801-73; extended channel 3)**: [YM2608](ym2608.md), [PC Speaker](pcspkr.md) @@ -333,7 +333,7 @@ this is the full list of chips that Furnace supports. - **Atari ST**: [YM2149(F)](ay8910.md) -- **Atari STE**: [YM2149(F)](ay8910.md), DAC +- **Atari STE**: [YM2149(F)](ay8910.md), [DAC](dac.md) - **SAM Coupé**: [SAA1099](saa1099.md) @@ -354,17 +354,17 @@ this is the full list of chips that Furnace supports. - **PC + AdLib**: [YM3812](opl.md), [PC Speaker](pcspkr.md) - **PC + AdLib (drums mode)**: [YM3812](opl.md), [PC Speaker](pcspkr.md) -- **PC + Sound Blaster**: [YM3812](opl.md), [PC Speaker](pcspkr.md), DAC -- **PC + AdLib/Sound Blaster (drums mode)**: [YM3812](opl.md), [PC Speaker](pcspkr.md), DAC +- **PC + Sound Blaster**: [YM3812](opl.md), [PC Speaker](pcspkr.md), [DAC](dac.md) +- **PC + AdLib/Sound Blaster (drums mode)**: [YM3812](opl.md), [PC Speaker](pcspkr.md), [DAC](dac.md) -- **PC + Sound Blaster w/Game Blaster Compatible**: [YM3812](opl.md), [SAA1099](saa1099.md) × 2, DAC, [PC Speaker](pcspkr.md) -- **PC + Sound Blaster w/Game Blaster Compatible (drums mode)**: [YM3812](opl.md), [SAA1099](saa1099.md) × 2, DAC, [PC Speaker](pcspkr.md) +- **PC + Sound Blaster w/Game Blaster Compatible**: [YM3812](opl.md), [SAA1099](saa1099.md) × 2, [DAC](dac.md), [PC Speaker](pcspkr.md) +- **PC + Sound Blaster w/Game Blaster Compatible (drums mode)**: [YM3812](opl.md), [SAA1099](saa1099.md) × 2, [DAC](dac.md), [PC Speaker](pcspkr.md) -- **PC + Sound Blaster Pro**: [YM3812](opl.md) × 2, DAC, [PC Speaker](pcspkr.md) -- **PC + Sound Blaster Pro (drums mode)**: [YM3812](opl.md) × 2, DAC, [PC Speaker](pcspkr.md) +- **PC + Sound Blaster Pro**: [YM3812](opl.md) × 2, [DAC](dac.md), [PC Speaker](pcspkr.md) +- **PC + Sound Blaster Pro (drums mode)**: [YM3812](opl.md) × 2, [DAC](dac.md), [PC Speaker](pcspkr.md) -- **PC + Sound Blaster Pro 2**: [YMF262](opl.md), DAC, [PC Speaker](pcspkr.md) -- **PC + Sound Blaster Pro 2 (drums mode)**: [YMF262](opl.md), DAC, [PC Speaker](pcspkr.md) +- **PC + Sound Blaster Pro 2**: [YMF262](opl.md), [DAC](dac.md), [PC Speaker](pcspkr.md) +- **PC + Sound Blaster Pro 2 (drums mode)**: [YMF262](opl.md), [DAC](dac.md), [PC Speaker](pcspkr.md) - **PC + PC-FXGA**: [HuC6280](pce.md), [PC Speaker](pcspkr.md) @@ -448,7 +448,7 @@ this is the full list of chips that Furnace supports. - **Sega OutRun/X Board**: [YM2151](ym2152.md), [SegaPCM](segapcm.md) -- **Sega System 24**: [YM2151](ym2152.md), DAC +- **Sega System 24**: [YM2151](ym2152.md), [DAC](dac.md) - **Sega System 18**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) - **Sega System 18 (extended channel 3 on first OPN2C)**: [YM3438](ym2612.md) × 2, [RF5C68](ricoh.md) @@ -559,12 +559,12 @@ this is the full list of chips that Furnace supports. - **SNK Touchdown Fever (drums mode on Y8950)**: [YM3526](opl.md), [Y8950](opl.md) - **SNK Touchdown Fever (drums mode on OPL and Y8950)**: [YM3526](opl.md), [Y8950](opl.md) -- **Alpha denshi Alpha-68K**: [YM2203](ym2203.md), [YM2413](opll.md), DAC -- **Alpha denshi Alpha-68K (extended channel 3)**: [YM2203](ym2203.md), [YM2413](opll.md), DAC -- **Alpha denshi Alpha-68K (drums mode)**: [YM2203](ym2203.md), [YM2413](opll.md), DAC -- **Alpha denshi Alpha-68K (extended channel 3; drums mode)**: [YM2203](ym2203.md), [YM2413](opll.md), DAC +- **Alpha denshi Alpha-68K**: [YM2203](ym2203.md), [YM2413](opll.md), [DAC](dac.md) +- **Alpha denshi Alpha-68K (extended channel 3)**: [YM2203](ym2203.md), [YM2413](opll.md), [DAC](dac.md) +- **Alpha denshi Alpha-68K (drums mode)**: [YM2203](ym2203.md), [YM2413](opll.md), [DAC](dac.md) +- **Alpha denshi Alpha-68K (extended channel 3; drums mode)**: [YM2203](ym2203.md), [YM2413](opll.md), [DAC](dac.md) -- **Alpha denshi Equites**: [MSM5232](msm5232.md), [AY-3-8910](ay8910.md), DAC +- **Alpha denshi Equites**: [MSM5232](msm5232.md), [AY-3-8910](ay8910.md), [DAC](dac.md) - **Neo Geo MVS**: [YM2610](ym2610.md) - **Neo Geo MVS (extended channel 2)**: [YM2610](ym2610.md) @@ -579,17 +579,17 @@ this is the full list of chips that Furnace supports. - **Namco System 86**: [YM2151](ym2152.md), [C30](namco.md) -- **Namco Thunder Ceptor**: [YM2151](ym2152.md), [C30](namco.md), DAC -- **Namco System 1**: [YM2151](ym2152.md), [C30](namco.md), DAC +- **Namco Thunder Ceptor**: [YM2151](ym2152.md), [C30](namco.md), [DAC](dac.md) +- **Namco System 1**: [YM2151](ym2152.md), [C30](namco.md), [DAC](dac.md) - **Taito Arcade**: [YM2610B](ym2610b.md) - **Taito Arcade (extended channel 3)**: [YM2610B](ym2610b.md) - **Taito Metal Soldier Isaac II**: [MSM5232](msm5232.md), [AY-3-8910](ay8910.md) × 2 -- **Taito The Fairyland Story**: [MSM5232](msm5232.md), [YM2149(F)](ay8910.md), DAC +- **Taito The Fairyland Story**: [MSM5232](msm5232.md), [YM2149(F)](ay8910.md), [DAC](dac.md) -- **Taito Wyvern F-0**: [MSM5232](msm5232.md), [YM2149(F)](ay8910.md) × 2, DAC +- **Taito Wyvern F-0**: [MSM5232](msm5232.md), [YM2149(F)](ay8910.md) × 2, [DAC](dac.md) - **Seta 1**: [X1-010](x1-010.md) @@ -616,7 +616,7 @@ this is the full list of chips that Furnace supports. - **Dynax/Nakanihon Real Break**: [YM2413](opll.md), [YMZ280B](ymz280b.md) - **Dynax/Nakanihon Real Break (drums mode)**: [YM2413](opll.md), [YMZ280B](ymz280b.md) -- **Irem M72**: [YM2151](ym2152.md), DAC +- **Irem M72**: [YM2151](ym2152.md), [DAC](dac.md) - **Irem M92/M107**: [YM2151](ym2152.md), GA20 @@ -740,7 +740,7 @@ this is the full list of chips that Furnace supports. - **Irem GA20**: GA20 -- **Generic PCM DAC**: DAC +- **Generic PCM [DAC](dac.md)**: [DAC](dac.md) - **Ensoniq ES5506 (OTTO)**: [ES5506](es5506.md) From 4693b10b88a74281913dd1dea22929e5319781e3 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Thu, 3 Aug 2023 20:02:52 -0700 Subject: [PATCH 089/202] Last round of edits. --- doc/7-systems/README.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/doc/7-systems/README.md b/doc/7-systems/README.md index 5b353fa67..fbb766be9 100644 --- a/doc/7-systems/README.md +++ b/doc/7-systems/README.md @@ -72,9 +72,9 @@ this is the full list of chips that Furnace supports. - [SCC](scc.md) - [FDS](fds.md) - [Game Boy](game-boy.md) -- [Generic PCM [DAC](dac.md)](dac.md) +- [Generic PCM DAC](dac.md) - Irem GA20 -- [Konami WSG](bubblesystem.md) +- [Bubble System WSG](bubblesystem.md) - [K007232](k007232.md) - [K053260](k056320.md) - [Lynx](lynx.md) @@ -89,15 +89,14 @@ this is the full list of chips that Furnace supports. - [PET](pet.md) - [Pokémon Mini](pokemini.md) - [POKEY](pokey.md) -- Pong - [PV-1000](pv1000.md) - [QSound](qsound.md) - [RF5C68, RF5C164](ricoh.md) - [SAA1099](saa1099.md) -- [SCC, SCC+](scc.md) +- [SCC](scc.md) - [SegaPCM](segapcm.md) - [SM8521](sm8521.md) -- [SN76489, SN76489A, SN76494, SN76496, SN94624, 8496, PSSJ](sms.md) +- [SN76489 / Sega PSG](sms.md) - [SNES](snes.md) - [tildearrow Sound Unit](soundunit.md) - [T6W28](t6w28.md) @@ -122,6 +121,7 @@ this is the full list of chips that Furnace supports. - [YMZ280B](ymz280b.md) - [ZXS Beeper](zxbeep.md) +Furnace also reads .dmf files with the [Yamaha YMU759](ymu759.md) system, but... +Furnace also reads .dmf files with the [Yamaha YMU759](ymu759.md) system, but... \ No newline at end of file From 2060f8e9eba7ddec0d020931a948ea7262d0679c Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 4 Aug 2023 03:33:45 -0500 Subject: [PATCH 092/202] OPN: fix ExtCh alg/fb/fms/ams/lfo macros --- src/engine/platform/genesisext.cpp | 33 +++++++++++++++++++++++++++++ src/engine/platform/ym2203ext.cpp | 21 ++++++++++++++++++ src/engine/platform/ym2608ext.cpp | 34 ++++++++++++++++++++++++++++++ src/engine/platform/ym2610bext.cpp | 33 +++++++++++++++++++++++++++++ src/engine/platform/ym2610ext.cpp | 33 +++++++++++++++++++++++++++++ 5 files changed, 154 insertions(+) diff --git a/src/engine/platform/genesisext.cpp b/src/engine/platform/genesisext.cpp index 7e9278daa..56ae1ceaf 100644 --- a/src/engine/platform/genesisext.cpp +++ b/src/engine/platform/genesisext.cpp @@ -512,6 +512,39 @@ void DivPlatformGenesisExt::tick(bool sysTick) { opChan[i].freqChanged=true; } + // channel macros + if (opChan[i].std.alg.had) { + chan[extChanOffs].state.alg=opChan[i].std.alg.val; + rWrite(chanOffs[extChanOffs]+ADDR_FB_ALG,(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3)); + if (!parent->song.algMacroBehavior) for (int j=0; j<4; j++) { + unsigned short baseAddr=chanOffs[extChanOffs]|opOffs[j]; + DivInstrumentFM::Operator& op=chan[extChanOffs].state.op[j]; + if (isOpMuted[j] || !op.enable) { + rWrite(baseAddr+0x40,127); + } else { + rWrite(baseAddr+0x40,127-VOL_SCALE_LOG_BROKEN(127-op.tl,opChan[j].outVol&0x7f,127)); + } + } + } + if (i==0 || fbAllOps) { + if (opChan[i].std.fb.had) { + chan[extChanOffs].state.fb=opChan[i].std.fb.val; + rWrite(chanOffs[extChanOffs]+ADDR_FB_ALG,(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3)); + } + } + if (opChan[i].std.fms.had) { + chan[extChanOffs].state.fms=opChan[i].std.fms.val; + rWrite(chanOffs[extChanOffs]+ADDR_LRAF,(IS_EXTCH_MUTED?0:(opChan[i].pan<<6))|(chan[extChanOffs].state.fms&7)|((chan[extChanOffs].state.ams&3)<<4)); + } + if (opChan[i].std.ams.had) { + chan[extChanOffs].state.ams=opChan[i].std.ams.val; + rWrite(chanOffs[extChanOffs]+ADDR_LRAF,(IS_EXTCH_MUTED?0:(opChan[i].pan<<6))|(chan[extChanOffs].state.fms&7)|((chan[extChanOffs].state.ams&3)<<4)); + } + if (opChan[i].std.ex3.had) { + lfoValue=(opChan[i].std.ex3.val>7)?0:(8|(opChan[i].std.ex3.val&7)); + rWrite(0x22,lfoValue); + } + // param macros unsigned short baseAddr=chanOffs[2]|opOffs[orderedOps[i]]; DivInstrumentFM::Operator& op=chan[2].state.op[orderedOps[i]]; diff --git a/src/engine/platform/ym2203ext.cpp b/src/engine/platform/ym2203ext.cpp index 8842b3cc8..8bad13d48 100644 --- a/src/engine/platform/ym2203ext.cpp +++ b/src/engine/platform/ym2203ext.cpp @@ -444,6 +444,27 @@ void DivPlatformYM2203Ext::tick(bool sysTick) { opChan[i].freqChanged=true; } + // channel macros + if (opChan[i].std.alg.had) { + chan[extChanOffs].state.alg=opChan[i].std.alg.val; + rWrite(chanOffs[extChanOffs]+ADDR_FB_ALG,(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3)); + if (!parent->song.algMacroBehavior) for (int j=0; j<4; j++) { + unsigned short baseAddr=chanOffs[extChanOffs]|opOffs[j]; + DivInstrumentFM::Operator& op=chan[extChanOffs].state.op[j]; + if (isOpMuted[j] || !op.enable) { + rWrite(baseAddr+0x40,127); + } else { + rWrite(baseAddr+0x40,127-VOL_SCALE_LOG_BROKEN(127-op.tl,opChan[j].outVol&0x7f,127)); + } + } + } + if (i==0 || fbAllOps) { + if (opChan[i].std.fb.had) { + chan[extChanOffs].state.fb=opChan[i].std.fb.val; + rWrite(chanOffs[extChanOffs]+ADDR_FB_ALG,(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3)); + } + } + // param macros unsigned short baseAddr=chanOffs[2]|opOffs[orderedOps[i]]; DivInstrumentFM::Operator& op=chan[2].state.op[orderedOps[i]]; diff --git a/src/engine/platform/ym2608ext.cpp b/src/engine/platform/ym2608ext.cpp index a9fd60f10..0801f0885 100644 --- a/src/engine/platform/ym2608ext.cpp +++ b/src/engine/platform/ym2608ext.cpp @@ -467,6 +467,40 @@ void DivPlatformYM2608Ext::tick(bool sysTick) { opChan[i].freqChanged=true; } + // channel macros + if (opChan[i].std.alg.had) { + chan[extChanOffs].state.alg=opChan[i].std.alg.val; + rWrite(chanOffs[extChanOffs]+ADDR_FB_ALG,(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3)); + if (!parent->song.algMacroBehavior) for (int j=0; j<4; j++) { + unsigned short baseAddr=chanOffs[extChanOffs]|opOffs[j]; + DivInstrumentFM::Operator& op=chan[extChanOffs].state.op[j]; + if (isOpMuted[j] || !op.enable) { + rWrite(baseAddr+0x40,127); + } else { + rWrite(baseAddr+0x40,127-VOL_SCALE_LOG_BROKEN(127-op.tl,opChan[j].outVol&0x7f,127)); + } + } + } + if (i==0 || fbAllOps) { + if (opChan[i].std.fb.had) { + chan[extChanOffs].state.fb=opChan[i].std.fb.val; + rWrite(chanOffs[extChanOffs]+ADDR_FB_ALG,(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3)); + } + } + if (opChan[i].std.fms.had) { + chan[extChanOffs].state.fms=opChan[i].std.fms.val; + rWrite(chanOffs[extChanOffs]+ADDR_LRAF,(IS_EXTCH_MUTED?0:(opChan[i].pan<<6))|(chan[extChanOffs].state.fms&7)|((chan[extChanOffs].state.ams&3)<<4)); + } + if (opChan[i].std.ams.had) { + chan[extChanOffs].state.ams=opChan[i].std.ams.val; + rWrite(chanOffs[extChanOffs]+ADDR_LRAF,(IS_EXTCH_MUTED?0:(opChan[i].pan<<6))|(chan[extChanOffs].state.fms&7)|((chan[extChanOffs].state.ams&3)<<4)); + } + if (opChan[i].std.ex3.had) { + lfoValue=(opChan[i].std.ex3.val>7)?0:(8|(opChan[i].std.ex3.val&7)); + rWrite(0x22,lfoValue); + } + + // param macros unsigned short baseAddr=chanOffs[2]|opOffs[orderedOps[i]]; DivInstrumentFM::Operator& op=chan[2].state.op[orderedOps[i]]; diff --git a/src/engine/platform/ym2610bext.cpp b/src/engine/platform/ym2610bext.cpp index 79239c559..99727b734 100644 --- a/src/engine/platform/ym2610bext.cpp +++ b/src/engine/platform/ym2610bext.cpp @@ -463,6 +463,39 @@ void DivPlatformYM2610BExt::tick(bool sysTick) { opChan[i].freqChanged=true; } + // channel macros + if (opChan[i].std.alg.had) { + chan[extChanOffs].state.alg=opChan[i].std.alg.val; + rWrite(chanOffs[extChanOffs]+ADDR_FB_ALG,(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3)); + if (!parent->song.algMacroBehavior) for (int j=0; j<4; j++) { + unsigned short baseAddr=chanOffs[extChanOffs]|opOffs[j]; + DivInstrumentFM::Operator& op=chan[extChanOffs].state.op[j]; + if (isOpMuted[j] || !op.enable) { + rWrite(baseAddr+0x40,127); + } else { + rWrite(baseAddr+0x40,127-VOL_SCALE_LOG_BROKEN(127-op.tl,opChan[j].outVol&0x7f,127)); + } + } + } + if (i==0 || fbAllOps) { + if (opChan[i].std.fb.had) { + chan[extChanOffs].state.fb=opChan[i].std.fb.val; + rWrite(chanOffs[extChanOffs]+ADDR_FB_ALG,(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3)); + } + } + if (opChan[i].std.fms.had) { + chan[extChanOffs].state.fms=opChan[i].std.fms.val; + rWrite(chanOffs[extChanOffs]+ADDR_LRAF,(IS_EXTCH_MUTED?0:(opChan[i].pan<<6))|(chan[extChanOffs].state.fms&7)|((chan[extChanOffs].state.ams&3)<<4)); + } + if (opChan[i].std.ams.had) { + chan[extChanOffs].state.ams=opChan[i].std.ams.val; + rWrite(chanOffs[extChanOffs]+ADDR_LRAF,(IS_EXTCH_MUTED?0:(opChan[i].pan<<6))|(chan[extChanOffs].state.fms&7)|((chan[extChanOffs].state.ams&3)<<4)); + } + if (opChan[i].std.ex3.had) { + lfoValue=(opChan[i].std.ex3.val>7)?0:(8|(opChan[i].std.ex3.val&7)); + rWrite(0x22,lfoValue); + } + // param macros unsigned short baseAddr=chanOffs[extChanOffs]|opOffs[orderedOps[i]]; DivInstrumentFM::Operator& op=chan[extChanOffs].state.op[orderedOps[i]]; diff --git a/src/engine/platform/ym2610ext.cpp b/src/engine/platform/ym2610ext.cpp index a85e9cadd..c35599fdd 100644 --- a/src/engine/platform/ym2610ext.cpp +++ b/src/engine/platform/ym2610ext.cpp @@ -463,6 +463,39 @@ void DivPlatformYM2610Ext::tick(bool sysTick) { opChan[i].freqChanged=true; } + // channel macros + if (opChan[i].std.alg.had) { + chan[extChanOffs].state.alg=opChan[i].std.alg.val; + rWrite(chanOffs[extChanOffs]+ADDR_FB_ALG,(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3)); + if (!parent->song.algMacroBehavior) for (int j=0; j<4; j++) { + unsigned short baseAddr=chanOffs[extChanOffs]|opOffs[j]; + DivInstrumentFM::Operator& op=chan[extChanOffs].state.op[j]; + if (isOpMuted[j] || !op.enable) { + rWrite(baseAddr+0x40,127); + } else { + rWrite(baseAddr+0x40,127-VOL_SCALE_LOG_BROKEN(127-op.tl,opChan[j].outVol&0x7f,127)); + } + } + } + if (i==0 || fbAllOps) { + if (opChan[i].std.fb.had) { + chan[extChanOffs].state.fb=opChan[i].std.fb.val; + rWrite(chanOffs[extChanOffs]+ADDR_FB_ALG,(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3)); + } + } + if (opChan[i].std.fms.had) { + chan[extChanOffs].state.fms=opChan[i].std.fms.val; + rWrite(chanOffs[extChanOffs]+ADDR_LRAF,(IS_EXTCH_MUTED?0:(opChan[i].pan<<6))|(chan[extChanOffs].state.fms&7)|((chan[extChanOffs].state.ams&3)<<4)); + } + if (opChan[i].std.ams.had) { + chan[extChanOffs].state.ams=opChan[i].std.ams.val; + rWrite(chanOffs[extChanOffs]+ADDR_LRAF,(IS_EXTCH_MUTED?0:(opChan[i].pan<<6))|(chan[extChanOffs].state.fms&7)|((chan[extChanOffs].state.ams&3)<<4)); + } + if (opChan[i].std.ex3.had) { + lfoValue=(opChan[i].std.ex3.val>7)?0:(8|(opChan[i].std.ex3.val&7)); + rWrite(0x22,lfoValue); + } + // param macros unsigned short baseAddr=chanOffs[extChanOffs]|opOffs[orderedOps[i]]; DivInstrumentFM::Operator& op=chan[extChanOffs].state.op[orderedOps[i]]; From d0330291cedcc61ae97c363d9ef100f245b73c15 Mon Sep 17 00:00:00 2001 From: freq-mod <32672779+freq-mod@users.noreply.github.com> Date: Fri, 4 Aug 2023 14:31:44 +0200 Subject: [PATCH 093/202] pitch res of k053260 --- doc/7-systems/k056320.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/7-systems/k056320.md b/doc/7-systems/k056320.md index bf6595823..f4fe9e535 100644 --- a/doc/7-systems/k056320.md +++ b/doc/7-systems/k056320.md @@ -1,6 +1,6 @@ # Konami 056320 -the 056320 is a sample-based chip that featured in a number of Konami arcade games, notably _Sunset Riders_ and _Teenage Mutant Ninja Turtles: Turtles in Time_. it has four channels of audio and stereo output, and can access up to 2MB of samples in 8-bit PCM or 4-bit ADPCM formats. +the 056320 is a sample-based chip that featured in a number of Konami arcade games, notably _Sunset Riders_ and _Teenage Mutant Ninja Turtles: Turtles in Time_. it has four channels of audio, 12-bit pitch resolution and stereo output, and can access up to 2MB of samples in 8-bit PCM or 4-bit ADPCM formats. From d9ba33abbf74b31ce07ec77f35c212523b4bd48f Mon Sep 17 00:00:00 2001 From: freq-mod <32672779+freq-mod@users.noreply.github.com> Date: Fri, 4 Aug 2023 14:41:17 +0200 Subject: [PATCH 094/202] Create ga20.md --- doc/7-systems/ga20.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/7-systems/ga20.md diff --git a/doc/7-systems/ga20.md b/doc/7-systems/ga20.md new file mode 100644 index 000000000..875564870 --- /dev/null +++ b/doc/7-systems/ga20.md @@ -0,0 +1,8 @@ +# Irem GA20 + +ga20 is a 4 channel PCM sound source used by Irem in their arcades in late 1980s and eraly 1990s, often paired with [Yamaha YM2151](ym2151.md). Soundchip itself is rather unremarkable, having 8-bit volume and pitch control, no stereo panning + + +# effects + +none From 297334e882b4dd1967c64cdb67b0d191f6c5a0de Mon Sep 17 00:00:00 2001 From: freq-mod <32672779+freq-mod@users.noreply.github.com> Date: Fri, 4 Aug 2023 14:42:04 +0200 Subject: [PATCH 095/202] Update README.md add ga20 link --- doc/7-systems/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/7-systems/README.md b/doc/7-systems/README.md index e768ec094..53be263ea 100644 --- a/doc/7-systems/README.md +++ b/doc/7-systems/README.md @@ -73,7 +73,7 @@ this is the full list of chips that Furnace supports. - [FDS](fds.md) - [Game Boy](game-boy.md) - [Generic PCM DAC](dac.md) -- Irem GA20 +- [Irem GA20](ga20.md) - [Bubble System WSG](bubblesystem.md) - [K007232](k007232.md) - [K053260](k056320.md) @@ -119,4 +119,4 @@ this is the full list of chips that Furnace supports. - [YMZ280B](ymz280b.md) - [ZX Spectrum Beeper](zxbeep.md) -Furnace also reads .dmf files with the [Yamaha YMU759](ymu759.md) system, but... \ No newline at end of file +Furnace also reads .dmf files with the [Yamaha YMU759](ymu759.md) system, but... From ee4afa0da7e98b1fa607d8408ebe24d2ba54fe14 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Fri, 4 Aug 2023 09:11:53 -0700 Subject: [PATCH 096/202] Documentation stuff! New page for the effect list, updates to chanOsc, and links to instrument types from every "system" page. --- doc/2-interface/README.md | 1 + doc/2-interface/effect-list.md | 10 +++++ doc/2-interface/effect-list.png | Bin 0 -> 160618 bytes doc/3-pattern/effects.md | 4 +- doc/7-systems/amiga.md | 1 + doc/7-systems/ay8910.md | 5 ++- doc/7-systems/ay8930.md | 4 ++ doc/7-systems/bubblesystem.md | 4 ++ doc/7-systems/c64.md | 4 ++ doc/7-systems/dac.md | 4 ++ doc/7-systems/es5506.md | 4 ++ doc/7-systems/fds.md | 4 ++ doc/7-systems/game-boy.md | 4 ++ doc/7-systems/genesis.md | 61 ++++++++++++++++++++++++++++ doc/7-systems/k007232.md | 4 ++ doc/7-systems/k056320.md | 4 ++ doc/7-systems/lynx.md | 4 ++ doc/7-systems/mmc5.md | 4 ++ doc/7-systems/msm5232.md | 4 ++ doc/7-systems/msm6258.md | 4 ++ doc/7-systems/msm6295.md | 9 +++- doc/7-systems/n163.md | 4 ++ doc/7-systems/namco.md | 4 ++ doc/7-systems/nes.md | 5 ++- doc/7-systems/opl.md | 4 ++ doc/7-systems/opll.md | 4 ++ doc/7-systems/opz.md | 4 ++ doc/7-systems/pce.md | 4 ++ doc/7-systems/pcspkr.md | 4 ++ doc/7-systems/pet.md | 4 ++ doc/7-systems/pokemini.md | 4 ++ doc/7-systems/pokey.md | 4 ++ doc/7-systems/pv1000.md | 4 ++ doc/7-systems/qsound.md | 4 ++ doc/7-systems/ricoh.md | 3 ++ doc/7-systems/saa1099.md | 4 ++ doc/7-systems/scc.md | 4 ++ doc/7-systems/segapcm.md | 4 ++ doc/7-systems/sm8521.md | 6 ++- doc/7-systems/sms.md | 8 +++- doc/7-systems/snes.md | 4 +- doc/7-systems/soundunit.md | 4 ++ doc/7-systems/t6w28.md | 4 ++ doc/7-systems/ted.md | 4 ++ doc/7-systems/tia.md | 6 ++- doc/7-systems/vera.md | 4 ++ doc/7-systems/vic20.md | 4 ++ doc/7-systems/virtual-boy.md | 4 ++ doc/7-systems/vrc6.md | 4 ++ doc/7-systems/wonderswan.md | 4 ++ doc/7-systems/x1-010.md | 4 ++ doc/7-systems/ym2151.md | 4 ++ doc/7-systems/ym2203.md | 6 ++- doc/7-systems/ym2608.md | 6 ++- doc/7-systems/ym2610.md | 5 ++- doc/7-systems/ym2610b.md | 6 ++- doc/7-systems/ym2612.md | 8 ++-- doc/7-systems/ymu759.md | 4 ++ doc/7-systems/ymz280b.md | 4 ++ doc/7-systems/zxbeep.md | 4 ++ doc/8-advanced/chanosc-gradient.png | Bin 165108 -> 168370 bytes doc/8-advanced/chanosc.md | 6 +++ doc/8-advanced/chanosc.png | Bin 121264 -> 124620 bytes 63 files changed, 305 insertions(+), 19 deletions(-) create mode 100644 doc/2-interface/effect-list.md create mode 100644 doc/2-interface/effect-list.png create mode 100644 doc/7-systems/genesis.md diff --git a/doc/2-interface/README.md b/doc/2-interface/README.md index cb1588dde..465d0f872 100644 --- a/doc/2-interface/README.md +++ b/doc/2-interface/README.md @@ -13,6 +13,7 @@ primary topics: - [play/edit controls](play-edit-controls.md) - [instrument/wavetable/sample list](asset-list.md) - [song information](song-info.md) +- [effect list](effect-list.md) - [pattern view](../3-pattern/README.md) - [instrument editor](../4-instrument/README.md) - [wavetable editor](../5-wave/README.md) diff --git a/doc/2-interface/effect-list.md b/doc/2-interface/effect-list.md new file mode 100644 index 000000000..1f76f5051 --- /dev/null +++ b/doc/2-interface/effect-list.md @@ -0,0 +1,10 @@ +# effect list + +![effect list window](effect-list.png) + +this window provides a list of the effects that are available. + +for more details about these effects, see [the effects page](../3-pattern/effects.md). + +- **Chip at cursor**: the currently selected chip. the list only shows available effects for this chip. +- menu button: opens a small list of effect categories. toggle each to change whether they're shown in the list. diff --git a/doc/2-interface/effect-list.png b/doc/2-interface/effect-list.png new file mode 100644 index 0000000000000000000000000000000000000000..dd5d0cc8b2185cd115bfa6864c39b3efccfd6776 GIT binary patch literal 160618 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

I42QEu8!OXD7arsPXx$w*8d!16U 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

f(?S%tsG&k=rwhG4;o9G%K=^l0@T`?jtV|3Af+- zzmJmE54Px_-rBIs{Xjo8@)&uxY^~; zZUG5O4+RqFjwHi(JcWg4@2mWAKk7S3#A96Y-y>pZF~ve6%XK$KGCE($HxwY}qj>Ft3fJ%j0{m%t_-bYgk+8Pu`0&uZQxn zf#}x&8Im)%#y1pOg;aSR4AyY3B-j1QddN3b?auFRuJJBNc2swmw$w=Gr5% z6=IU=c9V@zJ^OR|y`xc8`z@Z{a2aE&##e;dYaKk9U2KRuAg($d$C4eoAzuc2~{OT1hxuATgXe1v!CuoOTv3>4ueaG!w zyxXl&Y{U)ep-X;d+#hWg8*-da4_#{X@3^p**XF1|=SMg8ArHpmj5{+y)6Ymn_OKHG z|3kSXJbiralFrwD+x~?P&NRxwwbKFlMkMXRx50qoR(~XwVo7q?(pBZXI#BfWRS4!r zLk{0Zo0b%Qg`1IKP8ju3=?}E6pn>kt%h=5uC(waMe-WL!4dnC}$%oMu~SO%2^10_X)s?e+gVpc2cbGysuW> z^}%%i7uOkmD2J;}b}VW)fMV!R?C!Z@`pX@LN$zH?NrBdeCat&7iwp#wuFwS>%{0Wzs{|Txp%ALjI&S>lLy!Qq0~xbUz}81nY-kfIc#GryUG2rM9g-n>n&HyV=dlBx ziCco%9TN{ynP_g`f1us;a7!0nY8r+W1%5hdzDA~a4CJ*!)K~y8eYk|{)ZMA(?;(H!TKbWV38LGh@3lH^%YHGa-5(XDBT(vPFmuZmP z_yS81vkgV2`5Xtq8_wT5cjZ4z6O8>&*d`*0TAliC%r_l7{Zudw)_lQza zB!cmBK=ls&C#e+3(Y9c?%)57arMy*7xJ0KGUDQpdyURr|5jx7YUJH7jkq7i_sxeVR zX3b9i$vg&{=N^)(=LtzmM^2Hm8tP}hG{+4AZb1h?wa(GOx!xlI!I=CKM{Cy^yxS$!%_{A0ztg6E~WgfPR| zA7>rX_O--pB;Q;DyDT|opl6kgIaKH000lzp*xiMJ+e|%0;*#DecW!AxQp?Oo*M;Z2 z?0_aPwsvCopR@)}iA=`-xT5!Xu_QV1YJC5e_1+m?ivstCJtvDlhaVMJ2Z@eteR7{Z zi^bviGwRuiT+L*`4W!hyfW9dfwG(m0>e-(Pp6jY;tAu}TD0;?@Ws#ozFc>Bu*(V8^ z-tUPQ(!;L@Ww_9jVxFUQ%;4Tz53HyeoeszOnAF<*&CncGY5cnGnLE8UA3L9GAe>x` zH;E}R?qlXhLfNe3Y%Do3Pw`ujXT2LCm;H&Q&7`_O`n#FO6E2ec;Pqllqh~N#WmjBA zDD%0G*BD>~jSV#Wc^o*1LB`L6)@}@poc1KxZyM-`#B|WQdCnSoP4L1c_xP|~8ITMA z1JW`rF4XIhd~7UHV%%LxN7#u)TWP*C1=O7GJ#?vE3{x{LoYaCgzxad9G@@5n`%A6u%18CC?ocH z_Ow4k57%Q(FQ6$z7>f^eJr&m( zU2jW%?_*%LX0{pn-f6R}88U%z?fOU*dHAGNIO6F#JebRLK*0D=1BvuFY*tXz)7v*SS;;caL#!Ui0Lx~x< zjNaQ?mB#x!L$y}h)a!W8))2V5aCt_CU`T`we=< z>g&Uiz}3ZN2$jQOISEyGF5~JeTCiW=QUHU!Vj-WTE`0R0iu7J(YP*hli9X#e-|T zi|n6eN{oxR2_Ffweh9XwS&jw1qY!s8_nc_us;{UwM5pIB+Yww=8%8#hX zNUkeiOQ$xNM++Iw-cw0vW7$JJ(=Fio<7i5`meZ1K^p0by&XzrWv}F484;OAO!{GC2 z1zsP<4}We{fa#~_tzIhdk;(KQpnX%qX`Z9@Wf68{S8rQ9fQ){sc=aq_I`icK8VNVa z>z6L%0a-G$E70Wxh-3x}sVsGVJfh;Eq8_lg8Y|g(IzL?PRYkq%!577se%^aJ7txCW z_rW5D;x7J`3bX|qZ`Tbg27g1-!UE?4kKc7{opNu}Ku3gSW91iFyi%=Jq7;g2!Kw3& zp@hAbfZy7KCBaKQtRi;fL>%j+z2L`d?BDo>1JeZeSAN{&^K$B_OX(GX?Fn7F)cX!B zsltKJ*s7BSVKl-PAI#1M0vB@qAw(Wn6IF({dXA&Q#oow6<*ny_|Kh^c_5zph5_hOj zq>i=K`tThQhY^1R`L3LdzB1iT$oe>HaQgm}hprWLkpUg97ETX&zQ88V_uZTyIA`^F zttI)$RZ%Yvn7M6y0}-?{Xe=7tcUehI0Vv0X#nf&)lNxRl&npQ2x4J$8b@K^w@+J!K zjZXF<7=|hg#0avPsM?}?s4M~WzNsrOKRB1d6-kFd@xmRy@w?-He1Uu>to)!Oz!Eb8 zNa@kr`38bRHcq-@Ug?D8LdZ1qrHOju{Ng>NlOZm&l!f|D?0L$Q1Wj4Jt>?`eVru}G zs!ZF8)9P*2JRFD+mb3a=r@`FI-bqu8wp&8yZ8wzld>3P_LAM;Z-$OyN#(a3p5_Bib z9XlBkibxX6+EhS>`hY9;X4=KIDH8q@10=}^G z8#&lnHy7SQ8%H0=srXT|E5UTA|C;V}3zc}w*rRmE#lAICP4{O8{>{7G0`XMMrlLZ|`}j1CudbLsS)`-f=J=4+MBS^{(!&UQGzzW`WJ@1()>yscNkD+%j3V5XFTi zVdCWt{t{Wi+}rhREOoSTvVXK?YNa%34A*s*F1P3=n7*kiaFB#+ zb0g-1x3%jm4c^@1dHw#vVW9}`fowx*!gFf+gj5`e+(47eHASjMH@cIO|5zi`(KT0B zp0FCmE)_lqrAt!e&BHZ!K;uz;X(A`7rX&&=W4luQZYK-|zITV8qkMI5c~sN<^rj-PFf9_|1EvbXK*&ktodC zyZHDku!zC9FVDky(%xc2vf9quh2U@Qpk|KQr{NI zv+X|E6t6i8IBe3FiN{Mt_)R62ng!HtY&wUF%E7g%t!Q8{3cd(yzZ4?7J5tXK8Hl6p zjiL|Prya|iaz0kz{Hr+enqY9^LiEg8M0P6gy9rmZEuniY8kqapK$>0zUUHnnx$;`o zD9L;7dHOf+eY@~QPLB6Du3W3z9wMov+k?*|JML$=Akj!UrBx-5ZNneu*@O7jf$L$J zkE^>f`^%r|wyD;Q+wlNBf7xC44O*@G%nJ^(pA8R|5s#X!c2`*-Vv!CYnvJK(XZuJk-$R z&Z9N^(1Bzg`jPbHg3~ls#}-aSZXc4xjv|}}=dO(HhWC)D*U0I}f1=UMImE9otLnW$ z#{({R7ushkL(0GacLoOq+2-V{dq@V5Py1;ocab5fgr!Sh5-iLWwRIw zC6pUs7%9hboFCbnW@?T6lxbq(_3mL`F5?(uf=0B$;;xqkZn}pxA_h+WmUSTMa1;gjrm=oyt4PJ_nn+i%E-%xj|1~UQzM&-L1j$ z!fw5qNiS+e6DyqPvrmP zm6lkJsG%#Y4z@N9<{@cHC`{zCdIzX;K|G+Y%^?uWQ_X5q7Ld!s&CM0#ix4?{V7A=c z-55VpI;XTcXzDgz*8B{YvfeWc`5!2D@+We(!?`=uTztFA#qT$)7)pJO*PU_cjSA1c#$8nbDK?ObrAfyVGx*DkQwUb>BW zuD-nU{Bg9?jq|uOHXB^dXhJ!OfAuZyIm7WBbNQ&`Hfi^v`dKp5oUCqdoFWjm9O{WX zW5J=J;BT!xaHPq2(X6Yht3;uk$#ClK?KXfiJK!yx)oqDVkg^UDgsG*hY(U>KTa-JO zS)Y4GZWxb$^hX*lV=fVd!bi%Ui^>TP1+O8w!dq%8ux*wN+*D-)Z62&5L15v2riRr7V z3NfRRzJy@08^~uHsYAXrE5ne+VSE}O5>Jrf8Od^xFG%gU#AB~O?wmKJ%|!KltLhKW z`YO7qt@$>U*nU_Gt>?R`y;4A2=d`_&C`18`H3R&XH#C08!%4Upl|=UGto5-yN3RO!)T$ zR46sp{Fc7lkMuE23m+CyR+bTPUiSWlVcYI#RligTyI->E53y6%5y^!^US%kC?SjeV zBM0I~q{aGibYU4U5P_F)nk3Rc8h>Yc!>rE&<-X_!{e#5#rIuXAy+az~OVp=w5S7x*VOpwL# zC3G>2dB`~klsSu-k&lUh=u96S`KRfjnMCy$b}NZ$Crr(yfMQ!We(#dXyZwjr7c*Ps zL5C_BLpaNphxou(mD(8U@if&AK@&4E#AevU zy>B#7EOA~H*kvzcgZL;_U@`J)mGfWLJoP87;7^a%9T`zN&R?cGw43wrdl*%*Q@gRS6T{&4C`j!>uVHO z01k)rE;OOizlq}b*Fnu5(?Yas*5%Q9ostB%Gub0KdAHF!VJ!4~d*Iv(+uD}glC_ny z|FhTLstP$YR7_7Cy2DAo9U&N{-w7l+SDmWYE5dk%%;o`K*al=s#i{tb2S$SaDxB4F zykX^A@lXB3RO$;!?_FPRH4mgJGBaKI%1O}O-^%M_*~~Llm=*hgud({1?Yc|3>V8qst|MO zu^W5B;RQDUo&-6?D5pejVxAkqMzdA{QJpcV@DBGQ`^c)mQ8=Q^%Wg!Qu{+^f`;7T} zwUd)VAj{7KgrCI3GKcqz2JEHGVyk9N55%;@_nI}1SsqwP2&?7=il<0?h@$D%@d_{d zC2$}@Yks#DtT(eyu)Tiq>-nDQ_YQB~6gN3gohSKTbzVViODsQ5e2WFRyMAkm1IwkH zvg0avkRbP%UW*cU=am;Y&v=~&i`KRu^Z4u_`22bHZ7h~!QSk)+$qRX5nHt}_pC}fM zFaG5~+|?RP=FrFpV-y(O_&^{@yjFIHOev5O{3#_}&vw;p+L*o`DzvfFmKD!#?PtJ9cz2tY&lNc8m zXG)i<<+>MpeqCbOQbG`4ltw1OQ=+hqbi5AlaJ~hJMx%LcjX$1NJLhwMH0Si)Ag)J2 z-yQ|tdy&OZywTLG^hsLWc`exNq38RlYtBFXV5`T!C|O0;zplp?TV0tiZW}U-_@-Yo ztSqnm;(iPKXS0@J(P(sE;J0MW)z8f|aeDqr6hK1nj(W!zk8<3s0d{fu;>*VF4w>mk zpk>(!(fr3y_M;;&++y3?4k;@RD1-V;6t{~&WoAjs)~x5&E>;qVfH|HY&B6zq@1Kg66Qjwp1|BuVYi;&*t}sZTfj^>?MB`n61}_pySBvJO)f8*O3Anw(LDYCYx0ZFcb`kc?LGW%G*Z2NR-n5ej>~ z_g@!q8LZ?4(<~wD6YxNnynMKhnU1l3_oV|4_?Pe~jU$@1Zf@p0vW=L4wz_H9b5{OSE&j(_KPi<%^^zMET?oM)EDNwj}Ns_9^jo;!(`v z12Z$um}u{FtKd&qPbQC|!f#GRYOvbx$=sJkfQ>xy777kn0-fVvM}zp<7L8Flwf|L9 zQ&WDH@V>r29_ZA$Yq{pwO|y#77O(=<%pshE3C5Ac`{U(ICUmj@n;Rmc*4Yvl78RM< zSi0bSVviId^-z;sht(m$S==|f(w+gxaky63d#)tGYwo;e=wt}>e)Qmx`rp8(iNYRGcjKT6ELxKzxk!<8h9RyH}=M0ZkgkA&;3=Y z6kU!OoW2%abUxTw?#HcCEoiR=^DS;TCp}V6Z>8O1Yw8fbYUhCe^{am*HwHG1v0%$R zZZS*>{qCTGY&+(BWpL$0!IFJ|BIiuF7G$9(*}RRNfwb#A)cSU8z6Q^FGgmA3SzV6J zDBV(5v7TD03!K>kJ8kV}_A*y@rD{N`EyLfzzXjaI?ecc?hSN+-Vc#gHGeN51@>>1E zvCQUC%k+nXA*`4om6$fQH~r&Cp%b#CD5^IT9Ix%(ORD&(#uY$-xsUn43uQ)jnYej1;CK)!meL~f@l7{BXdI41!epBBF_0D-t0-d38e0^mn6-FhCT+7v&A6%fxx0# zO~K5V%laEM=ZU@}v!%~q%0(+@tY+@3qd$|f1GSJ3t`|*HE(&jU=7XswYKp$rQE8Xe z&$OdPTov&dA9m}$Dx_OkvJk3LkCJ7}??m{m;s&Vs)8ev*qy_M_v;0`Id9E6e#y=x22T6BG)0`LXi z>k<+h#>Ox7{&ciAF(`6SZsN_-pZsO__62=Yi%6<+ud4`u|HIPMDH2zs!E*MG-s7-J zZR9=dhE94W`|DCHl;Jw5Nq$=#ir+xjK?^f%PKDM-{kkZRK;40Y?O^eIQ-9GSILQQXQP#!nwkiiNfNX`yM`w((s&`I5111eOCPL?2q}!| zaYKa+&@yueC6J1{Q1H{iNYgE5$3;wbK|_*dX|*WCA<|fwF)k%8fgg~NQ?8r2He+W* z^iEZI*#SM2Px1m3Syv=wnXYxzxxCV*0UbVlf51eDwd1j}MmagA?Yf4$?LMcz+s$pWz*WkhTa8i_R8q?B_m}#PCq= zx3jYc#vLj=rjL(}y?oxU*gE#h{f77{@nz+2byV2}LoML)mQIolTNV<(IR&_bzZG87 z_vFLb?~ZS!X#HZrDU)Y+f;J#+uiP%{K~HS5Dd4$&>6IiUZm5Aa!of`1 zpw#alSxJGZaj$ztyV@gx-1tMNal10TOR#4^v*P<2>MqPoF*+TCRsSGyAW#-Rze3}l zL&firoqABW;DPpP4|2FsrESQ+r7`xB)-9*MNK% z_vG#yMeM={^+&G}8#8tdnC14EkdSpTmzDQVnUtGTyFH{a@!CN(zOiHupt=o^^kSlO z$N4eq6f?_U^y&L-b>=CNUVgtn4>c69Z~M;?oUJ+v6AUh`y{W-xQ3lH8xJbM<5g^}t zJyApyIj=IEu{xw!;7XyrsGyhFtt*)t@}@JUebvenq6WGv<_+;JiO%j@@sm>Q$Mi+A z2Q!B^cxHBBYJ~~OMYnpR24H23FK?e<5I|#VPDnzfg`0TZzTH&A<`F#w`uW04-&g3L zTlzaM{~&VFBQ2aQ@U&~i8+k0XL`Fi0CMPa*sjiMY-{$^?uudC@iaCMU>&zUC)}$Ai zDuGmQHf0|jEz@-@Os_vCd@F5G5Z7MY%R~ph{@Q2akU06zhflz7?Mt?2Wz>kDP9H&a z=g5>luG4%n`m9r4O>j-Oj5eP^NrSN7VMaxNHUn}*v2(9RPUAaNB8k_N*wMD2*n2KV z<{2gP8oy(vYH@j8?3BXOfMo9Yn}p6=5KDigL_cM^ak*eI)BpvR|HEb7JpH z(K0@-U0W6{@p;snaoYRtmc{$<$j^(f(?k+t%&I*$NkPaZ6b-8vLhX?y|3;u&NUZ(3 zpmWvo^!EZ$gTsekUcaUnfd-?^so;7sR=wsm-h&e(uGmcwS_O&Czwk;SruVb$Eerjt z3tUxtI~yS<-+np62jF@&zDt5OYGbk-di=52MPwveg>E(MLwq1>vmF%`NV;q0dqKSD z2otx9CFpG{l(yEi`(a8JSLL)a69c|s z|FK5$=#aGUYc^A;p14a3@5{PEGNp$ZzknIq$uC!7hMTO>RRm%CplE3>EWL26%BV!nI=FBGGYNNwvT z1MF*|x02RP;{BQ6cj0vh%S90}Om31}JWU=dke)&dGXXLo580qDdfFIWF{kVAFu21Gz38#QoSlvuw%hmiCWiM(og zK}ew5<>^;b_?OCP9K7;>4C$kh4c0*1*^$xty!Wezx82q^rN4Qr!%eI>zmh%KMhU^W z$@I0Sic2|ms;ECgbL{7$gY+Ix^AB#9$!V8Yk`cVuNsPnbv)Vz6v`!AHDXH~=Cnt6% zbM)YUg+?oKKW180_hHy6mC$V!v}qr#u*ZbTHg(s2qYfK}_HHPSjR4NV4RHkpPt9i= zjde=3HB4lCzU_+#Czx7pGYa?yx>!7B50nWu`bVr#V4xWGf{FP72$nr`r0*qx@g=C> zX#emSw|D#m=^Sg=lzso=yBB%c**r^@Gh%Z1Tkd<+4Jmio(#hBW4}7pn{4vK9=cvOC zg789PFyAzFO2~c{=gQ3Ol2X0;&f~H1BcuJpTC6W(4^(14GL~MP>Tn*{^NhHe$Yk#Z zIKc^=_tSBF`-*dNvL0KqY!}_zoI*nTPIu(D_x2MWhVQjIAOEp%J z9KfE)=1k+Q)RJzX&$?DjX{z!MJ)|UeDnG$E zALy_}^E(A$J|Q`T3JafDf;TaaEl#P%(N-j)ejC0Fh}`+sDn-lbsB}zohQA8Rxp%l~ zzo)Dr;uYxbSXAgP*NB$h%0dfRs@+w3N5jvruXTQlKyXL;cM7L)X;j{ti7cw;I>}c6 z#PVQ$W2NT!6n&jQ8sz>cBoq(UAmngBu_|4wd_AMzn;(~3%G#W**s(>l2^dD9VhH-RbessE9$EZSnc z)&j1ycyQVMW5nRp4F~?>1w%Z+Jt7Pj37G!InWI<|)ykQJL}UUZ)wj(I~iHPr~`Qz(cYd{Sz`G zAb`Y=LL6GMc-SL@N~G#7;AO%zB5QKS&nwL2jPFV&sAPU|6OI)9UO*)Zkl>sU71iwt z{lkX|++LAuod+Xk!9&iwrV_?~4AhdI`61?@n>*tFM5odJ(|aqOVTimKIu@7Vwkr~R z#PNco`g%j2uDmYCu^tD3>O~_-@Ryp-7VtOf-aOm+N}u#jK?bC}>mq6GB}}kn-@RV# z@Q)uJHu{F0`Q>fsaHZ6L2~l@eS%Jb~r%WK|*YKkbvj9RI$tv>{vyRtbf`QMSZ}h;YlqU{;U|Jb6Cnx19?9p3` zp}g%v*KIBC%>-->lny}tMM63Upin*Avq~s;h37=>TQ7oCpvdomUP-^8;p*HqU@)_lyCK!^Ru zI)`C9oU|7@)*)p0#hOhss-lPkwB`Ft_GG^(MAjVkKGzsO-KfW7j&95fY`d(z1P!zV zxmFgoA4hU1HE-iaQ+s+>hLxk=1ae0s9>k8GF|+UxfqNZpwcU$&Qq0pb6TK;D7Cl#R zW)S_ ztO@fF{XdWGx3tWw&?+>g9*(^D?m^85aW9kg-@kz*!S6c}n|76YeuswFAo*nfcj~JK zpmww}$6-Fvnb}qEYQE-}k2#%0Jo05MJwnrB?d5u$REpbDH)}iP{XAcU3iXBQ)RPCy z01L|rVn+k(;n|t6gP^o`J+N0twek7^q{E=Jdo0teJPq7Mv{jn-tGr+FuLmkQjPM|M z#EYXL!w1BJBuS!gaY#?qGq|44hM>TFLG4st!+ERnWy1?8W&O`uL4-<*p8+l497Jdd zFx^{$3#Fy z1?f}?X(T0;RJuW0Qt2KwrXrxENH_dbLP?nQm*9t zG2%VJ1RmqfAhUjbiR~D_UvM4pLJ6c|lkzJR*Evzv8b(YEZ?=&#aK80FQieJ9m>h>?-PzzcH* zMn=i6>L@`=;%z3~CWn`BVKMxnZ7xY$_O*{zePDNO=v%M7v!(zQ4MV`6BwNDkCx;sd z*=!L&Xxtm06EO3+WR&$LB8W*KH~G6zpG@A2BP$7VpmEgs()gD?-2-tn>hd^+SP)T$ zp3r>N4J{$jT2 z{^lccF10%_1{nWm8jVA>*=Q{^Jl+H0g*Zvlferj7#-=SfUpm+TxgmU6NU$af8Rue+ zpf{qB<5BsYPigP%&T@>bJc|g*##B`wl3v7X2>4E%j260HHd%H86Bp9JKtuYq2 zJcD##^9v$jjinT=eV*|BUFP)1}B=7;Bz3q|iv zj@H&fmtBAc@p9;jDLwrI7}ewE=H{~o+o&X zZ|;x%^y_8^8)Zu2-_)0O)tjk5$11S^3}3F`keA@p=JEM5%e||@+W(%p&zuVNch5p& zdD7fPHMsW(d5s_D(MkFimz52_SOv~rIj+x>1Bn}4n_v6u?I%5f^YI>bSnbhPl{Vop$aG}DBW04u8qbWpGQ z*F;Qf*Mdk@sYAB&mr@d8ZjYVx-3j!Q-O5`--%DpcI#0%_9;HdtfU$B$M%a!JQi()A z7?;Iyp-5>4+4Gt8i#@y`rSKM5VB=t{De2l3s|+O4agnSCNE{5R-t>uS_8(j7p_bH_Q4g^X&+V0@ov-OBz2^ja*v0 zj(tV^OX1Rm+1<7Ry;=ryC_jw!IAk>ABwW4En=Qncu^j5R+K7%C9?{-ulZ2j1! zEYSL{@$BwU4y0sr{b99&Y#rJzH5{j+1;? zD^h(QP2rA}d37K+ zx5_+dia{N>NnOM8Z1s<)5l}mlG-y23ciRZ9dV~->dz!&c9*U+OCza!fcgHl%M4)Zy zYsUVn)&_v4-Z26qE&juBa}m;pgyCzDrZc? zXk@7Y+1b+WTIh8jmJ-(*Aaf`4N-0?65s2=uF9JL!Mw>FPTdStrH<2HC>t?OV0uuY5 zf(tdcTFwrf-!@Z4=@%~}^&4E9x37D$;@V1p08l*1zd;)MedSJ}d)Y5mwJdm}7&Fb9 z3kMzns)!WeOlvzoBP5Nyi}yVcg&}O(oo0p591Eq!`s`@KnwF9cP-V2KQv*OYiWl^A z_-WOs0udM}t6yqtnwOc*E)E~`y3N|ajW4JED`+|~3Gpee2eX(s$tyMQH{0S;tW?d+ zaJ!0T?BqL(i@bd3TduHfr>eLGp1z70J%BHtby9p6>T(izc~F|qiFs-^BBSUPv1fy@ zN!fySO_xh0@RGyW@()Ao{48|C3`*<0^+-o2FX|Wpd64LJU>de@wqBhT83TKX*lxBRVbY*5SYruQ$I`mW~581$Gt^|~k2=}<`q zDq!9ei)j`pt6pwm-Yi6a6%6H_h~x6$7MYJRt`l*|)$!gL6j9UVxNpb5*hlhn=+(;j0n{dW3+B)Y?;g|dn)mjXv7wA+99Ep(~#{dvIb*H zfs}TE6jzwjdi9heYjO)*rRHd`7ziQ$Zd{wJ1Jv)C0NCC7^g<+0wN!q{wWz#)Iki7X z^?2EFw+kf}uo0mUL0nV|7BVyaF2$ki&@|Dxok5ajlSV^Y66ZNC%{01^yO;CuSq^Z; z6XaAnh_w)D`CPNg-W=kSy% zAA^7ni$>D<-t?pX_1st;6dQf&v>r&oNxV3@aaMsV+iw7g(q(fEY;a z)L+E%q}5oh1V_Ujird%Bz@1wy>EvSjt=*?fa~{Hy&}(m$^RnqJzkgd&b6Yp2D0#I` zB_Qy$gdCJ$Syevk$O^l^2H183jaDos2>~QuC|je!WGyoRw%fEHgMxUtTQ-S}`zQ_R z#s#cL=?0s5gA-FfTsRHePFh$Ly(Xe+`xH>Fuy>w9-A2p$XlQb8L6pt;+HmZ=af<;Q zsrQtRN(>ydX58Z6C;Ev!W_4v{eVy-|>#R&5O-(!Pjo@f=EL^R^2AA4oVG9Ya7oZ9Sv4Kk%ytkD-ZROx3DtWAgJljCAT_flv5YX9a7mS znH#hDW)sY>A{A^@;)Hj8+mq@}Y@CE+&r14Dj8~k$K&D zb4_(A&xB?4w_vGLxf#bbDNe#04nO`nQ}Ktx(Qi!QafX;nD{s@O$C^GwT{o@xaYDa{ zbAUBnwF*bv32P(ol2_o6S|QnuHwwlgk()!c4z?Vy>3Efosw2sSu60i-#I&X`hK)z6 zj_px)IrQIF8)UZAK*;YlSwtttwes$p2sJ&3BeUGlbG!mTU=Hp9984%NYG50>>TWxy z@qSJ{Jv-$MP-(BlnheV=n+0&3n<1IS2gVzG_lYM)1RWpO(Q+vs$~}4Md2jng-G~E5 zg}R{`egu!c`9^D2mn$HK+rvt^k;hmGrdxS9d0|@;wriU`^4dQnHHP}eCI9S)QwV74 zy+v~SW87cwhzyiyLjSs(6!A#-J){M66n8Tyt{{rNV=fAm z-IU$W`>Si}Kmojsw78d^?cbh(Y@fjI4s+927z2SKd%%*eNHs6v@~}s`^IUyNAtnzf zo2@aFtp%z_HYPPhC_pN`X=l8Vk;EI`ynRw&SfZf1@J8R-+0WCF+oSJLs&z8 z&#rxDtty@3Fl&7IiXhdomd^tXOP%SC zq{}lMtMxWxGPd0&m5=epaKReQ7afqK%2D%tk>h*lvBlVj6PHRa3%|D!Kw#we@2orT zBkuiU4~u}D$8hwXhekbTt>p-PUN163^l7LU`uVyu>eW$JhnH5PkL&zW#W>_BB1EKZ zXmE(8XWt(7Cdt=Wq-&=@CwZ;&!TU`W(F7t}cwobUMyVtf@s|giGeGPb*rrOo;$Yym!vHn<%$uY#!(~CZ1XOOYaZDj8dUgTHop&^m2&?|`nphh zYg#;pNxmP^9*}2x`lmgB4bXqECQ@Q&eX}F}-;Vlv^7`nRBLbuxa-y|Grpy}1US9>g z0{>G-ZnXMI?aeR8$;!I1>Zh+bemhR+S!g}~bgERKbF$XY8xa`)GH(nOwV9+sI6-t> z4&=uK&s_@7GU?BGe3uyrD<^P!{I=Upd8N;8h4C`nbVI1DIDw7~zfnIwTbl3M+tI6K znUc`7*(bIAfbkVN{HwG+V(RWw{~Y;ZGmbc&CH*bleSDB=Bsg(c z^CVwDC`Hk;)VM{(^YZ()%H*NUF(w9ejWivV-!t)%4#{qg<7xL~s=}vl35$lsLm&Ai zaCwX_hyWH5#c2D}ptGUkBH{VvEbTfs>D8Y$7-YjD2hi<)!{h5%y;yatFQ*c#kzdr` zaO(v^I?qpl?ggixkttr8u|?}cL%8YlBgk2zFl&wB#!wm@;98)kDMtQ~=V2r5>-06N zF$JeQW5a%Gwzqas6M9v@D&Bs}IvFwlwy4YP0fhIt4~u{}&1irp30VL?|Nc-`1`z8N zd48s@NWq9Ho}mVb@FI+EXRSYKE9c7%jtzC8SX>3r$@IJm^Y%ipa`m_O%2Py&fC&U6Xmd=V|1wNcyjgDCbHH!;lF&Ro{J$3nS%gg?(U|e9D0$r0HvccsFW(B zF_mTmjcyG%qnTbtMGS)2JOo1E5K%SG_WqY8yrRAg^2h~=1!@H!FqfcZ39<>WSEM5MZ7rY)AJdI2>NmnsH>ABkoICh9SeB3w=3?*69DVnwB?2{ac2I-mTXJn! zA&Aq{r-lO3G#nZ1@myCifZqiL#p0%+yDRx?Rityn%~i;xmrr8u-+07C#D3!v5z_~w z=Q&R1Vg1{CCFA?-@sl6koqRX9SLd7yP8@?>D@Is=f@;q{iGABrPvzD1^44Mha1ituEq6_5;GLYfgb3! zL`g&9J+wGyY5B_=8+zNKZby8c8buSM=Esqc56n?w+32PQ1;x@I(e~BLR1Q8L(nKdE z*Uz#$zKUBNeYtCCa2(h9VO+c4cHIni-?VaY_f?6&n&j8J`>b33DS4o z*g4%JU9%9R5qF2?TPh)3()Be7`76TW4kTp#B7X%;C2Nb-yi1m1rO0+U_p+N2t9pbn z-^ky6av0=%I%(bH0q(6?Qyxe+uB=|rQ zRcI!fnfK|x0=4>0cQog&B~S_U8C`2JSW0mw-t*?!b0fmE9dM~=WuQvh&LjUfXWF}1Dy7~+a>)Xa<$7~AKKanwe1o+vFwSDhq- zU+St|_}YL56+dfrm8T$iC5Gqs?;BjcGg0^G$I8ytrb6PgAEAj_kn+Blhf%U8hb;%j zMs$`+32F}Zxo_-dbVAmDHgnDG9@Eg$+S}WcLUdjAkPd}@F}`u2R~zpkSlKnwHJ-tV zx<4zegA)*Yt*4FG`(4+uw5<{9sMeY#w~BnEx&~v~ePj2Uz{Q+9W@w-QkI< zEDjQMW2Q&Euw_5VF^j=Yz(R042PtxoZpbX39F*2!!-S-E58voFl#2Dz5 zd4~55Ga`R!sK3@5@}!9Db-bbETpv_LBWk<1`+E|0qekz3-xUeGt+y{(z#2+ANZkDbAa&H) zNoQ03-7}{0tevpDbl*R=u;IZZo%VyW?_WaXW*nSO3mb(e?1!CZ>zsK#U7(14`uwnI zhr7GJu*Al1HoH&9pLbw^n&6JWlR@{Mpl+3!v}pD4#tAxC)iM3lvLcmb_(Pk0GOvIQ zwfA4CwNKQ6u5^djfi!4*F7yzsU`bJBNy>dcJf%cMjg1@VDwDnAfsL-gNdN=@A7a!$qv|u_`=C-h)Bc za>jVacNi=#t+~a$9r$4qGz|8gm(%U?FtMgU&8X{{)oE{Ce;Rt_KM`0Ku+b1ujX6!N zXKSmviLCuY*S`;a@!FsOIqsn)fyDah4iolEV+E;hYK@-;K$eHUVW2xdivlEUXN2^P zvu~wl&rFP$C;83|#Ds-W^0q>@N7mYxr8ye77lY_pa$v=#ukw8Ml_lkgE-1AG)AuWZ z(<1b6i8bJR{a(G>;Mz}-x16X7-q$aGRq*b5e%g{7<+gm8`+mE-W}>BzH%u}|nXM&k zATng=iKN%3*sD%;SPUch1##k2bbCWp-ud2ISiv7Dv1vF>;*UDtGS*T1;}_WW@5XeNAmWz2-Ct8-yF<%VCpm~ z-)}DtH}8F?CUI&Bs~!A4xiLw`^xNPRa(-hSTQI3k#~-(QaUni{HBTRkA8yRd|TNXG=FPJ<>l# za1n}RXNh9Ftuga!$J5_JAkoidZ(01#6|L5zpcu$Mw>gqqL}KfxsIzq1W6!}h)^n^6 zh_bGT)6SG^9DMk2IW+LwFH7fI@%0prz3iKFM8HZ)FmGhkHsO)}%k%1wu*-73bQv+7 zDB&#fuPy7GxJQ=esm~|xcw3yWilK9v<7sILhx@P4Dbngs4N1e)!xa+IIG?@o&c5Bp zw_lA#F-q4uf=F^6C{&nVRD)%f3Iat+ReRW0C#<>Fk;T4278GNFC}_ReS6>(8d{gWD zk6*>Vs+89S*p9?e8BO6aibakpR6kdDd&lJX`;s*qYMLsxA6&Q7T-^TIyGYdg7V{kVz5S>$5pZ0)B$T3$x#n5P-WLlO|{KQUF88XUQpUvdv@ z$pp4`&NVPAs~!3+-{qQ{K@R^ku$pMy$d!ASF?8T$@EV7NKd=yN*J?fNPo}O)&z|J% zCG!LtCb+_uQ)p?{WWU|XdC>jFoDUyrd8WarK|t`OWltkh4k&g=Fw>`uI=GcPcVp-% zJM0`f*Mf89Zk+&bfLzXB?vwAzXlZeu`a-vxU%;z*tgFe=?;0g|OoBW?V>2A!N<<$o z8ntk&y{x)-!g+nJn@MCb`1 zA{Gq3ky2=!fO$@w-?PPwJGJ~AGm#-3UfX4L3~)6%7^X0`=6R*)7a)5^>l)a)br69z zJGX-O2pfq9J(s7);_ajljg zR>}@bS!4)xK@_;p!hi9s%v$L2`f-E$Om?di;gUIO z6_$#Rng8nowy*EB%dM!^tl2v%N}W;!?D{KXI0d--L0K+`+|PFfWM^porwV@vJCs-E zzk%iS5VP(`Zoh5#=;y55)H)T&!OoZ~!a2t&NSf4oh#j}An6cqoY6IF&Pex=*{KEvq zH@Cl{WJ~??Dt5+dV>1jB%3+G_v2beB05-4jx{|rn2AvF8;t5>d-m77NBr3xfEc(_! zVqU_($@q2thNS1o&buwQPuFQq{ogN>a?<$^3nE>S!+pP_Ct^s7Kn&dA?WLJ*OGWjh z>MxD_VqU-7jD`~?#>dy;(4HkX%|gp)J=DdynE!YLKq|Ij>@>_5T_kJm)vC-UQB^YE zD}TGnqhKP@Ln{BT_LWXt)!+$acaifB3R;B7YL zy~XgKpx9&_3Kv(amd>EnCThkJHtX|Y=;CXW1x`Od^qDI)n&nIon@B4#>U_y8k^9S3 zOGEp~_gw5o<09!>3{F}3AN%0&qe_w5hwU9V7=V04M zDd&=GWQGpvMxSD!4UHb976*!5^+P!&e%84~6k=X@62<^!L__;;a@h zJpK4s^D#hDMeM|YJi@Q|-BxhmRU52jaH`PSyx9qlMTt?;>Y?4@7)|K4Q@d#NdzMnn z12I_KsLx4cY`5j@4N?h9fA^xu>re5A>xG-;+0<{V%hUSQSvQxXhjKc$Gke5)5)Sg! zv~zM_WO^u>F9i;*=A1`(Pzu0vS{SJcFSt{ zqp(wDLj1{7>6eew*ff_DzSdI|NuPiJw$A?dHy-i(VN1uNtv8v^}>(K-?0dIEF(6do37|_4;r?dJ%P2gdpyba8a>X@s1#Ei zgr0@|Ke)XSd14IJj=u;)Dn#RR54Y<-6?_)Gi#i-hO!{gj+HY5fFuq zgd#pfZcD;}8}76li;Iy{oxFzDg;OQpbS_$;10s?d(fe4`G(DPq$q>3^#=fKd=1)|( zydT zdDmeh{bm)eXa{l2U|4c?o56SLZ)|MFO(e^crmU$mF(@FRS1tnGs)1Ah9jql;r&BeAU zo(`?aTKXgPZTEMZVW@?Q#GFq^Wu-hRy~2>ilj58*PJ!ZSCJo|?@W(T>cy~YBxy+8= zdQ47@`1auG=hiQK7fdE2Y&e+}c-U)ye0W)9*RC8*wyBum6(}UgFLTdhnJX=nRI~2fiQu z87fkdjQep?h&ZWp*AP(E=AP!aZ@*nPZ?;m6Ks?f54mM5U?c6@ZHZ&Yv%GpE;xP@O3qA7MIvBBbNqts{lf()%R*Ui? zEyEDy%4~dtvOOrahdn7Npa|x4Um5KLd6}8;-S?m>r4Lv> zQchr1R{ak0^>LH+%`$r*eTqw^o5r%k-gHya+|3ornk@f|K5 z7hQ&+yrsBQq2#E(;j~KQ%R6#*v^}?lo?nM5;BCNnYkoA&awRio=UxdvWB7Bk`6nL~ zsK@p;Q_XCMj83kE4^>FpZ>9*1SZZ1q-`gntEKm(w+Z5fLF%oBfU$k%vfIHHJNAo%?SsnNvbigDt4#0;rCskt!ZcClpbfT4Ma_M2Oe9hAs9Cb zb$d7>c;)N^iFJO@Qqzufpa!m{IuHqsd0JjviO_O|U_ixOu^Os}Q>r=k5V99KqS`*8 zj0wsj3rdQ4|LCFu2haAq=(gM7g4TvQyATPAJ_XP7)Z-b@jV=lac9pkG%MA?OW6(p{na}+P531O%^{# zTp8qNMj{to28Vz7mxSzRx|{EvrhvdZ9!T?!wf9=P&t6J19%oIYs;*!0#k_S5%S3H)7M09wI4a$Zg2&IfvfZ-j7is+9}t+jAQQ?R!?wb^o`-&+Fi{ zQ-;+7N0Xt*g=yZ<9%)U4bm0t*$+fsQmF9{|?``;WNQ1w(yTn4Od75p`LFax|f4oP^?g2FmL~|~93gTSbl)gE8X6tcy6#2%HX7Ti;b;i@fvb7?QY?DN3oqJjLo%gFN z7K5ulW`vytqt9eV+FZ!}b>!u=lV^V3!VFj0ydG+jM&q`dUd}xWT+SCKBxu9ixg5(8 z^tdk?a!MJclu{#HPLAY+Df5#yuH_@PW+Fl`$wkQY^;}pag^>RuSF}j*R*P3%)?f!)H z!I>=#xQmZV?L$MPF?f8mQ37h<|0w;UfJXxi3J~x*th+TF@X(}dZB@ZH#pame9`TS1 z?jyl4{_dzXao{umEc${#04`7^%Wui6r1m>ia=$D-Y+D$>2$9#}N?^2`J58gX#;^u< ziwg#2;cu1F0Iq-{$i%lx2ZoTUvV1X1Fh|;&!IBRJ?h*h7(k|{VG)OiF{xfk51VO$g zw;A;mqVnn%IOyy5@4KUeNzS5vn5$J@6+}+&o5WqvD3s)HLe_etFx%K={)OkZ?@4oxFvNN-b|7Z_XNdlB37cY5%v9Y%I2!7v;x%3Mt`1#wZ z^&g>orcD7d20^M^BPtYbbH#TbVOQxgI!SX`%MBvwGKBrlj+Y6qUk?b_TWN3qaN1f6 zw7>*;cvxF6MQpq3=4>NxX>9CN+KJ$g9{f2KC9$(IHy8N8ZN5FIKY_R3Bs>D_-XG7M z@Q1gHc#TwYZ>Jw+Vr+amlHx2(b8Gbp+0}C=7Pkp>MWt9oY)PBx~Qw(yJbM=;)P1vP@1@-l9`DKH$|BG`ZQVa>m04KN72#I^x}~l4AY()GeVcNNP)e=vp`nX@TcCR`Ho=;?0T&u+(9oRIW>0RsrOb} z9~oP=YCE6*T0tHuy;!x+?jIm=%V)dGIqb^cLl%mqjbnk&>xcN2v?W=Wl$J^|n)WA_(`hS% zLsZRy@Ix`<7TtbR2e66nQbmafws;SQMDx4-Nf)JE`}Y-@1P!j`YYCRVw0>Fpg83z_ zWz4K=)_M-RwvovVs;3EdHwL@IgIH!c$9V?t**Mn(zA$=oetx7#pZA-!U|kuU<_|NeL6?6A}VCu$e%G z#ekC5?S(HRS&Ct|ABbb=h|BM_9rIRGiFv$naoPGaXyg);o}PZx8vM%wsN?XyoXDi1 zfBhDXpmnHtdhp8Z9kRuf<7Z4C@5rFVnLqwIyj|nJHvX7gNlEEvfB(1lU@(}JQHsl> zW6)8{(9lp`J_w491zJkI2sODZKBZT3f}O6ig^wc5AYixlk3?%qo}T-a*8KrT^U^dH zQmi&61_lOE43gtrxw*NPJ&|2KknNqN{)4>1Z|~MYsoJJMs`Cs~gkHwPwDVzTq$&37 zFlc9?hfy6_#U@{%qn0i~bVyBgR1gutjfAG9MO-r6`#1@bxxozl&YHqGl*_qZ{{#9k zvGC+*5aVzD0uG1M@*IxkRb>;OzvBq@g_-1EDM)B}tNk@6XDMA0T2#bn`0Cd7PO=n0 z`(W&7bbY|@-n-xA{rxW|Pr+*)&-P)k^YimJU0Ee*(b4m3YY!4onwpwLdL@NLMT0=H z(Qs?%!Tvy!)Jg}hVRe4Rwx@%GgI|0F2t7H7f~1oR!KSA2OW`v!);0{Aurky>8n(N` zgWKsJ&hTIO%-Yc04E8+=})j;|9s=J-+=kzi}ewj~e;3 zl)#4Ms%Jz7JQ15(Te5O#wd{M^xbS86E5*cJdwVnx^M4sLI}TpmfY))7<5Gdl|70P1 zSHp-$K5ynkoRKOif0*x&j%p!hX8{~udkB8BqLmLWaI&!prpFj~Z(^kNo14Hrk@Nto zeu9t?z51G*e6aPpMyjL31o}Nm8WO;?*;HD}^Z2c$yL;8iN+Q4I91c}!EwCv^0}JVD z`}uPX?#$aU*<$sQ{r20`JNsK(pZ3u>*Trtn-hd|YZPPnmctGwDdjfm4Vwv@BMbvZY z{0s|(<`=soc6WE-P*B+~YSCtZ*ne-jvbzUaz*3*OXPVDnA09Z>>h;DRIJ)hq`CJoY z)S~P5Gd3}iOAr_IAfnlii;I)#P7<)yD~tRXURPB$p_$Jpk$CAbPaQ#{6OX`*`i9O}x;}iAf zPu|edH4hWhyp@9ph1y39A7ud)lafz+vv`;}Q*MtYNNh4SD`GJf+mf?^iM*X5zL!gVZcY@inj21;MYuB>yTT5<0Z z5-5EUi5Vf$46R0n$*ylkz7KyPzy&b!2UPd=^*uMB_x(f0)|emEn1Py&jnxsooi6DY zJPum%dHf0aa40Q=8Vs1q-9N?Y=&!LIh3FmU~}h zsYrQjk;N28kSQQ}%~|P~U3UK*n?b!)d)rzBU*^}5v2XbuZa&W^r4`mG+}lL>Eq1FG z3SrpVJM?>RZIDoK`7?e~dr_q(c`?-mxrud;KB=9ZH6Ed%f-^|@i_T)ih&`>+?J4Io zdeXhfIXEHreE9=T&G>GmCnSW_dq&9SheZPQDZy0*5)9N=Vm6cjt_ZTH-t{0kekGEnsf3^paXlrSa z6L)n-(B7sO%MLhO?1=&@&zn3}-F$p}R81VJspwADo>Fw(gSXbBm{i7q^(Xm6eM~~zb%W5hrjuFaqqApwX%5$#wyb(E< z4<@Xw=)yw{13!Dn{V;3xz2>_8DO#3Rntf%gtVJxiM@uiab8UZb4=h9Sm-&93sEL%# zpTUD$`VJrq*IO1sFjFGuckeYW>=PclOu4h}4|IvY$4au=Ac|jASz20Fl;4UQA15F9 zKAgy(WjmY>ToND?EVzA}^f>hXd}L(gXrxGIEBO5QXJH}7H{SjI{U1Lvm}dq%IxNFO zgM)*CSpFjxM;Tf=_~M5TAMQM6Q}=+;TaD}L=#W!TJab!Qyd@JXQ$eyI@xX!wdH2up zh)xKWiHqxIg*$q(i_5HKc4FezTX&Ca+DpE-do=RN0O@6tnuZ`D-uXC`DYDb^Q<&KE z;(PzSY+6_tNzmqA4W&X?)xFnuE?@qWmy`2+yRlv+c46`tK~Jx*re<{YXt8X0b#>=W zf6GN&z-dK(K|vp1@;z>kfn6hmy$-|r<>3rhk5kznKYkon?0jI}mHNq0!!l;(0bIj_ zl;8VG42ZECa=vWkEo3q;+++BTW9}jb7_V|^f^BZcp58}IK?9NbKiO}# zWh{ns=iFkwzCf%4dsJ$LhKw`*Zog%uucV@(pZ(0@YFQw_FluPs=wDZ&&|>==&tj zM&az9H2|i|2eG!1F=4oKRdf7`M@s;88or822i1dHIqeQu=!#r@>o@(-a2pJfe^3ZZ zURIwe;Whkz9AnDS&leC0c*Dvy2@UA1Ddv_#oarAD0&@W?CEm*8g(LIyXWmPv)g8yY zkG&1No_S)rWo<9M%wV!Q$!{-z_!QA@*kY}OY1uEz9yD;R9q=BYWh;)e=cJXo<@~3hu=}yt z<$cmqxWV^xzy0N)vu!<7>Dw_R06fnn?-IO=5X0Macq6Y6Lv(F!-7GB)WmO6ZFfgSS zcVv?MG*3w5*k4eeb;3Xo>;nK79`|?y1%OfmJdA0Jf~K$ zzRQ#Xt_D(||DQi(;&3yvYY5Y}O!=;6VK=W`U%p*+tK@xn>vMlMud`P`C-nap?a&1a z95-s7G53B3Y->*{^iab0IxD)|6_dq{lZfK^ON4mv0fhahEmGfjs~Kt#pBgA2=Ob% zlLtU7z#qVi6cE8j9;ZLs$Vu+I1J_Cfp~Ewr>+3!H#r`2Di?h7zc)Svr*4zcWP9`z6 zqv|&iGZ7PVgLyye)YURl3-_-8{Y9Q>U}*5P{Vx)sl@%6w_bRE8r)+_6w4AR1-3MRk z|55e76k3K-4mXVJJvYi6f$73Bc2_*6W*yxbq;!Ul(m&xxGX*T+|6^3Fx9b6ohh9t& zcJ8^iw)Y(*IfL9!u5rMW$5W^9Ut|IQ0?b}$u+nAxV|oan|7_uPY9EDVd?e)`TK*TO z`n)jt>d`op#4oZ(xgn{lq{15dby0Ta+syW+M&y7?BX8Pa@kUUzf%t8>7~!Ai_+=6hv?_w1z>_xUR6vJj zxFi+OjAvI-SKq?X5?VTsjn_0SJ+XAR!{c=$p9#U%k3d3{g#Qtk_BAF3D&h=5BCnnM zo}f>UopaF=d?txJDwG7pGAG#)dj2~Xq$Vt+~ z62R54*X@}bF2XVwgMZk5coh(V2!wN>x%bDvgDczsFsw<8U+Tqf$vwuuj)dR1G{@Jl zszyt2<)PKZdh2^{T*4FNUq>YYpChb8dOeLuC(;Ppjk}uqNI>qvjilvQNgbL!baIc# z-8h(tIdo*mpA0j(e$rs-;o6;lXL&uzb^&K}U^sjjfca7vSv6#YYMHDWnn4MyPt+md zNNghp-QrBLYZ1p8JJEzYKw#}5h!*hSbGMy@@u4K3owJxwagi>E^IOe@jy!e!QiMdj z_xWfXt)bbFqs45!>EJ+;z-lu0{ELMuN?vW@cay@m00+{~xuNEe&&xd2$^0+3&^qi! zg?2eRlX})I{%3AjWJgRMFT+zG;XyJAo@ z{>$ebtxgDd&EX+snQ7h@AzZjnyCwV@?pgXH$yWaj-u0~?S!|;OqX?jP{jP1mCRzmJ ze|oeULM6az1^e#$RC)Kq@h$?qwX(KvB))LZfKLeJV323n(v>2+?{jlU7RA$C}sE~E;*qhJu7Yw?ZQq#0V+0R8#1nUSxufyaHqzNX9uW0e3-@` zDBGhZ4L*?Bzb)?6@Px&)8Mn3%zY?MzaNHi8&cMWc@%7nvx7+gyI2i4lytjAUIp>SUf(8%fl2lw^~P*ShRVD(fJ zfAsc#+U_oahJ^2kuq%IkGm?!=EwB`%?oT3tMDCHilz=>~A+xZgrMQ+t$;;uSLTYr6 zu0;jbPepb8?O1+%;qwo+!)8N<h2YV8(};Jj9p5fQ67h%E)!IIyjEneFb^5=UgDo)VO1q{mg=+)2cNb! zWp?)k7@wH2DHBJ3eujwzy%>+@+>*^yKVJ2cP84k%PcK`GZC12w3}!FCp(jQEDUuZX zN;w%Fe2UEZu z)FL7VqHHl|Dk*uVcJoXIktZ|Tp9+Iw37+cA)12U3WQpV#4U6Ll-41)o?!ZdU*@XMs$Kq+DKn}arx}5)PWRw zmC7u1Z`n_4!8Zi{)ME5e=M-g4j^;ro)Y0Mgp}50N+1tCQHL!9W5n8XeLGPXkj{4i; zEm_ut*Z?9@R*T5Db%C+-B^(j~7c!0OH{rHv|N9MQzrT-KHoMpIi z;pK8B&UZxx+ohXSV@G_H#vF|>>{tA8{M8Axd=0(-wxwEfcpnbcgxn)WK?&f1~z@A5uXmO z8|???JAL;osC#a4JJ{Vz;9PmbIJVWQ6W{po5D+tFYHZU7 zmm`H=c@~7>3n%PhAq!VjYFk6WDqKL1Elf9H}&St zHgT;8C~qFmGp6ntQ0ujp@T$N3+OuoSrAme|QTV@4>0B@56G?vM$gQ84rGBS0-|S7- z46XjCRr1di8eJ3_WWcY85)}PRGod+9Ya>y|@+APdb_-UP3Ov%fatL-Frzd_l!N=OH zFhU-)(d@FEk8o5@9zsps=M3P}*P5}CE(+?|~}i}38>^Ze8OKUUn**UVcX8yx!E zs2IuItup|v^=%F6qFmx^_0jPWK9b9pSk5YglGR$P$up8a&^~`Yimf@c$i#09Syqaf zB+_1x1EazAzMS(he;5l3?C~^g3;FeLt7|%q%#<&p_l7s4C-7krK&^BD`vA3X-e&VED|tVXFSYK78j(0+d2?8Ay&$stC*F8ZuUc2b?pGuGDzB@npBP z-?^3AoqDp>Y57dPj^KtT0?3ADa+*@Q5li6Fe`1XDV9cRjq@hL2D)b~@v)6J4vNOQ= zaFobGg%YIv1BGgX>Qx7);tT{*4R)IRTQOa-D{e5Ga9fuf<;JN^=#Qr?OuNPc^EQeq zf4f|edMh-jkZGiVN=jJ_Ogt%Grpv_^hRQJT5Pzk-J1t-zUJzy_&m$C@nFkCmw--yB z9=m;>ZQycdOFbcYJksM4!k{MTbGs5gSoS}`;#^UxHT)~3-*O~_6JZi7Kc!*}%f;AI zhVq@`V(#B!Aal4>Pb>VZxaCHzj+Xe!to5h3xEZOdTh?FU72H~-???K|=E8_#oF}9t z+;F*_w3{K+EN=`rEh-ZT6G7A0O zy{~xr`aNi$WjHWezSiU$zxtT#wYgxW3qHZlq1@_jA6RfLn1b16$#od)DznZ&BH8?h zRlB>eynl&r2<1Iz?govea0Us_@YO$l76afqs!ZJuV6SlLvXoeZe4h|VW+#T|j9Giw zc{1Dr2DfOBR{sFNTjtCy z1ECHiSI3H2+?}llbuG?#C`d}~nb}MGcHt#K=nS)#2tCr6N!wNHmvT&Lg;(Sti88FtKw+UNKRSz7k-0U23e| z$B+|r8MK{>e40XmWfbE21AxGfts1yKEJn6$`8ppcx61SB(|6CR^%RS&i+9mPsR)4 zEP_T@zHLWEJ@lyZAmls{U^UtUEUJ-=KD*$;O?ok%RJl2o-7a`qP*>5ET=l$ieZHzZ zuGiXUn*S~DKZGK7%xN;Xz;dsI0o^^;W;&Y6R5Y9{KXAFxso>?)yP&1%E-kHHo$BBs zHt{T}vWpyLrgVyEzu80_kf^oiBXBi^X3rmaREvv>T&X5#ZQDuH2TKAviB1aexBV_E zE=-@XVx!aHE?Ap`r@w?#Ot07iOPj%5+$xAoBfN9L$(<%4-Iist+%s{m5n{lRFpPmg zLR@s@Oi8bNFTGHvHl439ps&fd^k;tBypzocn3L0kVG7TPdfWxTLmBc>;(9Ub+&t1U z%CM(B081D-Tqn|bou1%MlJhvG&|qKb%LjslVl9o$=0Xt1mHDOM?maDp%uh)&COezG zJI-C7#TG^+KxfD>DrlTVMx1Sz>rJ`bZ>Z|2m-?14I005;<`=k5IYB!2Yw>if1vQKH}dE1Uec@5H#aFn96jla_g12M-RGBzP4L>w z&Dn3OpH_?BvD7w0G3qcU1KV?}H4d34UTF+U<)d+}G$HOQK!F)7-TqKmu4#k6GJf8j zq|CUue^9HV)_XkyqKQ=|Cu7`xJRw$~{S2=*$Y{33T#mirX>rLN6UmoIfjwIvHaKHy zi&HhTtL7;X1BF$0}^C2xEG9R}1j)fW?(>ncd!LuA}oyO z+xSQy?Filf8Y6s`O}C{M#dnVt<@#99S`MFy#|a!vYTe6hqzUWpt#-Rhjcqua{2Zl-noR#MT2Gn#hJdQ0_6yLYUdCySQf z0sj*536rCf{i9qDKkBH)fT*ziR*Kk@vLB>bB*v2~9M0ZcAd>+cLMcnXsaGVI1I_qr z;Y19YYqY%clFrq-&k}e58lNN+erInhL>p8HMyq%Tl%*K z(ze7PShdUb#BcN`n{}a}R^z8uxR`_yUmu{X1 zuQaNeqK7%M=W z=}l1Wt`I>sD78L<$9cO_gzJhFyVhu_%)9RlhP%2%hp(iK<@+0i(@eG%3xuMOsYpxd z+>d}VeN~>BTKcfduJ?Eqejbm}Xu)qEd$x@cjZ!`a#@UNU@4Ut9@f*mCju^;)&_IZL zoyhb;{-llo>0++K$h3erzO-+YCkm=Fb=pD@h6Q-XCc zri=37#j@?>=4PhjC8*CndYgm0b7}$?$Jj`FcVXYc_VG9w+v|nEol0xa$PpShv{nVL zWKBZc4T4}G&HFKp=mj`79HvaiPZzKG+j>7tt&~WV?iqRtq6nHI(R$}C{#@x4ev5ZD zxdJ^Rh0%ledVSyq`I|-a4>0FnVt(^^b4v$f+|zb%WtZawSI+g(Y8jH%*@-c{eZb}T zq4VK#yL6kJ65~}^tU*#9|1BFRig{#|kg6-65~inL_p!sLnZH`7Z{~h`c7WaKoNrF7 z&w)v<-2T~TB8Z%gwh!0ILiI9)Gw*K-K}u<-_pS6fV$F;a;%@;)8Ho^p(cv(rYpE>0 zXWcCIx1XQPpA55m)&y#!k8)s7q&aaFvU-;!IG6>?4FWW#-oSv6LouRyYhl0WF1A3)_RJ!Se2t?aca0qklry8 zH_l3!I}SiIS7;m@;@F{ascXAgA?i|5rcqmSFgt;(9wvX=5{3)J#M2*!LYPOsQv{d; zOz88S%}zPX%8qPpdS&3oB3m|SxRgNQB&h`%h`94YWqTin_wXwo>HO^!6 zg|8_RM#2o8=IvpIe4K64F4_CU6(Tn~jN;CgYpO9axE$oLeE%`Th$55kTV9)3t&`mq z&z1f!W#Lg?pCA4=Asq}}tuA?K8lw{xw)Q_0JM`@6-Y1_C`Z+O&)Q>TT(?+gy_&&IV zm~Rh9Yn{6tFGCq=G+PSN;(!NWiO?iKpD?#6<88=$@ruTtGA*#{bok}% z@5(;#IwK7RIqGqC@%!{P8*9mwMhpug(vJ^-(3v}#5)x6LOL|oPOxX}nIwQDBIofMw zA;A`tILo!ulAyuyP0@7aI?+)uF+=a(Z%qCX|IK>wxu5vMyp0V6YkO<$22V5hBkur3 zE&==1-vU^3av|InBe}L@gq5F`vue=j1a&f7IP@gnT)QB6S9B0pBUVw|PAB~HOeUu* z6i9;k$Y%EKK5B(?EAJp6OVAXkye{Ud(`eaC1gy;rrDEA{cZ9dM#aLULBLaF$y_71A zQ4vMW=gW9tBmkazMe=s5C3NGiU+N>8eG!1Xnx+s~*hQ)vRj;%xp`1t*{IHutwFZzF zN)#!;-H>^5?Y`-y6)IsP>(B2vj^>X74IPIpJH-6X<_ETRco&MOC>%;gFW-3E41_Tc z*LB5S4I)Qy5{oZgG~DBzi!A(g;7Y3^kV`T!FxP-Wn`QE2k6F!7!_;p9b&5SrC|o7q zpTQpK;oK4wRc1L>N)I?*r^-FBsIl6NOjDQz)`C(f{o^p7dMrTWuxsIG3rXJl_cTqj z(gQ9};0F<1pT!_I+t)$y$to)$%qL1UfkE&IBWk60F8h8GdBz~vBl^B(4c@`1v8#_> zQHh1xnH!YC-lt**z$SAxBEEmHSYq?1DYKAldbcdPX#O1s!U(r(l0Ba|BOETL)!~se zr$xz@{mD-%U&olgh(A_2U_vAgm6C{e;D1<5o8i}?kqD~($u&<1+t+S)@1@a3~=dbQPm7(P)F(R+TotSIkIO-h8!4W#X5nMdrlAmqT=H2 z7x7(3C@a1jz2m+O6QMHGX*c{RIWr(kkblzZ-;)I^=Q~ph^$_$r!jFee;GXr6fMNua zr%Cv4vA@ER`XLH8n?J8sB3B7%-+f@CY0oFS76N5+((*y2e4j%VyyGk(BDTk#M|oxS zCerd0lMg0@eZ1?i1%6cWsV{y~ZSf*pLMK)7JKdf6TPfF7HLD>4AlpfMug{dVn0Kja z(i&#$`CHctTHm1>j2**<*HuWmTxK9NqUP{Ue@vKWvvZs-R}kPJ%GGx1Rb7mr?Z!l+ z-0yP|avZ=)9zg3ev4SSVl8x5F#6=1UrRL&6x#r6+JApj8Cz^o@^H5cd~3 z;AR)VYAQPz5A2jp1LFh)bMNGYPR%DF_Vp0I3FJ53BAdl|dvD~(E_)s+$l_CaKz=q2 z&`?f?l3T0xduR&2Q7whZi97JWa)D}04Xfl_MH{_DMg_0jbil0#PjGLT;ji~7SNhh zKL)}$z5Y6y%s1S<@#}{w<;yMx=qC_>CSN8;LBM|g|E>Xa0Q|i<5?G*g?-%!WY3`gS*@US;>P>0mm3j-=yAhFbyIj5a3Xj+1XXD=D*L~*CV&6eXQr82 zQvzNNH?D0g80X}2)q{G5t`e~kiaDsu6m@!fwjR@x{z1^P!OAexg%n`381>O5UI zZTSC3Id<<)`u`s(%cgT5YqdYE=Dw4seq1SPdHgHTWEu%5$bEqlKrK_K$v1g{lNEjd zz2v!CTT(!}WG_)kr-AbV{uSz&hyZxh+Y!ej%j*B;fp2ycc_3g|FiwClPIM){#z2eo zyKi>JzHl87Il;d{aY6$Ak2?PdhabIo$m?`NJTIE}?ZNp&dvL%v`~4yHYD-8s?1l?e9np)lWpkBMS+Y*4gI~%jmFpZX z$0r~Dq#Nx%Hgqn32!$g@jGkew${Y$L5>6J=!AOdu{`>V3sogzC^~0o`hsU(oLTyd>8{`W07Pd zvCKrq?3%+xgV4|SU&@##i^T(-fn4mhpU-doN+|o1pUI>u&T!RsNfn!IL>&+r!l)xC zv??X4*>7&Vo=;-FxSW7(Vb7ETc*ipzUH;*0C}2{v*0`;zFH$UJF+Q9BO<(A4WLnv*|x z@6VTGT>u;AE!TuQxAjQ%Cn0fNJ0Y(x6{;=m5HmGgE`p^qYW3e)^!|{QD3jstoyuj8 zMW=AmNCRhlJX>x}U8lO7v9cJ;tKD7BhgLlkMCMQVnO?&~ipoNI;Wq+%t*y7#3syMn z0<6FF8je1nZ~oc8WHW#8BK|dX$_A}$;C#fxWN;s;$94&T%n~#BtIiYHa*x?!WD-Hg zH~UggBmlC}>7&zTOc{%k2QB!U(*INT;io|iiul4-RK%?wq;t~48{5m&t& ziU#ZrC4vq+UhG`9>cjDRe9Tn1_X8%*O>tFh2d#GdTFtJCo<3O^%2=b}0!A4@-NoPA zq{km@4=?u`6buyc)KM5B7O=39$;j;k$;ps+&JO1%L(fB@jNnlj0*%Ow$s251lEzVH zQyb~=krjvRB({8o4N@CzULIRR$1U}xAwtLJYkF6{8GVQ0NtFQoJiH#>$X5$6LPjwkc>%8MU6oH$6meX2golN{0C;7>zPs`5@ z@i`gd%X^>tL6uk0&?u3V*xMYgazC&!&iRNmT26@q6)2D$(Bfw<6Mcc}N)GvhmD~K< zTrHH9fvToMtNwU5C~MQtYhCLF+-&vU+bd1(I2k@_LR+zVBsGpG*R6B8gW(U-3!lv+ zH~rxLXxwoY1m1D5MB&L&MgFM2s7zhtMfGnGH$hy?smDf#q^S+@d3VK&>0(%VM%TG` z(9wlYQezSkmJ$tvlVsmAH3ryw`}-?c0>ire#dx`o@{}cBpX-@*QeuaKh*0SJwB=fN zH%I<_g_E^`(WAU`hac<)D+9XTY+phu9jp<_)buL=D#8#0(op!5Rp&+eJ ztmg_-sYbgzrk~YqRI=ViMNfcSo%KnV-hm&gRqA{%hNy1ka+@SE_)P@aE#S;x_Gb8* zxfYYLn2pLxhsg;mtQ8d-%|?=XYys$xco4*$y#v|^qFhuw#NER2Bwh+P0G9z!K4_TS zovmJ^@V$o8*tt&e7=KE)E_K9tYGhwhEnjAk->=knc4FJ`toeJ`#rAHY1Gnv*Px-O$4_ufhL#=iOl!= zZQzIDov&6slmH$q?$i|;MsnwwM9u=3N^Pxy0-Qm?*nGuL@B0_2xt#f@LzsN$WMn)x8(q?9?UG&_EoSS6+~Bsm$36I(W|`9$ zVxPOq4mG?0dmRa{7#4lEOr1axbS>#H1l=EhDy7r*M<+9@G z@JZ#|{YmUNfjF^PVc5)}rR8G3bg}gTFV^b@rWcvS*KbG9*v_lMrZQKBvEEcRxOd_` z_2%KJEWVj?!3z0$yO#42cbktJbcO17E=_P(=pN%#IrNUz z{Xlx13dF34T%m|C)M7Dd;kN$xLHe3rNLF2|)38n4;9{*uuySOb$LL>jvBj~YtK}Q| zobh`N7a93wXD*r^Q!Wf zoDLL)_&CqOT2C*VlOEgae%W=Cx-Kg!eF_Vm?W%AgG60R$dOe-ZAlrJDmZoSU7|Ad` z=n&7xn_n6*!H{402ZYBM-=p*b?~ zQBIc%M}i%GFBU0i#Db!$H8l2n66@KE{hBski%ePBjGfqDhMx!iPx7ka{oBj6=#U#) z4QFB9ER|aAz}|sVgia@lxT{PDRaTGR*iVKXWwUIPYbF3^M>4=8v5P8!BE+ZOqk0G-F; zy1ex<&@4BL+V8@y5Z*=E7?)iigtZWHxBXM*WHJ zYjg(}48i1CKG9N=1!xqyz3!=M(14jJxXtQ`bQ6^QF4`bMo6ejlBGo*(hM<^u!EK9k z=()0%8Hp)7CL<{9zy>f*C1CBGVxVzEa`)b!C~7g&MgW_!05fog={d~~!nr-DJp+VE z*<=`~l2{{}0yX~?LY^BqrPDfU2x>y~3J#|SLRfTwE*n)uwre2;Qy0hij5A)gNaKC* zYU~gDE`-lydTFk8+KRiYh2vaa761`Tdj{bkcGy0P=-rSFfz15uzTp}tL|T~({VoE} z;4Oc|_W^pF=0+(J<&djLYVtq@DDh|4-Rkc1&A|`6y?UQrPhcwJUEnkKj3PiB&O(C9 zyR&{tmb%&!-R`+qJ9>)>ob@_-ck|5*X~U4d$EbfZ$^3*f@u>l|7Re4MfTv(WZRBSM zaGPCfTl29%CcDpbq0F@q7VEK00g(5_9^ze+y;%YGbbA|IWiPSZRnJOx65i;rg%Y*Q zEE{@$1^}|MSZxk+`EA;)p`*oqN30HfZOT#K&ueX69I+hI%CGv->ehYdoJnCY7c`#Wtb+z~7t)nkGKN!C0h zw!5vW>+pP@HuY!BFy(>`vU;9OYGTOy?Q*zul$1aCeFGh95?--p2QhjabE_Mik}%Fc zjvn>m!n@b-E0i#Z=I`j|L6r&R(jrmd-(|nd#o8Wqo0qO)tGKo1n&EA2M_2C($zSW) zN`lL%HYsFN!cjCE59J;-I*kd;>O(&^?BsgDS!khd>}2jyiGVbiN(5Os>3jDKah$HH zbs2ei(E>?YH_2U+K(<#KErk%v=;%@G--t6B%J35BYD-6wgwbqXGiYs;vZ((CIXmCy zcD)Ps6faJ3HjQ>xLVJL#J6@P*WXr`;jQiN%b2@xL$#FON$ox`4%=}i7{+B?spC=Hz zXHO14VfYCF=oEsHT9w)FS?aRo2`XmF00exlNHZ~Bif_p9Z__lj7d+&VAWMlHc(kVx zHd^UM&7g0V#o}evJfWkh4@&ElUyI8v%E9yPzTNqZbJte&{;6{n`D~WGU}4Czr0bRZ zK0S#oP>Ysl=YIeK$LWk{0}SRlt_{HeD%1vQx0O%;WXdw6WgFS}L_L>HF;3)3)(@lI z9$BziE&pS?7hJQr=~r?CpZC;vxjwC?nL*w;QdcDGiR9ftnSRf2 z01=0NV{_aiK#a##NROan&Y{K~a9&ng<>yItMvo}0y`^@v_1=~pW5Xr)5P??<9zYi5 z>*q;*<7}`#J75%m<7dKEyyw(W00?84HvE1v3KbCm(`)X0e^SpMpB222QgXRzckUVC zQC0@$kA?JC%k!CtcEd8(gh}FTI>})7d-IbyQI8RxJ(YqV7&fT!hE|FC5 z1dVpXiY?xrT&>OS?~mJVpWOz^23JDqosPJjRRtpChWdF%Cv)vBbw>U8kpis-QDK)T z|DZ>_?4WSpEK8mzgSrvICW>cab6l{(R^ww=bq0w4-@sfAUyiAE=mN~j(KDynHBkmT zZr8Vf5AMc_^QkL)$G^ilTcbv5Sm?;$04S}dFZ4`SnXra9{9E9qs0!cmr?%d@mk54L zpNe3u>1hER1Xozm@b}@=$&Ajt#dxc8v2KQ+VJ*&1XMi9&b2I!SijOx(@|zV{$EeRu z_&%ibbLbw&G}7e)z%Ta3%D|)Zfjn@y(fc#3g4gue-);4w_ZzpX2Vw-+1+9}Cu^IPB ze(8|4rc2?0!heTzowGm-2!EOa&)}$MhZIc&4KWl5fjc=Bz&hG3l=)8GqJ9M8HSyE& ziTYw@zm#&*V8iE5Wk!qwe`gyKLK2^>G*6h=`hSLJACS?n>( zWiY7|5O~Bvczf%oyrwo?=!!yDgK=1=aDO>Dq}B>C)!r{{dYMH>!YfJxa9g+Ctbc!Qipk4UDYZ0^Srf{rSs5^k7?6Rh0{Co~yz zenw#QLW!`d)Gnq1Khe^$X`Bk`$rc99fy&%TWN&Qa$Gb0sEw} zY1AG1{<>bB*_p3XoOj!UpW24geg~$qZK2r#BKLT%fjlxD4UN1yJ19sxfqPE}{wCtL zVdh}~o-tGUhV(1IzMTUE*fL)0Ht4M0fBv&w+_1tVK6nP!GX}{yS_Gm zb+ns=gT!EPL`IIvfDF`izGRzWwZPaFtM{_T6Imw!{b{#(&a>h>&OXq3{-Ik*?4*l7czgArEs_92m3P4*f&ZyanFITO-x z_&V-UNQa(2S-S2J_FiIzJ8NYFmTXOYOT#f&wnn_2{S<*@`e@ymu|Njn4#=h~8y=My z{ma}1$J}cDWu(MRZl;Z@z~gMRlF<_vVr!6q79578UqfI)!B6ZBMYJyB_{niFVkDaK z*f}m^*)XUpq3nE6wJ12reZxkk)A+LpJhYab1Ru^QGt{4LbbrV(1n?r3$V^j{PF#or zIWAoG^6+0%5`J)duNd&rz4M40!!xSq7t(66UZt>B?edkPTM!}t>dZ|PVx13()o#jy z1vlsD>qPh>LeY#%e*51t!Rspe22=%Gfj91c9UoY1#)N5!P|6C%Lz>}5(}RIy>WrkH zm1Ejy1p$6q9oR`imZ~`X=S5S$`6YgV$5SUkqCo#lZ=vt?edM!g?8NBiX7GHgdj`;g zz+^(_fX|B|JyQVuFsj^ko&IX_??!5ces2RePSHfyMxVOR$Id=L=s+en6PXNoLI}Gp z2*{e57RGgdCMljN2EoFdGC3?ETVEx9Q|Wvwx_E25~<;`+Txl!6Q_93 zH~_E3$V(MBA)D;iu#hi_k|-m6&QJ$s6lSBtKHBQSx^Dhvd~Z=Goe)M61<>pDb;ACe zHlkXH+>G&<(o8+`7N;YI26`AeGKaq}(%pJ>k*UVhn z5nre5-0a)z@=vJbab~8dxfZkTN|ZE`0tW@{y3>=#ZP61Knp!#rkIwLZdLn=PO<{xv z;n1bbVS9%H9>ejMFGnC5&ba}~>;fM5Xk|6OH?`5`-LIGBd`Si~a3i@}YNmoAL1Te< z2Hs?r`C6pAXh3Wc1}w8)SD5JaB;pkc@+ytp2h<^X+9SlFP6wb~!(f;MN26KA$5o6I zuzPqz&464=JuBN8SXc+&=$O}eocQyWyv^+w;jSGn9e0PH2bRU_zi ziJ+cP-GO09HyJZ%7W~3=#W0>sc|I(%>*$VS$~QF37lpkT?2Wwtwp%!fp7nFC{B{p# zYa!G`>#3}t3T2M?S2}0IUY9KVbJe@c|8%3MVpL`%@#JdpLE3s44J*3*y5fP6cl$^$ zu2)Cm^#fY65^1q_+P{&NCsX5DWu&$JgWylR-VfFfX?4(O*77pX?4F=i&@wzaH45mv0oT6E) zJf81^A1xK}ZbfOFb3SaJv-;PR?;|$<6maa-yZ3v;6ruTa2|zh^f4Ur-R#2-T=?#3& z6;YOSPehDcq!S0f>Vy6dPYY<-9jqBSPUHFT@Jd2nHwKB@J5y^NLFU!sx(Li3h6Wwx z0~}74T~T_7<&;h0G6AawyE27_pZ7iRb6IoV^28c#o~vJ?&A_N$PvI}KifXdYB)Z?2 ztC_IF%%$-rY>ZyVDa|f%#x!Bt)sWvvexWkI;%3tbTBwX6>H$%(6~&O&!BsiFpElX< zV_D3!ueCZ_&L%6OBss2&AJHAev_(Jh$jJ&R)Mb^!P{fj1EMu%pf{vzu9(dj}bYTc~ zsYyIm{thN+Xp_0L258u7t0($@CKX=rI(iNrL9AoJ=D0hm&Rr{*4671cE^m@t?zT^A z)X;F*SC@f5gJ=C)iq#S*oZ#>_h$2Wd=sB-x!Soa=9OsjqhSPi>mU(gdObif%bzDcq_4(#6kudokgpG$7I8rSn#J+pd0AV4n>Z zT4ncz)yE%GZ$@J!;efU9pmxH_?C;A=!fEog>C>mdWru%m#RE^2kBc}FC->((h7I-eWKq+9jIOLP%B4J`DH^037G>N1*8@r$Vn`h zxHh+0Yj0D}tk>%3Z_DXR0rA&hkB#6?^vc~;z25TMfJEi8 zsqJV>N2#k?x=w%r_xWTSB`{G@_rf4$LnTAzL6y-}wRD}n0m+i{u1rK17(~ zj|cv`^A$N5zi1WOArBZxOQ4MAUpW+3kYBFTa2|Tv#$oZ$F-d<*0A=k%{(E5_6v$U; zgl03*da@JW==)L4aASUTi^RA8t4TM(ewaIxn9qn7`@bwer9i&*ZC*n5BaUP6Q=qw{ zLG$~l|F6Nco8O+!=H55b?m!M-9E*?q^qk(w|L-=CH!Z`}ihurY=gP^53$ z*qokYlN$uMD4<{}6WDuVX+75Kz$z=W*6KeSqi6P|5RxMO48-2CTa>m0P)QMRb_dW!;_P^W;&*_5bjABjKP4ci=w%!gaCw1@K=lJ~nWb)7@xM-g z(c@q50hI6^-Sd3w2UHBC*nRL-&wteTA91#bl!~Q(DXuC{dpzQf)fr(k(oZ9vuQt3L zClQ%UnuIbOdwRVVs04?bpgY_+e^gCkEW$%x%$C;1Q=ISp^%q5ssLrgsq<(i-FGrIj z>F@79to7!MP0IiTS-SS~&ir6?xxc-orfRF(ef3H@bH3*DnbFp&w3%mMsIumh9~lPt zAD%6{Ol{kSaQeU86=^K$aIq!Eq$S(Wu*&k9k$d~9u6X%(v(GR3oSS*%_6J1lW z(tfV4^NL6Q>&f@~;@!(1E{|2I!I3Ut_u!Y<>~3pC8W$-$SaT*ku9H<7uVE&lJ8>`3 zX{Hgmgelgl%~Sf-AttFjPnHjU`~5k@Y;3mcHEvi{{r9MP4_emLWC_FZC#!uq><4>aEYrt3l#%-g*DO@t?Y`7S6;%`HF z4vmg8j*J8{{Djd;)DM{lSpr@yeG%w6^|Z;)T)wqX-dK66pSWzEYnoh-_xIC&wP@|Z zFipoT4_06iDR&wVpmv4AhP5sWT$?RMdmsLTB-{;C3VD?ZgDvJ}XCbRE7UkNfpS-wi zIgoD?t1rRKmQ$^wg^!EvY^Hbd(Cp3nJEyz3%i2DPmk)26np71tj1ytd?;pIM?o6bt zI&17+G_`#ZKg`)YspQt!ogUie03XBGr?vQ}@`snqFLBxy&t;tTS($WlGBOl+=fQUd zBIn`*C7Y#l;b>ab0#Lo{mD|d;=kp7^ej$aIp=^*OYIjZejmhW10QPW|P-t$mPQ7^n zspD5T98Avh;xlOUet!?q4Hi!^Ug`!J5B=cX*x!w5F)*upa1tnX=qcltSbFL;@@x1Z%L{_&2a;bVtsf^Pon z(BcWqata+(w30yUV(B{k&x=8gdrW)W#}jvdnRJevUyjDlJERp>i|UgbpYPet`FW0| z^Bi_(Vp8ka8_PStjwKvgKah_x3!T;~RnUESJCS@qt3rfN-(HTDK>s66XMqy*?pt$l z+C^HibH~#q4XzNtS$43{PVNT%5bSNMr92ntdQi5$mgLAkoeHsK>#ANC%#|^7?&^*ZZ~u2_9Dc zs)@VS;?fKt^w_kuwq&$1{qfIf!dukw@bOy(xs9ttzmiKnfGekSuVZPtL zmVXEApk2t@Qi3V+nOoMI_3O3F?um4ccN*(g^S?2N=HGti~#Uf&7p<|5qTPWr&Mo|es7 z5lH)rmPb{%xW7Ar{XVAC`=PNEc41QQ>Fw2_Ri_ze3$xApX>g`D>c2Mex3ATqSbpD1 zJ__l*4qb^D_k{G6KM~J0JRkPmSnv3-ZEtFFJpRM;QC_$&{5Pevz1dvu_klLL+q2IR z(SF0GH!XeV^S#Mvd$a5!aJJNJrwRd@9 z>*|2esl`&c7aFZj;p0Fk`i~Sx8(Y~dk-Pg;UL+&=PVXw!y=cE4myc)7%#8GVR^xj0 z6jrmcN{yEX)z<4?VcJS3Zq&-m+ZAY;Rx7E;Wfjhdj#FdS$D_LQ-20s#>&8vqU9((r zt;l~fvCd?ca`x@bGdi`x)5h6}NUG$TLxJL)qk`5h8?iBJ{=|K>g$I@PLUU|*_G52H zU^AgC%;k4-}q~L|Xim}7?!SQ^j!+xCPya^3=+3~K5e}!BteD4-7 zvjldvjW#VeR)M*w>ryR#?-=4*T)POS8EoMLpt_N_E@ z{)$T^$R7`1C0MYwT486TCef0Jtk$aCCZ^9YG(lT!Tr^0OX-&CYER&L`V=qds*H1nZ zDGZo1WWMwvnG9>iRUPP+TUxYpJ5Pt{%l+{>%5kREsdm0?fL}ab{vgH6D0-iiYzDU; z@=Zk>|C{af^vLtkQ=eAB^ZCMQl~Yk~_pXw*NqTW8=)(K-l%0+j%u-b7Loziv?V_}^ z=hxu5$a254bLN)Xv{ZY!n55jf|A1avc#(hbkNNnuER40TEp=nSUu;SeSwAVk*56o; z!8A3e!eOx#*^C_#Je;?BqoDt7IK%Vi*fPpwXwQD{+I|YiW4cZOb1f$b4|SGZRFO9y zD4iUieth^K{j}?#&owOHevYHDzVh3*mre_Xh!JbHuo zwyENPR_VwCvGoGBw$Re~WW2aE-FSL?8`+DU!JhP!B;^SHhtw1=W{Arjtk37}w_@%u z;sekI`FkWPbf4itAAQcRg12`Xuj4IO`I6Y+($MnN4vn`x7;dM{+*_v!R%6(UB_O=#W&-hF<*>+SGNt?ka$asFYl+R(HIG4{c?QjoRG}9|> zD$h65&c9|-N_WNpR6&!hB%SHD+)AKxps^%K%|J~Z&WXh%6)9Bj(V$zcit zVw(Kx)K8sq$x}Xyq0_`kPTQj1yh(0z!&wCxRBkXBsFF$D;W)uLri+qR{BJB z(<<0P|4#6lR9@(BpAc)KYMIGoIxFw4)mznVW-^D>+d9@(rknG90X)y^EZ%cTmFzhM zElm*og$YwW>&HFTKbWeUKrvNfl=r~JC>?~&7&~6M0Q{OzvD+_C4U0RcaVfm``#Jt~ zBNIM@J2T&8@xFn5adr2y*&!t8h-fgb4mIr=_&Gt+SjK0|W`)Umq^uwN^WN;3Tub4- z?0EO#<1qcf%0QFXkZZCMy?@m-^9wTqDb9_Sd!;6Fgvf~5k<2-lJBdV*5UaQ|w_E#m zI(s3z)N!`h*`%rYcIt#qE|Qp}%mC`ETBu;o|8zOjJ`ApdeNAcPQGMGR1DxvzI8)ti zbisy+(L!i3{CZ%+$)iyk_r9ymS(8!pT4@rHF-YyM?)`H1)8hfx@pS_SF8G1hrNOT= z-)7RCfFG~D*>d5{Nau3N0O!vlZ5pSAeJx4kUFxKVUOm0q7k~u>2x-~ybl$J1kN-2R zWkQkA*}2&ey$}xWe&G3q)bvTPbu=h`m|k-^PuqLQ#U@*RT-|19RW71gtOQX%WJ9X+ zE(Tq}3Z7!)4kc0P=I%cFt)ll*zj|M2%Wdcq$sd&$Du?#A{{-Yc? zF2G$gD&%$nXFjyZ)Nh5*01uAF?()>>BPO770%`_s5ughx;(bgFHsj>M|7b9e|7b9D zR0EXvpdVj&pd`Vj_`~|6M;}4l9FE?qGQ5G^`bJN)MYi3yukjyxFWb>k`(MHdNx7a6 z-t-lMzsrA%it;{)iy&LUdlPEzfA>Ydl+;KzvI0so!^a3(#W{o&uNQApouZk}Tqgin z?g3ph*9Eu&R58jT9_OEF79;{l9Pn}cKh?m0st#QI;0^+g4lyc_il?XNr@#kra9q0L z$o3g(;55*T|Cd_$6UIx#wXnbUGzv&Q+Wp11OYOTk&=mhw3l$OmQD+_gs}`E*NB}kE zmvgGIfUp;$n1uqOIpn@0g`e%^LY~28 zF=4jd8+p9m2hy-)jtBnqTr!&aW<^HVI_1>aTf<~<_EG$e) zN@`?a0GUo$SXe5B`S4&e$FlvkE(lBOr>@<>1Ti=F%f)85s;X-3myhkFR|q1%9H0Hs zjIx&dSF)_Etkov_=}v$=^VFd^Nzc$w@^dPuy@{FG$;o1MB8?iECKj(-!>oz4gv77P z-~Kb~p%^qc?!5^#YS2fu9|8#2MG8Ef{gZAEr^S$>j5I}OSZXd z)j8F_t&aOAwpZi#+~e2oDa^(`q>qiZ`;bsjbSf1c0Ot)?6U;{cW_MsD7K5OWkZMt1;$FZl}4gbe<-SWpyG29})wcP53~GR*UI;+4r%264_)% z5di`3U@xdn5+a!O&d#hgTo_C?R#wf*-y+)DL?a(0pDG$VySvt0QaVUj9iQIp8fuLm zo65`Sst6YTdOgSp*$??eoA2%>2@^s4{O9M#`q#*i5D8&n@T;9Jz9$_k#z zVt+pr%{u+@*%`0(mhgcIH&I3tz|~%Yq24n(im-e0U|y@Yveg^5MC-24wy2Xcmr~ zgM$N;R$V)$^Y?d8Fpbi=bvN7ByH?%y4EMX1xK@bQjFh2}Q_I!SHg~!}79z-|^<=DD zr5|RVbX@oMOycZS^%Hs3F%kK{I;XedYNW{e&ZK!&{&;@39XtZLTNFSB|Id%eOl@r~ zv1-;76C+~+wd!wU6`(Iph>Md- zWi73$swyd=1_*WE-(J;6wA$RT_la0o;#>Uz0$E+qm$k-4E-lZe8)JdI?Fbzm9l65> zvK>xEM+XPi>_ra`59GdzKgDd91fQ^UOxTYEjN4sqLxTSl6g1c$E4`G(#-f$IZ1uva z>y4(c$lU_`|6(?v=+D_Ap%qZjPU^&rjHq94q`<)k=S$TBTQ_y0gT2<9oG!n3^xz8# z3Hjg0W@bhj0=)V}7T(@HJ;HBxz>JWc{Hd!f3H;&d*nrRc3Kr=$UDuLl%Bd(Bh6 zzEjZo9KtvKi|9PwA`^GCZ&Xx^hEV^uExLRlr^pDlAj%frq|JdX{1>~h1;*@Axl*|< zpoPT#U~SWBwfUh3&eYV^MFa$c>pUmR%%Zo#0fnoXUZ%@ zq}AJtb8f9}_eHm%y#Q=$ax!+;eAiZYAW}{{z9L%;bQG4>uU{dTqp55p_Joy=J9ph} z1VwMaM?p@WIig_vYOKxYOdeO(U!B)MJOtpr$U6hYVk-oh#Bw!}uR+aiu1-!H2!Cvs zfl0WJ)ax~ufn-!VTUW*zD&RApE3d~)6cOP(h-~6!EM70fb>wkEeUx#Vk^g(F&)<@) zgH_34=Zw|eVpWT^PBx2mLZcb30ms9o_|P$}mLDoNC!R&Gi8N_hg=^-=83lgVg(bXX zQjSW>KgC;Z(%l{Ym0TIE9!*U-pFtvWO8INYrxxv>)3pjMJD&y5aH z>v%+&bk46SdT%d}wq=?6`udj}>UjVi38)Vt`P0)=w(9-&fIy{vDh&|TGr<11Kw|^= zC=3Ad@q!((S)O+^H=DgBHIi#yCs)!Mw(L;=bUxB#OZa%|ep{=mk!B$4ZxE0h2_*Ex ziAq+WPW>(^CYssca83JGCAV=2Gf2T$PoO(?#OTDoZp^A%X(n_)aEEaP7m6A?%{Lsx z`LCdn&d7r!28T}6%h}R;b+)u{qnq6yP6q~iJ#aMD)|<{F7H&@rHgo}fieeJb_8XO7 zR1|X0s)7CYgH)Jqe}oP!t=&ZknsPh$a*O6fY5FWg>7KQ4#|yw!F9jZULD~5xO|b+- zaj+J{!9HBl_$Izq_knh8Q?QGv|Ek&GKHU0@H`_eBm|Nx$*&9(8nStK$Y$3SDFXZF) zJTz2v6Gp8=N_h)=_a}cTIe4PX9Czom-Q#tsm*k>%Sovhw_utta^=P7A-8Llz)Rl== z73D-^=GP3JIl#IxU`fbgf^O0)A7^1{85zVJ3y-`Rl(3x-2)g!fB3wc)0d1{|Y_yKP zg+QzOGY!pt+OgSU<@HH(L^>z~dmfjYhcb+l1f;4yP(@DG>kDgMG*CXl;O;tUEaSD8 zW4ZTTXj3}7dr!?fpVmmrUv*d$vYu;U;u&QTd-yCG4d7!PR z!0D+(7;CUMU=df}|1R73QM2rtlgb`?2_xBqCDgkq&4CF6;jS_un9u!T))XZMi?G&OM|nF_@+G0=~7?@bJz5R#BW1g+=s2G*66 zOQ(S2ayV_+9zXPnJ3H%}Kl2!q`NY-4(f6wEa^u>s>Yz-1$1yz5Y0p|qxc!E{RKE>& zoi8gW>b~V~2W3b%$?vGLK{ZR8POoplbKh6$dUC4x^Y!a2Y-$XuXznAT$kaTI7(6zg z&49n8a{USKz}jHZSKGGp;$wVdj3!gQ=a&DegCA!kF(E+xO-maA6EtXJod-+8c2vK%tpuf?Zpes*@i zCh(qXYS>?eZEY#1#jUNcX948r)Zh?L~HwW0#~@Ss9ZY?kw7;j3Z}BIpRs zuC{6*td(^!hvG2F*64F98x}BQ?nj0hm>pd92?KopMv8*1O-*FCS1csHnvktE+Sy}J z#HH^puPM*j!?hNlPmW<3_{L|EAkEH8owQo@5EWfE=7MgCo1M!#&tBV!#9l`x(+6xa zO;{MeP$keIB8JwaGJm)TDG!rR(sR|@=9IPi<+PyOC;jo;3JW*e7fOs3;_^v&)@HvQ zocXHXK?waj{mm8#Web^RsXlS}%x;NnUx@UhSGA$=h}v^L6$q6x4n_gFQvPrjO*Gpd z_w{(Wh{f6}RCU%jM{D6uZ|x;iQqHt`qm;an%xzRzR%9eeVn z)|^ArjxE*4)~B+&jE4A+Mbu4PpGf|9=SKvMdSsNWsiYLZ?Ev1VsH}@(t5SgJxF#4 zs%#0BWRmHxZldwmhCQ&%EqrueHcw;w)#y>ep6|L)QdGIUKk>{)yuU#ypA!ykll#Bh zScyd5KQfskp0BZ6pU?|GpW-D7ZJHL?+pE#zhwpBPyg%7Xx3BS37K4<3MH5BPcZ3&&LMs0ud=IZC8+kNdoRA5%q`;o}I$4$@Fns{;huHWGp()HE6E2pF436Z*3 zUJh!+Vq@guUr5ojK9Z9s#8mDvi|DZqn1$|ca)^uU^@G!?Z2yrE7GmUU#?e%v>~0;P zA^A!e@Y%K_bD0ARw@0C{tLec06^QQzV1NR70~7elwY3kZU_go*Y;0^GQIGIF%Ygj1 zZ{Pe@9wmZ)fG-RW59^=+dmJh|Qz1m|Ie2`|xc+*Gt?g}Mxz^U!%-K)N9Cz~CObrkx zTLxok$#HRhk#L2Dg$v7Dy`d-*edJ(kO)bO%?+z!RpRWRu2>T4-b})s-#7Nrtm6R~( zpw7XYsi>$>Pd^8?-LMA-1$7j6#9j1)hG8=W{H2G-X7m$>N6#}{ZHxS3wdRgcZV{WQ zhPyaNa9qbd;OvJ2wG5-hW{Tm?9g$eo{r39(#CRsK+fZiU=)9!F3k_zmkys-0^}Jua z5c|G`xFR*C78@TRJl>0UI9|iOIQP-Csm_vz)$v4c1jx3-Z7F zdx0pqKqJ3T_ZJrww6vm?oS){QmAbnSvTUFSfTZkgQsUw;m5x0lKysDfB{Q;5N8Qe! zxVKK5nwq+toSfLv&46r2>NLO>T$d2;)7$IQEtlsT_tw;SzTSVwXq>uN{06K_J%^l^UBz<1p9g4g+71b zRAak8RvGZSZ^t@+{XST-0U5pe|pdb{) zPDdBXA`ulB>1VsMAe48Fc=WEtX?Nho77#0$NV^#e{!Br%bcwySH=4=~{f^>RtkcB{ zUTcvqD-xI$`P9KM4Huem+1azeBiH5POV))Q5lMv2OY_z-%7qlgG%hCBS(Z~+XK^iS zPq#jkOdV$Mm|J1jr6C`m!T;^@$Gru+0mOb8Ytf-bd)O=tpYKnm{{PR z@pOj6PIfLc1&>FhqAIeAi%CFz_35D3RQ(!8#DXvA?zad6ed|&l#%h_llR6pFi-@z@ zENBczrLhoP6BjoiL3TT=+2aZZdxsGOeU3BfqKkuo=%yr=N-c@7G1ikwXKjZ0P<{w(rwWZB_~GMY3x* zR!pBi$~JEk@-pT$lYcbYUsRp(h)xjM{kzkp7q$yp{oiI4`mZ4}L$C)`wA6@5m(q{! z=e-T?SLS+rMB(k`xHS&tB_%eO&~869JB7cu+8~_Wtl!U~m25v98F!zZ0qg95gf?ox zzccI>+TS)baH=L?Ws3gR*5PhW*|L6&>OpVNNsWu{tvo;T2imQqmniiTLpC%+M7TF( zPOQNN!vFmMPTzyU;yqmLK15RD`N$Ml`TZ9+Dh3LY*mW-Xx7XOIDBYHu|Lzs?#VkH= zq^vtWegd|Pyxz-9W$VA~#hY!m)g_+p16-CrDT&~PP0mhQC2@jc+^BhQLOV8&!~gGG zhvxV9c;!rkOK2_|0tXFj^Z0T)-4W86QzkXY6RXjlZn<-?xTQ>7(_k*0I04b9!@|NO zY|Xeu4VM-0cZ+E9V zz-EnqhlwGD)i`@zVS6s!%;;8jIfFmTUCn-$R_?I=e4i-$jnLt2fjovYZ2O|Q+YAGP z)k=Wb@Iu9QK3V|{j=G!?W6AjC8-@Ad$x9CPIc)f(IypxN5Vb`GOA09e#6yEzIi_?<-y{|56GE|1AYMV-cz3SP^2GErn>W1{|C9*?${cL-w&#$7McCwrRexhw^jRLN96rT*!lnC zZWu}m$X+z5#=TGT*r3W_4ld;C#%JbRS8*r<}326z^i>;)0NihH+n)MD$tGa zr=4@~jgt#ipg&6gQ<`OYm?OR&+pEx07v@&Ib` z=VT=VA|}0nk%YCD_d%=1qWFxfzkCF5&ztUw&>f}ckMBgNQWN7l$=)MCdkimc&*i*6 zsi=a0*b6pmmzpJI)X0pg^Xt%IkjA>S@?56_;$Q1(j48Rdc0)nA2D_$Mf?g$D76L#4mgN!~#BiSE~CI zKZxi&N6S4uTW#Mb2dDQV)48wV#C5{c(VfzTM-P)>GnAXds=$w2hl%mwo4^5x|RwP(<^Z zAN>}&iU+<qi{R;Tt(K{b!PIZA z87qr^C;(aXTgPOqR=daNcT{wMYg#i~7)A%@?rin>WRdBTkROO#2mC0`yF>B7)+qR$ z2uRw8E?-|R=W?>4*#*7PNF87S22)cbCHWox!c`+WN~^vdrj*#Z83cEe7h1!;z2J`qGr-v z>6pQwwBPF<({La>!^iOuf5F2$8Lq5jGL$N>PE#S}ZIj&K>tYXjlfvKLl*?O*HKc2D z4GV^#);KjF5nwyiwx`Z>8uI22FC>3I}1Q}|;jIHEPse63Ln3u<|3<4xl|2vgS8 zW-|oAw|`_p)t-lw#gGt9e(N^Xu~Bjs!vF>Xn$=Xug3+}8#M+urgqf^qAcbSwXgp)~ zTl{2OPNhU*`6{bR)q1FMxqZZV0!wV>IQ^I4F6g7Wqe8SZv&jOC;U8F?dBtp}xOQ(h z=P33Nz%T&xgM?Um(B0ugfD_~%^88P~k`h3dq6t{o%j7-|;n#JDV6xvAOH9VoxnBm8 z$?S`abs_ofTih{IQ@UTaBjv$dYs{6PENl;iDfFb=kdUiW>(8-=BK2v15RE5VcE9Mc zV@lnA3GPfH{W+0^25>vp(WvIS9sZ__AwQijmBvFce7S*Obk@(13nHW=$V#&~O+_~G zhJgwU03t^@Z1dqAb|no4Pl1Q6JP8IYHQv)w1GPG_CnbI#|6JP8^t(YS2Yzk=a( zuoaIRhF=t?-&kk-gIohA6tOkn=wK;^Ond|b)|=0L&WibZ_n3{7i87X47vKW94U9z4 z`+dHWXcOs)0DFH1q^B@VybJU97b*OahXoD+@p^lje+gLsFHWq!=2MN2fH<9DHu)z(@35QvVeD6fgiH*He@tl-7lD9wIW0|M`7#-y z+b9}rx*D6^=|b48Xo~fN-(oH&i={y1z6;XsehA05X}y*Er8f5j-Oo|4rPV?(y|LFxqT zfM)yRV>#?AU*QA21!tX4IJ1SUi^Y6+Bc8itKJfy_FWF>A7e{TYOFiMZhFf94@ zYwPgZPhpfwm^+oN0Nd%}As_#_r(OlM!uc?zR1oO}4f(O>Er+;EJ!_(4GNaS%eRky* z`hr8TQlp;byD(Ju6Ib^LWxmnc?Dk8ZsSV@LkexH0B}bE4FLspr4Vq>|XqpRJusN&H zGB7{m@9{B_LBULzg9^#G=nleyuKB-vLjdzO$=y7VZjW3x1KOP8<6z=|Kn;#Hcw+jV zMDMNf_#?l91PhTGe`&pM)>dpnR=k>Gw)&egDs8>?Bjo8LAKY%djU2uJZ_1SaH&z?& zF4u!rdSwcJd+2<6{)dfC7Ln9EFjR?B4W6uiY7n-0hpoViv)8~r{O4yH)#DXUQfdt~ zkrwSo7f5kba;h}G$WF!ghR)VtaE&I1YV-Tf%7DCYE3NO)37>2e?y$SSYfLrA4QsfX z*KeGMp~6zWFm1}`wB_)`WV;6nx$S*Vpe1HCL;6)=1Lm7AgJ>q#1->(yo_?$+q*n7g zmR^zq8MZ{B6&38$;&D9$gH@3}T{c+NWo_}#opNrc6K0hr2Z^-P&{mYuX!qVJPM3o? zWP22H&gR&cAo@!ZSlGdsWOq{+2nYy~na^XI4T5v>QwFDx>WkG)_LlPv7WSusW4vRf zFz*V{Yb~K%DYBQgMvE1!!PG{nGNt%e@{j{^x8Lp^&iS4;b%l2rVEh^dL3_DOWanl_ zAd168f{@clPzksl0uV#Xw2DK-#u1%u^wHMAjwftK?A&1}I2?v%u=TztiXLSBMC%W* zFSgebX_@aXInHu+2wX0E|>jV!JtRJ zlZj16Q*;eNWx(4dZaoBwRPMtU(>*DmSuNC|z6m>Mw;cPa3VMe?)-m4fP?z2=e@ZU= zkrgN9cuW%b)8I>_ut|;S@Hvm$$wJk066N(Lq_l}u$a7xkaK*a)>M_bT8jZfZpFJq! z(#p7lk-!!wyJ(%01`xrzEB5(4D= zy|QQm(2=C#KXOFF0k1xgT{WvAf(D$;yt$e3g_Khwue5DVAup zzZJ;mur~lcBOr+`#-vyPJoeFS@&4{Ei^ItRko5HOvZ>FM$7MgE=SBO# z($cSQ z?8A?L8djK%D&Z5-sW)F{e)~m1mrP3q=8qA@OfJ=-Cp?j*ty3mvw4)La>UmFrw*-B2 z(C-q0Im*}XT5tnjJlXTuA3{ZmMV1Gk;Xw~wDY@#+@z`YW*8M@FI8l!OxV6WS%8YDW zPVX<7LZM9bY`W($)rIyOgHJXuT0o^-7UsS3bbE|eEi0O>ONup; z!cq)aI^|bvH+Ou2Jl#O5UU@JMFc`p@d{|>VEgFGWXiGW?UQoNI#t&ct2+1cps@SZV z04zy$WF%5F#3*U}3t+A%WV1*c6K{C%fq=UTJy~zh3?)X52EZN%Jj&mGGozy`ifVW_ za}C-;y0+)Fv9AmW1lSeUzScO8u%zcnreAmJ{=IRaE1f zIZYT-Q_PInyH|0P&d-CQ8joh>^Yk!ogQ-11gs1MPA=j&7$u1XB?>t| z#>`Z;r4`dcRG=W@b{Gu_@La|=nk2?8@*&nmK*@l$yTe!jGT0m$j3W!`p>8E{>aTQ8 zvhe8$kU8}!{M2dx(HW;%ch4!83E&Ggq_g$-vfsmfP3s`@Vyt&qoVckzb zO52M4Uc7~VL+#SuLpKlK%&$nod>v!Sq(|J*Xjqeo`bOZE?v$Ab&b2H%4Wp_49s=hNZUTfiqdjs}Q=F4^dH0{pUWJE;Ty&<0gl+WJk z#DrWQ5j#8k(ZB;R4oQgt0DyBQulqnjcZfp16vyu#=xmT*^&3t}%R&P>hk&=PqY$yr zV}C5&4+f2KZ%bz*zrya}9msgCeW*@umtNimJigH8>Ke!jy$9m^+oLRe9W#-4o*pKzegxoW69 zO6tJKqo^6maN?V-U*K>S&0EdVR%dD#33Ps;|(ouWQCw_~Z-z-`RiKdW*7ds&&YA|ur z>)gWYG<7}{ZSm|F$mh^SoyDK7JVh!lliv8}5LO_Wvyi*S0DJoHXO|>KLrQOBbRDv# zMq;9&Bwhqxp65t`X!!j8#YHm2V^^!;?B&0XRgKbwTtvd4%%)qY%=GDri)KICks*WQybGV2N zAffERLRj#;H0A}Sfg?hHw?Ek2SDcp7itmnY@iXo?t#a+(i^4-U;qr;VnyEySRcG=< zRZq_ow1V14)T}L1!eX~E>8N+y-w}_kdedt4Sgw*k-6WuW(TyUc{8>Uo_xG2Bxdzm_ z`^EPj3W|lrMR^x#Ew-lu_Zb&KAwc|&)mmNb*8pVQi8mP3&I^F<0aims>#ZK(KSr3p z>3p8NZUm@^#F%`bs7ob3EiEn6&(44($pNT~4TUeHT&pen+Z)zpaGzP+pX;NQd>uVsF9c3d z{9@{4Xk}}F(J%ds&xKLFv}hmoZ)e^0;8Dx*XhojV~%#q*2)aoriO)7?uvF!r)P<4o0mL+NAib@dO>nn|F} za*f1f(~K}nZmzLdaGh}CeBpDuVV2y3FU93@FrUV1oM^~uUA8BLcg19Yf~8m!PZDa( zlhVMA2_&)WpA4@wAPCW{HThXJNAIi}C$rb$c)lj5f0^?=gPX(t9G=1g(}k$H4EwJ{ ze8{nYHh}1G$O;5pfn!MwV9%UaFMtmSMbyin&F%4O!lt01Gxh>w(Y|F1fU42ecq#Jc zSK0luiAAYbcrM)y(er0O?M(noAMqZn?^qP5b>%7{-tR@ya+JOrp%{QtJQ(a{bv@>e zKE8bto@G%xR5yCW1wNA6z;hut|E7t8vUkvtYqkF-bVP$-a|;Y>fxkMcoQxZpW`!Dy zg*otN+9dmOd3Z8@y4THW?3BxKU++g@D0Jc_=7wKeP~m86856G?g>!ZapL0M&6jk#*cTS55^0E6 zF-9HoC?^!c8we)#(x12c@LdBNIdn~j9K3&Q_jgIXsxSX2>^!wx0N3(;RWKM)vj!sF ztM2{Mn7L;6(w`3n8uTCG9pqiA><*9fINm0=4Z*~uYe(V;#vw)_rX6*2@70?M>?~F* ze&sQKHVYLePf7X&(NMq~;#&#F1Ave4voqK%HBZH%IS9-EUCPeRPS{+AAmh`Oa=FLQ zG?XSy=o$dJB+C{)TWJiYCQ|)Np>g0n+~J0}|5y;rNt!moy?BMo22X19XRF};GHSos zE{GHK6N*sQKVwQgv1}4&Er!ps?2o-il5S4u_8r}uK#h?KoS{L{8^s7ynuW<3xTKig z!l*fV?H`=Wqm^FM@2zLh7b4HfZFUS-@?CgYDc5`x2Y$qgoHFMkr#Pn6hB6Ru66qW% z4$L?$fJU3b;US0i7l-SPVD3(H?DL`*{S*$B+`Cpk-aE^7z|EKM!igl;jxtIeE*krM z!Rwd5XFC@v>;L?CO`O)2m@CGeA5wugDvJn8h_xmXI~5a=04<4;@mlaNlNkIcc``Bq!7N-NNtvgoqB(khqBr znbKuDBgS9Q#$w4MX9{qcZFC7z(s|uo5QSa|Zp9lEaHS%dWDB{$u(N{FKP*QEHclv( z%eFzFNC-jny?hWqK&8JlSCuYR#NrtEX5RzpH|dF({+ureU!fgxfz=EF%6L`!k3n&c zJl@8xcda%#gOGLK)#r$8OLBRwW)q0h$MMW|Mxw8u@mw?yK#7fWE%?4l$@ZvFl&I8e zELr3L6r{(&O%J%Nh|?GWM8(sYR!P=5=VbQ!YD4BzCll~l9Z!^MRTN+nxsHljDTLY^WQ486wQy4jPbig%G+l0L^3K8!#pqD=No`>Dcr6L7Too z?5~FT&Y21#-QC?WLapVB$1)pF1!aPfUFU0EIPQ`%etR>O$^MWn7wW#AB&U_qB zrDyV6KW?yA*LR)WC;Yw??dg=z&bkhvF626~F_N9w@u59Ph)-)(S9M0jxH@>>Cp)i4q3@#D>?rRrGM)um72Tim80-WZzhGJi1mb$H@qa3jOqEJZ{tg< z?&7tY|J3cIb;ew%PzepjdWH@xoGn{HS|s?EyWD^B){4)gf*Fy;-KA?%T1T~W*@U;o{Ih1Hm*V|oD%dn$c1d2IME*l6a zGn7B9i9B;#UAxCsp<$_}%bxk}aD}ewaX|sUk37z^$~ZzIemeP2_4*NOcXWdkS=L43 z!A=?*Oj*X2mYvfR;MHp47 zEhG6t?lF2uD=_=ss4?Yp;T+xz2cu3ZjPl#@>h_^i{*Yt!Jf5S`!JDa%Rs72?BXMRA z;`&#ba~|zExXH)o%Monc0?KOcvt(!h3&JmoSa9TaM8NV$s~sCEN5N{-XSRHpMT3@c zsx~w2c`^{s^G&7&9w4=$eKt!aMxQf>A%*v&yU*Qxwd!D10Tmearw7-|qyB!$qmAoe zRPA{U$$}7IqsMw{_aJim7^|~yEayj>F@7ZZBXxdXacgQ8m$XDU%wLd+9ICLW!Fj)J zET(%w>jls1{a3X!8(!ylo{7~l3H_Qyn?I|A^Z@L>?2X^ZdE*_~d$ z5W3VJtb$gf(`wU%&ep~Y0Ir4gY6lCx#JZ=Qa3x9@G*a!>O3)B22#BV9KnVj_y{T?K z&pX3;-U6WDNo~B068n3p2E9Slst;T>^q%;@bZNNr&Sh2HYrj|dGO*bWN4bT7!vFw2 z5Ncd~K>FIfltxlaOw9CdJvv9oszkLJEiv!bJtzE|quJ2c8Rx~Rrt^{`ww^J<-aVtLJx+Y}1u_3%mtfg?$usp5|HzOiC z;8>G%K{xZ1X?)`yYxv^f60;clC7O#4CmR`7R1{Ao{>3AA;>w^@KFjocr$dP=%^n1N zwaS>W4@}YWJ^dg71a7eHZ>0i_OXTRDwUv9ZK6ZXe(J^`@R#{QZ|G%^v!6Z4S`#e(pM!=#;nPIu4;Kr4B=$p*ZDs?AJa zu2PvD8>;}A!I-ZBFc@Gj1JrC=TiaMR#;1gCW0W+Z)mq9{=2%QJ-GhlN_QA>A(dlUg zl3a2g8PD6fQZ-CEO}tD8=VL;^((-6U7QH)NB>m%t@BIZ0!XuGZ!zq->XkCx*SYO>K zG2&R50*B3l+j5QDgM>q?KrRbFp$pCET%DbrZMB0yK>P;2 zX6{kh#aj0@5TqEyZHI_9S+`#V3YmBLLjb9oHul4<_lZCty_FV>8 zb-;sS_vzHic@zrO#TOmZ&)jdu=SO0(?(b}-F{7qf_+7I#B8hQI8E?@63wGidPB)~z zizUd(ad$topP-e;$fgTCj@UG)t~urDP<)t~WaDDmvg$YX*|IN%PC$Htq_X7{=_e)6 zlO1f1Lv3Z5fT#x{Td%a-cjvK_WPPcu{vfo$#l6+n$SxT_(dZW|Ns9(mL*#wL{Vc`HT-7c|!5w++3}xa#QW3 zI)2FU>1iooz0oF$wQ@~jLc_yAMkWgL;(P>frR>(JcO>)uWV(IV`K34qj{waAuh*{>6DYS}3gEQU)<* za0a_7NSgDg-*xqMa8Kdnm@s2C&4+iQyNp496+T!*K{L$cv=sn6pgxEh1xppfM&kr| zZ`9D(0U}J|g2sjuIxbn*c71zva2$czna~J^$hTh(+03TiNQleuQ$LScO5ceywd=S} z_+f`We940P0-^C7nd^^>Bk!Yd@vX5;a9r~Oj|smtFsM?FA6Y;dnlUg617B76qOiIG z{X61v%7bwfs^!$6c@N0^mcRKQ6UHH-;bVZf5SfI2Exwes^OIBC&dVMQ#LMQ@-Vp6` zo~Kws3(Y_dpybT?ips`DV=5^-e3R^pX?lm3NrNq)UHQBzE7V^E&gT5u4z?@qK-DGm zBt9_7>w(pBZ*76lYRES;5QIUy&aQtpg|+mXA0R_Eq`v?KgR}z_d2P~#6{0f0=9*5g z^AVh~t3xp^&Kt`Fzy_gVU?wT;#6Xbx17f>FWHWhb_JPnS%1?nu3Rk1TKHxCIaet<9 z4exGmzgC}aY;?d&Px|`!Jgnu2MZ(h13mJKl4Ax*$$noco0?Zcv1R2hkG;VHg10(ar z%18`+Q|_ZLK&tx&#Rkqz5L{ebY&#;>PVoqQF0$WTfXQzwj#lIG;nKZJFSojo^i7gT zQ>{i@a{;l^?eg6Fg~}LoNT4w$)$v@YTezenHuU*jVK~e{P;q|>RK=h%2SgzGM3tty ziw=d9Q63_l!5xSB+RuA{I$t^hiyc44L2k|qH6t0Jyp#{hfqCk zINmwBYUfP26!G=Oh|BKAv313BT_9w{++14psnZu~Yh9>HZ!iR%(uW++*u3Vfi#>)+ zdMH|*Bknn{xiITxpEUREk#kXiXHE!+V2dFz&(0uoOm4VD3&{)sVDsZB<7EU)*2$C< z1^W4a5|Vv>88G-4yqC8=BgIs;A+f)$wrWH)gKZ!qgMxSd&XVYq^1)hW5SW(wf*_tE zZdQbItpHFNh@$y&7M9`^4Pq6OvP;);7Gl&!^i2s{OZgVo6q4b{g%5x_T3PkKUM#2q zT0of=`{-y;TA*XUMdZ9G#@^$0vTK{C+ne+F{UZt_B!2;UH}TO*Gx-fDB)w!Gylwyk zST(qpoS1;lNJkO^svjqaAU*`d#|61__|+_@kal>Gtc>wm|4tC=1W0xR?Gbtdtm?5= zb2ZdOxlbmjiw#Lu51`PuWp1?76&&yYUz^DmHG&oJFdg7d>*`leID{FyxHJ*KV}kHucUk?h5_}yn43LfCjmzPt=-{JWe(YB1_sqWd4FrM+1AKe zh~jtn)x-s$Ssv~h9@JgTjUv^a9#1wDIYAhvponL3^qROecsW^Y6vye3sn|g5?Dw{C z^<6w3)zy@F4S@y|LI8TC7>jK;{1AtyC)2_5SoPu$Um_yW%>DZ}1OPBZG!vVp2mA#A zg8`sJApHMC%>KjC1aut`ru;uAK?>=yhC~(fi;C`Fsfwq6ZpV^Pbxj-`4eT*Vr=O0d zC%d-`in(Hm0)>cB0C$SVYpf1PQU06!Y)z~ngPuv|_>4Jp_eTJ2&v)4X(CH&)J7xYV?6dhg*4Hl%Z z^11h%6$3H0L^ERJDp(RD1r50*$Uu2Po;IGc{fPS*)I@Ylj0g(g6!h)G*SZXV`0GzY zMMI0#4seRU0EqM!LWz62`sV{6As`@rF8aoSF6wL1ACbFRnp;`|TvfbN0EvN@oNPn^ z^w(lX=WasalA!wr@EauS18gPO>L%>6*|NCrVK*4^jn{QHk=J?ddCm4DPJDCYZD*C7 z*8M%3qhA`%GLJf$`??iw8^$mVi2afB+XSN8L4N2My*$P!SUmOZ_eYeuO~bUi8EpH{ zzX-YO+Ol_Cg^p>`JI;;1KXim}oq0|J-u0fZ`*h7$aG3*+7_^NR`pU|V2OnYS6*;_L z(%;5DW0pKEm-k4lw-q05*2-$V`#vkZJxtoSFGU>>WV&3n)H<#|v?=Tb3RRwr^d@@V z(f!UWSE+sS&gA|41Oq(hq(JNDuzKu$A(^2_dG-0+v;JxgYkw2Llil^nd|uOSD-HYI zZaXiO&-ySTAb$esoY#14bp6FmRduTjim?6mEKrCKh=BLPzqQUOrhOSk>i5O5QI&XN3DGG^>EOp&eTW>A~0BAR8z`H=- zhK{RpT1d?nFCQtt4d-l@_Sk8?tu}9UE=tN~vbftEOee|5^EF+X_DkWtA7g5^J}lSo zUZ-ch1BLku=(u#Pxf`CdYTboz(PZDrEQ<-wBWNGk=}M`@)Gxi zVM@!TmNi|*{XSJI$T9}0`y)q}qD&IQK$fQ3x|PxX`3gSb#U&q?`AfrO;;L1DqgH$2 zZmrZxUi+Epe!%93sK#ru=%J|#41=(NMk>I!9&MXWmtN}rBdd6ku&9V@TZyNuGA z964w@E=S(yJwwSp4`7FOTLBPLFA2gOx%I~8ugz?jNN?JEGZTL~o@E!R+?CloeED3D z?pz6Ao>!k^Gx_djs`Ur;-1OW{+%jJ-09FB@=!@L>*_ns_afDNa_F0LQ70J|LW4~-9 zRQb$I>ulZ2*x5zXnBeA6`@6h?J{E2ag%Vsd6JoY*utK`mQ@Upk`#6_sS{NC<7 zEA4o;w8~giwUw}|MNJru_@7$vNceZw?d`X7?q7Yb*R-9yWXgY8K2>(yxu!EOD<)u~ zYD1un{_clN@V;B#{=!zj&&es+KFh{R_rAvWe$hlnm&W#7yifN$Ry3=#0LUGGp4cEg z`0tSR_cTlHtDdLya2lXhWA{eVSe*q8vyT0xm&;mrGuoTXL=+^|*o7mxFK>h*UzMd^ z+j$KSUH3AP1OAa9mpGN0gPYsqO!!w;@PQJy4R-fk9^~S-Ct?x;<$ku6rcXAK4pwE`+vbg90n#) z{yZd)0>?VGz$t~N|9+M(Fbt9F>eh7zZZELQ(scXydqWI=3oIP@ca3r}jJ4zayZ%3b z*&dLbCAmmOd)#Ytgsh&Pulh%1v5~{bM>_kfb{vk}iWERHs$b`}o^Ir-rQf@+!n#Z+fq%+#>VVs`I=bR)$o)yTj^S z%MVHtJ0915I^opwRpRl&a1WP!tI|(TUIs6d*sNapvENQw5gyu` zm9gUd({Im;ZvLnjaVoC>d3M32-Q06mx-8TY3F-_GvpOCcnqpK945i;Y+HD0}?LtFB z!ovMKXA;T{jqEev<2?d1#Pp(qMjJoztWnoDPDC@ zVHbl@RO$UDlg%jGDp~&!0szpHbI;&v4kN-_FWWgZsd0?vINp(#l=}52bhC_7;nqk( zZ~P{PMc-Le+}T@ShCkMw?LS}uFR77EULB7*YY+9s4AW#^K2o!;r-FTin9Mfb)SS;v zi$%CR|ITcb4jOXus@8pH{#@8n2-Z%_RW?RH2M&00AMNIke@JJCvla*Z&(s(?LN_78 z&;mpVQWV*u5vefGb|uq^k$D$K1M5R{};k{07;zOA@|mDfq{u@PfH}Jjq~3DF3f}M zxE57ST70(l95HUQe|s6Ct)ou1E$^9<}ABmJh;0huU$ARgSt}uLxA2ugmL;F6_E+m=a*fa2Z^y^h4ITn;TUtA z9C3je$0JUb@%#bGY9bU1Rq9r?Dw#5~2W%#~ai}6(g-ImV6QphTwb|VxR&xd`n1~}3 z1T06AfX5^1-v5>t03 zTSU79BMX5$_QO_pXPa&I2IaNFZD*Vpaa{?XBgzK64Sg%)@UJ?Yux>@UmIPUXYgq*df@v$TbBitEbT zf;hsw>`MaM6dQf(MA7rj!p@JhUvE6QS1oC`?`D!2GRKd?86-8{+R8Zpa76DqmN-@F z)iYIiPpnX4tf)nT3|*WYQNa<^zgNXmv-QYv?J&Ce!rSoV&zN?dR+dofc_5Fr;Wm!u z@Uqrb*MxsWc00p;w3YIGm{k*}?qwM%fBx)5DpP}G@Dg6dX4`x4{umMd>xJ<6+zT@l zX>|rGf&1Ni+1o$3bBe{VV_`TQF88Fu?t`^We>;nb&9>32#wEs=ZxBKm?l=E#Mt^uC zNm^c_&LAW?e4DJud`CK9d`g?##^s5n)E4~e@Alc>D{c=eOG9J4&rdF zH$$3pH2dB1sYvCL{ z3F|f`|3GI1K9ub-3VE}XYvK1vFTxzHQB$Gi!$NI+GVOMa;a8Znd_1a17YFC#hcSE3 zLHwZYW^m^(_SRQ0B!z?P91G}<295C*v_}r@i#O}nC4oc!9dZiw7WZ(i32as&9Ruae zf6-^WdueTND&Erz5BNN4E1ZESi;J7i8Rt5LXID?Z=ueLi<~3>_(`>8Rgip3Ulz$o= zjez@)uCsBIN^rm2h}p><#OtF~n_O_jlyJeyWOdn{ywF-}0zY4D$SC9egW@H;^FF$a z!t4Ep5gi`D??=L+L(}={OF{nv0KhLPkcSpmia~_X10Vqv2L}QL0uChyfk*0}@sRdd zwd^)sMnE}lU;0y7Keg6$oN@oL^3}r2^Xygr$`e95N;Oz@8*ks7R+z&rzY{vvix^Pqvq97$im6Ejh<^uJDluDP#84r^Sh1gG;(2yiTpTC+w6>VO#%G2;&pnm_z2n=pWNJIoe6&`fD33Fs4AP6ivJ2LIc z?Vwr`)W7sa(leZxm!O41KNS@hHuy?$o^;!CO0?14FR{erF*~o+li2#y)Lk+vnl^L$T%HHYy&>FFC#t1~R0}-32II-{{<0-Dx` z77UZc@`H#~MD{)+By7==1FAS`fyaceY!e&|t_?pt0m1I%!Kxgv5^H(tq)oxidk*#g zvR#Pq5xD?Ki&CpR3;8j+lvt3G1N+@uq7j+*wpA}gu1}9pK|kRfVKz*YABMFSrDX+n zDs%o|rZoHsYAGV^C=}d*_6UI`hPSi$cs!qy%CE*Jc^Xny=4v zSSmTiz-xi-IKj zh(VwlyQx9f27B{0Fa4Iixq;!nB}Uh4(EIsDMZL*uNFZQtu}a|__CR3GIw8hNXVqm| z#a7ewlyzcxG_3*x;=}-dw_M?h9UReMMgK)NQA%W-fFZ>tLISPv(LPg`S*~XUeTv4r@Cm>a5eTG4@@$XhwA$VkJ+*VHfqiGGGjPGU<@hn_%XsIZ23jO&|i%>uQ*cp zF9#sMrX{biS8Iitu6V>hg#~QVbG6+7>_RFYdEqfW`4$~XVJ|Xnc=QjT;g~QFkBYQ| z5t{6zm`XJp70ZLLTyRiF73q9z#=4{AucD;I_oFjS53SAqAT=SC^F zbHbNx%iExpWf+Yn^v>(zE){HS);%Id@WkU#9vjUXg_1dkWag|qb}hc+kNf3{gu-fZ z*HCgH4-I;ZSdWU>fh;$SZJhhvrR|Q`7up2erR;cI*tNX2j?~};q%c+*Vb;Rd&eA8C zAB2FBC5K7O2sd`qkPG59kLuSKAOvQ2ihA90;hHWiC6{RmN!T?eRH94O8blto@4CIzXBB!&GFZVe3+8iX~55cs9<>@vPe zEMZqUw0;5(T+8yuQ%<2lvIkutZw$U2WDJLi=&WF%`)zn=6^ulK>-Qq=?k)qozWM5vO{K*-c%Y}Et_pgZfKA-K|%l9ZKm=dmDvMHp<=u=aDxeLMT z)FY^ThW^u`Bp>V#xP#G3J*@gZ+|k{9ew%{aei1mh80%1*ax`E z!hMA`Tc5Z%0Vl)++NMF1D!4!MQ%iHRmP>n){l#tdks3hJ88E`)uK;TUN!+67{>()U zMZgoM;jA3c_9=AZn(_+BVs3`_y&{`VFD+Mn#a{!dwK2(GBKR;wct8y zpF-B2ZyzL@N}UGgkKU0Ih4dG8*@(guDxK3f8Eh2|{F4$EZ_}duQoEZ8`(FzG7zY1x zZ*&<=kvw&`txpzx(72VhUx;!fnKStXdEt&+C`+C`y7gqE2%#@b47biThE9(B2K+>m zpH`!Ne>eV^FtS89-%q^BO1?IlMyoy3hycRi^k`d|C`1`J{2eaa?pAVLq>p?7h6HE- zsdJ@9Gl&!)NL#|YL?-^)QdPjd#hxrJxmU~^HaE&u8xKyAkwk@F!i=wxJwa`^Q0MW^ zXqEg-cAq1$m9GrHfd##r`UIUd9F4*(jko%ip}a)DjJV*}>@JK#_*cPG9s^{Y;ur&r zuyp=Og&sq%xRi;<%gjc~V=l!kk0iDApWi_Bg!dMJ2pJS|q2;lD_t z(^{?WjB#Vg9QWZA*C8Nkzl1mxi(KU$5tZP)T;UL&4GZ$+6(RV%II zIrz&nzczgCURujl`>z%Bgs->d{r>RKL?|@5$`hpUMa<-H$ikmM4IER5FReK3986PV zB9A@m8o<`)altepCnb@Y!ZHXs9@;W=M)*Wt`YlkaP{t9c!Xg1)Oq2E5!@U$bU15`g zTbKbVIZbx#=t_eb#k(Z9?_W*1VB(3?`E)QT%jJN7hI{F;DE0V$9%E`O}cbWEwdbKB5ff1 z;%-xb3MWFIgsygMZyD@$$CH^z^dy=|R41@fK~J58ZgyiK(f&4fN7do1&`MBKerRZA zDR*!_Qk#MaF$>4yQM6(?Hr3iH!1XLW*rEs+7-244(1)<_08lu>WHd z&OTqwK0m*{89)|tl=9Bq7axH>x4K1~F526JyQ=SS~AmDLFk4{Tq6oo>F(i7Je{`$XS zFI33n89(jh{k_EJk@@GcNHeT55!;)U+s?qUOIzWB6S5LrBgy9ZmTc-j%rq7&sQ;m{ zIpYA^HO*y(q^%Oy!J13*G=vuJE|;Cg>^bSIdT#(0EA5r>t4+F z#q|Qqup=uE41(f*=xPhSGsx^dHloApWVu}+**>)JhoDCW8-CnFoKca-hHIXTi$S9l zz+hnWp6lwGY+AQq#LQ3!7!VXo%royzuy1_6CHaN_35VN*hib3>kTGf#`gx43-8&2) zOg`;^B3?Ej(g2r-gpuUn!PsIZ%rS^jp#w|Ifbfz^hKr1eT0}foSbiO_+x$IblBDTyc?oCM90phMKS`g|Uf+Cxl~)O1#%Y z0t;>5fSf0EK-NSm!)bYjK=BfcI@qBJa=+w{r5&9$fbgwK{`2(Q4Y84F5S<~9CWW06 z3rKpTFh&9-92lgsrWI&ZDa-_Nbx9RxM~voRA(x1smMEgK;(}!5n<`Sv6R4-`Td1Ff z#b+nK!~5b#Ibo|8uF0a2UM(xgKd!uDo&QHwo{FEERw^nux{qO^rL#m@dKuG$993_i z;=1X!9{KTxH5gj*jXY|)l#bCayTe}#fE6X)esbE^>LqqJu~}x89fCSp8`7n45J}WX zD`IUCJV>|-<)P1ZxpDjVI=-%UdLA{@b|%(kmL8w1{+6eQE1i3j#Oep-1_%C$fe_#p zidU8y&!~YdM|WMq%D@{ePoy$ZxWHz$`G(-D3Dmp4nM?$;wn$+=gy#ievw3HUu)C^h zuvS^qA>QT<%Sx|iPqs&c&-64I!p?E>uee#aV{bKIvG*;;*j(1UqDR=Ol_MHEo~u^l zN8EiFf874jPslA4mUo~bc7HhY0AMat6gDRwK;)4k4JZfH*7)JYoV@EdrfHLE0YdNa zwBf|AoVS&VDsOX)bk#nX;}WC-1ud1pD|#2|adH<_;!7QHPzFhViSr>t+R4(yUdEaO)?(ecf^CEr1kVp3^JVhdd3LO!wszpj6Gk@EGA4nuKI-Bk2Ee*aQesQAx z*5Z5Befx<#X|bCk?%qyv&X#}pCGSIGP7^h%TWH@tgbglBQAp z@AEazhtZ_YmoV)8qG~2_=}}2SGg}vezsz%}%I6FIlIvE;Y;vzOJ-eP9rc;fr&&ENN zW2rTILNpaRsNdtAEyJ4wQ~DpbWokiRuj;ICLk`bN9DlPkX#~b)&z_KdJz5SrGv%3j zM1?{ddKxnDn;+sorQddBXS>*8jWJ z9eKv@*nF*K7EAzZyVbR5@*tIV>A&a8emK;1$eAP~n#k7VhWqU!!zP`aF^^^g?sVr7 ztv{TD1VjIHOMSoGqK31&<6sjkdM?5&&l+e>5S{Bw~e`+T&ircd?p6-R!46+DktmE@?b9gKul?57$k4z_YEY>B@RMg0mT<{ZZsMxri9N z=FxuNSvaEFj35u53@i5f31xA$>suYEL~m2!bdrBd0nH|IZ~d_b^-0aZtA1>kb3*`R zrAa}on_V0>=d#HUZ|~%2{K_KE`5Uj@SUDV>)%tOz4Fm}_&AZ>o&coYm6_SJDO6)a= z{6AJpy~iBUHd(xwqFFrE9Lzx+s+YB?)QM;oxV~HC9SO=XumRZE$XsOmBMUs_5|8VH zqm>U774D;@(oP|=xORs(nzlE3Wn>#QPI3l#XP6cLDnbBUS7cv9u&lO5ojw|fN}&9V z!B{dwz1gbo2M#kq$O*3N;~%L7S!EcXNynw%E2BbCA5_~WV` z&D=*bIaXH6r`sRr(L#kr5HnmuVcDzk+v58ZG%MMAsjA=ogRMwbl(auQdb7-gR z%hJUxot}s;($Nl%-3!783`hS(Ll}4!!*fi(7gLIckU~bgg=Nbg;?Izfe?mXy&0r0D zT)_iO)*9@`!9Ir6=-0Fu#H$~svpQ#Eq6*I^vN9Ne9TO*Y_y#klc8rf zDvX7monE11oXK;@7K})qK?ANHtH+!#OXPWu=#4=6+xgz(4iXyI(v@qtRf4l!h*zan zO$>gydGyXsX*jN>Gr9YQX^q!6M4S3*H~X?QD}c4)Z5< z=Po-2+iGOKek9Y%-XP{^oZ&IrcP%63Q|Jueb#7pJ^N*>sP+o%V?o+$K)9{9#Aa8jbt+Y>@ZiZRh3D5BF>) zh}x>)*Rj6uB#gruFQAnE;Pd+J;W#36;UXCCfX%AXQR|kW?=oq76J7HPA;6FNv-?rz zE)!kN&ZwdX(iT`S^DP$AqJ=TMLde%6EIV`X4a>g0}9cUQG_eu z|0hQOAMb^Jc=^72O^l#4!B7h80huDdOdT*Yg)kN!O|c7q1@9)y3WklrrU=bDiFhF4 zo0(XQ4jG^iQP>W3a4HGy~iH=``OX9&!AQ_JFrcPir5NN7$cD?j6r?cA)G;r z!@t)7Rd`g79(@8eTtTAXD#K&$9yV+8p394ec3-nwR|y&bfDczOj{G+pd-s`^7VWgm zWd*G;bqxb+XJeD=^G(AxN2JA1(nu_?LNCGCqjF09x+zuWXqX0Nc;IE_tZ!oSbARYc zzH6$S6ac_iBmo^dxO+W#SRRV2yJN~0SE%zRU26c@(dpCB-ubmt%!@7p(a@f}O8)-w z7WMs4ehSv?pM);<%s;7jww!;m%tazDD0)7AU{`WIc*d}@SA zUZn)GMt&t_m~thd4HS4`XGlnvgFHXHFh3tWOiYTIP)7(QP?0Ob4egCqz+R~bA~iLk zfVE3=G70s{kV<~-H70(cM0$NO0z-+{x| zLtP(Y-rM_aq}zKB(2jk(GnL-*==z=-NM_Nien*`TjOb5yx2JXEi^b!!J*ixonohu^ zCdy2f3aIxZK!BLfgVAHzZ0~#njtt?$r1yTNP(TA(*{M9IKEF0vykmXU zk;nsQ2gUyeq->*6xQ{6X@U<=KQCBi)<&{|H!hgCOu0NTs#?b53HFd+hJoWU3_qg>3 z%AAHZ=qBd;4@wKie<9uefxJwGb0Rg}&x|-(hda{0U z0%9m(EPs1ZUa#=}<7-$dOeH{Y`y2d7@ShmdnnhSK^H-!GP z=-{QZi=!hj&|fj)x#eY51%*3&WAAQWY*4t-;Dv$L(u!oosBSNGYy(*@Lb*q*LIgyXYX z_rLdRM;1&0(8H>TiiXzS*0y*1^77(Jj3^E|F+Gijg7W(L6&e~kIXSt%zu(!}2?h~Z zl&+o%1YLPFBK^OJb}jxqC)|Bi@_4F*q5o$!2}wyXP|yPdBcp>OViFR}NEvDA%Zm%O zq{fDZ2WNEv03%b=b}gFmI$ZW1Ch68{eROpUFaX4?X`1eocJ!CEAb_6(G7Ji;%83c_UgulCueC_myXTy z%*@SnTv8IMc}Zz$?D^Q3MD}!ZTie?D`g?Wy53O*pur#!^a4;~V?6a4?XJ;0zww9LV zTAbKXPft&+t*xu8t65pNueVc5+RKH**U#0Jm64H=jg5_|ML=L506Vv?LBYYsrfccB z=4)ePW2dL)bm*Q3zHM!7@$vEf{rz`$cNG!8eB+VXE0QePWm{Xt0Hx+1+&gpS$l<{c zj*fUd0ebYuwl6l}783s~vEJZ`_$ibU4@pAPP3TGW3V{;~2?G5s;(~;eaK-!O8z3I^ zS3W`x9l$&WA7BEx2c5svz&FH=_x!W+SYw%ExmC8<=J~YBd)ukHzRLTUW4XJ2%_IBz z>#7ruZ3m$GtzaUPlQp4#7|$ny=JhDuR^kO@(?XuEdCUDghCuLxcF{?gBBn(9ja~`R zXt?uv>%2bK7w{LTtK_8os2F~DFpjfYwN59gY?fy)2-?ant6U*_0l)UprV7FVi-2qJ5i1I=i_o?5WYw4DU^-uscPG+NSQ5M&v2b~}8inp|iWP#|RrK$mNc?VnHU zi&a5shRrz5mtEt|Uo4wuosiLHlgujX#p_YfU*Fuh)zKAeCV;eyU|t*iQhAfE%j`zoSJ;!cpRixj#gnQU_JMK;lPVgsHqKoq&)=8+SXIk_>Zqu& zh=_>sae&zjQe^tPh{dL?Q zPG;Y)+N&?0w>)G$HyX?p2@z(`lvTBVJn;?t;n;=%P=MM|1W|1J`$^XBn?5Kk+YWlt z5byVo`)QxYMb*y+KF^cyyIE1Z*i@_T&!KrWQ-@K7@cZ%j(Xj zrga-j8~Nv}&Bo}^_RtR7)C zo!E$|iKT*VW%uHJ;w~bNAKQE4CxYx}F#o!2tmS1sU>M#j@rM zb(UUA0RwAh2}5)nic5-iG8*9eUok!PR7AnGcVoYQ^WVTYbm@BD3cuLL#>6C0oH-gy zon^XgK`8rg7-oAt^{VewBEVQxRTxsezFyQ%zdc>HPqM5B1pQSc;$(7by{H?{2=V*; zVMn1j2BXQu6z6rvZV*;no7m!2%YM`myw}(3@njlvz5)cujlNi-$!tCUu4IZzM!SwN{U-Rf}fY&JT(6he4kyHG)@2}_XKMFXU&d`lOAj79*k5Ie3ww>?ZnbXH) zysZxx{3!{x-S1bq5b;xOFS0*A)+f?*$H3P+)uZU+U3Tv;INrw>qE<&dmzetCPxBAM z_^x!$;@XIp z(rj553-UnJ=D8ao@_KuKfPi{Hk_B3EIYx`W0@LyFM9cVxmFO`o^d3(aayTk#`XIIK zFsM(xV0aTtrR+mdIFc4oW;21n?=$ciVx~&Q@zgJ$_%MpuuX~3g*14yz1PSz5*?q>QdqyruK%hz4+S7xecs9hg-l3C|JuX;c0p{Fd8 z@2J4=jl8Y(aSH5s>eG9((Fb!ZS95vl{krov>EQ~&@wW5z_THX?DwUJf_OD=UkAcu{ zr<0#Y{V{B58|wYpLBkxb^_!Q2?W7jQGG{+Y- zQ{177oXg7-~dR5wEcJD)sasBG?Q4{XO2O zu@vMK#$!!|OZ9r*`c0>HncSlv>84iiwGOlVdO9|#0uBYyHaut}-LMoZKFZifS{FNY zSvO7-D{c-wqa8l6(il41-xsu`>iug5cWCGsCKATGiN&z$E^wv5ulM^>N84J9_f1Ah zV#{Zj|LbXG{(!jqvg=O?(EHVFqFHQ{@e6bQy^h0=5kNs(H(Nej^?F1x&T8GZT(!QA z?(k%c5f9}0@kN&TIU1pUx!$w>I^0V_Vu2Dbl|B$5 zQ|Jvr8$$-ni4`pXuwPYmy->#Z1B+FuD&(HGekD8&+_1u-Tt9O?q`+)`<&l;Dyir6N?#AnUpVpdlmh|92U?CRwz97m$ zIao}w+}7|v^Y9z5u%s$yKy^i8At#7|rL%TIZE+I?Z}uja>&?&V2Tn@JN4W~4r!kxM ze(4RxfFIl*PgJJ};|EXI+jwY#r`BqkCBLd98cQ){5qK*N*z2Q7Ur;xzFG@6vyKDJD6s^>b z*jnKHh8NcxCsEsNw#^e&sOgCI$r8Mob-g|(JNL;%zJwd)o365N&A^l6qBp*8kT@zE ztT!!wTya4G0fx24%Bxb|c%TT=!`&=QnZeyG5^-t0(dTWS@B1mv=mC#t?x&eZdgL7V zMbp!zQ*w~nH{7_kl1A0>{)^-S7^Py3Xppk=s`e^4Aa0Xc?pyV?Happn_sZt2whJwp z<1wF&Rd$?w_HzeKXXg@wf=lo%O4y+K;`h6xpa>Gyyh{M{Xg@9FL_9eXyn{5aFjKh0 zomy9y_RFT<>d&rj^q6k4({iwI-D-d2-wUh0@4qRScW7E={8V6;l^hb4 z>q^*f?CU-+Oa@W1WQ%-mt1A9{^d7QBkt*Fx+{4Yp*QQSy%b@i~3<5)xPKds*T=*2> zlIKEJ{1}n7C8kpu?76-zH0wh~T;Ct}xukk~=X;`kA3a}#$N7=3%*$GaW7D(Wcu%vs zBG$1q02cWIzjpkii{UyAjNI-l*CJ{P2!F0`{hS|Sy|*CB%)N3?S!`3x@2Zrq_`w8W z@*xBVdPj_8dWVA%PcjPEtJY(t%c>&lR&<&v_22S9e&q0#L{)wEA)NyQsYnQsk(kUs zUg*6`fV;YDaiS|#E*yJB)0%}w9H$bGjo>rZ=g~e1S)&0g4$ix}Y386kliBuaW%Ebj z7g3p>z~)KAVUcu_HG|>Og(_(`24u?3!5=QzpdaD4?Dlmyny5_YOr+;|x0*bDfI`|$ z|32@tzPp_M?RnNYzqi+f!+JkJ%KbdHd{}luCgYwfTiw~Tc8Au*lgLvmSrxtFdNIn7 zwaGKx@p2}U$!Xm^S&i%Jst=j}AKm5^HAZ1EM0)0@^BjC7!kD+$GAX@bz|H z-MowXwB=zN0RG5PM1+iwK{et6RTckxl##T9;7zbH-o%Ii%rTk(g~xAjCYkt(ire?F zxA*|UD>_-UDYg*M)o2oULwHv5jg4?<0M6QS!|92c;&d?qf7_D}R~W?78F(O4BxV)u zV9n~qNyL-*7-!jDd=01N&QoDEtH=|cFc6#TK3u0BSOz;Xyi}fu%1mD&QwgL}!#(r;%d82dZHF*IkVY ze==Ohm_G!US>OI$W9}?svSHUz(7N_da%Jb4F?!`0Vqic3@M4HPODbF9tj^9XOFmQx zN*YQ0rcpMz1RaG0J_a{n34R<5F^k*XC|UkmA%hWGK1$`dk$51)z+eladQi33kK00c zx7#0ViS(NT`8Sj&0*!&RC_Ff1<~_SCSGb*=%!Tgv8=Cr<_xmN8`my7kVG#eGVpw2a z80%oWK`-V*=3+LpF03N3pJ0@_wDjun{a~`L&+VbATEtSNMu5bOL{p$>E4X4F<%U&Z(RcchcB>oXrP9U6=!E)V>(?n`y`qx;4|VY_ zN6wfl0E^trm{&iw3g_&tkllQ|Vj50cYRtlJ)hel67nq0@-O8(icFA#Rq&Du3?sDn|M&@wxY}W&>ge<{$m)Ra zjyKjb?sfDT`2JiH{u~D73iK{~hGgTvfXW?)MD_I*K^j?kO#K{Z2<&D4;>-;2@4+H) zOYCd*>s-L~MOaUZ_5D*Y^mI1hVsXsDJaxK^f)&;&l zjZ&VaCy^#zd|p8aD9k>J3*;4aGZ;B9gnI5o=5pUaWez>e#^DMwmE><`N(AT2jz63L z&djc`9;Is}6cCjbTw0JhN(y91CaXvfI+E?+=?n3Es)B+^^bqju{$9OvDCIZ8ZxY2k zKy@Ms(hTHA58qt<97`&h-KlrH+-q=@*&?Uk4r!@r`icF|yq?vvs1`-m=SjJUgp73w z0_nEhzo$3xMVEA4s5hjW=9(g{jUcCWKp9QF-ag@Y$rUZ;+YXDrzqsyrzTZ_|e~N@g zE3BF+V`5@b66|$+)VklbmK^5rEULvzzwKl{2i*Xn8_nTTg$K)W-WNCRP{piy!6YP9 zjR+SbW)y|iqe6EEW6;cCwWKc4d!~j(RKsk@A@6~O9Az)Ko(l-YAt?KC(^)u(lKvhY zX8f7zg-U24vl$;;(Pcq4RYDt#wy*i+7LL!$+o-4mXeeO%H+}^>s%${D|{g?Ft5SQ~7-MRR5 zu)`#(IKR0Ml{=N5P3ayHjha_daVFUmx!~ev3$CupLhj5gTURJAI(&gRY3Jy6{sSn( z$fHyiSF6w(1@G?YpRQE2p)zm+&th^G)|AAzHjsg^;L~;yXzIJYgrBPgSlhB}7{y*h zlL^8|b~+3x1c4_xkN~fjOs$J{x@SpGs}UIxMi=Qf8@t=!6B`8+iSj~Jls&39HhA86 zq0Qjhqc0;GhvT#_iT`645!V4r`LQhZ1my@xktPz`g}QHo_|_;N4A_kO8?Oo4r^r7* zh6nJV-WR1)spFHlqgtxqhE)u=_B06mp;@NYO{TWP&O0922_L*aPPEEkFb<3Kd{^tu z*1{8RUZFYY5sJrd&zA#mK@IoEth&C41-s0@9Kk@-#yARWDsPAwi{)^DC5R)kwkJXP z+qV-gRA_9OT&I}hdI5@Yeyfdh5Pt74b4&F4*}Id=!EE_y?>mJScjPkeOU`7BNhFW{`_5#OHJ9|0*=JalG4 z-bb(rN_sjFr8qVZWx_*+SW|r)#~k5-pJ(LQZdL7Sx=CY}t3H2f!K)N&OwD5;5_55+ zz$j;_Hl67g4XI{Cs)mt-I3vR=z*eN-L>x(0lVjtAsCPoyxsb4Q2HR}mo~36&T0(>; zGy`~MZ1u^l8lAL^XvFk1YIasb7$i}F?Ck8!vfb)y)Jq6rJ3?-VEFHxwVol0%j!c+F zfiNyas1(28m_?qqeSop)RQwr2x)~bssUW+^6VN54syen5onDXc2nke+ps>*R?}ee_ zgn?~&?k#luoubm;PYeDW zx6bE_xbJYFzm=@p5~H1xs?!v{+U7;1Gvf+ioTI!s3E75Vdi6O1EwM^TkTrGc<3c zG_*|6Q`}DY{KF)wTXc{4=BP)jY)h7%F7f7CU1$4L%-wjU!-X_KVj>=D3~RiQ@o~95 z#S7hS#Vq~Yx3po3HLtNkBmQb}j)X;q;S{5Jq9L5Byt{z1z1@27VWI0kp`i>^M16Tj zStYELXE_iyo&azMvheTF+ge67kHVrYfu$B-E1KZn$K3Y|p$18L0(hp#s~?_FniJq6 z{%hR2X$Kt#Nm}|U`~D>S1cT5*u@GVH>>)}nCEyw1FTKChib^2u-DtaB^2q(x1_eSb zpHxbIb%8f)DI`*nhU)NiXDNTR5qV0eEyTu*c@on4N(*727x|VA5Q>Vk3}#MbMHG%G z^T4NLrHaM=c2LTYJ|EO5_3`+LFe2nhY&gLzOs4A>UO=+Hh>`m`Ph~xLi($(FEgP-= zYPZ!*aDl;dT9%^5MP*rQ&~RIc$q!3**~!xWFou%tWHbJVr(Nm_kFAl?WTPPE@`GUs zvrtWwQ8MLJ0!tO_G{?|k=46^9!Fk-^tP@$mgv19ygGCHlDW+j0S8^~C-oG~{E3M94 z&@acBAr%%`Aq4IG@&3)6H-LPIwX%*e3<(dpJ5l})wX|@g>TQtbRZ0);ZeJD7;b&TUX{30s`{~jk56Wkyh<$CiO zD+?FUa8*=Q8R4jFYK2;Bz*$7?X?q}dfy2!xE6bSNkJA&#H_a^G{**4~kA@Y4-~W0i zQoP|b4$jV5zfmL%s6qcJp{2;-fX)0n$QKBZifzt{fQbaJZj>2zR}^DBdmbVqOPwKa zM7anu84=YyFsZVVj0hX21(O=4EH5i`hR7IpW}LvBCx-Hv>yepIC52t_Bnu*~wxWkB zzO4G8!@#q%^3dLU{*k+%KitsZ;>0$#wPh8lknG#zg zt-C`{4ZK>+E#V>&gY>X;v#FPO-8Ghw)ujBISclvD^y>fC3HpIG{Q2V5xQUt-z=f~ zpjr5ZP8bQrrnvXXmLg)o&XVb*upb#qp{nha7+eJ5exaU@=O9E;N;!NvuVKJi=cj^k zXds-}%Tc9b?;BCaKoTZzZj!y&#hRTV_j9eWy$(3X1oBvw0{qz$epkqWDWQ+1#l(yx zoayzn?}<$OR!+BzA1(Rt5!cQ$!e2^Vlb)G)Nm6e4+e{2M{*}B`8%RG_qoItzEtz0y z=?hH4X=r^e;oTM_2kZR{c|IMO4SuW_-;o>@UgSvAJew}lbIPeK5)vkQUgm`JW@IZx z+YcFpCztTY2AkV4f^GqzSu#`w<;IsJ2fkP=M`JcvZBjXbs6N680s-pAk3hw@;90aY zf~1QZ>n14LJSiNdrbv~SB!7>iLul=PWC~y?eC}%Z_%wfaHmq)MQA*hAWkqy8+o0%j zI(#(TlWQu)lZnqX>y#KjOtNG!l`*%$V>ZOB4XVbIEvI_U0ZTPz{o`{(VgDk7OC8B< z)07wa%sX<$A@yn2w!ElnDfxYujVE!Mz^tk}S)az@WwMluDrz_|Of5C{tN zR)DYgfqI_~PQ6#-_8leQ&{k_WJoQJ%!g#RcR1$Gl24Re!h1-PUC$4D0*RBU|d=?|H zr9$$1bV*NH4OMCkNYjq{|1kEIVO2&=yPyIB(jn3*CDJY3Aq~>qA<`Yv-AH$rba#hz z3KG%{(hX;Aec$gp*LD7!=LfO(v)8j?*33OK_nI9pu1k)CSAB$d7ZGlZZPAfC-iyM$ zPcDs6=KK^p8X+wSKI}7$HDj;k!7uDN<0s(5xA~3bU5M`=`Yilxfj;87_?F_nl$VZZ z=klMm@V-!q3dUe8Dr zKa+ha`{4{dAp1s=_UJk#BFme{@#w%|2=BP<@sdwSq~&q8*}CO{kV5K8s}2#y@|RgP z_DG5ci&ftgeM>Uk^3}L-w-+P{QEa6i_^ip{;bXyL_{W!Xa`7pJe8o<(7qGT| z9BJh}KMX`a#Hy}iAnKjBg+FH@k5^uiPGlgFrQFS4!+mLT-&AzEz(OC3MOcF15tDlHVgPi`X{^Kg0_9`!P zFH&~2Pe%k#4G*iK^zBV|o$!RCtF2d`t1KV&0=7m}7Ol&*EW_F!9%ERZy9Bl0Bd8l5 zXravSdJ{H7LLO1RT^T}GD~fp!JnL`&P|x2YmP@;=A9^YDIM2bvNjojqtsBd5-A3G< z?Vn_DJ03M0E#wKYBXjFob9#d~-A&}&GV%q#px_$BRly8&`&L$Ka*5O&-pvyXo%01R zSXb+-S2WZ3f?ALDgvKP?o+oBu-SUk4RZ(>O4##+_4 zi4Mu0YcUPJZ^JGxd%sl33%@YCqon^bI)+pY+E6kWirFz$Nl(e%3O3-6g)Lnc0*-i3 z3&xT~k;dt_U=anTK40f9Jv0$W%pLvvQ@7eulcP$Jr`(gGw(}B1~bwQNE)&K%cNp*W*0t!GLM#-LpX%X%b~XV$v}?#iMV# zRiEcOJ6O+6X<%YzKi%4D=gnk=Zyd@qK^a}>tW(R|EJWKjN8R^z;<+{*fbKpW@~eDw zJ!lj1eE1GWn8tHgeKC8(=SAo_3wA@Vh(BLKI?q7o3@V9{q-(|!!xmwA|HDy78{Dx) zs-5Q34eWkI+n!JU#{@D1m%|Y!A>{A(Gt}1lCVkrMmfaUzJt9O0D<y+I?iQ-APXzBnW!T3#v>ym&E%0foixtZ9O@p1gi?)yGmM0{*Ni(s(>D0M?vQn( zu~=v*Z?@^27MZ~5w8AEN;QrME7g+|*UBN)PsXc@3hWPN^c$QF(GcyUvg|r%ZbjAEz zJZG!J$Wdw-4vzLfKp+0xvYwrz)Y= z==OA)7R5^wgGDpY$(E{!2eG#nP}lc3RKJyHnMc%Zg4BP)?j*ddkIWzQ?4+-8rih*2 z4n3}xoYFrwC?`sxhgkIH^uBp<5%_y-20df_qvp}ySnBd61_q-r5#Ka%L{pN&6eU6$71 zh-CTfJIr$4^92@eY>M?4-zJ?MI^mVAbdKtHosD=Q@m?L5#|Lc9J#I#TOv=pGeJM$Q zs`~+2Pz>urc~hTxiKzZgkbx|vGxe&D>(kK&;~X-DR??Sk2SvW*e4!zFHf^Hj<0U;W zkThq!3h?tYtl6L7%e$18v}q`qLjWG?x(iQll1aJ*VIg(2dIO+$tSm7W366{2 z-fSzJW$K01cZ=G>l(0jzxBrw6dxnIcN--*1MF`E+x|o#`v%_qz&Isau2H z%|ro=0?BILAY!|pz&M#wJbVwaE>{H}sst+Zxc_Ty)q^t~{8z7bU=t~^Nb5!E>7tYi zkVxs!a@`3)ysSA{-p0q$h*u#kM%SOkz=LGAAn4oB8BI(dYHzG$cDnoNAcfE^#ivRc zuiL4N@%LG1Ukim}&Qb)PqpUbTAh+M&+^UQd(LX#~D2~0+HsnwDe4J@@+Sgw%GSPY8 zR{JDRnZ|f+3fJkRIuSo>Gy2qBiz4fue^75Az8E&2QB0%dHZpS|TPcpoX)}rF>&a(1 zYhvUXlIY%YmDP{Leb!S}cMr4Bo8jAXademSxp99e+5lK|riF_w#l5lIY1@VZo(ppk zj4!CpaG^n#+!zeWrWkv0X~M5=d%|$wO-T5B-%jE?fBX6z?pp(;Cqq+#s}Hk-1=V%w zcS;mm%`d5UWMAdGTz5RPEfKzEmm_=`zeekcMIfmCkeu@xF*Dumh;!~(G`0TyO|Dom z@_@LpSv=JsNt6KPjX4ALjESm*B0=DEZ*{!BOz6&cg*s$X>nT;5YPx^*yz2g$mBwd=+{YEc~6x?|eHQr`B=3W_gdDed*dn(soC2 z`f>U~tLGbqb(^9|l@Qyy4+_OD146_X;=9w7!u844zubx9?f;< z@2(S~qQV@(T(Z4hv7W}rn3R*2v|m%sxm`_H6GFX5|xEh>^H>F zSLo<|c6P>XtkiKr`y-d?O@pW5n_TS=u6?0S@0sQr4ZR74J1D=t#lmh(#1&HJRAXIY zpcS&OmdxCdxonh z=9IMqwvHuMQet9I8ktRF_gbZk3*aj$rPjHvcKQG8P8~ak75X(EVN+RkW||bz%BZUl0z#WG6nBR$u31=PiDemF?$&$#+U%s6jeh?CY(P2$_e` zH9;8ZbEkn~DPs^x)OY<)L&NW(^bpjl*4OXYS4Lc<99xb$N1XPrc#j^q*7HvGFd14q$KUg(afXFz-a>nSt*rEz znmW$o6?SmG8{e8!80%Q|U%C&y7-wI`alIIEM}`SI6GM=r%xA}0fGMoLvx)ZNgF+RM zq`qLL#2xiGt@rY9v{=ok&-jq~Lp?l>Ea+QkU+87%+c1@b(~72-$XmSEKVEyatG7E< zpZwOo+>m#bSSwjWT(?;Nv5s|;-8C1yixlAa=&;57-nEbj>IIG2M+n`#f*Ha+?|`m> zaLT*>ve5y<7EsL@{+2@fzy9X`M?RN^5ZO`xQqW)irLa>K)P^V+RWLPVwX|KHE7G9k z>w{aoOJ_`ZJg?8EEQd`-ME4dte*SFR-MyN`75X>+Np%R7{bD}JzwuWQB3f=7c*o@- zfZp28!Yt+)l%dA5dAm(^?RNc0M$6g8Yp;i~?d=2&>!-F>3nsi98a&7I=nme66zisTp+RGCM+#qqVW zt6p>?3(5oauhZ5VQ7CVtDu&+R>iE6BnwL-mZ9M5#PZJ0TrpLD*X>h^&ZVG+kRXv1vQBlqD3Ho$Ks2Bx3YM=o!?vqxaP1IydEB+a~kh2#Qdlyj7XXWfGa#*e<6; z$jHcwu2MN{*1*Y0I21x@se_gFr^!621bUt2RyU`irD!s-?A#!wQ!dxKZ=n3&>`avv zpY+mhOA{^DGbmK4E#;Sru&}U?_rvqmChPsvD7fLG9}Ly7QOttX%j%qtm(#eN`iK-- zMxmgpR_7GwxKc!?LZG3#;s9C2a;fP8^!mj8`p>F)ZSrmBOvxv&ik*d83$x&fi3!?I z-&6U#+LUOp%9)|Od-ucP6r8F)ABn?)9Ze~l9u^2_t|P<4)8@4UiVA!KRR_Q~XaBso zW6xEzBe~i60;;9wBgK9I7he5as7%n)mhL#oJlp&06X(R_cjMLOtD-0m>u7?+gK~_U~O>Qb_-$uyvtQ% zhR4z2WA9mu=lR~ukFG9KUf##qG7Z7RwarZZ61K5ZPWL24h9kX{tsZn znHpGHO4FpKrW%hV*Sg<8Qts;%=qEt2+u;)s*z_TB&}-CL0%l2~Lw0$2xr?b!bj|fW zSe4x0ySu>;ywxUSqKW$Y`aYjd42O&Ip3G*7vA#DnHN}Yks!+FB}hK zgGW->#ma`h(P@Yq_D2xZ)zvv;Rl=;HXF#Kx1MlLxb*xv~ z!s~-VL&>m0U(<^kR)1OTA`^=c78WjqeZRBVc}B$RE?%zK?)e}Th^%*O2?$k+3JO6l zPmtDd6!;bFuK(!aD<~>5q6J{K0rnfCL7(MfgUwJJb?$p&VyGWsQAi_c+zCoGW>dz1 z%$wLPh@ct>*4<#UIVdS5WxWKCK^Lm1!R_jOn;#h31a~K7Tn0Sm8aite{Q4H8jnVJh zuZ7bS=@JHaKPDy3Uf5gDEEY-l-l|9pqO7AIX}3lHSrd7qoF@f$)$~^M9AOYe0po}~ zHmI)dTXl{Hcl{P!3adwQw8PD9nZ-%4NH2vFH)P)M^E36I(R!lg5YrRGU>0OPK2ubR z(+k0&;jKV-20ZM+!9lPsdLo@iN7J~`81GMi(Bl~Sgv3`>RRNA=CTy-+wehcd>*ML7 zSccy!STvfbYr}+iT!-f9d zd@P;kjuJ0NHkIRRDJ3^IUP(k03kj_NowTXxPL5b)@vzgMRd6=qc%{AF<;-|7GDR#L z*IywG>@ycPw+v3Z0Q0{B!29_fJOMfDG==hOg-xML70fnbq^xm=D5uC?y8`vZl$el| z;H!ME>e3-q!(Jz50$eZt@(R7XbQoG6aV;K<^{C9e!zGQF5TCBKO6DyQtp?FrRES{d zAuyqxSM>Dttr0y9F~Go(X*JoKjb}ppz!xKEi?oWWtK*IaDdDnz#>c?$y`$G`@YY8i zE-x!ABqmjIxxT#x&d_gTP0UkVWiXgNq(Vb^?VFQ+qDUgX2to9?sNq!3*k#m9u5|{R zHDNz$oP2J;k^%=FZkuarYbO?b$zhCG3!4Q5LaIt(tt&q-aoISb9EruC6B6&cpk!uHyl z4<~hRZ!g%-uVXL;JUw{>3VuIzC3wq_7BfP0!_-uMrl+{Vj%m!nx(@9#G8*6Vfw%a@ z2h}BO^LDo7^hq=FDJxa#cj^uoH~Q+oZ_A$EFpaLX_E$tzkOerr+8RsF zEiW(7{!>y;7N5;yvN#OWhG87~bnw$IaoU6D29cZ^9N>eCNar-VL~ogM`Z0Hf^I_Fl z*q-3|!%V0NqP2V|!`}_3JM<1VA=A+Sh<@&~`4A?Ptm4e(z-f3rNqKpBW8=3){AZ&# zXWKUXtpV3&PDhI*Xf52h{(G}!q2GyI%jHB!<0TOh5VR%Tp}xxN>t{FUipk2N_{#UJ zi~*g;xbk`h>NcRT5Av*1Sw%WUkD>Qjm2fma40Ge6D6UY-d-O~Z=?Lgt%WTMCvxjpV zHeCKhR4leU+q^g*KJcgYQ6S_oo0{xx7Bf-!>L)@o^Zp%;fEt2X2ft2x`&>WAi+4Ai ztD_#97gbfKgO4jFM%yeEmBMtdW@sRD9Z2m9i`2#U2yD3W4{4}*gtaio!v*+Xjx1ku ze=8%g?nI+uuSFR%RA66FbFi3A`Yo3PAmOcfFH?k7P@pL#M{%w03w}f}?zdMCL}L(- z@Y}=sw}^KwdEfk~-U(a^PVc%Mq?i7NQF}8t8f_#4mf1xzBSp0Wb-rYU3&nhTJ)Rbff5?X_2lVp@RUvSvQr4ZZY4k4QMWEfLA z35yi!L`f+uviF%TW`Qp6OEaiJ!3%mbWD%mB&>|!~1mn)%-U4;GZ(g~QkZ(z#z@1MA`kE!_K%DqYiDK~s-+*Bnph3*onCi^xB9S4Rs<8zQQ+5h+$!S;!Vkxa4MkcV|=C{{2>mt@PdS7iVQzIW-r5)HYR( zWW~Q72NQ0Nh=PKGUu-7cDJ2LkHIfGf0JZQ$ptDA`9G30PsgdiiD5sZGssMOtON#c8 z3=GCnPQ?4ZX??i6qI5_spmqOR3@~^=MZQQVc82FIb&*g#bDgk(H4Cy5Gek;^b7@^P z>JNEQJ>OsAB0nmM^@{|QsWJU>@}3KbKU*6+vN&F5+M0AAm24`<&d;O>BxiA#BYN?^ zn{veA@_u-^wLIZCPSM05*fcltYMa+X!apku+6?NsW+9s{SZ5Atv{^y}YZ-U<55ZJU zx0xSa5U>NZouB-5h7Dk67B)7OODtggmiznRwplG^btkI!l+-72^0y~xQ@NdxBSp}L zy8IEBmX;)-EfPPKYg_5*k$gS_aIRBtZ@TC?>?=9#`kETecF$H|HHv zVJq6AZos&@+Mh$odNnJrI0EU-&uVl|Ghz+jUqeGb3Wl|9|NMLt7nnH9`iAkR+hLV8 z?A3noCa>M=G8+dQ%s^_BY)H?Sab0Vm|#csdsm(030QpQ1KO@qq^k) z=fy4$e@XNfDHcQ>5Kj+`j4ahzX)}fa3%}rnVj?RIdK(S=AMHll-l3trNWRC8SFc(4Ma0B%o?b@sIR7CIegOlsdI%0u zp3pdw94|Gqv$3%;Gh>jTUDCR_xtSOm%Ke=XRnZd*bJ;MgIpz>?3>;`~o7wEIIiSR6 ztJ&4p^(XD>8;p$LCAe_wz43vXbP02H(c#|x+%=g~-|+TBq-C_rNpr({=M7;@t)SCo-FfKSeCL(B|}gfO3-THm%qvF z%?%0u$>}K*3k!L+kIyq{You4N-qF)jVu28DcfV+gpkVgr2miqQ#;2fr4pe3&o~Ge>{LRg_6+*i{l=Z$9wuN_w>-ax1l7a$EQtgR#$?0*11XfA92%P{W8?e zL)-4%o5l6n~P_3!!r;)t*W9=ZuUwb zB<}GkE0c_dCIpl}g3cP*4&SOE7R_Rh&gVb=3yYD-hx+PgaCb=O?LxKn4aiR_;(u50 z$%}f0#tP+>Q$~_D-fw?wE|yk!H~g_WV>3p){4+sx?(Z+$)FLh?JHdt2If43jRke8{ z>Y~_1XOA0XT|AUI<_r>g5D79yfCv%}VtB$}uq&4-XOfio(hDa#EBGbxgnp9&3I7PC zh1_U@R^+}kzZZ0@%w^5ny4Q8%54p%`z3XDgA)HM)Lfq^pQqOPg`$>41?~Bn zF(b6UkF3t|oA8Nwwe4&8=69qY2Y3sl&^MPW7PPcRFZP0^ zuOfMSraU#;Ur2f7E-d8gW|lu44xi9z;zxzOyK}M7lds(4|CXjF_Qhi>7Y#!UsSiUO zy2R(PdKb>aqxEOWNpPWIkvyb3D49lod)4Mfi~K5TpjlB&DP}JRSx)jn^_9YkEII|cO;s=wrQ`U;1XjC==->Ss}Q0TUz*jrv$879zrE2%{=u#j5!#++IM=c8 zy^R&Emtv9NYV(I8{+{_-$=JiW-vqu;@*aNIr{ zT#?4#WY(J|e!;S3eBpN*y8#!OP`VtpOUV&h4@0M3%gD`cog2wMq|Lx5;w&@mUt)*- zeYA5MB0D(NXL?WWDJT#DqTxk|V%?P~CnK?CiT#-@ry1~Jn=^P9|4-}&-**d3zwq8q z){A|F`mT866;tEid1=%n)A`zC&xzYBf>?Cb$6g@u%1%`u@kxseoa$U2@p1LvMy_AG z%^f8T`>A1d2eHEVk51a|kWX{<&v8!d%7w^mmOu&mD;1DGe4yFQlt~k(pbRVbRiY^Q znn}@}@AIaDt~%*>|A1?o_o@-@7ms7)-3;CP%TkGiE!{g817f?_IH-5s2 zK8e`%T-1LYlMNoqyACoAMt+c!e; zt2W0Vg!%HxAz+W~`O_8MSz7DhBT3XUYd%)#~hsr3IG1N<*IV zr!*bE>D)O0~6OPj=_%G7>fuC>p?;#NeOA)qiH^=<*tT>UzrsE%d1*ZsUGMlkeAA z`-EP?kKh6D2K|8R$G6hdD9IjGD975zhgaZ%dW~K*6esV9Fw%La<{N1ab_ng#hMg|0 zUaef_Z3j}LA;S4vr&}a|-s~JrlvHX*(aGsaNN7z>s%QiWlqKfNSDs+&gRwwCNvAq& z=f02@2rOQ}`n8Vd=#kIjJ4Ez<@54|>DEkx`+b_LkSN<47>Ka8@5U3vY?>&xq zDseLf`Zf>YGTJhPT^rXzLaWYyZ~cCu8H4tK?zH_iEyor$7)O zS8B)G(WWIHfm|e0JeAu2yapvB;7B^~AX) z)Sy2C9C)7vq2&GPB7>QKOZG?Av|&5ljrZ|-9To}qx~yEI{wSC-U0hbS-h90$7^5lu zgG*II!_Q(#_abo8+sMdBjS7-#fbt%~#PX0%<8qkD7Lil{2OOU+=5%Be8CJVd_=ZPE z*_daF->Fq?H0^({HeZkbq}>P(6hiV?a&o%Lo6%x~H{kdyk^3J3L>owJP;yC3_B(P8 z=c&9N>PtMgz3f@0AQlbKjDvD|48Z#-DHb#QdU~tH$|a?H|7M9sk;Tyv1QFE}fhP?q z24T)qXE{Gv@`>Jv3im|`z3R&nt>(Ia_jbjBsCjWSB{TCGsQ6ILJl|+%lELf2!e#^_ z-CH@}G&F9t?cHI$+b3{bwD>5cqJrT##M64FIG!olY1zeOx=?2k$?|Ef3qYO-P7p{hsS2QGwR>E9>L9fyOZXe;goLWW0amVr1Q9)F9HttsHB$N2E_blpmZCMR~cq|WwXK2J)^>_p_01xGZmD@)8aVday7#fg1ZxFU z^r$tTnG^#O`ZYe8(I5ap0#mgRN0@TG<)jbqZ5~K$%(Z#A^)jbz5U@t}x4_i*447n|kJ-}&TizFP5`rYE4diE5o?(v2MWeuCpRjZwy?Vj+30LBN`c%e}rt z7)fH@&hUDa&kJ4|ek~u6Z7BTdcu1D-A@_*nir;iZf$_hSqhl73CIW&TEVMn=C(CZf z4079}xs zl2fxSazw+GI&2SqGICSaJHDl%8M^=1d>5v*SXfsC2%+Al{mx13PRTl0s4dC1qURzN zJCn4}k9-zq_d0&3c)liC$KtC(;#!2aJgHrT3NcdK1)?Gi>dJqcfuRavQ1YKBR;H~d z?Uph@e|orD;f0~b$~lWWAoM@4<~ z?e|q_{voE*a|Y0V)hJNk#a-9yk$mKe z(N{iWS^Z0KA5bosy_zULqPXSH4`DseJ>UgXeX9Wq?+ z3vZe&Rhzmi!glysaT?(ZhoatC>txV%-@~kvYNko!z3KYsKL4O7K2h|+Chohnri(>4;Y4I-(M{*b|o*G{(bQnv9ygE zs3;{VDJdfpu@+$T;~N2RrNLQuo%+vdeYJaIzyN;u)A4+Wx^$6=nR$CSDaRjJ4fBvg z$_)2Y;A4ZqD0?~X&wfM!EzFLhY16D$!fXRv z*v=ubcQjb*{Q6z527!rX zT(|&+8h_$TEHDfxcx=)XG{rn8v+;$V!e*hxQug9@bKkYFymnrJW7)8^W>fk1-S$}d zrCQA@in{h3@?hK46#f>KkB%YGqFq6WkBS+2T} z0DY)svTWx85Fr);s*f6l;s%u#|7{rxY#(Gref7mXXVNlPD(d&cOO><5|EvmFv{IiC z*$uTXFTDO=^z^T1#M0C>A3k@Y-H-fhjzdKN0LB~6<}%!IwwgC3Akz)G^g=K zXW{+dFXIB#irz9=&Y0H9p{DvyIzn63e|tv{P|q0Cth{@vUfrdx#+f4^Re8Qo;2~TEQs9 zD#emQkPlzuRnE=c_lHCz&m|)bvdc(| z?|AJ^Q+Hv4#&n^;xGO-8ncaGpqfVRd7fTnr1logHis)_*_6T06RugEeQ2K_??dlnx zGAK}Re=efI?N91KC8x505F%dmQe@Urlb>Dgwc7MWD>}u%?K62zx*;i&_wbS*$HRqL z(O4~11=y|y$?*_QzmXPFsbqTB=vLPK6eN1$*(JyLfoXhhOT_%(8N<@uy6%;Km65!$ z@xqos{neoH7r@(Ha+%TjPwWsiwcCjJhT|#PuZ9-~{Jh$91DWZ)> zLbZ0RH1KzDgIEFYGGFFclxC4ST|riTpJu$9{N#A_eA>ZXyCUYX{IE`*79Arx86mm> zImC+`25WV|JG)+-`fUE@_Du-&(j8y@+Cwc_b-e`Uy5;BUdv&llvDB&3tA+@aiX2I# z0?+0M8jXZSmYjmx$_cF6OBor_liMW1^djGtViWXYLR?btW4wO+UiJ#?&Z$A;=fwJMamUW5SO?(YDD ze=DM}WadFzU6=U7Gh~yxvDh+@c}yZ-ir=h0JQ2{XeBv}5=;=uNSfZkIxb$H)<|Fk9 zQlIk<)f*&83C*=$W$;jntkr;)Nu*K92DJt5RsRH)JJ36`tU`T0cX?v?6wZQ1;tbk#O zzyhNq1{2f&9si>rdnUye#{DyvOeFS@O-p2-m%)c6obiv1m^Yn6YU8w)jjTDmV$2Vj}~vj*_RtG7c4|_OG~9Aqm-1CG(9e6fP?m9 zY|Lxb|8)c*55xe<|EIT5y>TF&X+e=!SqULTsB=ZD0KjDruvJKCXn{=HEhuz$2%t2G z0qgTY41+&^H+20a$34sparkqWLo!l}WNxDxeZT1DD!r#XcT z04J^1l(ZedD?aHIHmeSAXh7U>2lWVm-=`NA9Rd72eaLrsVk*{XX6HDz0ph`&j+d5C zO-&7`)kfg7Uu%*?%g{os&Pd+P>*KDJ&LXL0ci$bYXj5`ni@N$KLtof zDhecu_OGVdulYzB8EyXj?u0|e|Jm$R&H=y&L@vN%K7%4{XfC^X3CSrbc|5>CrL$Y7 z*I*G5J^eI@H0xHU`|{%b?92=gVA24t3Gx|~l&0pQ5DL%vw4&^TZS?J}D?wh1=|r|7 z_Jq1DV2kvJ<6Vugub7r=TJ2_+X|p6KDJYPl0iC7Ky9(!6>V?Wkl;G?Yc@TNy%y)pw zGv&@@=qKzm-zZi`sffx%g_|T_YD$|A#3;9*AanpgC<;s9Z~-$s3p`eOQZVmRTea#) zjTf^TW8B9d((b0(y`DhiJg~IDlv7kuq<+aUC1?j4LyP?FThXU^z+?arS{rX=*=~%- zRYhcBZ=rS{RLk->>3zLl2I?`EwFDVJWDW=o|FD=HmwFd!^y#TB{4Y?i=-e+Tz=q|q z+I)uQDH@xn(00jTZWsRbVQcn9#N?y`CmD}=_QmTo3>FaMN8!7#C@PW=J};D#m!J4S z-(G5^X^*C*xsc55^j#ZprzwF+*8mkck)QwD7f`*JW)1-Q!jExor!pJ#y+U(Y3#Q}+ zg&jH^tWvVqW5G~M47^zyb86AOJaV-bP7DD>i8Pz<(|64`4d0&zfya;%8=FI?ZXYen zd$SSuCmIa4Y$Eec>1{_tt#8%ZQt(Nnu{{qJ)KtAT|Mmd#f zL|*rmAX8-WJ|Cn$%*HT1wgKaYJcuxMqG%Z8MG)WT10J2=A~47hB@5(pfmcP{3{U-u ze=Q2cN!C#=Ud*vRn=>#lsNJdpc#xSsJ1adP02V%b?qWQI&2B=ZhCM_WNOsW8i^Pga ziV1?VO2V1SHZfsw{ERIF9>Fe_jG$Mes*$)NI+#C(=BiJ3vPriL9=;tyvxHD%VPW;* z&}je<{|;c|1crNX1Oh!^y+2YzO}Je_7p)v9h(r|7uU9$(o)mkuUQL~&{{B2HSmwxcJ0(PBmC^ZoCHWfnv5$?4&%=Q{17$iGnq1!S3whA`>OcM8`* zVo*xM_1q#)DTsH9xIiNk%0!wy6;Yc`T2KHJ z2MKKfMp^9Jk4=!GlknFNq)wV`m+)W(fKDca&I&ZA5KD26i2@+yDQjwikWtA6+LKFE zX=!P8b~cc0Zc55+u#H+kZOxRFl!qm~3-TX-R=bazk9pGu&VUd5Ek521Cby#EOP3!! z`-;1rgTqBCr(GChyCoH^)viL*K%sn&y+_#u@K9+1QEy5FcnrCp`XY(Sa}q9)CP_da zAeNX|hBS1Rw`Lhqxi3Y1ci4aj-4>|BJqe7b%r$Tdaqrzm$1{kEHFyVzTxlO%PJK~$ z8$cvMCXLH%4hwC9G)S8>Pj6^%ro>?$BtG{FOyReH2E>d8;29))KTZj`il7u+|5`!D zVdz+KQbGA~eOK%Zp4{VJ+Nat=bcRNzSAj}m!@OnCt%?tKHSiD?aKTe`xudDiBe>Rg zsn%{}`O~IcHY9j9SZcOAG2$?~o5+yox9G6g8-p4q0N`C8k}@(f<|XlRN;T?bs@VYF z?-w8~QXlJ7=yn41$4Z)eOixAi2Sw!Zd`h;Ksmg9!#>`^5#RZ^L*HMvmL3Ky?cU3@% zgUs;$7&stt`-4i|YJyf>W8zu(f2PShF*2bH@aKM3=&4`qOcg}d$<0^jbth3`Bz*g3 zP9w(MYtAD=OASo0X}wq3qz3!4b54!PRQ|_>aFNh=O+i~8ER6O|MT1 zl);2D@(;=T6U8B_il06e6zKMJL)0-@=NuU$*qj6Pul0GOS*iP0ea~kLZk!noe%}*v z63JFD%5HdKlbv6Re2M4_szMb!ch!EoK`3H8OnLo1*za#yZU{>HYv%sqkiS}mf0*(M zPqsdUO>c04g%W$N_5ao5G@+|ez&5aSJWLNQ3)qnvjMM)Xk`N{ z+kmTmm!L|ozphM;^ckZGrR)Z=Ebq+t+)}VUwSkx9kM4IL-`nwp7;))B@G9#6Jb^0z z3ll{UQURf*<%wx`4x&@!2iv{Q{I>L2SrmUSrrujM^pwYlmSyj6&&ih-1@98!9k^~{0`~nH|0}u!SIg)UGDM!@N$UWlIzbD=hrrqCFV(yCno2Nus zZyUZXjGp+d{MCAtSC7QBc$IEfCi2>4472Towb0#lu2v>@+V+i%mm=a}+pbl~U(gf! zYH>o*BK->l`M6LX>6+)gvHw?9{#SVPC8Y&z&D~?@c_&_%)1!On^Rc8AS`?ShWPC(& z2uG^b4+H)cu)n1;A(fs|(gTc05&iB9ji~ypKNvGie|X~rwiE6W*3EeI;W(MB`0?2c zc1kd2O-YQR%vV;3$yjDgxnbTmRq||MP@)yb9&73te|9b2FiORbnbK4mkIK+WL8Yt{ zG^mbKCNI4&oytEA;}LVkFN<#~ww9e$4o!gmujM*1+H~M#&uJ*!T1NZ0Mr_)+cZ!Hh z-_EZ-)84@4c{J3hHj%8Qp9m`XbA|TNtGUW` zvCFP5SM&QtTx@?y9vNg|;oFX!hbc=d1=#xCNtvJPi;oK<5C+(+GYb|-ElRcd$*gc- zk)T~|WB4zV!EgN}Y$QB`7i9$d%C3*F{dn)~32ZKTGRo6Lg{ksX*k5ES&-ki{!^7iIfq&rjAHyz-aIa4j}%Ry<+5op`TFQ9D=^e!(}W2KRR`5)y+#fm%2He3;s2{heP!iOS|% z-jZ2#-%bVu+;)h7d(bmBe*EB|PKR5{4|(9lgFsn*Ug*A`1ZVJ%ra!8!ONl(#*@j^i z`i6o%uGX>MChH5n!a-;ibu34$i8)P>_ZLD89C}@ymnW}e*+sxU)==T3B5J%9aIsHw zc}xL{)EP(z=|*UMjT7fKp8cXQ5K)uu2IDrSvwdJsK44-c z#wZurIzmJIMSf#r6`AAoU9-We&wE8;&uS_Z*jOK~Xl-3h_J0)@(|}VHy>Y@io{nYC zgs0Vb>ljm;_7Dv5IJSJ#p`wb_)Hgij8$`*Buw>$qN`LvB8 zJpB5B!d5f#X~sinL)%pNw4AA}v-qIhL6Z_!i?3(pc6&^VK?C`UBMmCh4cp_ah8alNOcUwPXDc3zmT z1Knge-Ofhgh{_UgI7&-fI|qf~5lQ^mhy+0sa?&I{iTDF>giq0IITF%uL~tfNkqi{R zTadefuW|816=d{Bh1|!M;at$cMkGJ70?&Xqa2Jl5IIfQ{E_|BDLteUvR?OV1llVu6 zipgnVzx>eaw&o4i>2h_1QvA@|B_FHP5VV0`8a09qbIyxIBurN_OA=@%4b(q)FpOJ% zL}qb0!GZ=}$tVGk2i4r5I_9fpOUR6HsE56nw7JJZ5`($eMj**g<-8b=9lOdU*u^{6g-@-8P`ROiP8J$5b`hhLP={y5z<4IH-Y4$AvWA93t?`y7sOzBvUkHYO_ z%cO?J2;V-?w4V;A9j+&6w){D_woGWdKqrXT>ywS@X?lE3)PD7qPm9H(+@{T;Wj(R> zW~Uc3ryA)th4)WsB|qM(Q6o`kY&qVIFZ*e|{%W|=3`4(>JQyLEqFzkFFnKYD7dWH_ zUuo_vD0T-Kp}7=W4AE3MF_Nfd1P;Tf17(t)wseTzxNmlJxFCKT+&=Iyo$H`=D^I)| zlYq&ha{jq#tk>bpB*MyI@h*y%GO#bQY>6jssr(gfIa=qMTSN6!gn?(?#SR zIWIPF{1cfRpPQbzoZBhuuILBZaJEHS8I*>%Sia-5-%NyxJXAfdL{r5kysx^U&;Pgm zh`L5GXYlm{5ujcm`p1j1ic`Vz#V|38yfIzlx5`6<&VWJShuZh_f74I3ras-+5|Bpi z7d1ip@6-ASS&5{iqFI_$3WC#zBtxbe6H3^dUyPP?4V1qGFH`02Ix>pp#Z!6kbHPQ; z>R~DYNdt=E@7#=teOO|5CPO?nZ)j9|!b`FYrq0IG4MR-EoWT}ZlV}R3OrFN_$IQlM z@T-g1r(IV+uMQ^`?U>ygj$^bugT77aVhbAF^TvD7OuuK|+6kAs?Y}G!D8I!pO-A|8 z^p6BqFjLGVs(ysBGRH+&mj6Aw+vtF)M|(YwuMkw#`NA?SxGg5m2v?q^9m+n7#=8CN z@!U+LvF@gU$nurYe-=^CMA91@rP(r5Q}sEn=skM~W7|w=$anTh>kayRaY;qD3Jtgv zdj+J-@J{NAbXZc9dStfU++7s(^(kE+L)^Q0a;zj+a|*&}s>=vfX_qJ8$j=RW4{#49 zh-dkno4&G}{j@6OO`k8$i$oAs#RK7|E>K&{VBU5AmXUZO4C!bkf2(Q`4xerx`pM{m z+j601w>xLVzkhpVo-f8dcWcY|jRs^PF%@5)yjFbCBW@?oZGjpj3#Zuz4w4V9Jw8>t?Fo1169K4~|dH_cd( zllw*0TFf~cQ>v*GTMR__DPg|d-QZT-fyNI8bxaze5m)#pJH@EsOx8L>} z{!Y!VSB_-?9goVtkgVzs+!Y^d#WlGw!10fs5ot}FD=myUD@%;Iy%N0oB){QFnR3I4 z^w$<&7(=88)My&1>6(pUxEcxO9pJfcRkOX`WAVm{xhR58Q}Q@9%1vv}aHC)1o~FKp z_UVJcE3s7TGO@k5-Kw(2>aA5h)eR0Jwt)d*D=TT?$ve7(+cA3;$J^jD4`39dcJ^ZAoC5Im+^t|m6U9PAo-{mevq!$e$HTYj8e2A zj`-2c-Fn)tx6V>U8UH7J zFVoe4L#Oc+7T@XPY+*-}?V59EK;wWvo*y=N!!^Q*nc@3p+O#vF$<~KBNSgX+*pTXyye$Eca&V(B5Tj(9@^$4`UL&=!mG&-G1^>9C-o;$eM+Y^~?SXn_ZyF+}%^KO4~ zj(?*v`hjU@J&wMR-&q`>5)NrHMl&E zGmtK$IS0L|!k5N+F3-K^d+4QrwsAdQfol90t?1%ggM+*`G}PMVU}xb;_kjt&xdZdB zWkCAD%v(-cQ6r(!fKKR~e&}{`j_^NWNubuTe&9fx?6an$0_P?xW?7jUg^hrXk5Z_F zKXyHt$Nf`gm>kLGCLrPL>-$8W!Wm`Ci7LsYV}qNAr)nc9&~(%JYn+^bWiwsnAD5!* zkzWIIp959!#CgoT-P$YQ3#Pe2!dDok=Y`~jfkU_Z%Y&eMr@tp=HxuB`_MAsYVbXWp zJfe<`)!3H=QH%v9`16J<1sT>BxKlioh;hf}CK=El=t?nISQ%%fR4>+A@^rLBQ35WI zn61c>kdcvVZOyd}uFOYh(G+KdXY6;*ou)L4E&#<7HuS>FAnf>A1^yxd^5V$5XsovZ zh3kjYR4PJyw5dnzwDx)~=Tj4A+CqC%<9)YImV=F_w#4SjufL@Ixu z%9g@RQwaOuEv&glL>)_W{cwiieu>+Fklrsna(!WPdR!bBF28I8ayJs+#I6uz1yp`( z6r;9gnWw0zIl^%{mCs~$fpncTZYx^XK^dX-X*m(nr-=52Rqb7(H(b++6`!Wgw+toJ zZXi9lif71;6#3IPwwo&jf)HaLGlm~u$T_e>Ta2WaD-fr+H!aY)`MQ@pR}I+4O5a!5 z@rs+>FP;j{f9fS-^EWp^iGq$GI^e&lH5T(_G<$xw&61` zf&9pi6^wXsdsMl%=t0H5T7OP5m)_#~iEEHel4sNy)>tpjSD8C4oAjXe_L`grh3oRQ zScOG>!4cQd)h$g~daIp6X?FKC@y0>TYIp7fppotam>17opr;gNV7q=qzVsuzHNAln zAc8^cARt4c(Z-kkjBM`kDOhiZThuhD{&AR;vjVP^TA~dmin^3)ux@E4+Wuz{P zSU7_y3!)UY$6#3RhMKzT%H*8a_ni;ECfw2IHM(|8%qiJ|kve0jWwj;?m8*8sh*BdX z0(?*Iq+U5t!|$ZvCsM$1XIAdupX&oN=_wwxuijHVtXd%SyWmgA9&MnpKjD;9SNxm< z?|w-YE*WKQY(Z)J?Og}rPnl9&v%NwIbTK|kKPlEZQlqnuA8w)+ylEtq$wPo7Q>%~K6XqeS3wd_ub=o=SjwNAtOj zhlmhG^$`?_M+O?2E%!9=mlb^V@}TuK-Y9F%q{ra&yMgcLi<@pHZzkWKS{3haG(A5Q znzaP4ZHg+?YXaK|!JLu=Y7{=`u_M`j`21GE+OktC{oht1>1;MN@BP!0@ zKFwp1gL2gKMP@wcujw<-_ZEB57R{&pgBf#zffpa84Jh>&-Mr@ubUPqLd2HNU#iX2$ zjo+O;_QS0MUa|T_;g?LTgSgL4(Cp<8e=!%CxCS4EN{dYkF|TyXW>$`83?hwA4*2sC z#Fe#WBIS!FL2R^V{GXBXPDq{5TOet5!!K^bcaF$Qv=nfGmkkIukSq2Zt={P;T7oNA zV%eG;89oNS48AYoAc8=iQW?$FQ+LUq+TOo;}gn3VKs=Dd?j_lhi?Vp2UP?ymh{J3GCVBPbJx{ zHAAFMTQ_2u6)&=(z-1opJ-xZXFobEzC?#dF7#}TJ8P*6cDo|M7!gt;kMYpC=UpKOD z_?WJ&PdZ8bcm^f;BuwrR3$gXjZ7XU6z9^MGzI5ms;@JxlBVDVNu|uH~hejJ3Jg>wL z@=1)(oFnWi)LM{9oiDI7c5*TWn)!#_3vo|%Bp<*I0wu}qNS;r!;5i!F|4n*}ST^P;p(s|Xa5_PwE(0C!~L1q}^N2oo#;DZeB# z0%Va0o~z;fIF0_4;|m8yaTLFt*83YD9aVKdbyyT5nW)g9i8oFmTdd05&&1V04@Z5Qk&X6yM*=*+ z{PbCT<$zghbx%S&5oz=JMc#^%ppJq?r1c+UebRG8u{9fSFq>0gqNmQ{Eq;3-t6SI! zSl>p>Tcs_TyZ=$kP`>&r>5yOV!Rl#WWy%82O3aD{+WDI=bdzRyVHF9 zmtKwk{2t){*sFw`D9=e5)O6@?p!ts9B9#r|_eIw7jjHLM-H*1%uUOWNc&N-soGdds z-no&F^8ZYF8)rG(Unio;)McnnqS=dfdlKq(TVg3s;}g#t%SmcV`l>=TLSKi?>BcyAQn2uol6M4K=rUD{y+{BO3&c_dGGpdR>j6 z<7Gszih`T6Q<19EG6=UOH&G(P1mLth(@I#3hAdh7jt`}KoU%Z6184p0}2CH*FE5O z5!-KYwV@E<1q z$_U^~$Dm*MK>d1&+eyWw2myBlW?Jw{zZy=QiWyxcAu`B+eeLUsMg1~bGaPWz2$4FGUr^ojRMrU1($jahIJ3IrYH|%?#rH`y<$WJy~ zoL@b-2XL?PAxu%Dawj7-Hb7|b`F;MIArJ8|{7Zq~$jk{20(b!o8QMvSDz)&3RrSBy zvw)`c@)(&RLogU+s53X4Oz``qww2!(N8oc|COF_FGL6Gs=e?UgrmJWfp(9rPbAtd6 z;wSnEn!%xhkS*m7zVz{hkh8hmF$?CL6uzqHTgNPJC9C~MMl2X6NzF&}5eHYlMn3N6 z`<_?jlkpx2`hJMDOzgjTQU?ZHQGd`rV|e-L$0Zz6mna?QMK-p6ooeWIVG4u^k8j z>)~Gs!kF``ZCamXlWmQ@cf_39g`n4pjJW z75`mA0LuQspeita;^V?g|KDOw=++>cPBBlD)?7dS&whAdMTKRqFCI7DW$hV`Uq0ZX z^kgl4A*$i7iiQ?(JDw&!8a~f@Wl+Om-D5b*naTHqk%xWn1-W)YgdDW-X-0Uk$z7@p zZ(UC#GiUYASs=s=ghpUeRN&$ZV1y7Ac-Qw2B)wMri(@ z8=N7<#IreVV`LuD=Fq3|Sqp@c%bp>Bb{4^%o+g<^SVuBnb*M>AkV>}>Xp*9zF=;|` z*|)%zOddK@2d3qJ&YL;n}>PiXl=DeS07pv9b?+1;kaHM*b=3 z2aycwM<(i@FXO1pi7ttxRap=R0_Y;2VCh=)V0FC>!5cq7UJQozs0uJPGK)2PtKC9UnS)2{etESchIxvW zc9oYAzyklUY22GjDROrkX>iv|Y*4i;rGKMP>Qxl@pkU2Um$za(d}ZIbOqWruD+od@ zpUdP0{EnAGtU_E&DJ~<70QJm#9^Qxa8r2O_m{`k+y5+GE|MC+jT=9# z6(4$TOhir`AmIWEA%?%x(Kvh{_t+M(wvE4+k_WG_Gu9!cBbM)(G`CV)wuH;z6VWUR zPO?XcRX3X?kEq7Mm##Tp*}n96kYPEbQ4PjfBBDh}gnd#rX@YC6UziF-y=-qLzR?-t zxd^RPPE*Hu*X)WRu1dq9_7iCx-!*bPHd8sO3Z>K>IP zjH(6_4|c4##nd=$Dt^x~$QMJ{r?obHf%fE}Uq5-89T^&@BWsX6CAT7lZ2ksN#WosfGc|)Ef`$x+kL;;PQSi&O7vXQwevnV@cO+6SH7)Y z5WMG;T>SDM8xkD4E=!IyMyL5+>2)ay(ONtq#=R>%@qAV4`!I!R}I+GP-_Y@Jv z!)oeRIXE^L(n~69RS*2?Zc0DUNDfCPr7+=F4KX$g3;^s zAn&tUgUiN4uj_r0n~MRnkrIT3*WO3rW_Q;a+1F*zhmbJMSPsGN7-J_7z4V)au&9C8YC2<;L9U12T^6r$v74_+y>A0rE_Q}) zFSdkr@XcCoCpQgdO4IJvmMG}<{$79EadwheCluf5=M3|oA09LQzKl#`{rHy3p2BQh zPZ`8tP!}a__fz(}x8H2Q%=2|3zWJJ+S*>W97^08}_tej4_J;3sc%JT` zuXA{u2(_G_6t)nyzzaF_y^Gl-^_#4h?v8iuJP)~-+%~JV^u8FJ9k|5_e40rixOdYr zD8`(}GzHG5IS)bKslYk$mN3S*pK^N%l+d>2MHPJ6+uk^3FpgEFC~%{r?qOS!a$!0W zQz-fO6GYV5K+519_A3$O5$|AO^BSgdYaOw{CWoZwN|UU#XN#h4BDg6yFROl;&Jn_) zu4u{ylG&9cf_DStCZj2k$1Nn{7bjK4|>LeV0kO_OCnML!wr`i zaRPXE4W|6LDh>qRF`xf{u#c(;ct67NO8cGXnR27ZUlGa~;K@R!!X;?@QaXM;p>I#P z7j+DXmp7M%B-AK+70{mWBV}s@quTqA+J19pg7(`_s?q!3O6fEebcYZbTQ*i2C;92O8)+k@gG5azd3zbSv{Lz6uhz83{z4 zj|e-zU?Z-vO{D)FhsFXDr{Br+MNt;l{qm3V2 zWX(U0U8o#BdZP7TPS4JvW&9Kv5{w4nMl`UYg$Db<^9XIXg_T6DON01vUg zrF^N_yAgenj+d3Ml@QSL+!CFrcEWI9MuwRpW_AH7n0mZ_;{}?@8_Xq2x&Z;tm!3S* zu&TBZfXnkvNcur4FfMBuHmA#eqxSeJ_@lLMXPOCIcsKBE$U_1M5TcC}l@`bm8$w66 zQCMC39S~!=hNu2FVm6;7K$lI?@m=fnPf5j3v-lz+Rb?nqM@*)1!o;CF*fQbkiJblZ zS(q6Mc>Jy6NK3F3j87g47C+DegvdyydPS^mU#uOL4VQhqAlKIq`X|2wSeUPdpd(f) zM9K%|z=;^#2oEzAz*KXR9(lyAwgc;7>@U~NO_$e^r9^h1)j0i7`~RgKqQjxz2D>;X zte(>*(_TKJ^APoW9mK3A;B7*-gr{iicPA2B4aotj#R_m633aG748)vhJq1{d>; z<@6Pcd9a$~_~_UjTA*+5=%&%m$vW5sO-6df7UHgEexJz&{m#^bqs)`#REM6TDqp{U>(kWGPk*bCf* zL@uT7MyJ5n%TK~;s)3bQqV`Xk4x(Vxr(h_NQXH^W?Mt9--SBjsx|)aR;`wh?swEYK z{US2M6rAB7BwT8BZ-(r7bV77g>NSLIfV9Ow>D6?lqH6fK%j(x~-keN65VP0*nK8QV zdvuH|e}ysA>1Siwd^^(4ta{rRMwyT%{dF{T@h~6?P@zgVZ84Aa z7youc)$$Q+JIdd*SY_qvi;NN0{#D&P>X+d=9lrmfPZ6;iz563|?cp|Xo?I1VyPG6< z_Gg>UHhS&&Ha_1qC?tPRfg108(|jpH+5hK zKDx%X?wL@omA-aPYaLPD$IDLYMgBi6A+cjp?NnLmpAUH;Pg6t0UUl@OxFkI;Ns&oBZ1; zjr=(zpK|%2kG%iu{!+{=g5uBCg^%8GOe3&KqTI!3`opIMSLUwm9&=QIF7490$vEpj zcYo4RZ04R}do>M6|7D8FP^PyyBMh6EU_dE-wU~u}W0`-<7>H|s{M(}a0_;f|VQUXQ zkV^%nzcbF4wg$IteEf7z7XN;qGobL*=Z169=Y8mjIo67nzk+@FL}!M&nb=fNxP{3z zq7w=5+WmUO$c%*Iv|xlC#5SP+0QUz$<@|=4ou2wkv53Ji-_{3XbkvN+twD#5RMI@Q zm{e{Q`j~UkUn__`?_#y+p$v@8!V3tq!6sG|u3zSD#yc-kw1=Z}=81BfNn5NxwENJl ze=Vl$7$RC)w(S5EzA_ghuxIkAZ(&fj8WDP;AAv?lq;OGn_ zx#&cu8N9fp(A-F!L>ih}ntvu2*xxLQCS)*O?B~Gd*7M>*?isn+330QKdeG-+`p)pSfE)xko9aJNuTH>h`RvOCe@C^B7!gRT1I)vR-G5gBkhA(>EC(6!Nu(O{fkm;sq{db{`1Ugk z1F_2dbVj?|iKaD4W|5O;Nc%pY{x_pBu=%zWz46lyU%KWI{&yN?8$WbD%FFPR6s6p- zgtm~!!AzcBoyEvVDvBq;-xZXFGYy{ZI-t+ux3EetRtR*eKEV*x%mJrNBr%`|#!Bj^ zHMG+i)_yNRmDl`@P;f|O!vHgxh8pqV6)H$@*oi&hiw(%w6g}BN6oYX*GVBz?MM)8X zJji)4+3`|FV`MA)AjPh?vYea!UK{)`_prvTrlPQn_LgGQTwIWwZdng@INxKElkL@- z1Z!RTs9hl=kstbRX8&HK6PLl&=N_Y^B-HUu)f%)UsA{3sjl(Q|E}wjfC-xEGrsEI= z0v}J>(zbC1^HbkR;oa}T?J3dUQJmW`;V;(mg|dS$ZO?9n%D1TK3nEE6|8vDPhNAD> zy_{VvVEA>^yKi5v?vp$BA=N#}LCvWs$qKNF7^@i-%;oi&FK2Zxsa@NWD2)gErew{7?( zMO>Zz1SH!YqX&rhD+%zk`znfR;fW#Vx+-5fas&LwRJWBfFSVaRZ*MH}|A-p(Y}s$_ z@dS3koJWbI!nQI-L;`Oj)2Be6JuQN<{HZ2dUfji3S)N~v*a*}Tg2ku`Yc`+@^ZeYu zW|75o4;CPd=R7H~#oGPP$5fVQ;koeSrHFsgMkyD+8?|vGGMihCLWVS$Xj@)8g7B_bc=y zIaDMvbxwA#zIo~WVZ!9Cd~2rhv&whoN9moP{dyCtwbVC9q3wm@=Ws^{ zp?}v5m>`TT<2kt4*!a{OhZRo;P0P(kK}|Sm)%8t|k)+?ZFRmuT)?8jF>Ip_hB%&-d zE-(JWm9kF1313i5rOqxd2U$XrR`8ZNNv=wq7Y;*m6?ht*3^S8Cl36AbE&nLimFE9c zovPqucT!zYro9zkBJQ)YIEPJ-K@4p#yhN zd)Z6W?0rU=Io_Z5Kw=tz3m}BO&th(#QK$Vb^+k%A9NZ17O#La|LyxPA!rNH*G5}!~ ziatiqtYG%e(<#Jp+qJJwH<W8 zHTAlWpJB^_4)NKsl}Pteu$!Cgzgp9oKrN&99e+=jiYrnyDw!g)f_47OU#-uY@p82~ z>`$Q(M$d0p+2!gTQMXliX~sa=$FT?Q3XtMMp_qt?7|5bE_rA+tkL9BQn#KpKBpPHC^f3r=%z1 z(H56gRcoAHWKS~a4pmXvDH9Tr^ghYirh;S`evVbZ!B&~4--hxj$0^xtLn}9^NLu{- z1pnt~DM}1DY63I<#2@5jK>8+XC%;PiiZtzBUIc4-Wmyi; zA_TnjpKLX3!0ZZ=V$=`)Ery7d0m8>NhSBDfHJW^@P&q6$5PGobFCS)HQ8|e<{%QB!IfW6bpRzy*{^D9ByJ4JKdh=7FE4Ev_oW!% zOY?#Mz!iW-{0pM;ss8j_xU7aq>SN<5R9G1(_&AA<6f)PM8O}B#tnER;S(WoZs|sAhma8YVVt5e};|ylDnaQMV_mSNFH=W z6mve#$Q>X_^z!y;soKj!Va4R3qfQ^HP{kiQBoPxi)XsHBVk2KG|2_tX(i|Zg-8_+(iA_X$j!rAK z)-NQ6QLKO)CG@x2dta(O*%AHz!=H?EUUic>(iWaoj|`#ApNzEkw?U0q9NBpH{=Z^n zx)Pb$DN}QHj z(s)8wH+{`5>G9H7j@lj;FzeXw^}dqWO1KGzn~V+gO&JEmRN#GH*Xcj7>=5K!p9i{G zXG+tqCxF=QRCy)+PTgN|2kc5;QZ*AyN*%afI9xik;Bed7O_DIkZ_g8{vKRbiidl~}0nUKeR8$^ESTmvJ z2P#!m`)p$!;F!;I(Zk#m*?|G8cuINeI)u~9M9Ain|5aLz(Pe4L@&M;4Ds|gF?eS}0 zLUf+yobi`PH9J#mS6D=Rk0rX4K7&+H9z))&AJ%8&-M}Z{6TP&F z!%1ggIg;zUq7rXWxAsU}gJ>~agdSy>Ue&2GfPpI5M?ixY2~ZyVir|I9w#TBb1ZCbk zwgD8PE{E&TPW?1(+j3|P14MA$v{C9W9BC&;2Xk$&TA3sn1tl-kD@&vX1hhG9Hpz{4 zZOSsDoYCUZvDE?_8UGKu{~BZJLsxHT8)3L%+MDm1IaI?5`w>ZCEiWp zK$N#EPW2%#mU7_!*PDQp5zccW8H#q3Fyfw|0^y2xN;8C=>=XoC%qaBN(jUOEBmaq* zz%f7sc2_@4FTh-Qkh1>RUFj1j&~2kp>g3n4q^SVZeC{ouobY=x&^wwZ+;*GLI@IJL zQX9`$a!!W3N{4j2iY1p^9DSaDCb4WGcrY$F@9Quhi?bPVC?C zJC5n4SN$a}g|z2pn>4W_*~R!9WC-MhM0T>NOu7d_=l>|MijrWzP86Wc1;v8q4bE9< zxg;wI$9+NJ!8(9nnN9(PA^2>Su=hSGzS_=vGK$hG%^j^BKbAs^S(rFQ-6#_DQ9Mqm zbfX2*^Ldk`Jq5!}`Bs9M#&dDCr%O!->-Be5wSymsN5_DTufXdb!_-vR?O8x8pFtT# z2bvW-tQT*o5H!Szn30CjlZPsudH<(lJ7XnHsm{O?p2f0P=%QzrQOA%4py61-Z=;^9 zMYTi#MgGg^6ix$??q2n)`bw{TEW2b&AH2p;CO2ip0ll`J9}zBrjjglBw=$I3a+Ewc zbXLkcoaG*yDdW+q8Y@zQxYF)k3O3KLEq-Vw+E(CW1}8OUk9(t1Ao@K?Od_7lWncD$TdvxTanKND;>|Oz&37xr2WbU{U;4^ zKOH8fy=%Cv%1scy!5VzH)ggTjDY&8H{w*l4q zJygbkyz=cSyuTG!D#Wr_0hA(R=Tgo}^t% z0eiK6wI3wG(2G+aqZ84}Gz8Sw*|h2**;NTV`dX}QF&)ym=KX@gY~}G^sd!&KA7|sU zy6xuZ=D&e72m6H!H<|4;(v8O#D75oYK4D*ue+`LNs@pzc(*V5JXy{*o=~-6xWlS4O zyW3LUf||rKzK16u01-pT)z~kCv+uB)!= ziwlq&j4FqC>9|r* zqE1{XK+Y%k3im!WoAZ!!0F2y8!2Z$*TSgB*|M2Y;?t!7%%k4Ftoi&X(b4NNECB*y4 z^kJz2v7WfrVsS3uvVKy;^{uu)2*0 zK#?OT(%u)dTlHCBN!&iH_U@G@6K z!gmqk7Hi59?~=1Hu-^TA#6NrQ3XzdQ%Ju?Elk{-;-?M~Imhae!SQy{K-7 zss;1(cW-vkalLCj-lKo*FS7A}d%uV4;lhBwdDc$wQ7#r^OB>Zn8lw|ijazX>x6)aQ zh%sfC;1D)1wsL6XA$%t4zLNMNlr!?&0wc~bX z#5D0^65wB?Az1T1<#zZAq$YL1qL+t=2c(9n2K2UVp2(5WUWJ9uOJ%++@ozb9BfnpH z9`7~mB6yiObBl~BmZ>B0Rr}CPGn-@1BsFAm^1dO(NTvbpNo1mUj3a3yK*S)Th!B=D zWgKnEU`30t@nJssofr5vv7dPmRLf@+xwx11yhH}+%e3lv%#=Y(+?#_7Q-#1&35$sz zhrScbZKR$yo7Iu?2jV{hnwA-U*Vh8$@h-)8%gMEZJq5>XHDvg(xx*R(RmwZflo3cx?9Hcwxoa=y|zqslQB z6nAswr4$7ouFiw2lj%qeFidzP4rc0u9q-6N<>Rmd(bypeK@+;3Crl3MU49zM*{r>s zime~CaylCK`oO2>if&bz8GNA7j$82l9RJMKuy@r-eb*{^&eUt5yMsT|Fi4@N6yKue zDElt|)IzDx>Y3DQ<$aW@ALP%0PG9$@F|IdJrLz(|Rw#0_sF~047LTnlF1@F%qt7wJU5sgG0>lk4PEH$%y+Pu6-l<14esxLkQOzC`Y+KteLNKV zN(X&l_p0kjrJGtz=FmmpEI=v+-*Y25cpPK+R8y5QPwz)YMG#))J}$yHE1}h8$q5ex zUZ5jE!snOYzF^VPL_2dTf?T={^o-UP|Ll_ov8@qp7n0Jck^F0?JU9Usovj{?f-GCL zd5i#-IQ8`sWT*k2`$Ub3=A^}%K~v#3CM#Z|_kole8H?yfDRD5jMK6bn$Ek(zQ6$m15 zJ;-UGKE+*;6%G^7sW#4K0uCCbw4767_FnX^`Y@5#_xo}R=#yrI?)X$~=L!^{=6KPn zaAQWmEgKO%kadYV%jm3fiuj)FA0JQjhba?{fx3DgDML@4Jw)L^@5K#M_+K9fMrZV; ze#%1%GK-N@;EB(maS8?ewZ1ND(D*WaHXo=KzZva~&6^%zFkTeu95-+xkduI~sFq^- z%pTV99Hu(bTq@e_^xGTX52$ErH|Zta(o9d}ONuQ)@#XftClnp({Xm1n@rMC}!KRs6 zWRGZP8KEHgQ}7FK{-3x+_WXFqaw}f!6&uL+?Gbs?Asu9vAe)d^@DcP?f&=Gem8vId z?$;}NX$oHS`)WStwR9`Alqy$SHk`cam&wEdAQ{sDT27tirs4vrtSt>*=KdPDIQqMb zOFL46;)9{sVEsr9Tc3@pFK;If9hEeVu^>5{-TwUoN-<}MCNXs3fPC= zl{lk^9$Mz;tg<0MNq zDwC|V-w>_-aoH~bOG?G(J&yw?7eKs_&iI>jx$_Kd*E7BWiyc_);~qOO|4C$e)i|&k zJ*Uoxz}$1F^`%yA85c@|*k6}|mCe&9bHt)5gwKEow$k4!L^@;pTz2W_vj5{!LyRz| zf!rfm6DttZSPAx+@LSLL(!Q5bufR8O(HD{$H}v6K`Y`EFY(YIsLDw%xLx@^1$x`*Z8Gw`saI|V@7isYvvPwa#=-!78?QVY9lbG%&}%?Pn5}F-nORWR4OE6aHz%i zRSMGJrn_k;0H*nV^@1HQ2AZS`qQCc7Bn&+}-PXR%#vIK1&%LVh;RL8Xhb?2?-mqsu zOzVimo|d^KBBe>nRX~_Nzb6xGOjN_BbZ6sNkVBr#u>n3a&D|`!PQpgW*zk*E3OG~< z#OOM=OXk|g_*KHC4DFkkIAcBa&bkz8LXoFK_(n?f<0e}?HWd#r+t z0IFzmX-lfk0o#%Ls5O3d7r!zNAT$8YUog~iVC^k&wb)!0#1m`?%%NEP_E7*$JeUAz z*4l*#?}vHweDR)<&g~1+=daN>QFc$V1OfAhpmN#+G|)D0RwsWh2_vZd%~GIDGP&#I z*OW0bCu_zh^HjbLc8krZ#+<0b=2m#J^}R=lU?bi&nDf=_dPpy^?nemRjK{GFc5=M+ zQ4+8_KwwC?Bbhl60gI(unYw;3`k1G&^#8Gp(lhtN+&QD^-(L#fJrd13hUfQ`mZjVfZ4}ZhY~_=#>4lMkOZ)~vmYK35WNE=naxgzXY zEIX=cEoLvjPXX4q1Isr&J0oicmdUUBMINRA2Y1Ei8G9?vS5`WOnP>m;_%o(3clAZN z1TG|i{sDZ=Cm3tq;C?=okpDccByYpE<7qp=ye^B{;6z|@tyW#Ico3c1JLt-@zWwCD zF;dt7y-<1L8lUmc*Gb)x@#*?A*Den?V}Ez$t&pVBM@MYj;pKIGBjWB(!I=T{Kh#d- z3Tb9h%W1Dkm#{vet6L?U5RSrOtXeK;_X91bMiea3>y{^cTNZk=tCq{Cz)_v>jdhka z@7Z(KyzM`>vjVLNybbq01>n!a`(BX!wG_Hu-1V-G(6|SeUK(Uv$&es(b0s=?P%C`5 z!(}XDMpGtdbz@HUY&~P^kN))KD{yD#Z}S0C)$m@iS7w1T$bhX89^UtMc;Hn)d8A0d z>0=v&$Ba&~#oIgAyDYw&U<)o@8c3pXY9JI@EsgW~osf!4!cuuw1J%8-7-qAeF=X~$ ze^>v-a1bR4PENlc>dk1VR$wCXgLXpV_+)N5X8qfmR zmA6AI1H*A>=HGm!#1O{E1rXDdJ8wRfH5BWrZ*61P)h`*uPrZb&)54+bmL z2lNLnm$4C3JRP>8KI!pumGm{_sg1>-DoXv#o^|Pt6m+HlJW~rS2t-EKz&i6_JmWJ@ zJEm>JL0xPqoCgD-vwIu-Ma}y~0$e%_W-yQohvsOhtDRa@;i{&UNT>YBn=7w$Sw;TD zf3VczaJOLR`F-=^aQBZ5cKh9(;HkvzvHg{INvhj=HFxP-&)waLWP_!~=IW%S^-sT{ zmooY3+K|zdkgc~N(6-!g45lci&hg;KLYUz%_zv(j$iu@2T5SPUo`hZYXJcqj|L)g8 zIQCvMVe0%-m6D~F+UCRlx#jK)vju~kyNjRa-UhF)oXbvnv2DFP53kH_cR#t@?7sYX zZxLV?r*&Vu{@J-+kj75aO>MEdS(H5=>3F?+!I!OxCeU7{1No0vZdX^+Unz4_O8e5iFWfLH>nfwg$ch;g{N1Ar)KZ|Xr_!z z)t`OxzCBvuAk!C4>v7-R5>SN?0#|JQxW43^CNe9SFfqnptk#(_?HE9dKDW*TV049L z?BYJ-lEscj2z1_@+{?1(-ZutNr*&Em_jXz<`MG0Hg$hw^d2MR~6B}5Zz0bFn(}mnG z_T8GBPTL%^PgVv>SxRlaz0HyTLMVdn9IA5K>$<9suE&#Ca;k#s93tP{f3+8)dcC`t zKfZ3M{u5{RheM>&`<2oX9-&Y1v(0J1#zTyjR-kSC>U?0L3pQfdF$p&k%^5Vt4)QN9 zw!YS2r3rtuw-7pb#m(B=g~g#S&~y<%d3`K$U~oHoyH4z!K6bRj8R^=^XOM{}0MY30 zsr}$i_%Wwl`h*pe?-Fq8oNpR*f5MU$8r&;&37*`$s>4n0B&sqNs{u(WFHy>SpQ-`g8 z*R#}g4j<(^E4brbd&0Nx>^pXGiWd|d0+$|*HZoWZ{Sj&3hXT8_)R-1%0aoU{c zdEaL9@3RH7pl8T`qdEZF-Dkfk8-LgtuL{jANv}~=ZtAnsA%A^+IY6@hwKnj!=4VU) zR6v$A1;~9Z-8mh8Qs3fX`)7Cdbuu30lfcdn8{AmQ%OI_dBx?Hf+c1LV{FkKO!zlHO zCi(O{RwDfez|I&yEuS*D+Z$Par`yiRb7;rmdvP(66-oB`vif^&DS2@bE7Bm5Tc!^4}t!P_8kE zKLep%>PhmlvFRMzn4JA>AV2CwExYzO48$F&^Z@RNKsH1OJF=kZ55n!IArtyU+L$n&Mtya|;^K8hZJ0fmr_3Wnh-P#=#Nt4qG zI>hKQ6Kd9;e%i!-&}kz>;4y8QZ~K}_JbrWfX7_1yVvp>53i#?()6$=*9sSV_eeh=) zSSe@Md`dJI^|CEL?<2*aM^TPz@;EbXHyG^_l>+>V#%LpMOa>eIzWLr(mvikkL0{)6 zXps>S_5g-`V1i%RDI+`0FK|+1RObmj#n5nH?qetI_~krq$)`57JaT$_1{!PjS<80S zeh~m)riL#Yp)6+x80bkZXLc?d1uTon&h=5lzGe$+!9NPL}bwW)zts%rNUx>Awlhw)b zqs6DscH|(Hp4f4r~P3*C&qbP1Dt^gD<>@V8sTPfIsb zC${OPs{^|GoSUS1>7+zXzhrprzop$)e*HC?W(84rjir!|_ew^;YqhL_xcH9i<0W~Y z={T=UaI)4y6bm^&AFFlL`M0uq;m*(%(re5zkyACg5K>r?#r;rMQwa|)b1ui2Qgg|o zCb)Mt{P_!xu3?um*?nh~7}qaOCortjxvI(_zWlV9@GtvOJKRY*G{3k0Ax7UF5XkM@ zw!oVx+q$uRu8P=rvRcU!PURaaLo~vqJ5zR`LbKL~Zdz4i0bbM$xvvJsIMih&W4+uy5H-_b z52h5WCf6%^;s4^M`tm#o#m0^4nn_CS_a*{YZe{{z?9~}EPJDV_+P$2=?EOK1tG3Ev zh){R}JETz;U@mh5ud5 zb#Lh0M4yXZa?4ciw@_EoKxag%uHMG&S@FS_c;x+Tp53fvoZsI3A;93|r(LF|#iX6{ z3@aQf6!*u;4_JQ4&%buA?O>60iSr~{Ba`}$Wr$g?oI!kQ6laU|wKpM)-60uE5ha7G zLY=W}y%)(>#LI2nIs{D5&|{k9xgX&;r|=)Q zcf%(aOW)k|dhTdWng4ef-f68htM&k$E3oQ4!z7!8x01=TA}}5%ZK(XYe1=FZ{2C z4X&S@lKf^24^s<0Lrr{oBkpPeA{-dfI96ai-&723PIS_-9B0xTBk5}~Q<+gDH!8^= zV5#acnE&{9rSVeh2ylb+eH)%-ccnGl=i|^JDcgQFqwu=cI?z?CF=rFwG}k0&^PA_o zJd(_%*tT`n3+lGmbh8cyo=Tlf+@yuo1`@AlU%D=0ctemSQ%#my@BEN*CTV#eYYqa_#10GAuy`f%1H7AVsKdO*Haq_j5tFEC3 zcU0GUj)H$ZfZg9~{tX+j`+F{HPm0?#&Wnq}OID}F@}zx6SLNlZsj64E;IPm^h z^E|S$l9?Nx4o`1A-e@U|uWLRpbSgi?L4bVt2q@fK%TJnMd6OHof$irwxBH>roZQ7> zaULy5%xkPU>7Ib#1U!JVZ`kp2IB}!yFQ6raN=0qnx*yLGr23&kicL zh8Rg|NI(dcOTI=xZsJUPh`{NH3IhfFC6&5td(x$taAWFivtH#aJ$!KDMB()SzfD8k zMbcQ5bp-xDZXXa1_hQ0NiB6{n{$BRph~G{6;$(juh6jm>L=I@+P+~W;)n5@uDdO1> z;D8=&0$n0>Ds6TP<1EOKnq<;Z5A~s9OL;}b9~H{V3~qeroZZY-#^j^|)$HddZ3aEH65SmOYgm7GsX7t`xlUxfTQ+h&llD1Ek zkWR!#H=O>jlX=H#seN3Gr%~EQV*kdg7(sBC&wAv5&4XYICgE@%UZIPOjMU<`MLcCg z!kY8DcmrbbeOC5%sohVA+0+4sl}Xw1yeEqE?0VC%P{8zp22<=r&C|*XI$v^dlzPq3 z>+}>@iB;gL^#`o{-rQ6@w~Wc-9-oRol?u*|(lYHB?RH z+sM``QT!H5=19s>oW3@fK)0DRP@AbDvL3KQms-J0oNqfLF~=_;m_M12jogXbI=FD z=l3$4|9zQshnLq3PjYmZS)5KCPuBRh-PH+neiQik^JgT({lu!H)VG*yX&Z7SdSPNq zEXu0w@yNNc)e#fV+N!Fm>grg;p6qtxir^~dL?1=-lkzywbg1qM(~QCVu}D9SW8IVg z`4=UH;~`I#W=qf&k)l$+8mLsJty9XjxKh>7;J%E;)Crc`Cg9Eq zx3($CYJPn70WMTAwIPp*ZC&gR#rP)hn(=Jh(TDDcXH!3>Ieo-c8ffY&P2#}BPhl6R zib%a}tJP$gwwf;+DviG)Hz7VYKB***>~K0Y#yS}Ih;_xjWonmt&E7@Fym^1Y`WxqA zWTtaHdTlZR>w#ctGLh`Em|UrySvKSw8XGOkkqGNA)%A6&dbzw}6|nG@Kd%GjPL$iSJhwP^TpafTZrFmNP4=s{_{ayKsBzkB{MpxH6u z-}PX9_LIw1V~|_U&^`1_|A*0GAp^*E?xeyIE%`yY&7=(EVa;>6rGl z;u+zVR*brYH7ioM0WaF~SylzYS65_0*wKp9t3!7ef8d=DojLN`Ft1$8S&yrZbEAvg zAfh5fbDxpX>mcK^gzDZp{ab#6C`$6zQbAeQ2ZmQ`7|G11$wegl?)KKQ)pMTRrpbjy zCQ`)yqt3F6N4Oyw87c2w<3M0{+n#ft*lq6k?ahlP|IinGYjh^#?-E&IpaKeAU_0^spHwl+5Wqp>UsKZZnmyG!Wi?8BKw-BY#H zo^oJ%cvy9R^{AbmNjSrDlU2dZ&~y@C=JE|~*izTV>Dv1=BBA>o{gw8({oU}5OU%_v z6Jptx6N`q8BInE+r{-LhB>{mP8%W#XXL>zfKv((=s?A8DV%OO{T)9G;(7=~&f#x6KM`b2xuNrLvyV#R@|R5tWC3*6f7+UT&{WIW-;ukV=_( ziq%l`p(&0<@($!{w9BBJe$c5-oD2^kT6_d_PXo{;!tar02Mf96FaUFpB2sfLIkZ#} zO=$S6#SZQR!6M*ZVDMSWv++o?r)de=Gi&_6tSo31nj=QFA~m2oiyQ;I z>m8VXXTSdTS%2oc?=!Eg1~h=d{o_;b|Bg*UNJq4bhaTZ*?Jke6HHJ4Co0|44yWM!+ zbMr}Jc1zOg$c1I7i@F(9BE*Y%{?hb-A`^<3$XFRDVGA|l&$}k>By}UIwz=@OXGDro2{$6 z0s84Zz44U9KpLV##$@xqc;mDk$ljVI{gfgGY-lYJ1Hja|4Rs0gWzbA5_BT<}EBWvD z_?pHggF@C$CQRWaY-J&-dPhO{SJI+2SMhWf(dn6i8P^@+eH|AMbLAraayAtG;&~*U zPVhyj6kMd>nLxC2KB~=l{uJP!^73hIEk8*PPtbHC?7uOFTU?Y_Y)f_2%#7m_lzdOc zL`BK`GT~92(rr^|tKAqf+*NQ{bf31_egjbrMVF^TK}}jGXe4(dIu-hlBR?wc8s@$< zK`h~W=Ii3@R8h6m`lH$aASA8h`y9}PHAVD=FXdAgVI<#3GSHkKX@bqk+EE(vW<|dy0KbRN@llZ^H z>1G!Cx76$dr5UC*X;@yZzfzBDbj@eGqkKaiL`r_E6d2|*#-p19K#)>(Lm-AFyp=#Z=X08xMxIc(3Qnz??jhN#yX^GZDI`Ds4z>Xq)BIp2A&6qYXM)b8YlRyI%hMC(n*|X&i}&hoD7st zxHRH)Q6eLBqi%Q7H78%V3v!&=wTNJ;ol6R2^_2`#I%2LYxKr8IkO+|efhWvm64Ttv zKh2XJ_P2+3oczLHz;XiU@^gnCJ~MtQnDP^IudJ3sg|M_ZxBEo^$3Vi=^mJ+Cr)0`h zt^{7ci)?>V6cbedWpp^(TPt~7b{?+d;NVngGfN2%thqx|Tu$hk?t}#VoFTm1FNX!%v$d*{(_R88iNrfq}Vk;eh1qq zl=p`BtgGD7ie`eF2LO%$jOhs`qGb|_s6BhO4i%ALXGMs@c(XX|LAF=NUqs^dIHhQO)3_8FXV zNFfd56sa^_=!RGG60-w-g~Ums%69LBeJy6eL805 zsPl9m5uocy3foOgjWwAcV3{L&aPmcUi_J2$5pXC*Uv%!Dl=A z)$~NS=t0xr@*{Ntr4xEGre-B~1{kN4ER9_5hH^d(XKKhNe-kpN8&{# z5P88F#c^glGExF1Ntg%F4Zx;yX4UZxiBB(pL$($>fZ68f-nR-?N1@w_VZO24V5bv} zuAQGKZ%q9>=>ty_-<_(DA4bUgM9*-~E!fu#B7ZR8@u>4o)epq{mv6@W^()rZyvi;t zcR4LTlzpVb{cl0jo*pBaC(lvCLZuF`Z~OZEDd{v@hVVUS1w`GK2y14Y?Mw$JsChgh zSgCI75cS6rNr=OyZzSI(N$|P#mWWSGw>|$Cto~jbLCZ4IE9V|K>5;@LNyS!iO?8z! zi^BDzKc&rA%@b_!=Nq1#rG!nkIMyV*mFD-qFtgQB*kc$yx1Q3osg%EV9P57fHmu@F zif&)wol_6x)=Q%}u7LKQC4k*wiMKuT^5IX1HV=e+m119Cr+eL>^jaY9~Z|eKsrw z`T2i4mXo_p6j(1GkrN2vhYM1LaR`M~whv30zxqcI1`Ko8RQElCo|dmdkjm{C851e& zabFyl+s2?i6SFDnMl|IqEAc5tGQO4?SR06Vk{@>J#69#>beAm)&dZ4*$E;LfIPSO( z%Cxi_H#IaV>mDykl^V#S{7xghmAUjf>))*ozV1F=pQ!S#!k~PNKxCs3)v1q1Mj30B zG6nr$fbH(6W|-(MtyrJyGpJmL#pcdM7kErUyYz}fmCEC#Wr2S*F}1Lyp_uCCbvEb- zBn}_%D`jqgL^-XZz5N10dDq6NCHzR3)AMOfj=S)lfu`)2EFzVrmdbuU(n)vjwzV|t zg^wy}!Y;}XKetVjoRiRe&~-ia5KMCq`~Fwfo!VJvub`8Wg{vzRnxoE$-|mV6BlZnI zQwW&+#W6ovqgXrWye)OBQXx^T+7=tnnX^5s&G6c`*ET*zHe&>RZ{fUmE-mS#`Y1W- z+%YU2T?=zpL&k zpG^;+cj6h6-Y5Us?fEellaRn~zp^QkQe0EY_!Jf#|6!7DL_e$5pHSL8fagbHz-eR4 z@Y-}H7Ae`7bzQad;r8WDYd)V%lF;?z%gCOl46i`XLrwkGQ^M)1ODnR|pbP6Gpbzxq z?`#85dhuoHYq$}om6!rcT5x0IX+?(BOvP?Scv*&`xiPd0qe7-5vejRbHx(ndvA(3$ z9|oa1%()HQ?vA(Y@pWTx0de%z5ocaFI&_z-p=d0EB*~V-+tO8mqLhci6yO2seSt=O z9?S2^Sd2lw-epGFS_&)SgLtH3%njA$nQn+KWt9b`9Ayj1!1ukBRiZF-HX$tEFp;IS zZp-Nz?b?%5cbluz*@J@#9$VLyJ%wY{mH1GR^H))b?nhz`pG)y+NSpdlEkUGYn~OV? z3@FxQOd)r5xU=s1j_is`1!YuDOaCS~gVnG_T)t z{uF6KKDmqf zDGyZYrc#(9Z%4~Gw0FofiR<`scsfpnjwsa}1-4703MNzO#PsEyeXAv)0*Q{dF3eaP zUX9d3nVM|?8c^!hyS7odgvKEs4lL{4nwi(mQ2GX#29@0JVY{I7+)~JEVp#a*PNcdyIIHl&Ac7~z0IX+lW6zxE0wT#1kBP%?>MZ9&-Ofy22)xh z?W+wU(b6tC`&@sJb^fu^L?R=N4?%~dK$^zb&B6M~CVPQ&^lptvp;nbcp`s@DZ|gyL zh0I?K4QF3Vl9I5z$n05kXyQ7;{r`-#cjtL%Xb|y_ueEwUMM)V<&Haf2$zF?MdE!$T z;89NGlv7%tH|)e3OG?6J4%nr^!i4ca7pPLEL-=;#d>koHXae7{YPB|b(q6uP&dF*eut`uAuFHpunsp`s$!}vwUq5>vUNZE?&j# zqjF!!Wv{^Zrc00A480UvcA8x>iy+5&8(FX1@^^+Rvn~f3mnUZY{$xXoFCTrRx(@OW z;X1jXWf5PKA5wjbgRF8Y1c&$(1d^>lM4~odnq+3O6AK_K*c6T-n0uV4HtnH@n$XoK z^R->pw&;YASvNx}ihwzOk0dRWGp%-=7V=~OgZ~)-DE6QQ%`JXMSD}XsCr#5|B{emX zy=O#S44_nICpIw9$V`hOm4*iUwMuAIes=Thn3V1^vj6l6e$$=Pd5f&_4V)-*h123i z$}nj7^j~xRczoDs)FIZ!9D3P_Tc7m-U1@X(Cb)dONT;BCJUy4THhH-2vO8~$FES~@ z$cG49?I>;Sc<8V;L9Yo(?<-Hw?E#Ob7k*B+IqY{|n3P^NxoZ(lhy?LB7E@n1t~4>U zfnUfaM{D}f?Ub+u!pbvDEI1o%XKFH-V+?MDN5EHU>UUxLtnL3ewzen090jEP+(JYD z?v%*tI)B4!XSdLB>!<$|mAt~E{Z(v;=n_Rw=!7xg@q%p0=g?R*7#@6jy?j zj1Ti(UIM*Z|D4BdQ1X@|Si8s{_qxI;d-?tv$uG6$Bdk=sM{ zQP!s=V=x&B8?q^Pn0!HcYGK3#=Zv;ib!`~_f&e$S^X(NEDGEaE?pRR~S$34cJgXa| zW8a&9u{0dZIa=#6es|`4?xtrGJ9e*pY8&cN%pP@H1rT%N-)g|4cfqLd_=M+T@%S7M z880L8F+Kux!ff~h2Y86P!z(yQ6S^zE#)49{$@SPdjz>>UuuIe#36VIo&?%6*7#PK{ zm^2|)$t9B*O)rgchK;2~+(t$+VWr8aB`13EB3x^PK4SSH1C(Qoinzk_T-8 z&v<6jMCKbUxBVZIq7P2#i((cBsL67@)9ZVPjoapm74I84D(u!MrV)KQgqhw_3mV`h zC_&D;BkDEz^V$sST-G+dI@Qf>Gt15~OA`Ihq>B_FuRcT^b}KW89<>h z_pZy2v0YeuyTINZhEjHhK2(rAyfF|3iT1wrN!-ul;MTsKTHL!}ugl^z&vVyarEAJt z7Xm=!RT7vywkzFI+H`6-h%yESSO);5f*m#Lt5unFqU^~{=UyB~xD9dkg@Ufaw43Tt zlmh69C*d?bB4JG+B?&gmUYMCXn)7?+G-0XbHCTk*M1;_m$ksrI(q%}4mw#>E&SD4u zZ_4@rNFuT_yFTQ{N3sN#m;Wl4UZJx`unP*ZvxdQZT3S`hAkFoy5To84OJKCmaHG*RHlvZNRUy z54mXtKu6y?4SVce!{_fYW4iiy3NKNpbDYEwn^h6aDCAhfYnm>@#!!a>ooGDa{#Rb6 zc6J+QyS6tq+!^l0;6O?-eo_{P2y>M|L)3q=2aj0SC|Y#(Y)$LgNXva7roA1un#uNn zL6FhO93Bvy{{a^{%It|!m>R@T-!=*b$Z}tK|2VEzrs4JX#CXfy8fRTm$|`*v5fKHo zDCU`EVa2%@D3Ob{@t5x2tiE07+S$Hz;xEEMBdgt0AHLi?ow&DrGG2DG5#$-e`N7P4 z)OPGm#$jWrf9=kKzTSlkfW#km8CX|kKM4p1U_Q+9NS}o2t5y;XUAw#XC6Nv=_ivxEo zj0!%)OlvW$;MES~*bt&k_OS(KNq5bO3~rt^=6)K9ESDYp>zm_k&?_ZI@+f=k^+if^ zHt4?zsz)D>;rioYAhXKEyrKx6U z^PfN#oCX0VGC~&VmnB5;Xgx|rKM`{9_7L|jnBYC0TO`c0q67Vpuv8CA)E69;bDUix#B=nXjCa7`>e^jd`PE0xhh9%mAvO4-b zc0jM@^N^Q5GG;-MtO5^oO5!g=&_7wJM?YgikC^6M)twiD2d1arCPO{)!3fHg$RGB_ z{Ez$m@)uAt0_So4Fo4D~1_>ItyWdo=hZwWpj;YXr zRhMOHcOo{6IS_A4^%#2`e^W~t|Ab-V(u^M2E#&G#D?$rpweo7!C}tG03ABRV{rOvW zK@vR;jl=j>Lk)G0-gJ@aSOd7)Bf!3X9~vNT^Trmp;6$x^5MFzHj}$u!u;LaFxV9&U zPu9EPm1MAtkYVlU0tl12C*IO{vy}7BaKfp&Ix4OR2Fvfo8yScWh4}|(%9Af zxsym2<-bQ#t}p8+6w@$NJZV;=!$~458kBZhoc_0(C;7SUShD%iXow2*_a|w;t@puy zogw26sDQ>OsS@{iI?llqms7_BZZF504@ zqRv-4%y@~A_K2ZwK}`YT_kUagl0|TsTJ~p-HHW2EX#wY*&iLgVWki7Wsv zj$oE1GTN5Z#NJ!j__&70 zBh6Ocfopf8>s??&sf4MB6k6H%yKs^ubTpy6Kez-im@i6_Sb+x;x{_K+34fEY^YLAt zj7Ug``?>7RHd*l*@mtx7Yz{Io##Ae8BlA&#WSn&bilFI*#oJQD##&1w^hKCpgyU2p z!z$Q%A{cLNCK}I;u4jK zf_%|kM$|Oa0Zfva6w>aqZoZO7$PAPqAX;lgKdYU202_N$AbTCMiC|p3y~FLy*mIQ_ zkq|c0%rgwi&inr`fgwnTpqK2-wO0Z(@);v|<_x3c;>)!`-&zN?VtL>URuntTekDA1eQ!jBBPF$3}PH&?w{D@4q`Pq4M4 zP&=hwgdL2}QM459ejJ_IBpM%SDvsAOB)x`pqUE2u?fd)HB@r!k@cf4d@TH|+qs`Z=vXzj^2TQ(V(8P7@C z`);z5b;-TLC@aJiRBNX?5g04~my16t`2lG~aEJ}T45_YMDMUyJ2&O9cyBz7otje(^ zS;IFt5g0NEnXHkz_Ik%D4;||FO!nkccB5(yIQg?Y#~`4vq4|}PMd#O~x3N@D08@DQ z^Zm01ny(tP(Uon*=yNJrlUIMB;_6u7vr~6V=)qD#fxwtUs7KcPd|z@m%E^n zVVms#@D!dA$C0O}jq{Df@Lv%Q@S01Y^6MGvs_SF0MeWntM(cgNL2fH)b0OCzk0Jk* zmP{9zDSK>g15Kjbz#9;yk7A~1$Sk-dL4|1qGmf3u8Wzf^qgn|2WXUU4;33F=B}E-x z?RL%#4SYXpTI^6G!F5DIf}}JF-0+flA$`&kCqI@nE9+$zz?Eq`87(Tx{yl}P?{}TV zqqmSp7y72%X~mAbKA@#La%=jgk9N+5nfp+SH9J~-qtdt@#}&vo$*4^;Fc#skv2Uvc zla6y)^?1P|t&VP$Skd?R%Z0{!5-3nhfl9{%uT}n>HwB#WKW6l$KY|%Yu|8&M&TZ^` zFdS%&MmwscUV53GhOKd8NQL#)PaoNG)6LJ%FGP?lTrMky$p!9H2M2Q?2BR;`q@#T; zH%na&ZG1>6yQ7bw!aj6SIGLRMl`GGFG&iiI^+yy|CU5L!Mh@*ez@@h<*RzGm&ktUk zY zolfr*vI0!3z7(=s5zsVy-aXhty=ZVvaq8QjF!Q(g^S5@#CM|N|P_{7Bc zygNbX9X^Ag7?Q}%Vusj|QIRF7%;g%J-Chl~e%VnXhgHCRwMrCf6^(+=5=vh0fzg!> z^9Mk+G9+w=tTKy!P^sgvw$%8?-Xs81(iW(|e^{UgQTSjMni}|^EkbqHR8u8nsz<>?^p`gaQWdVsMnivZQ#JlSP6f#}TV<>t{#OAx$Yz=v-ys%a6 zx9>uMk0XM#f5WOTY^0}X8+i69r$ao*CG9UVzM5>;(&BhWvqX2eNIniE*QJx6(GLu1 z$ZBl7_gxRA!A3IZsYddh?Q#TMm2CLMs8sG&>05-R8V(>tQ-QV;Itv+AYMzYOnSFMd)e@T->uvIov=Vq=NQbt+J;Tz{5@DDJOU2aCy$CMn^u6B!k?Op zV>#>SY?d+}4n;HPZFl=on9h+|-kJQGs*BZAkI703M^|os&S2`k614vPEfiSa#NR>z zu)3_9$6H1TI4X9>Cc= zWzo)5go`{D`$B$OA-KvfBT0z`hkZ};R-IogH-~Tl*0KlQzg)ZECJ5bnOZ1%ECLXKOfL`{h+{(%u&bk)U1sbe zmM`6&ED)2BR6~!Sp9Y5gg4xARp7uu^}*b_cM%)2?7QIfGFz;cJwbfLyZpJOH!!C1(!Q2qzzMhN!- zGE_h>=qTp%pLU!wD0r7n9Lf8}G4{N(?(P0sOp1IR?~j1v3#=XR0H*c!q#CUJDLx(J z(Vb!}fmo_7+jdN&ArfZ*$>VM=y7 z`IZ8HIPiNa%e?YuwlvD%Hhg+y~5m0>+;XAaE_z-}gs(U>=!@)d6~Sc8h z<$;tdb$$`?ma7S79B2~Ow!L%hC~9pSnX$qyd)Qm-EL0P;f9r;l1Bs>a<`uP=NnfFY zAc|o2opL%qE-S7$o?rKF2f9Qnw?gVaeE$`(z;gFCrz~>xPjD_P+oo>cyb3J07xfqz z{BXA5aek_86A-%_Ovy}vR5|nxyQp~5v8Y(2W+z+A7YBriYDF60y6SDxa<6xg-F(S5Odowq=4$ z!Lz@lp4l%4Wl8Bz1LdXv>959OyGVFv?!6K^a2>$_v`P(lm%w+opvB68LgIymrgZsF zHVYK`-FHu3sVC6t6#8F7EP%wBPfcjv==W4sq|r%PUzj#{sNSqL|s{o!x{0 z?Wo$z-MJPh`S=AZ?)k4s<_>A=uyY4dcHHUd2cvi(^{H9&dIERpGn5$(-p(x6e@}<8 zv$1L9D9?Ld^Ne{1*jHOI3n&ZNdsnA?b)=`e^zcn{@=Z7U8MVoIc0FB<#1%++w?bpH zg&Vbv9H}-LJMjTXrbJA14jbDW^V*lOsrAF+@?nxN0nx7v(6SzVDU;yua)O|&K>dff z_P-4p&%8;xn?awOhQq2#g>?Aq1RT$h$1d|sWo-uI*e>9R&es3B)h)FLDR62^)c^l{lLCC{$x)nbR_?lCtN$9sjy%l5@o#D)zDP^*r!q)ZL)<0!t6KC zcU>t{8mpruU)B~5hFv)J*eRna^}p8bS*NMNc&Gs7SEm$}lNk-BkDmA|IpP~(WbLam zwULmk7WSHBa8hsX#z4=7Jx&j{W#}F4>pwXsK#%-&ayfzCy}YpbbF=KIy{s$wh9Z*5 zqJMgNI+*{59DA%gev$Hh9tXtfug7VGIm)4nO^(j2u|zU7SIrfz9o`TF2kr?3fM?Y* zdMsKLMrrq6GBL(qx_BOQTXR1jB1(Ja*4`nTWN*PGz%K1t? zcBA_|8FpXf(uo%2RH$1o<%HUTpRM1);NgLkJAxOAik{)%-DOe1u6@fF_7YzaP!pJY z*op0_e)BaQSZITzhBfarZqj|7?S6k^ZJ|!BRD3tl403FC#_&03?4btINHW#`Q87`^ zjd~^0Qm+A^X?-2v8BZFxN+k!@;q};A!x4)~Z7t2W-5TT{QqL#M9px^{?_g;97_fzk zMrl80SbSAhFcNwwMk2kq=Ev|+O+o$uDOY{_FUpU*ti#FN=$3A1 zG%O$5(r`-ameNSjeRX|vFVvf_Pdfu{l9f2)eP1>lPA>(J-+VzZKlq6>3#&Ytzn}5TCc^4h5-BVkK;92gL{Wb5@1M{xbek zbUK+)SftKU?r)sLh@5$y%L8PS4&7sYb-lk*iiYCQHk@MC2Gl%0hFSBrcm_fEDM>s3e3?BcULB-7b96y z6Vd7eD!HScgnoytIGtrAhpd0VPvIW{b)5^0Nhn?HG= z4k8pX`qMu@>#d$zw{f2e9d&KK&^I{Z>$Q-Lx%(;S@|1@VHxl>68k}FmJUsEd+F$6y z*=HVKpFg}2kl)@J&DN1#`@5(%x{S&q4D__2hSaCRcfNIoK%JGVcB5zTc#Z_Ua~+VN z%aLQm!teKSh_$N_j@d?Ez4A_ZL`RMUq#RPrbl}`;HIdBW7&`24c0>9X7NF#C2qO~{ zoO@wG=WPyCMjt`4R~2@(20P@xBo+XZEgZLDlg46B$cFM98KeQ}TYqzLF`5$e)>GvIU!;_ZZ zhdW@e!Xl9i>OS$_RW{NzDl)!qyxQv7dcU2nn1goM{gFC6g}>*>-1lKsAYA>i8Q?7fZs%sCj;7y=xRs zFObYotXAm=iCQ|8Sc-i2_MKBH9b8(8*?1+FhHfiVMbrAB*obNDRhEpu7EpMk1>~x^ zPA7h3OQUTSHdd7^nx)#_@t`+^53D;iN07?lB)ws*CD<)tnOEn!E5v))fIpk?@mN6` ztxB5X<|_B)0tl{LAT3YXY1-;_xHlZCX9JJ_!K-nVXKL7(fal9@4U!Qu&FEiG_LAE+ zVvh|zl;Tg!B>V~q@KaJ{R_UT*m@=Y@rWgAbY{bvRlakFn!Jp9scD6}HTuf$?0bU0a zFVD?j{q;jhMBPa2A_d{EM*bg+1n`-;_t#}a3e)_oW%FuiJ$Rh%7DAJrOHJ5NrYe0k z+ru^33i+KEc@PQ1gG+iy+?FJ(wnS*8%29jdFHR2Y35VarS8lSc+9b*g-$rcth@@OK z;0ox%#M6|sgl$$4tJ=8<(oy!Xaw~&i$qzw&<%GklXOtk7fb^Q9wQ1PJjcM0rNlD4} zL{Yfg-PJ+2UGkXCck+P?cTB(${gE^uZOAB$?jFEKy*iR@-rl=pK5eKWy z9X4K+s+qNS*fm6XzOAT4xOhZ{NeObRjThqfPIn$ zK|GFu>r_JL&67jtElFxJ{O%BZW#_W+?LQ~PnRNpIVf3mW6f-o^!l2=M(tFZdjZ)?H zt+701iI;~TUPp8Z_NqU}hM|saqNv$-889pKQX{u`zE9!7T z;d2A)(pBRa^y`+g`SsfofFgPlTKzw^-a0O;plcTfkrEM+6eLC92BbTs>!w@j4k_s_ z>F(}s=?3ZU?vn0q`1XxH&w1bToj=$pzrAPAthMG^v#vd}7Q{G!gL;nBmNpK-HH?XV z{@9WGDY0Aek%c$Mtj(fb%HO`39KYfjF|JyblqOe~$)}q5Jh_6HLt!LZV(rCXpS_*b zBw2#-Mh#Pl=!5V=$>!)?QFhHT{bG`u*kauB#ZJo-`5nchoi33fKT!;| z2O)<-G{oBLqr{QO^t?3%O*b*w&}BmAg51;1w~Na2M)6qZrv~SBxZ7>~-7XcGfX-1;(}5^>FEHa9a^108OV8 z(XH~q4ii`X##7s4$c%}pJ1c}NMW$pfw)~1G>vm6?hwzD#=!u2xWYhF(wd7>e>fc#s!tK1( zOYPY4CgAPVcX47z1%o>9xSZNrpQjWl!H54@-q_Y*8-Y zt!-?otdV$Vv0rlyrcFpUM+}~E+8_aWF&)48G&4v{-{{TzQUW}c+KNFehX`**Xo^eSS1EpYsFy%e zA&Ayd8QeRD;UaQ3KmKr`Tb5cIY5BTZZy8id!oNUQIgs^>$KHQulne2ZtK(^%qkeLF z+MD2Kb;-|RHM#^L=^6)zNW&vzcFNS~uQh6PbWQbar8BCFPTN09S9w+K?WKKk^nO+o zwWOudX!UuGCzIl#eefEa*32$YxY^ah`$Q-N7Pu3#)*`!|18=sy!L{eNjq~FRa8AZE z(urPMGRipfM+Q<#0v!d;(~5k(+1a@`6C?qp<8H0JxLA^#YndE%fIV1jLzytP(UKYc z%(9%eZ~W1TNpQTp&i;J=^JHDDazQ(PtP{$Kmce7@@o^emmlqlR=F9bj>T2eIL!Yvg zPC3<%j8CLxXHn6qxY)>$ypE7vH^5Gik^8;4%Vhq;JtP6(m5DLmCV1xz?+XlomDpQO5cyeN&)Vh*e2 zx}<_;$=$csUkDzs>n}cuqY``?!JJ8P84;eF?SO zQ}V})YSMKPuT|~cn5-W;siF#!*(Q=Uz*%Oi=8+M-%sH7jdDGA2GYZX-8OoN)gK0W0 z0g~9Th~_DU;1yF)5Gq|bMqCFa5k2Y?<9nZdlH<3;Hw~O%9}fj$Ks11WfHOK#zVpb1 zm#p}4gv6qVi%v9BWn9ct*Au)EXcJQtiu)X_rPfok?dVqi;|Dy}+dVlFZXb!0C8w>D zOowMFKZ#{W)FY2qW}AGYXZ&oGu(`4sW$YxQIMvhD1^3Q=A4k~C)-jW3?6%wj&v9t< zDxSNr;CvGA6^`z|bpg-~5l7dWyG`dOi)25NPuAP}RCe5s4j7EHx zo7sgsD>S|1d|D1Qa--!a%=cwE)ufG)*=6ZO_A)5?%!v)_(G!REpBQF2ed_b=&3Sp# zX~A`-l4UKwbTxip(!DAyvXq=WtOd)Nt#RmVf+Uz9>t1nnLXxKgVgL*iRTC>~^P>wB zX*+pv$8U#wpDl`_VF|48te@sZ!=;#&@d0d_HS;WHGcyYdoNhyUO6m$i7v{2l z+%;8{ds0t#Yg2CK^9t(t2lM;en4C`D^&lWPNYNTFpuR;(Q3@j9ac%o~GCkN6uj=TX zV28H%il>P=f4e7TVKP;fPQ5HsUM{7tCi$b3ii+0pEt{Bb5FILw6dNT8c#6f~`xuAB z2|;=L8smyj@A7QjuR@~#Xz<*P`%m)@vAI#gb}u(H+VV}}D5z#Xng-beIH(tl%go5c zq%_T}5fv%PwSQ!O(_%XRsP;{c-(_m!jL9yu^scndYHKKk-Fzr|w}iC7H3FwU4{M0C z?ANi!Mn8VuV&Yw&@29{>4T*KBWF{$4snWwuS_~Z1KawAipH9S8Rf_|YCHP#I;3!&u z{v+1=r!8!Ni*>2~{+O3t7r$P2?DcVSk~%h!B$3;ti>V@Kf!3T<;V~+Kn=n1ZrP2xY zYSLUNSp6{*m$c=Q3w(4A5&$_%}2EaAYG_{we6Zbj+pbVsYHEE zNNsa07Kf<+<3yQmRzY9EgHvJA@~aQ5$2Sh8A{e1fe+npRT287PjQXvO=Xtj@?pvEQdu%$}UrQA_JeR zBQNeCxu2g83rc1@EZE4sIU$aS>XGQC6a>}S=JV{NbwGa<(j823xxnK|l4`*6jfk3| zaFypY5!MMbb#mEz{cvdkBqS`p2TSoo|APr2>J4D`HFEH_>3oSQD)z@mCwCh2tJ#CB znpy5kXy9};iyDLEe7V2zvU-2Dd)8o+@$nPwAQ%CP~iqK@X*m#*Bj{!9zDlh=3lgf^AhhL?_$zF%pIK&*`Dd3-s{D$jv*hOt; zkoN)a&ImtDR_lCEDN84v&){%Lld0S1`k0vx_kYe!1%dku=9XHLSRwN0O3mK4=juLf z`YM$P4Sg;G0z%bIn9>b5+wH z+IzaC5RI23{6^W0i&V({-JX$>N5T33^Jz)e&(P`# zi}kiS9`*PxOBQ^W9$RVi>pdO|t5XEwM5d#oUF{eJ3HU7=M>G#yKk5Aa-T~zKxt-o~ z{v=xRjX{S5ROY&ko4c!=XjFIca_jZTmlux6-|oU}R9%$>bqs`aKa-IOPf*mEeG44a ze`=S+L$>@ErvZd43D0?UX~&2{Q7q$vZ(NPMm7|(a-)A!aQ7GsS!X^Y|F(DVIncuD2 zr{>1j$*2iYWySY)L);omga1S48gpwap=q?Eo}362F{hbue|KjRaHhIR=Qllyc}rHZ zgI0GnBwu3=mQo+fVO`C&=Wj5uH(tqxFCOo{;mcPN`XP6qPB|XDQu+RmS&pk{vSPEt zynmzwBQ_nTuP7ZIes9B9&lqh(O(|7vfBBj4W}Ii9@5>XQF2|1B0rE14-Z<12 z)nj6u-5MNYW7ptwf-Z``8ut$#qkUX+JS_>|bTkl;CbGd{iji3cS?k76%$#ajS)qA9 zJ8Zz70CT>bmb?`^FG-ZkW_00;MF#sdoZ{XfY{pYaX~KbD4ka;EF3Eb3CqIH*^qba8uy zy64=xGQ1g~Zh@*gGd3;dx}w_LGm4gJF>$xq*Cw@;hfT*h$Z6bXQfW$kA$Wo|*ql`J z_;}b&V4lMpKxcUr+2J;gNEf47*co$;fxCmnG+H98P?#GdGjq$@& zD9g8E#a)2Z)bS^f6o(}D1F#mI3BNx>=fFJVRo01TkpQ@HtzKevcr+o_{yH+~&&zgS zSVb`T%eQ(YSA`hiDpXqCe4ocQA+9K6m!AjXQuCj=~4Oe*Ix)95^PMS%@^x0 zu20s_ZJ?kyk*QoGAZ#3vMm-_)y!FFLw}^fp%|eWK)q(jR+K*%dVjV%?l-8=~{K2a` z`39L%1CmhCx=V{oTTJW*mZH$D4SO&S_q)I-b{A z;Q8i@)YN?yHI=&3f`SM*rmi?YC6yvJjWMOj%LG02)O7t*H=FJK4mYNsAU>ccz%tI= zIJCb!ula#SB}-fT1^Q}uWt~TLjl+05xFu!u29D>te{(8w@besEju%odF&FV^V zLekaLS-~xyGCOdMp35144B8TQO?etkohyys`9xZD+3`k^G_)Wt z>6?rK&#IT(K4HLp{()1mxtsmS`pL-1Z)FV)Rr+Q)*i_!?SmO+{C=vHXetuK_VA^N5 z{TtZCG}!WClOvHs{XMBRrC23_<0kF!WGkmP%Y6!&(Mrj@TIlC0O8#Dvw^(n)Zn27@ z{>aDZD*1SoHn{3IUdbUtL;3w(y8yUhxNJkh^Cg)k!5Zo*mMb0UD5??dcA?6-fgF=vZQ zQE@Yk_@N(gT(d-}GB3=%UMlZ{HA#MP-XD5o#oagonJ7=9vi7e~Nk|_M6!BG}&!_Z1 zBXfZl?wB9V&3BG)W1!5HcJPMS;1POxB9bjdSi3l++|HKkE25Uc0hbytN{bYo??v;nI#yz zEZq6nh;^uNB6(5Mv?p`4Iv5yngPAe}=aUUPRZ=0DvcK+(4(a2o2WIfXDrmTbsj*Q; z_`eQ#!kOgCa82V(^ta0EF%#~fchX~L)Pk8UXM({q@!a9!*F7A)ZjMrgt9niP!6_zN zGP{TsSuYP8r){p9BqhkJH;6^WNEA?gKxG`<;diNzeb-%gUvb*7b?D}tPn#LB{R#O~ zMSi87Pl`~S`)f~&t9;-|@zjQ_ydlE4%2ATpI#MmZG@wTn&K9_F0IKs@Qv9H?bUgZD zG`+3RDv}+UnLZdbfVsT)niRy2yzb;%!_6B(%q+z=IzZzvc0S9E(fjhB^8~((r!B2Y z)eSA)M2tDT7ZsN!Ps$>9GJ1RLqhtu@Ja(RHHw4{FcGYt*$?lFI0wMRl>eTt3$R)g zAbyj4z$BOhPu6%o&@$0__=7@Y%Bt|<&zg@&zHp{q&GOb)>(Fss?ErE&u3SQG&t@rs z)Hj)n$0?T{-N6&c*pb(#x+HIxRdmW5IWy5%Qps2E1jfpKrb>0lxdAeQq$~_;{0Z8P zb1`ZO5kvJs1rvc~+Ykf8%k4_r>IXnGEM>1W!w)Uc?mL2Zn+a5qobgiXCqczzAm)hqmWH+9%mqt!2 z1UTmLQ+FYx>GNC+rB?$fM|HbjLp}X+5vcVe-fjGeA_wvf^pZY4>g7oFD=-QON?gX( zvcTwU-5sEJbE6`MbBEuTLdQVCxUc;^p$14S?J=lEwRFe1_ki-kS37Fvz1Y4fXe%RW zZ*<_|n38pvv^W>MH=Cc)VcDzK9FN3Vfmu7K-zDDjk~PH-@l9H=Pv+@j!5snP6bm^5 z6yf1t`WEo>f?TQe8s<)28>;(kCXU2GO4nApchv*Pn~iut(4fAx?6YrTj|GR+;8os@GhZSVM5y8;3;z71Znkm8;eQr zzbNYW+@^|aEN$&LLhJ0(-9{57eE1f<1cjr^;BFrQ*%%0*jJtjyh5amn72D%H22;da zGx3|-r@nCeUFR0& z{yByQ>)(B0Y9+S)?(0MOW4^&_#^3*vPC@ATh?F;`GL|=8cSF@|g7$s;vz8?O6bxbX z%Us`^zwx3sI+HnQWVX%c9W$P$z+p$on1~*tB-zF-r@gt6-1F(gz`EoZI9>{g5nkWT>&3NvG*uBo9g7Wq zGm)Av+niZWW5piB-f|KwSe@;6{q>VBb;5u8sZn~YAKMz zi1}K&Qk3c(zNI-NsFoX;7N#3Ww;03k4b!w>uK0fmxGo0}mZ>|clf9yw&6%VH6?U~i zqd(maKULU05y>Xmedums;9y{B*t(d@@sE=eEBo~2V-}{=9TK0Dc3M80=@a;gB1<8U z5Vi~?EoKBg(L$mi@$xix#8D|wpfHDY%8TP0vu;V7m&@qKJDx$QC+)A? zSzUJ$$J?7xJ?5_S4K7ZS^|;SREx!zQ=UMAC^46aO7_r&&4N5K>zHXW~sL2CA?Yr(Y zFq~R4Hj{Mj_?!#i|5*7lJXKtGw$(JFB!Ohg8M&1P7wOxYQnVT9@Ic0dOnC782?sF6 z;~|ICM;SK<2euY!4M(F*OGJdqc>9f&)|6z9a+wBUS;YT#lHlsD`>tPuW@8$okJ5mI zu5!G9OBe;d!S+vAm$MNXR1btRWJ=xCFq1tK9lPN$wnmUSTM31I(BZxLmfcqGd^7*a zHlNXk{8VEpSUYN8BNTpOXf2>e9&H3!-pj%4M@HC<^rW&|QNpr?ryx*_R^<=lQp3pQxj0u{WYgt*1$U?5LksBN2qQ{fE0zqR~F zZDZ1nu?qX(P0QU@*Mk+>(k$ZBWfWyH;=hjS9G?}ZSd7|xRZe=b?PqqU%SrAe6V~Sl z0?E5x$F%EhES!p&{i5Qc=#@*cq?WwK>S{tld%Qt(%UMB)kXMrqHhGc9n3eF`!Nhw0 zM9HYuv`n~x2C}dNNJPU{P&1amv}t^_n&Kf|QqwIQWvhWPafWF?YmRx{Q_?Xh*?r*p zV`pSD3F_Zvg>6pOB};ZfZK!?Gc-*j~2hJyaZ$zGYv!0^;SjyF{LN1sp3oRxN>3-^> z%?utMxj?ROb#{YIR-H{&Y*u#xPJ2H#r!cO%vIpFT9N&@URR$HTl85ME8Z}xKon6i` z=BQn)md&|;iKY1C^r=r^I?DQ=-yN~#IuY_?1TPc{S+`#xx zbkCI1zeC#3(X=tQjj3DQn-Na(X&nr{34I)gdw~j1hZM`^SyiX&(_=-3?$1LUM}}#rDj5AGkO%670tq7NO+#zJVa{a}w8D z;3a?*|6THKEWU>&dw-aFkB2nTDxaE%l5v6`t3#ViMWxFgFi1dh1HWJxM20+@iH8X} zE(}E0&*t`zJbqr9FcDyu%b!`gT=4b&T=T|pvElL;EMAijlm&@ZZ3}3a=+$$kEuQs& zQ@p;$G59N!XDDvESKspP(?r#?#Mtsd`U3PU;UP&sHAc~b%Vx`;2Pitw0aCSl#gZlW zFST47`fntYx|_9)@7c^!h0A-JrDECS)zE+0Gz71g4f(YNH(JXUZSonC0jJU&meizEdL5f>mm%{?ErE5&2gEwKwllgk8wglCC&B| zLsZ&r4O7i6L+0(xIMf{K&??-RR2dr^XqI_Xj*=EZY;3VF4kQXv@$=rLSA-m_2W-IN z0S=ZRQ7<)~LzYsU0Sd~()aP&e(llV8Tx@oE7RrC{HGNa3KBLQN-eyksfR`bCX5w1^ zuvZ5<;m|-%A>IoI8To7n{i%-A=CdoK={Vn|(eBjP%jd=tP*%Jb2FT$4gF)_K^4{=X zF*4}Cv)Y)u()@MEn8>EkZI`Ol*S33osAxuG*Ly?CoR}Lv#asF^u7nN6kWRCF(!+-= zHH`mTsqWM2ca|C&%a0FkNl8gjWL5SjYpbhF?C2_mlj%ACVVgn!7HGXNfdLwNOwnfpH0lBe&wBqJX7y4CSqcP7OG!3^o zQnt8mQ<_{K9M1_^%$KqzBDo84GN~Sr39Cljz(a1%)k`V`+P>9HkQoZtKWj*Z!ElN} zD&E_0m%GQepGb}7XvgN~@49eX0-O7EKCu1xb206v9vZd@2f@PUS%g8UC?G0Uru@3y zVzMB%eD*tcYV3qR^CDP6qW9^g$5R`UhCg3SdV2aN@t7i2HtUOB1=06^2RGsTy~-`@V z^<7kg4LZ+nX`HqQuH@}7-ngtZw ztXF?SNB#f>%^-9u(;@ff(q@T3 z?ucNRb9rm;;K0<(OkG-9T3HzZ8CE-hFMWHe_?v=4bQ->279OYlaepigjavOgi5dqP z85s=?jg?j4!a^Y%8yiBx!$U15JUo0-nUmcakn1awOlo3cqH+!~Tj%qi>CbiG8U+reRGCoeYl`P!8bZnV}29>RLoFs zn&3{y6y85KN{=9v(HqZ^cq{iukTYYWznw;-nTjUl0~C=yDVADN!>s%0EL% z$jEr?En1`q63cYD=jP|l=PG9h2EJb%E_%KSffb$+<5QuYshGS}87mXFZukHKTNM!5BCBw!cRS>L16;l@A$fk629 zDex%x9V5~rA_(a3%gl_8cXxMh&v(Y%-HikV1-6DWh*jR2~{<;&&LwRxR&b#|tc!(WVy zc+=4>YrjMsdz}K~>v(Pt_#zJ!qJZT3{ufxd)@~K`E?aw=u5!Y4b&k$-mAP>cJ-%g^ zL%3<@;{GM`Whacn?r3SSzaN*~dOHf_I&<_f4>{+nV)55cN^jFriZojAQ(>Z^BWY+I zd+u;?anatr`-5RfXLpFM)3co!s%oK-@e{g6M5ITRoFh9s`*idCoRMnTV`6P(B`+rq z&~9jOu*45a| z>POqd1rQc#m`ui;+wHlLABfhyC(y>m=5rLf^w?`37ssnd>4PRgH#$0_Y*vR;o`OP? z6m|em&lCFC0W7oJjim`oi=mv7!HCDnuX7=%zk#oa!SVM#*6`H=}6{ z)>^DO18PJX7q+%$+$ZW$Z?Zc|NrR;=NMf~op&bw`p<#1tzEDd<+E$Ix{{p(Ft?k9K zUu)%<4Bm)1*{1iGuf|L&Il`g%v?*!s#r$ic3LWSR z-(e`==(pPzdBf@}-HfnjUxu}s$ByG~G&~ZBW!`eg8h`#Pq>*^Oo=PLR&dC;pWCaXf zT3)Z($e%w6ULNEX6m+2KqXk=$r0KncgBt{9$;xjJX}3ygTbytEQ+1PIEiKgQOK==* zYj-!<$B+ERznlL!oNYQdxxIiDwjUh`?tq4q@OMIb_#gS@JZjsO*}sBEM?0`DMkL+XwTUK@I9 zmN1Zn!q~e&bu6=cIqZ#zIS-V$X~!sTa9LFqTIM&{U<3pN_Xtle4i69L`1tr!ID%BV zBLT37*pICtJU`G{wx`)*z0M#*R1^&S8>+9B(vQyi198xFoxkv&?k^N=*gzM@n-fpc z;Jra1&hS^(zkZ5n$cfxyJ@<%j8%)%(yey^qGYA~1i2L^A7*IeDe47W#vEH4Ksq#}H z(pW|u)E3K6Lv8m#Za>+dtx(SVSSoG=n$ywO_c=zlj2um58fK1(iBTqrN=kb9NpK_U z=>79VgvgdW=dEWFI#z7@+FDArQsXNm7{aWjXqLbJ0mI+*Fs5g{Lg-?YkL0GmLBj9j(BRzj>Ec0@vR$!Ij_f!9+VX#c;6 z*QnG0%QDA8X~VXec@@mpcQqeFkD<+LX(_|Y%R8?vhSPyALiARkyu7?ayRhFZi@@dS z0i{3YbM!enJiM<$VY4?$cw%B;a<`|@pRKL+?bX$t-Cc@!IbhjUu0M!V1jbzQ3Bi-l z;tN+wd%V8Ag@c7%B?gut@!^)>A|B`KU-h@JJ}%r(_kr2s?HvtWXzjZM-fMCS3O!K1 z{eI;)sqDc=^Wq9inlm&CKt@M@5VB^DWd20pU)16=c(ocNl`z6wW4=sHMb+^FkDMkV z?#JOmT|9#UDVezlSk+fP9LUEf_7IBCHP`IIQT`R_m6?)!6ySZ}WntHJQaK&oy?>u? z8E~-F#50`Cfkoh5=>6-*!PgRR@9c&Kj@{8w86dsAe?Y(+6ph0bTHw@GnVz`uH{{wL zKfjH*JyfI_3}9i!Y$z%s!mBN=zv+E@yZn|5i34nLe9qsMkaZiz52s)MonG214e(M#Med>03s3}s4?lKyXoRb?ggOCpe<8U z{`jOKG$hK+yZOD-yy(m`qFDk1A@Y8ka@(jSQo)oI-vlxF^y3lCjo;Ghy&s^?DsCMS zWv-1Noo+%dxlfK(q{1C?D}h7{KS36(T)J7Uj8NE+gi^qNook0$8(r=$ftpUh_8*b4 zlGl*%8K~vr{F;*U>lUBt;k|vWTk00gx2oZG!>#T?3Mz9~m$MrUTz_g5(VWHP-EQe8 zCK)cDc$QqUZ$OqWfJR$zGn8sEsiFCrzP=c%wf_PV76Yxmu{%0#AFhHiOoV|%*g$q& zW4OpAgQ6CNReKHPOSXk3^Uy11C^h^D&rR`-p}L-z4R*cQo6Gw2w!rN`dgFa7`+G7P z*SX50GyAIzaNkMu0m{F&L#}*VT+N5w2F_yVKZu-gfSw~?rc@A$h#jX6^U>Wo%F|){ z>gurV9aYWnT%^Ilr9;Dw5ZmI-Ovu&2xdkhC<$C+m;URCbui-NK_ksk5A0_qC>5a$IRuOn8p4 zZ5}GA=tmXFfEyuE7Z6K7i}raethUWP>`Zwfy$d{Q_#$xT969Uxipyt(II<6>Be%$8 zFh{PCy&Did0V2Fe5ZZlR>B?|A;QxfSt`SLa4>9t&n?9&odsaBVw+DchocK<;}c zYW~wdfMYSC;&?ilE>hzaoB#9~UqrS=La*^b^=|VA=)JJ*bS1&E3_j{9jMmU+l&*W01)`H)PB$ znPpJ?w7p2sBEe|$&^~|9E6c9)(4OeF3s&nY3H#15Y@{QVe6R8>hi97b`K3UM(q}h9 zgMR2q$+r6o6ZvK6sx%60HaK7ALIN^!O7OnEIRK7dLL_1!m^%7jSt7^*rRJzHM{&sA zi0-;`v@`e9jB3}1V*8grg6p2c<7X-W@+lgkfrQXaJ{6^G%`lUqS`G=)y#7fh_uW#C z_jgw499zVc;J~^3=dpqRGC=?5v9a#3;#UUygT`Bg-7UJgS=#Hn#GTp2SymC7pW&0A zn+Dj6=SuE>xdvlyjmUCbM$+1!h7p0TF|CKcQo=H>Ebe2q!aZZt#f5f17tEk*#ASC* zX?c(4Pytp_Yx;M5|MZZy$zZ%p7XL*1MC`LT3YC!YCZ}`iX<}3XL{Qx@vwOu3=n8@h z5KDv*HIT=cQW1UB)WS#hrA6}Hh7B5Zg zMee`mVb~ezyEh<@(UP)ZHG7oPcg1%K?_+5ZQ-suTO#&K+*vEhSBqwc4e!bCIKIOjr zp}3Ss*^fJ46`?`yf$#OSNd?D6?@ORpf9J;E2O$zCt? z-;7}uUk}*i-lp{2dwW)PI>Xl7UO7KLZW2#leU9)Sh#_bqlyHJO0;{5-kSC-nG;mr3xIA3h=;8Qb;IF)I@3XwxwhFfcwAhXBW_5zw9HTkhxZ>n%4rX4|1Ik(iH#+28J7{F^&}0r|B8C2d>?2M1vEwsk5ayJhhp|mx5Ge?0q`&X+lLw|ocG^{niX?7 zX%}-f80S{uGXTa4c_S;+KSzcF0OT2l5$l&jZ@SNB0Vi#7n5iHC$J-zSc-D%rl@{Ml z3f~y54K?5CZ9D{8|0jq+(2t3L>qR!vK<%up-0LN)|5qah!sj0sj69_XVnS87P9b}N zAZYflDTow|xpxumg~xthdSVIv|J@&OEG8I1wd>`j)m;9?-zo$U8-~35`E6dd?=mU>wW(cULoV_mlhwm+r58Q@}^IeDLO;flyKLZr1IH(POj880^#e@5%O`xGB0;? zwVB^;)pi^c1e8-0GEc1^qL;nm@6>8pbZfRVsBz)guio9|Rm(%NNoIvw(Jr%BrY7L` z(Wl3iFmIRAtZ;l(ZpkZzw@Ig-uqlUfXUsw;;xC#noNfBFffbZo&ttMJr0;x%4qb3d6QQW*K2SG$OHquzTp6F6a z(`+zMI$|nSL@-%DfhMG}UXv3+(dKkGexUy%CIT6e$4}td7hO@Rkfx}g|BVjZ3H%KT zKP?ytB!Sj|fx&J?zlFk=Uu-}!xl({#tbojwyP|e^bD8F+$!f{e+UIxnXR6N<)+3*ING;gI` zS#(V&hg)r0>Zfwp9qJe)Rw%FD`y8cmy4Y^sXNxP9w75Qymg$fJjJ~sxZ-gMy+`P-x z{YJl>0rh?$&uw?Ul@LdkgpOL3c03RZ#^acFr(Cxj@{G92)qYuWc4%g}xVb~Y?>u0O z3JcR@Ln9Q4KP?1KEJu-l9Z8pNW^E))#|>yoLT6h&MSbml$|d7O ze>eT{XCP(cu<1@;o~i;eam{hHF>z&qE%?0OmQtLrCH-W>;rBbb^DK-U4;FNoF*Pn)}l|L4H zPP7tWV8ZSiK4_ucD~EuQXR=&M7vV#;Ta3mtJcPSra=1};RQG(TX?}uH{|UFR8`hxu zgVjz;ZxV=$*c1GI93KAlnz-)Bgu`Y~JM_M1zQ@hk9JkY@^T8(T`HLR8-Ko6ui|PCY z)r4?KyFC_9Dn6^nu2o#J?^#o%QKTryom2sgbw*Sut24B#JeWk{s9~axS37H?`JZmu zi#gm5LV0fIPa*+ZVN(FbQVLhU6GWm)VlHsS9TrGF#{?O+P&t2}8hDTLU`s4qO~qEO z=PC>zvE(2p^e#-dj=WfV{Zg&YwnD5^Ho8B0AdLH9#P!fmq76%6n*kL00A&glKzTlRy$wLZDeXF|6BQ@iLZt%EUOkh|6* z>O%IDVo>!?xpqxdx(sZ|%*)KgT<*w(=l`j;P9XUAQjLYNX8OHD3XfYEwLUz%#N36k zqCWW$+ziX2Bl4u*7p-Mw9wL=DPi9GG%zre-TudZjI>#>(?Ot=J);m6|BQe85X24s7 zpWs#HBAaRG1f9u+<&As2G-0o=3XTmmA4R{AJuO-Kpd9k9Io|9dV_osOC2{AfM^r`p ztgXInwp_%aEHIs`wW)E9wKi(W<_#GgHSvqLisV+q!SRS}o0P^x;*Gr=ZbNqwNV6`n1PtWClRZ_i+|O5nPb}h2$zogdtcEfiYsgk&PXYt z&#%*CpWF|JJ~#9Zd_9$&DiC)Y>{n&0xVbo5%2G#uH=P|m3jc;cysbyzD_Lv~EyxP9 z6rb})gqTaXfZlKd8#6JLRnF@oSK6LmY`5DyUYt17C{4T;FmZ4b{~=NIG2r_$&aJ2PwwiEKi>Wk&#dMWl0=wqCR1k^ z%D2J_eQ*$R=r%5*9LoTUUJ{)BL}VZS+CfzixWPBlBq!c+&@mjPA}lYDo5bwzN5 z%c`QoFj~Ybkpy}*v-QX!C30qZ{n8Em-tsto`fQ74(30I9J`1%;k8Ia*5T3PBK|Kg0 zmoqZME*ZzHkvX;&YLZbicFnFQ_9^JLobWd-pV8j_!4D&9Il=_53x504N8X{NZWj2j z9fUE}yrtwCx(`bX*-Xt@wIR_BR;32^UdxcjU{^r|9Rp>zL8;2Ol_^lBH|D! zzpJg(=?YU}l&>P`QcumrviVZAud+9E)H9OMQJdp6!D*bk5)4{+No_T^bBn;`En36+25v*%+#N` zcNr=wrB5YU{*q`t@a)>LiY3%%^fkiK7uaaZ`7*}$!}G3dd~28~wT9e}d5P4387Fs0 zowgy8xt`tt94aPw<;p)G`9vp&wvmpF*AQq8TjMFF7kI|U)AegO4Hd2CD*nBC1Y3n( zIu13mm^t}YEDe%p0fso`L9a)9cQD+yDXRC8%=Ejt)t_<3u9+Musrzs7u0K9fWv!JI zw@ja}Z6a7o+BWHRy9OphLBo~R#{b$BC|S-}5-3q%aWOVwCowe;u<&j8jJ#il`rC*p zaW}5DF*&@Ys#f6UJ<1 zl&9y-RVJ7}S1$5?91XvLj!8A9mP~Gnn`w^g*G>}w<)w`{pie%AA^v81zc=d}nmT}e zB&WzOWtErV-Mb(%8G9(AxvjR*iL&Oh@YMzQ^cd6QAa9KY zRfLZV<^Bvqt(EbX5|$?D@Ey2QAMu^jXT$f`7D_OptN6)E} zoqdOmf@>Sc>HWmYRWRtn2n+Af;!h_M$&Mf5vNdxGyhCQz(EQ zmM*hsJV_CoF5w@LJDjp>r~J4lgwFskEV8yUg_C_g$|JdsrzsyFWUbe^PuSu?9U_Hy6ZOtd z@dvYs*uMf3%fh1xo1pk<6UbuAH)MNq%9QFJHXBIH#Nc|k7L94ws5KoyVxRVEzR;qJv=vJ$c~2Y}%D=u7r^qhm$NxX^t&jyzW8!&*Hr=>h;dpP~tmUp7SGkC3G-x z&(9P1gC#csKEAP1Cky-jShhEs@W`otJ)L<5>S^Ys8-*-W52K6K0*h@S5)F@>`(x32 zM&rt%r+blPHNiPTuXi_`9ZW%Tz&>0}P;QKM{>lO-3$pxc=WgWlgPYlnL0}0xmbmLa zJe1!geH~yQiVlYPXiHH5g>BR+Z4I)ZaLb~+!iQL}YBxORu@rzGt zr8$|#k%JUZb8CV~m4>Rqvr%8E1jc_(Q{C?XPWxh+Kj~BBh3rjOYdV_{%E5thGfB-4 zIF!_^!%b}Uv-BnA>F(XC-IRtbtMonz*WClV$2J9KUR!Wg&dzTaB|v_k%W))%e=5$_`iOys&rIDOvu(i9kG`;xD}|*Tq0*hwmWeyW`RIf?#%6zdjgQ z9gCwO)hI%@V`KzgM00tpV2*WzRsV>?LFcj}@EqXXlkI(&4G==Wv7pAk=ye2=LQ8@XF|fwiJqFn zrM<~cJZz0kj1$w!mOHy5LoU0g=U z>wP~_Zc`Gvs`Dn!VC0ptU5m1)!hP_O!NX)v zTQ?@MY_M3IYUk18Rz%BJJuV9x<&eYa!rZquAoRof;f6p#B7`qHT)k#A5uRpV$TXWx zKp;(#@J$Siw0v+!+yqbMqvp)EApB4#Z>9{*=|}#)k9c&Zy)9^BtC)61V?H?{Y?@@` zJ+-P>(@Zf*X#a`HN&Du>?FuEmrv$Hr9X>6gpXxt05K@m|uYX-^j9l9cx)DnOYnocW zA05^=;C{HjkQeHfHN0ft?}#lLf+NO(ZO!p54!Q^iiSc=$BdwXJ% zv=bIswSC#e#qz&g@Cau3!fJagGqdj4+lPyppjsns9izw*ZLYZ(M(GbZiKd_CjDHuO zK9t+yMhOf0Y*;3z@@7u=s~zg^7Yo#kjTW9)=OZWEvob zvj7Sp7XvZIZ_NyzX8%S6&`GwN+p3DomF)%JF4qNJ7UW{1re0I(&+1OuL4;o1JQV4T zM2)9KKdFDf!YMK>4%B1UQK0d?69y!5 zQb9R1aSjZopWW(#y+qKgt%XCe6AcbluPt>znk+Yq3?Rb*^(p)Hn?PbxxIdNLms}bt zR1Xci={mj}O%pGi0!&4=yc&wJf%1HD(=9E-fNBK_WDQHM3>3c$ zc|Z2iA?vm_*D*{h3$%4SWd^g__<7wi2p}P&ff4tu1pavS_#TAes55ziK)Z;J#^rtI zjbd}%ZR+El+C7q&q#O7N0iv>C2Az_(`Tpjt&hm!xVkYAVV5U^{ z;~@Uwb6!a@>u?m+mD`I`laocGQy1tgepgh{kU;9xILjL0ZN!U9fN-l?1jZc(!hMVc zLwp6`DrK(akmVQ*#OhvzO#peb@7c|b z>e?Z-?FlYP?6XcYsW3RwCIMCTLy9dXo`&h!)`)&>rc)sY9$XsmPQAho#d+dM(LXtX zT#MxI|7*<5vrICg@Qh{$*&-i=X?xBJ(~F6QxCX?1bGi62ERk?9cE|JUUSwa?#dAW# z8IA*~NOq9C>u5~nWri;uK zs6+KniyKkyLEcj3q~plcema}WjRm*SE#2Xf3e@R{ni@#`s-UJz$e#Deej$GJbPupN!?IWr0-p=D>)!5FouRU7-92b8w{=!cwJ z^EGU~FJN>doI5Fch{VnMuFmtNiSYXbkN*C2J`8+re)H{{eB1FqxvbpeNRTgEZpNe$ zmMdy3FhC;pZgpWGD%XEH+jXakeS|aFpjm@0uFzQ|b^r@X<@BIfS*K*8F_NdpJWEth zDL}Ku{bf}9&gQjCEi%^E9E+RCmr2M`z?fW15IdT@1Mza*${WRDgH8)Wnr>~HvrDZ1;cEt$GEBmw74NZX5 zWt}DziKOzK}sP=!-VLZt5AlaiH|BT@YF%RHQlRDv{F zZq|uPj)F1GA4j*EIZEY{Ul<45?sM>2Q)1y9tQO$=L<(7AZ=Kc8$#_C7IS}t7(~8{% zyr~0Cmq$b4aBu6gJAbxC>js5}(y_F!_xnW( z4mqaLXjJ{^K?wyK8x3)CVnU|7%YoEL?WiNel8Zn6s*LmPyP$=8SXxv+=VE3!X*7GC z+PpDdErT3RNE))+1G7JSO_6X=_he%AZ3|#w7pxm;|c+uuQk7 zD`uX7l>WtUZ%H5qL>ha9`0EYF`r*N&J*Um71{FX!#%gyO%{J)-PT6R;BZ%v9IqYJ9 z@a9v|eA8Fw^~0V{8{+r`@Wc91+nd2CAvgBm=jDm4(nf&jdm}kn`lI0tLRYvy=Gvn05{j{ofwgZe2Kt;CrAZ;`&Quu zRU##*ixD8x<>!~nN7!wsJ^^Qgp3r(tof6LB6i?C<_XEk2o{m8AZRLzRXL?bs>hd8)Qa8~_{nHE%wE^u|iFPoC<=QT!DB zi!Jhbpn!sekz>feqWn*Eu{ZW)ms=4e>KA}Y9{PMH1_w5Oaje!_%_sG~vBiTaDgl27 z9%n27)DuR?v!1H0fQZjPejCmqF7q7@1xU-o$aQaaNcj9M78T#mfB+kSHjnX6BiT&@ zph>E}E5p3Qt0fQb;3&80EA!hqjq*r?ZiK=YjDPoW2m^?~Nz)itmnd}VxO1m!HxAx4OPSGq`PomP7xeW@*kyF~ z`w7X;eF30*428++cbXTQznT<3>E5C0cQ6&0CJ6xifP54HrT+&)4FeE-5Df>XPOOH9G_d z8%!(uyc@8X3WOjaR=SwrC{ioEwL141qH91%@KaIYf33Jq-!s7LP?}IL1iY?`-%Ej^jf9%Bt(y`_)t=%dnOPKO`<{dQdhXhRRd*R}A{skB2OG<;c@*L4$ z16@r!1DADR?*<&ql_HfEtR0(3ANAzzFrlAR#xCx)zDmvpg_?~}>?i4)mOCF5_^sn#nFE8f_aZD)sG zJV%t~fO5CW?fi zjJ|`Tj|j?J)@kkTH{((AUTrS=N^9cjEoMEF?t#*5)p?Rhm$PYZ%D-2Z8{eSUDyppf z26rR?N2G%-LH}}lK)OeZ70r#B`gK;@>m~1#*yyopi88f1LAktZp#6^vmNCt+Q0~X6 z6hCmobc2EDD5HbpDWn*RCofLZ%dwc5?Yc)Y&IXUM$V0F2^;ibCB0UJ0`?a^5Bc3?S zN%y!W$D0uFK$%pR`+XzYk+N7_=1$?^jM2RFH`R3Wl#zZZ=;YXI!<)>QVYAfsX z+Z{>Co@rCe z02O1IpQ|>EX?ooGmT|M21|<>!*M7Ioazl79nHQe8X>FV!o|Ls#L07_ZqU6e0tjRP# zCXwWgZtXB<)z0HmT>9|?vVqq8KF&fFQu#tlbNLuXoU`ptKeN^LPgm+S8;Z>4r1RU8 zDkk+l>F{ljLhi3lzmKD`KGcy97dwn_AadGXhE3)O9QD35)hZe_I1{%?4{3RMHtL1^ zYino>Nq49wx0`)l_seV5h&j3Wc}8o6Zw30ZK=}l9WTI?)IFyJNWPFnUMyD!+@wURr zbDp_dPUQF5CIxbB0C7!+#of9(?zysTE*qsMKpjrtFmnv@SY&j!Y1e45T|Xa4pwZs? zK(5?m0vTvO-Ic@tXHTfC`m6DC;O)Um9@E8zd^-;J4=hXn)U1|`Zs&#Li<>1^f)Y$~ z$E_DA2aB2enWH%%SzaWc6a9$F^WwhITh=@n)H2FeDcI_9r=Tee8mGg!sEn9MG%$8_f!p+uld)TY~;%X-6CSctS_zQFzw)Xc1n%pW}f?# zs5V^#pEsT2AUe+%FK#bPk8Sz%q7W|jy06B`+pNTqwpzt#+pCOy0rO z(%e`JAc6BCfn)N1yS6dsqiXfAzFsDi68j(osCa-`a`N?55#tEC7#4+6qw;$}?moBG*-vu)eBqjtgBLMk2wA!QB>1H} zDy_!v2@FBz>P{k4>p8f%O9fIT+M+bjaQtE}&rdPZ9wH_TKe@4Skf`H^vQDW~+E&FQ z93j4b;)WC6IG-SsXDkdK)eA+|d0Lfmp0$CpH(T-3dA@#l^gyA}Y75b*`fLu84YPvz z{HR-&62G3sT=QpA?e2xB{i+|`mp4ah>XBN_H!?q~#zam;0urushQAN32ce{ zkV{uu)RTO0SnaQ4y{lWzn~i)Q?f+QjUh9Z{VD>)Sd(lZ{SR~j6id&3Fo@-BE$2~R4 zq*MZO`VEjHzg$3-*eq41{= z80QeMTWBhCYv@|n9bwj!#4EtzPG4E{Sd#Ucg|Q1taXjR)0*ZP9BT5h(J&#Uh>@R-l zKwK6hq6~Y3OXTCJrc*5viMwqN{l{Q_Y%woI-g^O%wqfPmuzf#L&lytrF*{>LVkD>$ zo}K0F@G&x=lql4FQa;KBxBn1PMfvlhjc>}gau`QhJH_&wi%ti+7{`+15ufSwXQRa2 zBvNh|FWq-xzfrX+*QwvLrvezJrIh;o_dZH1fydm=Ve=gpYm2qiozaRZwTkjeK0kjI zv&mXmT86V^$%3`BR2<8@j#mqqNnPVFw+RX4LHXL|535;l`hjN6ZcD&Sn)iBl&r3RQ zhoZ=Xj|5iTwnBW;hUs#}=-pOpZ=&zX?I7gVTKOa3e$=2qKmNKe(Q_ndK>)?zJg-sr zb*gG-EluY?T^4JLQ$>Mjl#c-CP2+TlYSKE8U4-P(wpzlLQk2gTXB&Nq#k+@KudxuU zuv^nLPgx<8^{?Uz%xqSNi~mCb*PnV|E+wEV7$GN^0m%@n#PfW6?zA$(lg@p_VgXdZ zvBdV+T!u*noGmoO4&FPsre0y!oyyPpWhO-@Rw>lVVcrnlm@DNEeH=_^Abo826n@O}ML6xPY5OKq4-)fad_3I`7~#)9M0q>1ooYDrk5J6g{9$^}^2K73$s2Q9wfNPz{&VGiBGh|* zo%plXp}|}Q+;Cxc02WUg6wLK@-*u%0=>;j3B(PFxwrU_9w@@IP$4}nw%~eO462()F zQbN2(sg+lXs5`%3gwt9Tc5ok2xMN2`%leZLeUP(Z9}y>_)BEz}8J{vq`j2vnRwLyH zcvi7W`FQ3$tCJLD8|t!!&!tcwUL>Z5G>+zEUH4DNv#y?dB=SVMH<=2?wD_6SD?J0N zKK<#)Q6=hIz$SGxY+9(&lN05SsD{A!KWKlB z_-R;F~ddRJ&(%Q=UF)?PnP_{r_^*oFU(x{@qa zGTpAmbyEY1I%RR}DoL-mWk=)C`e$D^c>XXZ}k-xR*RY5G;zcyM$`Uzo^;Nm`6jXTbI&?v=0zg3q0f7ISWe1g z-vPu(`ER3z-jo!Z+=0joL1T2e_i&m$AFil7Vb;sV~AojB!>PcyO52#6! zint!YWY+sSVKNW2Q~3;?u%=I5nyUCd%vD&{L9^eozR&GoH!;YnIi2uibE9L~U{v_@ zdW&yjbHcC14CrRGy{s&d&Xi7p?AgM@DVZ&{-BoB)cSp?-LEd(^=&VatR!bz&`F5Ru zIQ@WPtYkIKrd;G|cvJ(I{;4xj{cB3(zkZI((MDl&Om^-T|qcoW2RY1#w;^Jl= zu)N$JooKcz;UgmXr6!$ssBE$RncE4IMr&CPa6~T>igW*QC-_py??WDfN0!-mgy4F9 zK8ld5SBW|Y;iEzO-|Y`nhrgLgyB0vY=+{T6wfYMc08th&Z*`rq!7ALEz20G^l|=7x z*)XPE+o0Cm+}{p;tHoWQ1*{;RTq|)QBlS*B-SyUFY%!l(z*k{&qm+qp9_ozUJW}A# zE^&`Y29M0|cQ=djSyzDn4~Jo#XaOS7tL0+U`$3nOkMP3siSfyN&yWDT(S;`gEvd*b z`U57FDqDslKdY6-v0japLW|kj@f~m3paY%hUs_VjE%u1xUdXh%N~anNs#ZOBr7PP% z%vS2pRw3`Ndop|wznG1DHpGRlAa+ z{4=;ZJMtwrERoLXA&ZEvLC1t{E1>Qwk&SPAc-N3&-{$)Ec+pMt*Qqy9UtM(>#&Y;) z2m3z2L5pXao$`Atd%a#Oi&C@41gXL&!uJ@^hd>YZn*^D}uwuah?qrb{>ZtWzV0iDa zI}lH#`+_Br>sZv`A5SE88H-~%QXHLDBL*FHc8Ofa+#O6prU_v?nbktOH&9aS>VZmU zMnb^}Rt{d}c3@?brCVNN$0^vl3jK_>-Ky zvzJqD6JYMB8Wa3MR1-3d!Jv#W%{JQ`$mXU{w86-)Wo}PVrWQC1EX7HyDx3v7;-6pc zg2?|`NHirf>`tBC9ETsqGv*ZR8K{E)9Yz+*BQxRSV)~ZeZjm-17XnX-Gc}|8c8c!9 zn=m^+-sql>`g<*wCTV_avu7>xg}oJw2+s`x*8TC=UmTRocZs=Nro&lZYQ0*`zyfyA z+Pg)1IBs3of3k-mS4M<1vu=mIay+0HDgFl$)K{5&k}(ZbMi*&4DH%x!{=SJtYTMoZ zVoCzQwU<9r?m^d`FLOA)LssdN&*L}sNnNO>KU-es?-{q0QVRaSpxNK=4d&(~7;%A( z^10HvR{U!Vb1j!r!~%WJEIAyj%i}Rn1^``SI;hS0pHaBRR4HQwy|l7pA%fJu^TQyj z1zV4~$J6KwU^Kdg*zSi4CH)c_Sk+Yb=V=;nHr#58(1ZEnfz*Mu2?6hno-PiRqb*Tb zjQA*WeMnn5bwJQw6e?+!NdVm!pi_v6jOyU-qDNv}wo`dKoi0gSCmB&G%51U=rw zM@kb+B4?<0at{?9trq7SYf;+2qn@B7@;TA?A6$0F#IiC=6~S1i4pfqDat0F!yW7&F zq_E5|-ca3-fy{AAs+geih?OvjOJ>8I`k>5a>WK_5%S%!?T;09B0S~O6`d#}Xz=Rng zrf@uPAe}LpkEp`n<0varfG8%1PbY*enIbA{(be~Gb2!hm!7H|@=0OkK-6bKL(T3%$q5z%U* z;no@v-|6~%sp@E)R7x&PlO@Sn>ZloMeD-nsfWbGo@%oaCh&C6se^0Q37vIqT-$yxQ zpGa~m=i5@Wc-(+XXIpwK{91TM=k<7G#@egxYn9R=t@*4$&M%`g2AjzBhVJ&|}LzhIf0xI7axR-7&7wSmWJW!iB zd+%LNR8dS*mkI;leYyr4Vy!jHzRAjw?+hw`_~}a!bvr_QTeK4>^}4Ce!IA|18X~fY=?o zQPnDy4<{o?4gCQl8RoRz94<%1x6?lA2RyRypV^z| z!Begj!ls{sS5PDsbccdZUkf{1EAv`hUtCpm_TyIqD~OVYF_*<2BV1pKXCg46Lb_HB zwy}4eHQoFNgtJa@ldmX!AsMs!29Za#g0|9rjj^H2L9jR;b38xR9^hqot}KOPE$&(J z^Y^uRLPd7($9FRL2eN#m&OHTdYqnuqHSn4El4XwjCDcr@B3M3kTb5UWf3lEzd;W-D@zdQK=`)se^ZB#wc( zB_ZTvkzy7Iuy6TTZSeRQ*dNU8Ew4YOIeBVlOY7JTqGk0=#9_M258}eYe-;B80r%PJeG?aZcb}v**<*P+=STd03>UWZ|F{jD*2gKote_C@I+i zufl!Q4@ddd9(7M5uJ`OKRVwQH- zly?kae{^Lf`3g;|^)*IOFc}d}7aG6twyKumpFo68C=+uJw)W`Ei<8T3BjmB5(eo-o z!p><7?*vFR1-~r-@OVn{D1R_LwFR}Y#~=mr5bxG)I#3((Teb<~O8#_$o7S6>ZS`<3Qnt0SERqj zrL;~_=_hYBMn*)u!eLISvHBZ`Qz<@Cuk>Ed+@~2G?Nze+sL z43DEuTNRL%qCR}1vv8-BucFO22}$~zHvH#+ZuNt3VTDXA8qZtR4S2g2>$&v^H8=fr z?6f1Gs`H*zWh(=JLv~$Q2>n4{Dp>W6T#G;m4xsRTCVnh^4D6td<4|^7TP}9%$<6)5$DIuO55E}VP%P9+l6YQ z!L+G~QRO)a|H&uzE4V0KOwz|Yw&&52BvuApT3d|h zyQAmV`}8$$!lbL`3oiWhv#T=3nVlD4nkgjt9B%%!<>G+BZHzWt#S$eO>1Gji0qSNI-z7@hhMgQp;*~l&SOoouTSSt_AwfqQ75(3Ar;6#c;p}FnzVh zY#;^}q{i=kgUqI%6bis5Ncr<+@jj(7mn9$&s;0p15>Vb(@;WGLy{|0%llswogSb)p zXS|fIH2cgB_&+<3!+oFeO7Z3%0)j@CQmpuQlMk`*?@Q~lTaL_3A!~GMEDEVf-}mKx zSd8^9N z@AjZ5#?}XH0B*_aiyEVlXa#L6w@G7+M?Ne~GdfneL@DRb2gf_a8_Fla57$K}_U}eB ziek~gOkik*ZI-`0@gTg$0B`L3>z_Hh|NBp!_%)w_xv@E#`D1(oPLk>jU?05QR@L(% zm*IV81J&wOwxIz0$~`f`_32ZcC=%N2jWc|vY-o(=-< zr*HpFvGx&|3ripgQ@kd~`Ht=~E4<$<;GiY<2YA5u(Wm`7aSE>Y>%0DJfSXFv{*DLl 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 From ce0b6b454dfc94054d67ac6e2a71458f97bcbc11 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Fri, 4 Aug 2023 09:38:05 -0700 Subject: [PATCH 097/202] Teensy formatting change. None of these should be list items. It was a bad idea. --- doc/7-systems/amiga.md | 3 ++- doc/7-systems/ay8910.md | 3 ++- doc/7-systems/ay8930.md | 2 +- doc/7-systems/bubblesystem.md | 2 +- doc/7-systems/c64.md | 2 +- doc/7-systems/dac.md | 2 +- doc/7-systems/es5506.md | 2 +- doc/7-systems/fds.md | 2 +- doc/7-systems/game-boy.md | 3 ++- doc/7-systems/k007232.md | 2 +- doc/7-systems/k056320.md | 2 +- doc/7-systems/lynx.md | 2 +- doc/7-systems/mmc5.md | 2 +- doc/7-systems/msm5232.md | 2 +- doc/7-systems/msm6258.md | 2 +- doc/7-systems/msm6295.md | 3 ++- doc/7-systems/n163.md | 2 +- doc/7-systems/namco.md | 2 +- doc/7-systems/nes.md | 3 ++- doc/7-systems/opl.md | 2 +- doc/7-systems/opll.md | 2 +- doc/7-systems/opz.md | 2 +- doc/7-systems/pce.md | 2 +- doc/7-systems/pcspkr.md | 2 +- doc/7-systems/pet.md | 2 +- doc/7-systems/pokemini.md | 2 +- doc/7-systems/pokey.md | 2 +- doc/7-systems/pv1000.md | 2 +- doc/7-systems/qsound.md | 2 +- doc/7-systems/ricoh.md | 2 +- doc/7-systems/saa1099.md | 2 +- doc/7-systems/scc.md | 2 +- doc/7-systems/segapcm.md | 2 +- doc/7-systems/sm8521.md | 2 +- doc/7-systems/sms.md | 3 ++- doc/7-systems/snes.md | 3 ++- doc/7-systems/soundunit.md | 2 +- doc/7-systems/t6w28.md | 2 +- doc/7-systems/ted.md | 2 +- doc/7-systems/tia.md | 3 ++- doc/7-systems/vera.md | 2 +- doc/7-systems/vic20.md | 2 +- doc/7-systems/virtual-boy.md | 2 +- doc/7-systems/vrc6.md | 2 +- doc/7-systems/wonderswan.md | 2 +- doc/7-systems/x1-010.md | 2 +- doc/7-systems/ym2151.md | 2 +- doc/7-systems/ym2203.md | 3 ++- doc/7-systems/ym2608.md | 3 ++- doc/7-systems/ym2610.md | 3 ++- doc/7-systems/ym2610b.md | 3 ++- doc/7-systems/ym2612.md | 3 ++- doc/7-systems/ymu759.md | 2 +- doc/7-systems/ymz280b.md | 2 +- doc/7-systems/zxbeep.md | 2 +- 55 files changed, 68 insertions(+), 55 deletions(-) diff --git a/doc/7-systems/amiga.md b/doc/7-systems/amiga.md index 0d3d688c0..c40d6eed6 100644 --- a/doc/7-systems/amiga.md +++ b/doc/7-systems/amiga.md @@ -18,7 +18,8 @@ imported MOD files use this chip, and will set A-4 tuning to 436. # info -- this chip uses the [Generic Sample](../4-instrument/amiga.md) instrument editor. +this chip uses the [Generic Sample](../4-instrument/amiga.md) instrument editor. + - the maximum rate for sample playback is technically 31469Hz but anything higher than 28867Hz will sound glitchy on hardware. - sample lengths and loop will be set to an even number. - samples can't be longer than 131070. \ No newline at end of file diff --git a/doc/7-systems/ay8910.md b/doc/7-systems/ay8910.md index 6d1838bd4..8c88d704e 100644 --- a/doc/7-systems/ay8910.md +++ b/doc/7-systems/ay8910.md @@ -49,7 +49,8 @@ as of Furnace 0.6pre7, AY-3-8910 supports software sample playback, where all 3 # info -- this chip uses the [AY-3-8910](../4-instrument/ay8910.md) instrument editor. +this chip uses the [AY-3-8910](../4-instrument/ay8910.md) instrument editor. + ## AY derivative modes diff --git a/doc/7-systems/ay8930.md b/doc/7-systems/ay8930.md index ef7121372..545e8fd0b 100644 --- a/doc/7-systems/ay8930.md +++ b/doc/7-systems/ay8930.md @@ -58,4 +58,4 @@ as of Furnace 0.6pre7, AY8930 supports software PCM, where all 3 channels can pl # info -- this chip uses the [AY8930](../4-instrument/8930.md) instrument editor. \ No newline at end of file +this chip uses the [AY8930](../4-instrument/8930.md) instrument editor. diff --git a/doc/7-systems/bubblesystem.md b/doc/7-systems/bubblesystem.md index 0ead7540a..946fd61d8 100644 --- a/doc/7-systems/bubblesystem.md +++ b/doc/7-systems/bubblesystem.md @@ -14,4 +14,4 @@ Furnace emulates this configuration as a "chip" with 32×16 wavetables. # info -- this chip uses the [Konami SCC/ Bubble System WSG](../4-instrument/scc.md) instrument editor. \ No newline at end of file +this chip uses the [Konami SCC/ Bubble System WSG](../4-instrument/scc.md) instrument editor. diff --git a/doc/7-systems/c64.md b/doc/7-systems/c64.md index e001f557b..04035df58 100644 --- a/doc/7-systems/c64.md +++ b/doc/7-systems/c64.md @@ -60,4 +60,4 @@ two versions of aforementioned chip exist - 6581 (original chip) and 8580 (impro # info -- this chip uses the [C64](../4-instrument/c64.md) instrument editor. \ No newline at end of file +this chip uses the [C64](../4-instrument/c64.md) instrument editor. diff --git a/doc/7-systems/dac.md b/doc/7-systems/dac.md index 118c4b25e..3c6445db9 100644 --- a/doc/7-systems/dac.md +++ b/doc/7-systems/dac.md @@ -10,4 +10,4 @@ none yet. # info -- this chip uses the [Generic Sample](../4-instrument/amiga.md) instrument editor. \ No newline at end of file +this chip uses the [Generic Sample](../4-instrument/amiga.md) instrument editor. diff --git a/doc/7-systems/es5506.md b/doc/7-systems/es5506.md index cc476cef2..e36eff1c5 100644 --- a/doc/7-systems/es5506.md +++ b/doc/7-systems/es5506.md @@ -42,4 +42,4 @@ it supports a whopping 32 channels of 16-bit PCM and: # info -- this chip uses the [ES5506](../4-instrument/es5506.md) instrument editor. \ No newline at end of file +this chip uses the [ES5506](../4-instrument/es5506.md) instrument editor. diff --git a/doc/7-systems/fds.md b/doc/7-systems/fds.md index 411f2b47f..f26ccef9b 100644 --- a/doc/7-systems/fds.md +++ b/doc/7-systems/fds.md @@ -28,4 +28,4 @@ it also offers an additional 6-bit, 64-byte wavetable sound channel with (somewh # info -- this chip uses the [FDS](../4-instrument/fds.md) instrument editor. \ No newline at end of file +this chip uses the [FDS](../4-instrument/fds.md) instrument editor. diff --git a/doc/7-systems/game-boy.md b/doc/7-systems/game-boy.md index fae7e288d..b2b624dba 100644 --- a/doc/7-systems/game-boy.md +++ b/doc/7-systems/game-boy.md @@ -23,7 +23,8 @@ with stereo sound, two pulse channels, a wave channel and a noise channel, it pa # info -- this chip uses the [Game Boy](../4-instrument/game-boy.md) instrument editor. +this chip uses the [Game Boy](../4-instrument/game-boy.md) instrument editor. + # links diff --git a/doc/7-systems/k007232.md b/doc/7-systems/k007232.md index 3da1d3af0..f7e9d69c1 100644 --- a/doc/7-systems/k007232.md +++ b/doc/7-systems/k007232.md @@ -12,4 +12,4 @@ it has 7 bit digital output per each channel and no volume register on chip, so # info -- this chip uses the [K007232](../4-instrument/k007232.md) instrument editor. \ No newline at end of file +this chip uses the [K007232](../4-instrument/k007232.md) instrument editor. diff --git a/doc/7-systems/k056320.md b/doc/7-systems/k056320.md index 541f42ba2..a78c16a39 100644 --- a/doc/7-systems/k056320.md +++ b/doc/7-systems/k056320.md @@ -10,4 +10,4 @@ the 056320 is a sample-based chip that featured in a number of Konami arcade gam # info -- this chip uses the [K056320](../4-instrument/k056320.md) instrument editor. \ No newline at end of file +this chip uses the [K056320](../4-instrument/k056320.md) instrument editor. diff --git a/doc/7-systems/lynx.md b/doc/7-systems/lynx.md index 6e17b1a16..e3bb087db 100644 --- a/doc/7-systems/lynx.md +++ b/doc/7-systems/lynx.md @@ -20,4 +20,4 @@ the Atari Lynx has a 6502-based CPU with a sound part (this chip is known as MIK # info -- this chip uses the [Atari Lynx](../4-instrument/lynx.md) instrument editor. \ No newline at end of file +this chip uses the [Atari Lynx](../4-instrument/lynx.md) instrument editor. diff --git a/doc/7-systems/mmc5.md b/doc/7-systems/mmc5.md index 1531381d7..90d8c5696 100644 --- a/doc/7-systems/mmc5.md +++ b/doc/7-systems/mmc5.md @@ -13,4 +13,4 @@ additionally, it offers an 8-bit DAC which can be used to play samples. only one # info -- this chip uses the [NES](../4-instrument/nes.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [NES](../4-instrument/nes.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/msm5232.md b/doc/7-systems/msm5232.md index edcd281cc..17ee9ee03 100644 --- a/doc/7-systems/msm5232.md +++ b/doc/7-systems/msm5232.md @@ -27,4 +27,4 @@ Furnace implements this chip in a way that allows the following features: # info -- this chip uses the [MSM5232](../4-instrument/msm5232.md) instrument editor. \ No newline at end of file +this chip uses the [MSM5232](../4-instrument/msm5232.md) instrument editor. diff --git a/doc/7-systems/msm6258.md b/doc/7-systems/msm6258.md index 1d56e756c..9cabf1405 100644 --- a/doc/7-systems/msm6258.md +++ b/doc/7-systems/msm6258.md @@ -21,4 +21,4 @@ MSM6258 is an extremely basic ADPCM sound codec. it has no variable frequency ra # info -- this chip uses the [MSM6258](../4-instrument/msm6258.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [MSM6258](../4-instrument/msm6258.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/msm6295.md b/doc/7-systems/msm6295.md index 3c5c26230..9906de6b1 100644 --- a/doc/7-systems/msm6295.md +++ b/doc/7-systems/msm6295.md @@ -9,7 +9,8 @@ an upgrade from 6258 - it provides 4 ADPCM channels, at max 32 KHz (still no var # info -- this chip uses the [MSM6295](../4-instrument/msm6295.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. +this chip uses the [MSM6295](../4-instrument/msm6295.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. + ## chip clock rates diff --git a/doc/7-systems/n163.md b/doc/7-systems/n163.md index f99465651..af1bffbee 100644 --- a/doc/7-systems/n163.md +++ b/doc/7-systems/n163.md @@ -41,4 +41,4 @@ if the waveform changes (e.g. ins change, wave macro or wave synth), or the **lo # info -- this chip uses the [Namco 163](../4-instrument/n163.md) instrument editor. \ No newline at end of file +this chip uses the [Namco 163](../4-instrument/n163.md) instrument editor. diff --git a/doc/7-systems/namco.md b/doc/7-systems/namco.md index 21cfa7b28..ffa5817b9 100644 --- a/doc/7-systems/namco.md +++ b/doc/7-systems/namco.md @@ -11,4 +11,4 @@ everything starts with Namco WSG, which is a simple 3-channel wavetable with no # info -- this chip uses the [Namco WSG](../4-instrument/namco.md) instrument editor. \ No newline at end of file +this chip uses the [Namco WSG](../4-instrument/namco.md) instrument editor. diff --git a/doc/7-systems/nes.md b/doc/7-systems/nes.md index 4c11d3a27..28df60676 100644 --- a/doc/7-systems/nes.md +++ b/doc/7-systems/nes.md @@ -59,7 +59,8 @@ also known as Famicom. it is a five-channel sound generator: first two channels # info -- this chip uses the [NES](../4-instrument/nes.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. +this chip uses the [NES](../4-instrument/nes.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. + ## short noise frequencies (NTSC) diff --git a/doc/7-systems/opl.md b/doc/7-systems/opl.md index 6dfdc04bf..ac82ded0e 100644 --- a/doc/7-systems/opl.md +++ b/doc/7-systems/opl.md @@ -81,4 +81,4 @@ afterwards everyone moved to Windows and software mixed PCM streaming... # info -- this chip uses the [FM (OPL)](../4-instrument/fm-opl.md) instrument editor. \ No newline at end of file +this chip uses the [FM (OPL)](../4-instrument/fm-opl.md) instrument editor. diff --git a/doc/7-systems/opll.md b/doc/7-systems/opll.md index 91295e9ec..92a81490b 100644 --- a/doc/7-systems/opll.md +++ b/doc/7-systems/opll.md @@ -68,4 +68,4 @@ the YM2413 is equipped with the following features: # info -- this chip uses the [FM (OPLL)](../4-instrument/fm-opll.md) instrument editor. \ No newline at end of file +this chip uses the [FM (OPLL)](../4-instrument/fm-opll.md) instrument editor. diff --git a/doc/7-systems/opz.md b/doc/7-systems/opz.md index df49c2ea6..c4b0413a9 100644 --- a/doc/7-systems/opz.md +++ b/doc/7-systems/opz.md @@ -116,4 +116,4 @@ no plans have been made for TX81Z MIDI passthrough, because: # info -- this chip uses the [FM (OPZ)](../4-instrument/opz.md) instrument editor. \ No newline at end of file +this chip uses the [FM (OPZ)](../4-instrument/opz.md) instrument editor. diff --git a/doc/7-systems/pce.md b/doc/7-systems/pce.md index f4953787f..03727cfb8 100644 --- a/doc/7-systems/pce.md +++ b/doc/7-systems/pce.md @@ -23,4 +23,4 @@ furthermore, it has some PCM and LFO! # info -- this chip uses the [PC Engine](../4-instrument/pce.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [PC Engine](../4-instrument/pce.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/pcspkr.md b/doc/7-systems/pcspkr.md index 59f2f4663..d84181bfe 100644 --- a/doc/7-systems/pcspkr.md +++ b/doc/7-systems/pcspkr.md @@ -32,4 +32,4 @@ ha! effects... # info -- this chip uses the [Beeper](../4-instrument/beeper.md) instrument editor. \ No newline at end of file +this chip uses the [Beeper](../4-instrument/beeper.md) instrument editor. diff --git a/doc/7-systems/pet.md b/doc/7-systems/pet.md index 9d3188da2..e99e17925 100644 --- a/doc/7-systems/pet.md +++ b/doc/7-systems/pet.md @@ -12,4 +12,4 @@ some of these didn't even have sound... # info -- this chip uses the [PET](../4-instrument/pet.md) instrument editor. \ No newline at end of file +this chip uses the [PET](../4-instrument/pet.md) instrument editor. diff --git a/doc/7-systems/pokemini.md b/doc/7-systems/pokemini.md index f82d2ba50..7633f27a2 100644 --- a/doc/7-systems/pokemini.md +++ b/doc/7-systems/pokemini.md @@ -8,4 +8,4 @@ none. # info -- this chip uses the [Pokémon Mini/QuadTone](../4-instrument/quadtone.md) instrument editor. \ No newline at end of file +this chip uses the [Pokémon Mini/QuadTone](../4-instrument/quadtone.md) instrument editor. diff --git a/doc/7-systems/pokey.md b/doc/7-systems/pokey.md index e92417edb..31832e580 100644 --- a/doc/7-systems/pokey.md +++ b/doc/7-systems/pokey.md @@ -38,4 +38,4 @@ a sound and input chip developed by Atari for their 8-bit computers (Atari 400, # info -- this chip uses the [POKEY](../4-instrument/pokey.md) instrument editor. \ No newline at end of file +this chip uses the [POKEY](../4-instrument/pokey.md) instrument editor. diff --git a/doc/7-systems/pv1000.md b/doc/7-systems/pv1000.md index 2ac6e953e..97cb617b5 100644 --- a/doc/7-systems/pv1000.md +++ b/doc/7-systems/pv1000.md @@ -8,4 +8,4 @@ released only in Japan, this console was pulled after only a few weeks on the ma # info -- this chip uses the [PV-1000](../4-instrument/pv1000.md) instrument editor. \ No newline at end of file +this chip uses the [PV-1000](../4-instrument/pv1000.md) instrument editor. diff --git a/doc/7-systems/qsound.md b/doc/7-systems/qsound.md index 76391b10b..6aa57d365 100644 --- a/doc/7-systems/qsound.md +++ b/doc/7-systems/qsound.md @@ -20,4 +20,4 @@ there are also 3 ADPCM channels. ADPCM samples are fixed to 8012 Hz. # info -- this chip uses the [QSound](../4-instrument/qsound.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [QSound](../4-instrument/qsound.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/ricoh.md b/doc/7-systems/ricoh.md index 8a7a22287..1c3695cad 100644 --- a/doc/7-systems/ricoh.md +++ b/doc/7-systems/ricoh.md @@ -8,4 +8,4 @@ none so far. # info -- this chip uses the [RF5C68](../4-instrument/ricoh.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [RF5C68](../4-instrument/ricoh.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/saa1099.md b/doc/7-systems/saa1099.md index 2c6f72bb0..8036ec71e 100644 --- a/doc/7-systems/saa1099.md +++ b/doc/7-systems/saa1099.md @@ -30,4 +30,4 @@ this was used by the Game Blaster and SAM Coupé. it's pretty similar to the AY- # info -- this chip uses the [SAA1099](../4-instrument/saa.md) instrument editor. \ No newline at end of file +this chip uses the [SAA1099](../4-instrument/saa.md) instrument editor. diff --git a/doc/7-systems/scc.md b/doc/7-systems/scc.md index 3d7cdde23..8e5b01475 100644 --- a/doc/7-systems/scc.md +++ b/doc/7-systems/scc.md @@ -12,4 +12,4 @@ the SCC+ fixes this issue though (while being compatible with SCC games). # info -- this chip uses the [Konami SCC/Bubble System WSG](../4-instrument/scc.md) instrument editor. \ No newline at end of file +this chip uses the [Konami SCC/Bubble System WSG](../4-instrument/scc.md) instrument editor. diff --git a/doc/7-systems/segapcm.md b/doc/7-systems/segapcm.md index 0fc92f0fe..296f2a884 100644 --- a/doc/7-systems/segapcm.md +++ b/doc/7-systems/segapcm.md @@ -18,4 +18,4 @@ Furnace also has a five channel version of this chip, but it only exists for Def # info -- this chip uses the [SegaPCM](../4-instrument/segapcm.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [SegaPCM](../4-instrument/segapcm.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/sm8521.md b/doc/7-systems/sm8521.md index e670116d5..c29ff79ae 100644 --- a/doc/7-systems/sm8521.md +++ b/doc/7-systems/sm8521.md @@ -24,4 +24,4 @@ the sound-related features and quirks of the SM8521 are as follows: # info -- this chip uses the [SM8521](../4-instrument/sm8521.md) instrument editor. \ No newline at end of file +this chip uses the [SM8521](../4-instrument/sm8521.md) instrument editor. diff --git a/doc/7-systems/sms.md b/doc/7-systems/sms.md index 8ec6135f0..36d13976d 100644 --- a/doc/7-systems/sms.md +++ b/doc/7-systems/sms.md @@ -17,7 +17,8 @@ the original iteration of the SN76489 used in the TI-99/4A computer, the SN94624 # info -- this chip uses the [SN76489/Sega PSG](../4-instrument/psg.md) instrument editor. +this chip uses the [SN76489/Sega PSG](../4-instrument/psg.md) instrument editor. + ## SN7 versions SN7 was extremely popular due to low cost. Therefore, it was cloned and copied to no end, often with minor differences between each other. Furnace supports several of these: diff --git a/doc/7-systems/snes.md b/doc/7-systems/snes.md index e12ef8fa0..9c57d7526 100644 --- a/doc/7-systems/snes.md +++ b/doc/7-systems/snes.md @@ -69,7 +69,8 @@ Furnace also allows the SNES to use wavetables (and the wavetable synthesizer) i # info -- this chip uses the [SNES](../4-instrument/snes.md) instrument editor. +this chip uses the [SNES](../4-instrument/snes.md) instrument editor. + ## ADSR diff --git a/doc/7-systems/soundunit.md b/doc/7-systems/soundunit.md index 378d9303c..00706c0f1 100644 --- a/doc/7-systems/soundunit.md +++ b/doc/7-systems/soundunit.md @@ -57,4 +57,4 @@ it has the following capabilities: # info -- this chip uses the [Sound Unit](../4-instrument/soundunit.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [Sound Unit](../4-instrument/soundunit.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/t6w28.md b/doc/7-systems/t6w28.md index accd56675..26d7d977c 100644 --- a/doc/7-systems/t6w28.md +++ b/doc/7-systems/t6w28.md @@ -12,4 +12,4 @@ this chip was used in Neo Geo Pocket. # info -- this chip uses the [T6W28](../4-instrument/t6w28.md) instrument editor. \ No newline at end of file +this chip uses the [T6W28](../4-instrument/t6w28.md) instrument editor. diff --git a/doc/7-systems/ted.md b/doc/7-systems/ted.md index a8c5cf48f..4333fcea6 100644 --- a/doc/7-systems/ted.md +++ b/doc/7-systems/ted.md @@ -11,4 +11,4 @@ none so far. # info -- this chip uses the [TED](../4-instrument/ted.md) instrument editor. \ No newline at end of file +this chip uses the [TED](../4-instrument/ted.md) instrument editor. diff --git a/doc/7-systems/tia.md b/doc/7-systems/tia.md index b56b97801..8b89616d4 100644 --- a/doc/7-systems/tia.md +++ b/doc/7-systems/tia.md @@ -31,7 +31,8 @@ Furnace isn't complete without this one... # info -- this chip uses the [TIA](../4-instrument/tia.md) instrument editor. +this chip uses the [TIA](../4-instrument/tia.md) instrument editor. + - pitch number can be used for absolute notes in arpeggio macros. diff --git a/doc/7-systems/vera.md b/doc/7-systems/vera.md index 2d684b43f..d4189412a 100644 --- a/doc/7-systems/vera.md +++ b/doc/7-systems/vera.md @@ -18,4 +18,4 @@ currently Furnace does not support the PCM channel's stereo mode, though (except # info -- this chip uses the [VERA](../4-instrument/vera.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [VERA](../4-instrument/vera.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/vic20.md b/doc/7-systems/vic20.md index 2177d661c..6d5a9bd41 100644 --- a/doc/7-systems/vic20.md +++ b/doc/7-systems/vic20.md @@ -19,4 +19,4 @@ these channels are not referred as "square" wave channels since a technique to p # info -- this chip uses the [VIC](../4-instrument/vic.md) instrument editor. \ No newline at end of file +this chip uses the [VIC](../4-instrument/vic.md) instrument editor. diff --git a/doc/7-systems/virtual-boy.md b/doc/7-systems/virtual-boy.md index 327238d5d..8dc11da98 100644 --- a/doc/7-systems/virtual-boy.md +++ b/doc/7-systems/virtual-boy.md @@ -44,4 +44,4 @@ additionally, channel 5 offers a modulation/sweep unit. the former is similar to # info -- this chip uses the [Virtual Boy](../4-instrument/virtual-boy.md) instrument editor. \ No newline at end of file +this chip uses the [Virtual Boy](../4-instrument/virtual-boy.md) instrument editor. diff --git a/doc/7-systems/vrc6.md b/doc/7-systems/vrc6.md index 35b402d39..ea85469af 100644 --- a/doc/7-systems/vrc6.md +++ b/doc/7-systems/vrc6.md @@ -19,4 +19,4 @@ these effects only are effective in the pulse channels. # info -- this chip uses the [VRC](../4-instrument/vrc6.md), [VRC (saw)](../4-instrument/vrc6.md), and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [VRC](../4-instrument/vrc6.md), [VRC (saw)](../4-instrument/vrc6.md), and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/wonderswan.md b/doc/7-systems/wonderswan.md index c3f73ddc8..e386461b7 100644 --- a/doc/7-systems/wonderswan.md +++ b/doc/7-systems/wonderswan.md @@ -22,4 +22,4 @@ it has 4 wavetable channels. some of them have additional capabilities: # info -- this chip uses the [WonderSwan](../4-instrument/wonderswan.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [WonderSwan](../4-instrument/wonderswan.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/x1-010.md b/doc/7-systems/x1-010.md index 9bc757447..7e0bea875 100644 --- a/doc/7-systems/x1-010.md +++ b/doc/7-systems/x1-010.md @@ -48,4 +48,4 @@ in Furnace, you can enable the envelope shape split mode. when it is set, its wa # info -- this chip uses the [X1-010](../4-instrument/x1_010.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [X1-010](../4-instrument/x1_010.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/ym2151.md b/doc/7-systems/ym2151.md index c08df4250..58b4fd1f7 100644 --- a/doc/7-systems/ym2151.md +++ b/doc/7-systems/ym2151.md @@ -71,4 +71,4 @@ in most arcade boards the chip was used in combination with a PCM chip, like [Se # info -- this chip uses the [FM (OPM)](../4-instrument/fm-opm.md) instrument editor. \ No newline at end of file +this chip uses the [FM (OPM)](../4-instrument/fm-opm.md) instrument editor. diff --git a/doc/7-systems/ym2203.md b/doc/7-systems/ym2203.md index 31ebee605..f8fd41fe9 100644 --- a/doc/7-systems/ym2203.md +++ b/doc/7-systems/ym2203.md @@ -103,7 +103,8 @@ several variants of this chip were released as well, with more features. # info -- this chip uses the [FM (OPN)](../4-instrument/fm-opn.md) and [AY-3-8910/SSG](../4-instrument/ay8910.md) instrument editor. +this chip uses the [FM (OPN)](../4-instrument/fm-opn.md) and [AY-3-8910/SSG](../4-instrument/ay8910.md) instrument editor. + ## extended channel 3 in ExtCh mode, channel 3 is split into one column for each of its four operators and feedback are shared. the frequency of each operator may be controlled independently with notes and effects. this can be used for more polyphony or more complex sounds. diff --git a/doc/7-systems/ym2608.md b/doc/7-systems/ym2608.md index 8a2588b22..51ea15d90 100644 --- a/doc/7-systems/ym2608.md +++ b/doc/7-systems/ym2608.md @@ -103,7 +103,8 @@ the YM2610 (OPNB) and YM2610B chips are very similar to this one, but the built- # info -- this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [Generic Sample](../4-instrument/amiga.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md), and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors. +this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [Generic Sample](../4-instrument/amiga.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md), and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors. + ## extended channel 3 in ExtCh mode, channel 3 is split into one column for each of its four operators. feedback and LFO levels are shared. the frequency of each operator may be controlled independently with notes and effects. this can be used for more polyphony or more complex sounds. diff --git a/doc/7-systems/ym2610.md b/doc/7-systems/ym2610.md index ef0a760df..b56df33d7 100644 --- a/doc/7-systems/ym2610.md +++ b/doc/7-systems/ym2610.md @@ -100,7 +100,8 @@ its soundchip is a 4-in-1: 4ch 4-op FM, YM2149 (AY-3-8910 clone) and [2 differen # info -- this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [Generic Sample](../4-instrument/amiga.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md), and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors. +this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [Generic Sample](../4-instrument/amiga.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md), and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors. + ## extended channel 2 in ExtCh mode, channel 2 is split into one column for each of its four operators. feedback and LFO levels are shared. the frequency of each operator may be controlled independently with notes and effects. this can be used for more polyphony or more complex sounds. diff --git a/doc/7-systems/ym2610b.md b/doc/7-systems/ym2610b.md index ad592e495..a670cfc2c 100644 --- a/doc/7-systems/ym2610b.md +++ b/doc/7-systems/ym2610b.md @@ -99,7 +99,8 @@ it is backward compatible with the original chip. # info -- this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [Generic Sample](../4-instrument/amiga.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md), and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors. +this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [Generic Sample](../4-instrument/amiga.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md), and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors. + ## extended channel 3 diff --git a/doc/7-systems/ym2612.md b/doc/7-systems/ym2612.md index 4ea666ca9..b245b1ac2 100644 --- a/doc/7-systems/ym2612.md +++ b/doc/7-systems/ym2612.md @@ -69,7 +69,8 @@ as of Furnace 0.6pre5, Furnace offers DualPCM, a Z80 driver that splits channel # info -- this chip uses the [FM (OPN)](../4-instrument/fm-opn.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. +this chip uses the [FM (OPN)](../4-instrument/fm-opn.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. + ## extended channel 3 diff --git a/doc/7-systems/ymu759.md b/doc/7-systems/ymu759.md index c9156afa9..956b37aca 100644 --- a/doc/7-systems/ymu759.md +++ b/doc/7-systems/ymu759.md @@ -18,4 +18,4 @@ hey, at least it was the spark that ignited the idea of DefleMask. # info -- this chip uses the [FM (OPL)](../4-instrument/fm-opl.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [FM (OPL)](../4-instrument/fm-opl.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/ymz280b.md b/doc/7-systems/ymz280b.md index 693b8c1d4..982df8d25 100644 --- a/doc/7-systems/ymz280b.md +++ b/doc/7-systems/ymz280b.md @@ -10,4 +10,4 @@ none so far. # info -- this chip uses the [YMZ280B](../4-instrument/ymz280b.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [YMZ280B](../4-instrument/ymz280b.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/zxbeep.md b/doc/7-systems/zxbeep.md index 7b5061438..183beb4fc 100644 --- a/doc/7-systems/zxbeep.md +++ b/doc/7-systems/zxbeep.md @@ -17,4 +17,4 @@ not really - very soon talented programmers found out ways to output much more t # info -- this chip uses the [Beeper](../4-instrument/beeper.md), [Generic Sample](../4-instrument/amiga.md), and [Pokémon Mini/QuadTone](../4-instrument/quadtone.md) instrument editors. \ No newline at end of file +this chip uses the [Beeper](../4-instrument/beeper.md), [Generic Sample](../4-instrument/amiga.md), and [Pokémon Mini/QuadTone](../4-instrument/quadtone.md) instrument editors. From 77e708dc57856d361709ce99cab343a3f1087bbb Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 4 Aug 2023 17:35:39 -0500 Subject: [PATCH 098/202] YM2612: better DAC write scheduling issue #1300 --- src/engine/platform/fmsharedbase.h | 15 +++--- src/engine/platform/genesis.cpp | 83 +++++++++++++++++------------- src/engine/platform/genesis.h | 5 +- src/gui/debug.cpp | 4 -- 4 files changed, 58 insertions(+), 49 deletions(-) diff --git a/src/engine/platform/fmsharedbase.h b/src/engine/platform/fmsharedbase.h index 4200d7570..9be217b94 100644 --- a/src/engine/platform/fmsharedbase.h +++ b/src/engine/platform/fmsharedbase.h @@ -105,16 +105,17 @@ class DivPlatformFMBase: public DivDispatch { } } } + // only used by OPN2 for DAC writes inline void urgentWrite(unsigned short a, unsigned char v) { if (!skipRegisterWrites && !flushFirst) { - if (writes.empty()) { - writes.push_back(QueuedWrite(a,v)); - } else if ((writes.size()>16 && writes.front().addr!=0xf0) || writes.front().addrOrVal) { - // $f0 is used by OPN hard reset - writes.push_back(QueuedWrite(a,v)); - } else { - writes.push_front(QueuedWrite(a,v)); + if (!writes.empty()) { + // check for hard reset + if (writes.front().addr==0xf0) { + // replace hard reset with DAC write + writes.pop_front(); + } } + writes.push_front(QueuedWrite(a,v)); if (dumpWrites) { addWrite(a,v); } diff --git a/src/engine/platform/genesis.cpp b/src/engine/platform/genesis.cpp index 20e87d618..29b25f29e 100644 --- a/src/engine/platform/genesis.cpp +++ b/src/engine/platform/genesis.cpp @@ -96,32 +96,22 @@ void DivPlatformGenesis::processDAC(int iRate) { //sample>>=1; if (sample<-128) sample=-128; if (sample>127) sample=127; - urgentWrite(0x2a,(unsigned char)sample+0x80); + dacWrite=(unsigned char)(sample+0x80); } } else { - if (!chan[5].dacReady) { - chan[5].dacDelay+=32000; - if (chan[5].dacDelay>=iRate) { - chan[5].dacDelay-=iRate; - chan[5].dacReady=true; - } - } if (chan[5].dacMode && chan[5].dacSample!=-1) { chan[5].dacPeriod+=chan[5].dacRate; if (chan[5].dacPeriod>=iRate) { DivSample* s=parent->getSample(chan[5].dacSample); if (s->samples>0 && chan[5].dacPossamples) { if (!isMuted[5]) { - if (chan[5].dacReady && writes.size()<16) { - int sample; - if (parent->song.noOPN2Vol) { - sample=s->data8[chan[5].dacDirection?(s->samples-chan[5].dacPos-1):chan[5].dacPos]; - } else { - sample=(s->data8[chan[5].dacDirection?(s->samples-chan[5].dacPos-1):chan[5].dacPos]*dacVolTable[chan[5].outVol])>>7; - } - urgentWrite(0x2a,(unsigned char)sample+0x80); - chan[5].dacReady=false; + int sample; + if (parent->song.noOPN2Vol) { + sample=s->data8[chan[5].dacDirection?(s->samples-chan[5].dacPos-1):chan[5].dacPos]; + } else { + sample=(s->data8[chan[5].dacDirection?(s->samples-chan[5].dacPos-1):chan[5].dacPos]*dacVolTable[chan[5].outVol])>>7; } + dacWrite=(unsigned char)(sample+0x80); } chan[5].dacPos++; if (!chan[5].dacDirection && (s->isLoopable() && chan[5].dacPos>=(unsigned int)s->loopEnd)) { @@ -151,24 +141,34 @@ void DivPlatformGenesis::acquire_nuked(short** buf, size_t len) { os[0]=0; os[1]=0; for (int i=0; i<6; i++) { if (!writes.empty()) { - if (--delay<0) { - delay=0; - QueuedWrite& w=writes.front(); - if (w.addrOrVal) { - //logV("%.3x = %.2x",w.addr,w.val); - OPN2_Write(&fm,0x1+((w.addr>>8)<<1),w.val); - lastBusy=0; - regPool[w.addr&0x1ff]=w.val; - writes.pop_front(); - } else { - lastBusy++; - if (fm.write_busy==0) { - OPN2_Write(&fm,0x0+((w.addr>>8)<<1),w.addr); - w.addrOrVal=true; + QueuedWrite& w=writes.front(); + if (w.addrOrVal) { + //logV("%.3x = %.2x",w.addr,w.val); + OPN2_Write(&fm,0x1+((w.addr>>8)<<1),w.val); + regPool[w.addr&0x1ff]=w.val; + writes.pop_front(); + + if (dacWrite>=0) { + if (!canWriteDAC) { + canWriteDAC=true; + } else { + urgentWrite(0x2a,dacWrite); + dacWrite=-1; + canWriteDAC=writes.empty(); } } + } else { + if (fm.write_busy==0) { + OPN2_Write(&fm,0x0+((w.addr>>8)<<1),w.addr); + w.addrOrVal=true; + } } } else { + canWriteDAC=true; + if (dacWrite>=0) { + urgentWrite(0x2a,dacWrite); + dacWrite=-1; + } flushFirst=false; } @@ -227,8 +227,22 @@ void DivPlatformGenesis::acquire_ymfm(short** buf, size_t len) { fm_ymfm->write(0x1+((w.addr>>8)<<1),w.val); regPool[w.addr&0x1ff]=w.val; writes.pop_front(); - lastBusy=1; + + if (dacWrite>=0) { + if (!canWriteDAC) { + canWriteDAC=true; + } else { + urgentWrite(0x2a,dacWrite); + dacWrite=-1; + canWriteDAC=writes.empty(); + } + } } else { + canWriteDAC=true; + if (dacWrite>=0) { + urgentWrite(0x2a,dacWrite); + dacWrite=-1; + } flushFirst=false; } @@ -1314,11 +1328,12 @@ void DivPlatformGenesis::reset() { pendingWrites[i]=-1; } - lastBusy=60; lfoValue=8; softPCMTimer=0; extMode=false; flushFirst=false; + dacWrite=-1; + canWriteDAC=true; if (softPCM) { chan[5].dacMode=true; @@ -1330,8 +1345,6 @@ void DivPlatformGenesis::reset() { // LFO immWrite(0x22,lfoValue); - - delay=0; } int DivPlatformGenesis::getOutputCount() { diff --git a/src/engine/platform/genesis.h b/src/engine/platform/genesis.h index c9de0493f..d618c6892 100644 --- a/src/engine/platform/genesis.h +++ b/src/engine/platform/genesis.h @@ -55,7 +55,6 @@ class DivPlatformGenesis: public DivPlatformOPN { unsigned int dacPos; int dacSample; int dacDelay; - bool dacReady; bool dacDirection; bool setPos; unsigned char sampleBank; @@ -69,7 +68,6 @@ class DivPlatformGenesis: public DivPlatformOPN { dacPos(0), dacSample(-1), dacDelay(0), - dacReady(true), dacDirection(false), setPos(false), sampleBank(0), @@ -86,8 +84,9 @@ class DivPlatformGenesis: public DivPlatformOPN { int softPCMTimer; - bool extMode, softPCM, noExtMacros, useYMFM; + bool extMode, softPCM, noExtMacros, useYMFM, canWriteDAC; unsigned char chipType; + short dacWrite; unsigned char dacVolTable[128]; diff --git a/src/gui/debug.cpp b/src/gui/debug.cpp index bd6bdb81f..d2b2f44ab 100644 --- a/src/gui/debug.cpp +++ b/src/gui/debug.cpp @@ -62,7 +62,6 @@ #define FM_CHIP_DEBUG \ COMMON_CHIP_DEBUG; \ - ImGui::Text("- lastBusy: %d",ch->lastBusy); \ ImGui::Text("- delay: %d",ch->delay); #define FM_OPN_CHIP_DEBUG \ @@ -167,7 +166,6 @@ ImGui::TextColored(ch->hardReset?colorOn:colorOff,">> hardReset"); \ ImGui::TextColored(ch->opMaskChanged?colorOn:colorOff,">> opMaskChanged"); \ ImGui::TextColored(ch->dacMode?colorOn:colorOff,">> DACMode"); \ - ImGui::TextColored(ch->dacReady?colorOn:colorOff,">> DACReady"); \ ImGui::TextColored(ch->dacDirection?colorOn:colorOff,">> DACDirection"); #define GENESIS_OPCHAN_DEBUG \ @@ -381,7 +379,6 @@ void putDispatchChip(void* data, int type) { ImGui::Text("- pcmR: %d",ch->pcmR); ImGui::Text("- pcmCycles: %d",ch->pcmCycles); ImGui::Text("- sampleBank: %d",ch->sampleBank); - ImGui::Text("- lastBusy: %d",ch->lastBusy); COMMON_CHIP_DEBUG_BOOL; break; } @@ -389,7 +386,6 @@ void putDispatchChip(void* data, int type) { DivPlatformAY8910* ch=(DivPlatformAY8910*)data; ImGui::Text("> AY-3-8910"); COMMON_CHIP_DEBUG; - ImGui::Text("- lastBusy: %d",ch->lastBusy); ImGui::Text("- sampleBank: %d",ch->sampleBank); ImGui::Text("- stereoSep: %d",ch->stereoSep); ImGui::Text("- delay: %d",ch->delay); From 4d476c0588da57e95a1b7fb484b44d5fa3124b71 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 4 Aug 2023 17:48:34 -0500 Subject: [PATCH 099/202] YM2612: fix direct stream --- src/engine/platform/genesis.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/engine/platform/genesis.cpp b/src/engine/platform/genesis.cpp index 29b25f29e..9a8bafc94 100644 --- a/src/engine/platform/genesis.cpp +++ b/src/engine/platform/genesis.cpp @@ -302,6 +302,11 @@ void DivPlatformGenesis::fillStream(std::vector& stream, int sR for (size_t i=0; i=0) { + urgentWrite(0x2a,dacWrite); + dacWrite=-1; + } + while (!writes.empty()) { QueuedWrite& w=writes.front(); stream.push_back(DivDelayedWrite(i,w.addr,w.val)); From 3a93ebd21df34a75302c9c04662b63e7bac1b423 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Fri, 4 Aug 2023 16:24:42 -0700 Subject: [PATCH 100/202] Minor adjustments. --- doc/2-interface/README.md | 2 +- doc/7-systems/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/2-interface/README.md b/doc/2-interface/README.md index 465d0f872..ae2768f2e 100644 --- a/doc/2-interface/README.md +++ b/doc/2-interface/README.md @@ -13,7 +13,7 @@ primary topics: - [play/edit controls](play-edit-controls.md) - [instrument/wavetable/sample list](asset-list.md) - [song information](song-info.md) -- [effect list](effect-list.md) +- [effect list window](effect-list.md) - [pattern view](../3-pattern/README.md) - [instrument editor](../4-instrument/README.md) - [wavetable editor](../5-wave/README.md) diff --git a/doc/7-systems/README.md b/doc/7-systems/README.md index a3a619816..7e3728740 100644 --- a/doc/7-systems/README.md +++ b/doc/7-systems/README.md @@ -73,7 +73,7 @@ this is the full list of chips that Furnace supports. - [FDS](fds.md) - [Game Boy](game-boy.md) - [Generic PCM DAC](dac.md) -- Irem GA20 +- [Irem GA20](ga20.md) - [Bubble System WSG](bubblesystem.md) - [K007232](k007232.md) - [K053260](k056320.md) From b5161a8fe61e9aba92726b0cf02fecff6b8a46e3 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Fri, 4 Aug 2023 09:11:53 -0700 Subject: [PATCH 101/202] Documentation stuff! New page for the effect list, updates to chanOsc, and links to instrument types from every "system" page. --- doc/2-interface/README.md | 1 + doc/2-interface/effect-list.md | 10 +++++ doc/2-interface/effect-list.png | Bin 0 -> 160618 bytes doc/7-systems/amiga.md | 1 + doc/7-systems/ay8910.md | 5 ++- doc/7-systems/ay8930.md | 4 ++ doc/7-systems/bubblesystem.md | 4 ++ doc/7-systems/c64.md | 4 ++ doc/7-systems/dac.md | 4 ++ doc/7-systems/es5506.md | 4 ++ doc/7-systems/fds.md | 4 ++ doc/7-systems/game-boy.md | 4 ++ doc/7-systems/genesis.md | 61 ++++++++++++++++++++++++++++ doc/7-systems/k007232.md | 4 ++ doc/7-systems/k056320.md | 4 ++ doc/7-systems/lynx.md | 4 ++ doc/7-systems/mmc5.md | 4 ++ doc/7-systems/msm5232.md | 4 ++ doc/7-systems/msm6258.md | 4 ++ doc/7-systems/msm6295.md | 9 +++- doc/7-systems/n163.md | 4 ++ doc/7-systems/namco.md | 4 ++ doc/7-systems/nes.md | 5 ++- doc/7-systems/opl.md | 4 ++ doc/7-systems/opll.md | 4 ++ doc/7-systems/opz.md | 4 ++ doc/7-systems/pce.md | 4 ++ doc/7-systems/pcspkr.md | 4 ++ doc/7-systems/pet.md | 4 ++ doc/7-systems/pokemini.md | 4 ++ doc/7-systems/pokey.md | 4 ++ doc/7-systems/pv1000.md | 4 ++ doc/7-systems/qsound.md | 4 ++ doc/7-systems/ricoh.md | 3 ++ doc/7-systems/saa1099.md | 4 ++ doc/7-systems/scc.md | 4 ++ doc/7-systems/segapcm.md | 4 ++ doc/7-systems/sm8521.md | 6 ++- doc/7-systems/sms.md | 8 +++- doc/7-systems/snes.md | 4 +- doc/7-systems/soundunit.md | 4 ++ doc/7-systems/t6w28.md | 4 ++ doc/7-systems/ted.md | 4 ++ doc/7-systems/tia.md | 6 ++- doc/7-systems/vera.md | 4 ++ doc/7-systems/vic20.md | 4 ++ doc/7-systems/virtual-boy.md | 4 ++ doc/7-systems/vrc6.md | 4 ++ doc/7-systems/wonderswan.md | 4 ++ doc/7-systems/x1-010.md | 4 ++ doc/7-systems/ym2151.md | 4 ++ doc/7-systems/ym2203.md | 6 ++- doc/7-systems/ym2608.md | 6 ++- doc/7-systems/ym2610.md | 5 ++- doc/7-systems/ym2610b.md | 6 ++- doc/7-systems/ym2612.md | 8 ++-- doc/7-systems/ymu759.md | 4 ++ doc/7-systems/ymz280b.md | 4 ++ doc/7-systems/zxbeep.md | 4 ++ doc/8-advanced/chanosc-gradient.png | Bin 165108 -> 168370 bytes doc/8-advanced/chanosc.md | 5 +++ doc/8-advanced/chanosc.png | Bin 121264 -> 124620 bytes 62 files changed, 302 insertions(+), 17 deletions(-) create mode 100644 doc/2-interface/effect-list.md create mode 100644 doc/2-interface/effect-list.png create mode 100644 doc/7-systems/genesis.md diff --git a/doc/2-interface/README.md b/doc/2-interface/README.md index cb1588dde..465d0f872 100644 --- a/doc/2-interface/README.md +++ b/doc/2-interface/README.md @@ -13,6 +13,7 @@ primary topics: - [play/edit controls](play-edit-controls.md) - [instrument/wavetable/sample list](asset-list.md) - [song information](song-info.md) +- [effect list](effect-list.md) - [pattern view](../3-pattern/README.md) - [instrument editor](../4-instrument/README.md) - [wavetable editor](../5-wave/README.md) diff --git a/doc/2-interface/effect-list.md b/doc/2-interface/effect-list.md new file mode 100644 index 000000000..1f76f5051 --- /dev/null +++ b/doc/2-interface/effect-list.md @@ -0,0 +1,10 @@ +# effect list + +![effect list window](effect-list.png) + +this window provides a list of the effects that are available. + +for more details about these effects, see [the effects page](../3-pattern/effects.md). + +- **Chip at cursor**: the currently selected chip. the list only shows available effects for this chip. +- menu button: opens a small list of effect categories. toggle each to change whether they're shown in the list. diff --git a/doc/2-interface/effect-list.png b/doc/2-interface/effect-list.png new file mode 100644 index 0000000000000000000000000000000000000000..dd5d0cc8b2185cd115bfa6864c39b3efccfd6776 GIT binary patch literal 160618 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

I42QEu8!OXD7arsPXx$w*8d!16U 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�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 eZ6yJM&xkUXUvuFky*+>&2OXU literal 165108 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

f(?S%tsG&k=rwhG4;o9G%K=^l0@T`?jtV|3Af+- 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%0DJfSXFv{*DLl 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 From 20dc44b800dba5892971d62098a9d2ca0337cac7 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Fri, 4 Aug 2023 09:38:05 -0700 Subject: [PATCH 102/202] Teensy formatting change. None of these should be list items. It was a bad idea. --- doc/7-systems/amiga.md | 3 ++- doc/7-systems/ay8910.md | 3 ++- doc/7-systems/ay8930.md | 2 +- doc/7-systems/bubblesystem.md | 2 +- doc/7-systems/c64.md | 2 +- doc/7-systems/dac.md | 2 +- doc/7-systems/es5506.md | 2 +- doc/7-systems/fds.md | 2 +- doc/7-systems/game-boy.md | 3 ++- doc/7-systems/k007232.md | 2 +- doc/7-systems/k056320.md | 2 +- doc/7-systems/lynx.md | 2 +- doc/7-systems/mmc5.md | 2 +- doc/7-systems/msm5232.md | 2 +- doc/7-systems/msm6258.md | 2 +- doc/7-systems/msm6295.md | 3 ++- doc/7-systems/n163.md | 2 +- doc/7-systems/namco.md | 2 +- doc/7-systems/nes.md | 3 ++- doc/7-systems/opl.md | 2 +- doc/7-systems/opll.md | 2 +- doc/7-systems/opz.md | 2 +- doc/7-systems/pce.md | 2 +- doc/7-systems/pcspkr.md | 2 +- doc/7-systems/pet.md | 2 +- doc/7-systems/pokemini.md | 2 +- doc/7-systems/pokey.md | 2 +- doc/7-systems/pv1000.md | 2 +- doc/7-systems/qsound.md | 2 +- doc/7-systems/ricoh.md | 2 +- doc/7-systems/saa1099.md | 2 +- doc/7-systems/scc.md | 2 +- doc/7-systems/segapcm.md | 2 +- doc/7-systems/sm8521.md | 2 +- doc/7-systems/sms.md | 3 ++- doc/7-systems/snes.md | 3 ++- doc/7-systems/soundunit.md | 2 +- doc/7-systems/t6w28.md | 2 +- doc/7-systems/ted.md | 2 +- doc/7-systems/tia.md | 3 ++- doc/7-systems/vera.md | 2 +- doc/7-systems/vic20.md | 2 +- doc/7-systems/virtual-boy.md | 2 +- doc/7-systems/vrc6.md | 2 +- doc/7-systems/wonderswan.md | 2 +- doc/7-systems/x1-010.md | 2 +- doc/7-systems/ym2151.md | 2 +- doc/7-systems/ym2203.md | 3 ++- doc/7-systems/ym2608.md | 3 ++- doc/7-systems/ym2610.md | 3 ++- doc/7-systems/ym2610b.md | 3 ++- doc/7-systems/ym2612.md | 3 ++- doc/7-systems/ymu759.md | 2 +- doc/7-systems/ymz280b.md | 2 +- doc/7-systems/zxbeep.md | 2 +- 55 files changed, 68 insertions(+), 55 deletions(-) diff --git a/doc/7-systems/amiga.md b/doc/7-systems/amiga.md index 0d3d688c0..c40d6eed6 100644 --- a/doc/7-systems/amiga.md +++ b/doc/7-systems/amiga.md @@ -18,7 +18,8 @@ imported MOD files use this chip, and will set A-4 tuning to 436. # info -- this chip uses the [Generic Sample](../4-instrument/amiga.md) instrument editor. +this chip uses the [Generic Sample](../4-instrument/amiga.md) instrument editor. + - the maximum rate for sample playback is technically 31469Hz but anything higher than 28867Hz will sound glitchy on hardware. - sample lengths and loop will be set to an even number. - samples can't be longer than 131070. \ No newline at end of file diff --git a/doc/7-systems/ay8910.md b/doc/7-systems/ay8910.md index 6d1838bd4..8c88d704e 100644 --- a/doc/7-systems/ay8910.md +++ b/doc/7-systems/ay8910.md @@ -49,7 +49,8 @@ as of Furnace 0.6pre7, AY-3-8910 supports software sample playback, where all 3 # info -- this chip uses the [AY-3-8910](../4-instrument/ay8910.md) instrument editor. +this chip uses the [AY-3-8910](../4-instrument/ay8910.md) instrument editor. + ## AY derivative modes diff --git a/doc/7-systems/ay8930.md b/doc/7-systems/ay8930.md index ef7121372..545e8fd0b 100644 --- a/doc/7-systems/ay8930.md +++ b/doc/7-systems/ay8930.md @@ -58,4 +58,4 @@ as of Furnace 0.6pre7, AY8930 supports software PCM, where all 3 channels can pl # info -- this chip uses the [AY8930](../4-instrument/8930.md) instrument editor. \ No newline at end of file +this chip uses the [AY8930](../4-instrument/8930.md) instrument editor. diff --git a/doc/7-systems/bubblesystem.md b/doc/7-systems/bubblesystem.md index 0ead7540a..946fd61d8 100644 --- a/doc/7-systems/bubblesystem.md +++ b/doc/7-systems/bubblesystem.md @@ -14,4 +14,4 @@ Furnace emulates this configuration as a "chip" with 32×16 wavetables. # info -- this chip uses the [Konami SCC/ Bubble System WSG](../4-instrument/scc.md) instrument editor. \ No newline at end of file +this chip uses the [Konami SCC/ Bubble System WSG](../4-instrument/scc.md) instrument editor. diff --git a/doc/7-systems/c64.md b/doc/7-systems/c64.md index e001f557b..04035df58 100644 --- a/doc/7-systems/c64.md +++ b/doc/7-systems/c64.md @@ -60,4 +60,4 @@ two versions of aforementioned chip exist - 6581 (original chip) and 8580 (impro # info -- this chip uses the [C64](../4-instrument/c64.md) instrument editor. \ No newline at end of file +this chip uses the [C64](../4-instrument/c64.md) instrument editor. diff --git a/doc/7-systems/dac.md b/doc/7-systems/dac.md index 118c4b25e..3c6445db9 100644 --- a/doc/7-systems/dac.md +++ b/doc/7-systems/dac.md @@ -10,4 +10,4 @@ none yet. # info -- this chip uses the [Generic Sample](../4-instrument/amiga.md) instrument editor. \ No newline at end of file +this chip uses the [Generic Sample](../4-instrument/amiga.md) instrument editor. diff --git a/doc/7-systems/es5506.md b/doc/7-systems/es5506.md index cc476cef2..e36eff1c5 100644 --- a/doc/7-systems/es5506.md +++ b/doc/7-systems/es5506.md @@ -42,4 +42,4 @@ it supports a whopping 32 channels of 16-bit PCM and: # info -- this chip uses the [ES5506](../4-instrument/es5506.md) instrument editor. \ No newline at end of file +this chip uses the [ES5506](../4-instrument/es5506.md) instrument editor. diff --git a/doc/7-systems/fds.md b/doc/7-systems/fds.md index 411f2b47f..f26ccef9b 100644 --- a/doc/7-systems/fds.md +++ b/doc/7-systems/fds.md @@ -28,4 +28,4 @@ it also offers an additional 6-bit, 64-byte wavetable sound channel with (somewh # info -- this chip uses the [FDS](../4-instrument/fds.md) instrument editor. \ No newline at end of file +this chip uses the [FDS](../4-instrument/fds.md) instrument editor. diff --git a/doc/7-systems/game-boy.md b/doc/7-systems/game-boy.md index fae7e288d..b2b624dba 100644 --- a/doc/7-systems/game-boy.md +++ b/doc/7-systems/game-boy.md @@ -23,7 +23,8 @@ with stereo sound, two pulse channels, a wave channel and a noise channel, it pa # info -- this chip uses the [Game Boy](../4-instrument/game-boy.md) instrument editor. +this chip uses the [Game Boy](../4-instrument/game-boy.md) instrument editor. + # links diff --git a/doc/7-systems/k007232.md b/doc/7-systems/k007232.md index 3da1d3af0..f7e9d69c1 100644 --- a/doc/7-systems/k007232.md +++ b/doc/7-systems/k007232.md @@ -12,4 +12,4 @@ it has 7 bit digital output per each channel and no volume register on chip, so # info -- this chip uses the [K007232](../4-instrument/k007232.md) instrument editor. \ No newline at end of file +this chip uses the [K007232](../4-instrument/k007232.md) instrument editor. diff --git a/doc/7-systems/k056320.md b/doc/7-systems/k056320.md index a3a8020f3..9e2e162f0 100644 --- a/doc/7-systems/k056320.md +++ b/doc/7-systems/k056320.md @@ -10,4 +10,4 @@ the 056320 is a sample-based chip that featured in a number of Konami arcade gam # info -- this chip uses the [K056320](../4-instrument/k056320.md) instrument editor. \ No newline at end of file +this chip uses the [K056320](../4-instrument/k056320.md) instrument editor. diff --git a/doc/7-systems/lynx.md b/doc/7-systems/lynx.md index 6e17b1a16..e3bb087db 100644 --- a/doc/7-systems/lynx.md +++ b/doc/7-systems/lynx.md @@ -20,4 +20,4 @@ the Atari Lynx has a 6502-based CPU with a sound part (this chip is known as MIK # info -- this chip uses the [Atari Lynx](../4-instrument/lynx.md) instrument editor. \ No newline at end of file +this chip uses the [Atari Lynx](../4-instrument/lynx.md) instrument editor. diff --git a/doc/7-systems/mmc5.md b/doc/7-systems/mmc5.md index 1531381d7..90d8c5696 100644 --- a/doc/7-systems/mmc5.md +++ b/doc/7-systems/mmc5.md @@ -13,4 +13,4 @@ additionally, it offers an 8-bit DAC which can be used to play samples. only one # info -- this chip uses the [NES](../4-instrument/nes.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [NES](../4-instrument/nes.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/msm5232.md b/doc/7-systems/msm5232.md index edcd281cc..17ee9ee03 100644 --- a/doc/7-systems/msm5232.md +++ b/doc/7-systems/msm5232.md @@ -27,4 +27,4 @@ Furnace implements this chip in a way that allows the following features: # info -- this chip uses the [MSM5232](../4-instrument/msm5232.md) instrument editor. \ No newline at end of file +this chip uses the [MSM5232](../4-instrument/msm5232.md) instrument editor. diff --git a/doc/7-systems/msm6258.md b/doc/7-systems/msm6258.md index 1d56e756c..9cabf1405 100644 --- a/doc/7-systems/msm6258.md +++ b/doc/7-systems/msm6258.md @@ -21,4 +21,4 @@ MSM6258 is an extremely basic ADPCM sound codec. it has no variable frequency ra # info -- this chip uses the [MSM6258](../4-instrument/msm6258.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [MSM6258](../4-instrument/msm6258.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/msm6295.md b/doc/7-systems/msm6295.md index 3c5c26230..9906de6b1 100644 --- a/doc/7-systems/msm6295.md +++ b/doc/7-systems/msm6295.md @@ -9,7 +9,8 @@ an upgrade from 6258 - it provides 4 ADPCM channels, at max 32 KHz (still no var # info -- this chip uses the [MSM6295](../4-instrument/msm6295.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. +this chip uses the [MSM6295](../4-instrument/msm6295.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. + ## chip clock rates diff --git a/doc/7-systems/n163.md b/doc/7-systems/n163.md index f99465651..af1bffbee 100644 --- a/doc/7-systems/n163.md +++ b/doc/7-systems/n163.md @@ -41,4 +41,4 @@ if the waveform changes (e.g. ins change, wave macro or wave synth), or the **lo # info -- this chip uses the [Namco 163](../4-instrument/n163.md) instrument editor. \ No newline at end of file +this chip uses the [Namco 163](../4-instrument/n163.md) instrument editor. diff --git a/doc/7-systems/namco.md b/doc/7-systems/namco.md index 21cfa7b28..ffa5817b9 100644 --- a/doc/7-systems/namco.md +++ b/doc/7-systems/namco.md @@ -11,4 +11,4 @@ everything starts with Namco WSG, which is a simple 3-channel wavetable with no # info -- this chip uses the [Namco WSG](../4-instrument/namco.md) instrument editor. \ No newline at end of file +this chip uses the [Namco WSG](../4-instrument/namco.md) instrument editor. diff --git a/doc/7-systems/nes.md b/doc/7-systems/nes.md index 4c11d3a27..28df60676 100644 --- a/doc/7-systems/nes.md +++ b/doc/7-systems/nes.md @@ -59,7 +59,8 @@ also known as Famicom. it is a five-channel sound generator: first two channels # info -- this chip uses the [NES](../4-instrument/nes.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. +this chip uses the [NES](../4-instrument/nes.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. + ## short noise frequencies (NTSC) diff --git a/doc/7-systems/opl.md b/doc/7-systems/opl.md index 6dfdc04bf..ac82ded0e 100644 --- a/doc/7-systems/opl.md +++ b/doc/7-systems/opl.md @@ -81,4 +81,4 @@ afterwards everyone moved to Windows and software mixed PCM streaming... # info -- this chip uses the [FM (OPL)](../4-instrument/fm-opl.md) instrument editor. \ No newline at end of file +this chip uses the [FM (OPL)](../4-instrument/fm-opl.md) instrument editor. diff --git a/doc/7-systems/opll.md b/doc/7-systems/opll.md index 91295e9ec..92a81490b 100644 --- a/doc/7-systems/opll.md +++ b/doc/7-systems/opll.md @@ -68,4 +68,4 @@ the YM2413 is equipped with the following features: # info -- this chip uses the [FM (OPLL)](../4-instrument/fm-opll.md) instrument editor. \ No newline at end of file +this chip uses the [FM (OPLL)](../4-instrument/fm-opll.md) instrument editor. diff --git a/doc/7-systems/opz.md b/doc/7-systems/opz.md index df49c2ea6..c4b0413a9 100644 --- a/doc/7-systems/opz.md +++ b/doc/7-systems/opz.md @@ -116,4 +116,4 @@ no plans have been made for TX81Z MIDI passthrough, because: # info -- this chip uses the [FM (OPZ)](../4-instrument/opz.md) instrument editor. \ No newline at end of file +this chip uses the [FM (OPZ)](../4-instrument/opz.md) instrument editor. diff --git a/doc/7-systems/pce.md b/doc/7-systems/pce.md index f4953787f..03727cfb8 100644 --- a/doc/7-systems/pce.md +++ b/doc/7-systems/pce.md @@ -23,4 +23,4 @@ furthermore, it has some PCM and LFO! # info -- this chip uses the [PC Engine](../4-instrument/pce.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [PC Engine](../4-instrument/pce.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/pcspkr.md b/doc/7-systems/pcspkr.md index 59f2f4663..d84181bfe 100644 --- a/doc/7-systems/pcspkr.md +++ b/doc/7-systems/pcspkr.md @@ -32,4 +32,4 @@ ha! effects... # info -- this chip uses the [Beeper](../4-instrument/beeper.md) instrument editor. \ No newline at end of file +this chip uses the [Beeper](../4-instrument/beeper.md) instrument editor. diff --git a/doc/7-systems/pet.md b/doc/7-systems/pet.md index 9d3188da2..e99e17925 100644 --- a/doc/7-systems/pet.md +++ b/doc/7-systems/pet.md @@ -12,4 +12,4 @@ some of these didn't even have sound... # info -- this chip uses the [PET](../4-instrument/pet.md) instrument editor. \ No newline at end of file +this chip uses the [PET](../4-instrument/pet.md) instrument editor. diff --git a/doc/7-systems/pokemini.md b/doc/7-systems/pokemini.md index f82d2ba50..7633f27a2 100644 --- a/doc/7-systems/pokemini.md +++ b/doc/7-systems/pokemini.md @@ -8,4 +8,4 @@ none. # info -- this chip uses the [Pokémon Mini/QuadTone](../4-instrument/quadtone.md) instrument editor. \ No newline at end of file +this chip uses the [Pokémon Mini/QuadTone](../4-instrument/quadtone.md) instrument editor. diff --git a/doc/7-systems/pokey.md b/doc/7-systems/pokey.md index e92417edb..31832e580 100644 --- a/doc/7-systems/pokey.md +++ b/doc/7-systems/pokey.md @@ -38,4 +38,4 @@ a sound and input chip developed by Atari for their 8-bit computers (Atari 400, # info -- this chip uses the [POKEY](../4-instrument/pokey.md) instrument editor. \ No newline at end of file +this chip uses the [POKEY](../4-instrument/pokey.md) instrument editor. diff --git a/doc/7-systems/pv1000.md b/doc/7-systems/pv1000.md index 2ac6e953e..97cb617b5 100644 --- a/doc/7-systems/pv1000.md +++ b/doc/7-systems/pv1000.md @@ -8,4 +8,4 @@ released only in Japan, this console was pulled after only a few weeks on the ma # info -- this chip uses the [PV-1000](../4-instrument/pv1000.md) instrument editor. \ No newline at end of file +this chip uses the [PV-1000](../4-instrument/pv1000.md) instrument editor. diff --git a/doc/7-systems/qsound.md b/doc/7-systems/qsound.md index 76391b10b..6aa57d365 100644 --- a/doc/7-systems/qsound.md +++ b/doc/7-systems/qsound.md @@ -20,4 +20,4 @@ there are also 3 ADPCM channels. ADPCM samples are fixed to 8012 Hz. # info -- this chip uses the [QSound](../4-instrument/qsound.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [QSound](../4-instrument/qsound.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/ricoh.md b/doc/7-systems/ricoh.md index 8a7a22287..1c3695cad 100644 --- a/doc/7-systems/ricoh.md +++ b/doc/7-systems/ricoh.md @@ -8,4 +8,4 @@ none so far. # info -- this chip uses the [RF5C68](../4-instrument/ricoh.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [RF5C68](../4-instrument/ricoh.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/saa1099.md b/doc/7-systems/saa1099.md index 2c6f72bb0..8036ec71e 100644 --- a/doc/7-systems/saa1099.md +++ b/doc/7-systems/saa1099.md @@ -30,4 +30,4 @@ this was used by the Game Blaster and SAM Coupé. it's pretty similar to the AY- # info -- this chip uses the [SAA1099](../4-instrument/saa.md) instrument editor. \ No newline at end of file +this chip uses the [SAA1099](../4-instrument/saa.md) instrument editor. diff --git a/doc/7-systems/scc.md b/doc/7-systems/scc.md index 3d7cdde23..8e5b01475 100644 --- a/doc/7-systems/scc.md +++ b/doc/7-systems/scc.md @@ -12,4 +12,4 @@ the SCC+ fixes this issue though (while being compatible with SCC games). # info -- this chip uses the [Konami SCC/Bubble System WSG](../4-instrument/scc.md) instrument editor. \ No newline at end of file +this chip uses the [Konami SCC/Bubble System WSG](../4-instrument/scc.md) instrument editor. diff --git a/doc/7-systems/segapcm.md b/doc/7-systems/segapcm.md index 0fc92f0fe..296f2a884 100644 --- a/doc/7-systems/segapcm.md +++ b/doc/7-systems/segapcm.md @@ -18,4 +18,4 @@ Furnace also has a five channel version of this chip, but it only exists for Def # info -- this chip uses the [SegaPCM](../4-instrument/segapcm.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [SegaPCM](../4-instrument/segapcm.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/sm8521.md b/doc/7-systems/sm8521.md index e670116d5..c29ff79ae 100644 --- a/doc/7-systems/sm8521.md +++ b/doc/7-systems/sm8521.md @@ -24,4 +24,4 @@ the sound-related features and quirks of the SM8521 are as follows: # info -- this chip uses the [SM8521](../4-instrument/sm8521.md) instrument editor. \ No newline at end of file +this chip uses the [SM8521](../4-instrument/sm8521.md) instrument editor. diff --git a/doc/7-systems/sms.md b/doc/7-systems/sms.md index 8ec6135f0..36d13976d 100644 --- a/doc/7-systems/sms.md +++ b/doc/7-systems/sms.md @@ -17,7 +17,8 @@ the original iteration of the SN76489 used in the TI-99/4A computer, the SN94624 # info -- this chip uses the [SN76489/Sega PSG](../4-instrument/psg.md) instrument editor. +this chip uses the [SN76489/Sega PSG](../4-instrument/psg.md) instrument editor. + ## SN7 versions SN7 was extremely popular due to low cost. Therefore, it was cloned and copied to no end, often with minor differences between each other. Furnace supports several of these: diff --git a/doc/7-systems/snes.md b/doc/7-systems/snes.md index e12ef8fa0..9c57d7526 100644 --- a/doc/7-systems/snes.md +++ b/doc/7-systems/snes.md @@ -69,7 +69,8 @@ Furnace also allows the SNES to use wavetables (and the wavetable synthesizer) i # info -- this chip uses the [SNES](../4-instrument/snes.md) instrument editor. +this chip uses the [SNES](../4-instrument/snes.md) instrument editor. + ## ADSR diff --git a/doc/7-systems/soundunit.md b/doc/7-systems/soundunit.md index 378d9303c..00706c0f1 100644 --- a/doc/7-systems/soundunit.md +++ b/doc/7-systems/soundunit.md @@ -57,4 +57,4 @@ it has the following capabilities: # info -- this chip uses the [Sound Unit](../4-instrument/soundunit.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [Sound Unit](../4-instrument/soundunit.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/t6w28.md b/doc/7-systems/t6w28.md index accd56675..26d7d977c 100644 --- a/doc/7-systems/t6w28.md +++ b/doc/7-systems/t6w28.md @@ -12,4 +12,4 @@ this chip was used in Neo Geo Pocket. # info -- this chip uses the [T6W28](../4-instrument/t6w28.md) instrument editor. \ No newline at end of file +this chip uses the [T6W28](../4-instrument/t6w28.md) instrument editor. diff --git a/doc/7-systems/ted.md b/doc/7-systems/ted.md index a8c5cf48f..4333fcea6 100644 --- a/doc/7-systems/ted.md +++ b/doc/7-systems/ted.md @@ -11,4 +11,4 @@ none so far. # info -- this chip uses the [TED](../4-instrument/ted.md) instrument editor. \ No newline at end of file +this chip uses the [TED](../4-instrument/ted.md) instrument editor. diff --git a/doc/7-systems/tia.md b/doc/7-systems/tia.md index b56b97801..8b89616d4 100644 --- a/doc/7-systems/tia.md +++ b/doc/7-systems/tia.md @@ -31,7 +31,8 @@ Furnace isn't complete without this one... # info -- this chip uses the [TIA](../4-instrument/tia.md) instrument editor. +this chip uses the [TIA](../4-instrument/tia.md) instrument editor. + - pitch number can be used for absolute notes in arpeggio macros. diff --git a/doc/7-systems/vera.md b/doc/7-systems/vera.md index 2d684b43f..d4189412a 100644 --- a/doc/7-systems/vera.md +++ b/doc/7-systems/vera.md @@ -18,4 +18,4 @@ currently Furnace does not support the PCM channel's stereo mode, though (except # info -- this chip uses the [VERA](../4-instrument/vera.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [VERA](../4-instrument/vera.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/vic20.md b/doc/7-systems/vic20.md index 2177d661c..6d5a9bd41 100644 --- a/doc/7-systems/vic20.md +++ b/doc/7-systems/vic20.md @@ -19,4 +19,4 @@ these channels are not referred as "square" wave channels since a technique to p # info -- this chip uses the [VIC](../4-instrument/vic.md) instrument editor. \ No newline at end of file +this chip uses the [VIC](../4-instrument/vic.md) instrument editor. diff --git a/doc/7-systems/virtual-boy.md b/doc/7-systems/virtual-boy.md index 327238d5d..8dc11da98 100644 --- a/doc/7-systems/virtual-boy.md +++ b/doc/7-systems/virtual-boy.md @@ -44,4 +44,4 @@ additionally, channel 5 offers a modulation/sweep unit. the former is similar to # info -- this chip uses the [Virtual Boy](../4-instrument/virtual-boy.md) instrument editor. \ No newline at end of file +this chip uses the [Virtual Boy](../4-instrument/virtual-boy.md) instrument editor. diff --git a/doc/7-systems/vrc6.md b/doc/7-systems/vrc6.md index 35b402d39..ea85469af 100644 --- a/doc/7-systems/vrc6.md +++ b/doc/7-systems/vrc6.md @@ -19,4 +19,4 @@ these effects only are effective in the pulse channels. # info -- this chip uses the [VRC](../4-instrument/vrc6.md), [VRC (saw)](../4-instrument/vrc6.md), and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [VRC](../4-instrument/vrc6.md), [VRC (saw)](../4-instrument/vrc6.md), and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/wonderswan.md b/doc/7-systems/wonderswan.md index c3f73ddc8..e386461b7 100644 --- a/doc/7-systems/wonderswan.md +++ b/doc/7-systems/wonderswan.md @@ -22,4 +22,4 @@ it has 4 wavetable channels. some of them have additional capabilities: # info -- this chip uses the [WonderSwan](../4-instrument/wonderswan.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [WonderSwan](../4-instrument/wonderswan.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/x1-010.md b/doc/7-systems/x1-010.md index 9bc757447..7e0bea875 100644 --- a/doc/7-systems/x1-010.md +++ b/doc/7-systems/x1-010.md @@ -48,4 +48,4 @@ in Furnace, you can enable the envelope shape split mode. when it is set, its wa # info -- this chip uses the [X1-010](../4-instrument/x1_010.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [X1-010](../4-instrument/x1_010.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/ym2151.md b/doc/7-systems/ym2151.md index c08df4250..58b4fd1f7 100644 --- a/doc/7-systems/ym2151.md +++ b/doc/7-systems/ym2151.md @@ -71,4 +71,4 @@ in most arcade boards the chip was used in combination with a PCM chip, like [Se # info -- this chip uses the [FM (OPM)](../4-instrument/fm-opm.md) instrument editor. \ No newline at end of file +this chip uses the [FM (OPM)](../4-instrument/fm-opm.md) instrument editor. diff --git a/doc/7-systems/ym2203.md b/doc/7-systems/ym2203.md index 31ebee605..f8fd41fe9 100644 --- a/doc/7-systems/ym2203.md +++ b/doc/7-systems/ym2203.md @@ -103,7 +103,8 @@ several variants of this chip were released as well, with more features. # info -- this chip uses the [FM (OPN)](../4-instrument/fm-opn.md) and [AY-3-8910/SSG](../4-instrument/ay8910.md) instrument editor. +this chip uses the [FM (OPN)](../4-instrument/fm-opn.md) and [AY-3-8910/SSG](../4-instrument/ay8910.md) instrument editor. + ## extended channel 3 in ExtCh mode, channel 3 is split into one column for each of its four operators and feedback are shared. the frequency of each operator may be controlled independently with notes and effects. this can be used for more polyphony or more complex sounds. diff --git a/doc/7-systems/ym2608.md b/doc/7-systems/ym2608.md index 8a2588b22..51ea15d90 100644 --- a/doc/7-systems/ym2608.md +++ b/doc/7-systems/ym2608.md @@ -103,7 +103,8 @@ the YM2610 (OPNB) and YM2610B chips are very similar to this one, but the built- # info -- this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [Generic Sample](../4-instrument/amiga.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md), and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors. +this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [Generic Sample](../4-instrument/amiga.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md), and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors. + ## extended channel 3 in ExtCh mode, channel 3 is split into one column for each of its four operators. feedback and LFO levels are shared. the frequency of each operator may be controlled independently with notes and effects. this can be used for more polyphony or more complex sounds. diff --git a/doc/7-systems/ym2610.md b/doc/7-systems/ym2610.md index ef0a760df..b56df33d7 100644 --- a/doc/7-systems/ym2610.md +++ b/doc/7-systems/ym2610.md @@ -100,7 +100,8 @@ its soundchip is a 4-in-1: 4ch 4-op FM, YM2149 (AY-3-8910 clone) and [2 differen # info -- this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [Generic Sample](../4-instrument/amiga.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md), and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors. +this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [Generic Sample](../4-instrument/amiga.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md), and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors. + ## extended channel 2 in ExtCh mode, channel 2 is split into one column for each of its four operators. feedback and LFO levels are shared. the frequency of each operator may be controlled independently with notes and effects. this can be used for more polyphony or more complex sounds. diff --git a/doc/7-systems/ym2610b.md b/doc/7-systems/ym2610b.md index ad592e495..a670cfc2c 100644 --- a/doc/7-systems/ym2610b.md +++ b/doc/7-systems/ym2610b.md @@ -99,7 +99,8 @@ it is backward compatible with the original chip. # info -- this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [Generic Sample](../4-instrument/amiga.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md), and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors. +this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [Generic Sample](../4-instrument/amiga.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md), and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors. + ## extended channel 3 diff --git a/doc/7-systems/ym2612.md b/doc/7-systems/ym2612.md index 4ea666ca9..b245b1ac2 100644 --- a/doc/7-systems/ym2612.md +++ b/doc/7-systems/ym2612.md @@ -69,7 +69,8 @@ as of Furnace 0.6pre5, Furnace offers DualPCM, a Z80 driver that splits channel # info -- this chip uses the [FM (OPN)](../4-instrument/fm-opn.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. +this chip uses the [FM (OPN)](../4-instrument/fm-opn.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. + ## extended channel 3 diff --git a/doc/7-systems/ymu759.md b/doc/7-systems/ymu759.md index c9156afa9..956b37aca 100644 --- a/doc/7-systems/ymu759.md +++ b/doc/7-systems/ymu759.md @@ -18,4 +18,4 @@ hey, at least it was the spark that ignited the idea of DefleMask. # info -- this chip uses the [FM (OPL)](../4-instrument/fm-opl.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [FM (OPL)](../4-instrument/fm-opl.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/ymz280b.md b/doc/7-systems/ymz280b.md index 693b8c1d4..982df8d25 100644 --- a/doc/7-systems/ymz280b.md +++ b/doc/7-systems/ymz280b.md @@ -10,4 +10,4 @@ none so far. # info -- this chip uses the [YMZ280B](../4-instrument/ymz280b.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. \ No newline at end of file +this chip uses the [YMZ280B](../4-instrument/ymz280b.md) and [Generic Sample](../4-instrument/amiga.md) instrument editors. diff --git a/doc/7-systems/zxbeep.md b/doc/7-systems/zxbeep.md index 7b5061438..183beb4fc 100644 --- a/doc/7-systems/zxbeep.md +++ b/doc/7-systems/zxbeep.md @@ -17,4 +17,4 @@ not really - very soon talented programmers found out ways to output much more t # info -- this chip uses the [Beeper](../4-instrument/beeper.md), [Generic Sample](../4-instrument/amiga.md), and [Pokémon Mini/QuadTone](../4-instrument/quadtone.md) instrument editors. \ No newline at end of file +this chip uses the [Beeper](../4-instrument/beeper.md), [Generic Sample](../4-instrument/amiga.md), and [Pokémon Mini/QuadTone](../4-instrument/quadtone.md) instrument editors. From 2444d2f58ae3ddcf0e82946f1a7064f00f751338 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Fri, 4 Aug 2023 16:24:42 -0700 Subject: [PATCH 103/202] Minor adjustments. --- doc/2-interface/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/2-interface/README.md b/doc/2-interface/README.md index 465d0f872..ae2768f2e 100644 --- a/doc/2-interface/README.md +++ b/doc/2-interface/README.md @@ -13,7 +13,7 @@ primary topics: - [play/edit controls](play-edit-controls.md) - [instrument/wavetable/sample list](asset-list.md) - [song information](song-info.md) -- [effect list](effect-list.md) +- [effect list window](effect-list.md) - [pattern view](../3-pattern/README.md) - [instrument editor](../4-instrument/README.md) - [wavetable editor](../5-wave/README.md) From 13cfef02a718894511088d10ad589ad1bdd3050a Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 4 Aug 2023 22:16:53 -0500 Subject: [PATCH 104/202] asdf --- doc/2-interface/README.md | 2 +- doc/2-interface/{effect-list.md => effect-list-window.md} | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) rename doc/2-interface/{effect-list.md => effect-list-window.md} (74%) diff --git a/doc/2-interface/README.md b/doc/2-interface/README.md index ae2768f2e..3d6067aff 100644 --- a/doc/2-interface/README.md +++ b/doc/2-interface/README.md @@ -13,7 +13,7 @@ primary topics: - [play/edit controls](play-edit-controls.md) - [instrument/wavetable/sample list](asset-list.md) - [song information](song-info.md) -- [effect list window](effect-list.md) +- [effect list window](effect-list-window.md) - [pattern view](../3-pattern/README.md) - [instrument editor](../4-instrument/README.md) - [wavetable editor](../5-wave/README.md) diff --git a/doc/2-interface/effect-list.md b/doc/2-interface/effect-list-window.md similarity index 74% rename from doc/2-interface/effect-list.md rename to doc/2-interface/effect-list-window.md index 1f76f5051..28a1c313c 100644 --- a/doc/2-interface/effect-list.md +++ b/doc/2-interface/effect-list-window.md @@ -1,10 +1,10 @@ -# effect list +# effect list window + +(for more details about these effects, see [the effects page](../3-pattern/effects.md)) ![effect list window](effect-list.png) this window provides a list of the effects that are available. -for more details about these effects, see [the effects page](../3-pattern/effects.md). - - **Chip at cursor**: the currently selected chip. the list only shows available effects for this chip. - menu button: opens a small list of effect categories. toggle each to change whether they're shown in the list. From 673ff6ebb6a30a74483849e278067330d58aae0d Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 4 Aug 2023 22:43:26 -0500 Subject: [PATCH 105/202] GUI: fix header font not saving at all --- src/gui/settings.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 7f582f6c8..f053e6172 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -3121,7 +3121,7 @@ void FurnaceGUI::commitSettings() { e->setConf("tg100Path",settings.tg100Path); e->setConf("mu5Path",settings.mu5Path); e->setConf("mainFont",settings.mainFont); - e->setConf("headFont",settings.mainFont); + e->setConf("headFont",settings.headFont); e->setConf("patFont",settings.patFont); e->setConf("mainFontPath",settings.mainFontPath); e->setConf("headFontPath",settings.headFontPath); @@ -3967,7 +3967,7 @@ void FurnaceGUI::applyUISettings(bool updateFonts) { settings.mainFont=0; } if (settings.headFont==6 && settings.headFontPath.empty()) { - logW("UI font path is empty! reverting to default font"); + logW("header font path is empty! reverting to default font"); settings.headFont=0; } if (settings.patFont==6 && settings.patFontPath.empty()) { From 1d4a1c83378f3ff3f5aa6cc3961446d54b517b67 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 5 Aug 2023 02:52:02 -0500 Subject: [PATCH 106/202] GUI: higher quality oscilloscope issue #1324 --- src/gui/gui.cpp | 5 ++- src/gui/gui.h | 5 ++- src/gui/osc.cpp | 97 ++++++++++++++++++++++++++++++++++++++++++------- 3 files changed, 90 insertions(+), 17 deletions(-) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index a262b9da2..430d2845e 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -7102,8 +7102,11 @@ FurnaceGUI::FurnaceGUI(): displayInternalPorts(false), subPortPos(0.0f,0.0f), oscTotal(0), + oscWidth(512), oscZoom(0.5f), oscWindowSize(20.0f), + oscInput(0.0f), + oscInput1(0.0f), oscZoomSlider(false), chanOscCols(3), chanOscAutoColsType(0), @@ -7217,7 +7220,7 @@ FurnaceGUI::FurnaceGUI(): memset(patChanX,0,sizeof(float)*(DIV_MAX_CHANS+1)); memset(patChanSlideY,0,sizeof(float)*(DIV_MAX_CHANS+1)); memset(lastIns,-1,sizeof(int)*DIV_MAX_CHANS); - memset(oscValues,0,sizeof(float)*512); + memset(oscValues,0,sizeof(float)*1024); memset(chanOscLP0,0,sizeof(float)*DIV_MAX_CHANS); memset(chanOscLP1,0,sizeof(float)*DIV_MAX_CHANS); diff --git a/src/gui/gui.h b/src/gui/gui.h index 101247dc0..044e15767 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1969,10 +1969,11 @@ class FurnaceGUI { ImVec2 subPortPos; // oscilloscope - int oscTotal; - float oscValues[512]; + int oscTotal, oscWidth; + float oscValues[1024]; float oscZoom; float oscWindowSize; + float oscInput, oscInput1; bool oscZoomSlider; // per-channel oscilloscope diff --git a/src/gui/osc.cpp b/src/gui/osc.cpp index 7f783ddee..5e3e88a9b 100644 --- a/src/gui/osc.cpp +++ b/src/gui/osc.cpp @@ -20,6 +20,8 @@ #include "gui.h" #include "imgui_internal.h" #include +#include "../ta-log.h" +#include "../engine/filter.h" void FurnaceGUI::readOsc() { int writePos=e->oscWritePos; @@ -45,21 +47,81 @@ void FurnaceGUI::readOsc() { if (total>avail) total=avail; //printf("total: %d. avail: %d bias: %d\n",total,avail,bias); + memset(oscValues,0,1024*sizeof(float)); + int winSize=e->getAudioDescGot().rate*(oscWindowSize/1000.0); int oscReadPos=(writePos-winSize)&0x7fff; - for (int i=0; i<512; i++) { - int pos=(oscReadPos+(i*winSize/512))&0x7fff; - oscValues[i]=0; - for (int j=0; jgetAudioDescGot().outChans; j++) { - oscValues[i]+=e->oscBuf[j][pos]; - } - oscValues[i]/=e->getAudioDescGot().outChans; - if (oscValues[i]>0.001f || oscValues[i]<-0.001f) { - WAKE_UP; + float* sincITable=DivFilterTables::getSincIntegralTable(); + + float posFrac=0.0; + int posInt=oscReadPos; + float factor=(float)oscWidth/(float)winSize; + for (int i=0; igetAudioDescGot().outChans; j++) { + avg+=e->oscBuf[j][posInt&0x7fff]; + } + avg/=e->getAudioDescGot().outChans; + oscValues[i]+=avg; + + posFrac+=1.0; + while (posFrac>=1.0) { + unsigned int n=((unsigned int)(posFrac*8192.0))&8191; + posFrac-=factor; + posInt++; + + prevAvg=avg; + avg=0.0f; + for (int j=0; jgetAudioDescGot().outChans; j++) { + avg+=e->oscBuf[j][posInt&0x7fff]; + } + avg/=e->getAudioDescGot().outChans; + + float* t1=&sincITable[(8191-n)<<3]; + float* t2=&sincITable[n<<3]; + float delta=avg-prevAvg; + + for (int j=0; j<8; j++) { + if (i-j>0) { + oscValues[i-j]+=t1[j]*-delta; + } + if (i+j+1getAudioDescGot().outChans; j++) { + avg+=e->oscBuf[j][pos]; + } + avg/=e->getAudioDescGot().outChans; + + //oscInput+=(avg-oscInput)*cut; + //oscInput1+=(oscInput1-oscInput)*cut; + + oscInput=avg; + + for (int j=(i*oscWidth)/winSize; j<((i+1)*oscWidth)/winSize; j++) { + if (j>=oscWidth) break; + oscValues[j]=oscInput; + } + + if (avg>0.001f || avg<-0.001f) { + WAKE_UP; + } + }*/ + + /*for (int i=0; igetAudioDescGot().outChans; i++) { peak[i]*=1.0-peakDecay; @@ -124,7 +186,7 @@ void FurnaceGUI::drawOsc() { ImDrawList* dl=ImGui::GetWindowDrawList(); ImGuiWindow* window=ImGui::GetCurrentWindow(); - ImVec2 waveform[512]; + ImVec2 waveform[1024]; ImVec2 size=ImGui::GetContentRegionAvail(); ImVec2 minArea=window->DC.CursorPos; @@ -211,8 +273,12 @@ void FurnaceGUI::drawOsc() { dpiScale ); - for (size_t i=0; i<512; i++) { - float x=(float)i/512.0f; + oscWidth=round(inRect.Max.x-inRect.Min.x); + if (oscWidth<1) oscWidth=1; + if (oscWidth>1024) oscWidth=1024; + + for (int i=0; iFlags; + //dl->Flags&=~(ImDrawListFlags_AntiAliasedLines|ImDrawListFlags_AntiAliasedLinesUseTex); if (settings.oscEscapesBoundary) { dl->PushClipRectFullScreen(); - dl->AddPolyline(waveform,512,color,ImDrawFlags_None,dpiScale); + dl->AddPolyline(waveform,oscWidth,color,ImDrawFlags_None,dpiScale); dl->PopClipRect(); } else { - dl->AddPolyline(waveform,512,color,ImDrawFlags_None,dpiScale); + dl->AddPolyline(waveform,oscWidth,color,ImDrawFlags_None,dpiScale); } + //dl->Flags=prevFlags; if (settings.oscBorder) { dl->AddRect(inRect.Min,inRect.Max,borderColor,settings.oscRoundedCorners?(8.0f*dpiScale):0.0f,0,1.5f*dpiScale); } From bf77b95ec9446e1260a6487549c4d3bca5f0790d Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 5 Aug 2023 02:54:09 -0500 Subject: [PATCH 107/202] GUI: wake up on osc --- src/gui/osc.cpp | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/src/gui/osc.cpp b/src/gui/osc.cpp index 5e3e88a9b..294339f97 100644 --- a/src/gui/osc.cpp +++ b/src/gui/osc.cpp @@ -94,29 +94,11 @@ void FurnaceGUI::readOsc() { } } - /* - for (int i=0; igetAudioDescGot().outChans; j++) { - avg+=e->oscBuf[j][pos]; - } - avg/=e->getAudioDescGot().outChans; - - //oscInput+=(avg-oscInput)*cut; - //oscInput1+=(oscInput1-oscInput)*cut; - - oscInput=avg; - - for (int j=(i*oscWidth)/winSize; j<((i+1)*oscWidth)/winSize; j++) { - if (j>=oscWidth) break; - oscValues[j]=oscInput; - } - - if (avg>0.001f || avg<-0.001f) { + for (int i=0; i0.001f || oscValues[i]<-0.001f) { WAKE_UP; } - }*/ + } /*for (int i=0; i Date: Sat, 5 Aug 2023 03:26:36 -0500 Subject: [PATCH 108/202] GUI: add non-mono mode to osc --- src/gui/gui.cpp | 9 ++- src/gui/gui.h | 22 ++++++- src/gui/guiConst.cpp | 16 +++++ src/gui/osc.cpp | 137 ++++++++++++++++++++++++++----------------- src/gui/settings.cpp | 34 +++++++++++ 5 files changed, 162 insertions(+), 56 deletions(-) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 430d2845e..32f58fc39 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -6706,6 +6706,13 @@ bool FurnaceGUI::finish() { SDL_HapticClose(vibrator); } + for (int i=0; iavail) total=avail; //printf("total: %d. avail: %d bias: %d\n",total,avail,bias); - memset(oscValues,0,1024*sizeof(float)); - int winSize=e->getAudioDescGot().rate*(oscWindowSize/1000.0); int oscReadPos=(writePos-winSize)&0x7fff; - float* sincITable=DivFilterTables::getSincIntegralTable(); - - float posFrac=0.0; - int posInt=oscReadPos; - float factor=(float)oscWidth/(float)winSize; - for (int i=0; igetAudioDescGot().outChans; j++) { - avg+=e->oscBuf[j][posInt&0x7fff]; + for (int ch=0; chgetAudioDescGot().outChans; ch++) { + if (oscValues[ch]==NULL) { + oscValues[ch]=new float[1024]; } - avg/=e->getAudioDescGot().outChans; - oscValues[i]+=avg; + memset(oscValues[ch],0,1024*sizeof(float)); + float* sincITable=DivFilterTables::getSincIntegralTable(); - posFrac+=1.0; - while (posFrac>=1.0) { - unsigned int n=((unsigned int)(posFrac*8192.0))&8191; - posFrac-=factor; - posInt++; + float posFrac=0.0; + int posInt=oscReadPos; + float factor=(float)oscWidth/(float)winSize; + for (int i=0; ioscBuf[ch][posInt&0x7fff]; - prevAvg=avg; - avg=0.0f; - for (int j=0; jgetAudioDescGot().outChans; j++) { - avg+=e->oscBuf[j][posInt&0x7fff]; - } - avg/=e->getAudioDescGot().outChans; + posFrac+=1.0; + while (posFrac>=1.0) { + unsigned int n=((unsigned int)(posFrac*8192.0))&8191; + posFrac-=factor; + posInt++; - float* t1=&sincITable[(8191-n)<<3]; - float* t2=&sincITable[n<<3]; - float delta=avg-prevAvg; + float* t1=&sincITable[(8191-n)<<3]; + float* t2=&sincITable[n<<3]; + float delta=e->oscBuf[ch][posInt&0x7fff]-e->oscBuf[ch][(posInt-1)&0x7fff]; - for (int j=0; j<8; j++) { - if (i-j>0) { - oscValues[i-j]+=t1[j]*-delta; - } - if (i+j+10) { + oscValues[ch][i-j]+=t1[j]*-delta; + } + if (i+j+10.001f || oscValues[i]<-0.001f) { - WAKE_UP; + for (int i=0; i0.001f || oscValues[ch][i]<-0.001f) { + WAKE_UP; + } } } @@ -259,25 +250,63 @@ void FurnaceGUI::drawOsc() { if (oscWidth<1) oscWidth=1; if (oscWidth>1024) oscWidth=1024; - for (int i=0; i0.5f) y=0.5f; + ImDrawListFlags prevFlags=dl->Flags; + if (!settings.oscAntiAlias) { + dl->Flags&=~(ImDrawListFlags_AntiAliasedLines|ImDrawListFlags_AntiAliasedLinesUseTex); + } + + if (settings.oscMono) { + for (int i=0; igetAudioDescGot().outChans; j++) { + avg+=oscValues[j][i]; + } + avg/=e->getAudioDescGot().outChans; + + float y=avg*oscZoom; + if (!settings.oscEscapesBoundary) { + if (y<-0.5f) y=-0.5f; + if (y>0.5f) y=0.5f; + } + waveform[i]=ImLerp(inRect.Min,inRect.Max,ImVec2(x,0.5f-y)); + } + + if (settings.oscEscapesBoundary) { + dl->PushClipRectFullScreen(); + dl->AddPolyline(waveform,oscWidth,color,ImDrawFlags_None,dpiScale); + dl->PopClipRect(); + } else { + dl->AddPolyline(waveform,oscWidth,color,ImDrawFlags_None,dpiScale); } - waveform[i]=ImLerp(inRect.Min,inRect.Max,ImVec2(x,0.5f-y)); - } - //ImDrawListFlags prevFlags=dl->Flags; - //dl->Flags&=~(ImDrawListFlags_AntiAliasedLines|ImDrawListFlags_AntiAliasedLinesUseTex); - if (settings.oscEscapesBoundary) { - dl->PushClipRectFullScreen(); - dl->AddPolyline(waveform,oscWidth,color,ImDrawFlags_None,dpiScale); - dl->PopClipRect(); } else { - dl->AddPolyline(waveform,oscWidth,color,ImDrawFlags_None,dpiScale); + for (int ch=0; chgetAudioDescGot().outChans; ch++) { + for (int i=0; i0.5f) y=0.5f; + } + waveform[i]=ImLerp(inRect.Min,inRect.Max,ImVec2(x,0.5f-y)); + } + + if (!isClipping) { + color=ImGui::GetColorU32(uiColors[GUI_COLOR_OSC_WAVE_CH0+ch]); + } + + if (settings.oscEscapesBoundary) { + dl->PushClipRectFullScreen(); + dl->AddPolyline(waveform,oscWidth,color,ImDrawFlags_None,dpiScale); + dl->PopClipRect(); + } else { + dl->AddPolyline(waveform,oscWidth,color,ImDrawFlags_None,dpiScale); + } + } } - //dl->Flags=prevFlags; + + dl->Flags=prevFlags; + if (settings.oscBorder) { dl->AddRect(inRect.Min,inRect.Max,borderColor,settings.oscRoundedCorners?(8.0f*dpiScale):0.0f,0,1.5f*dpiScale); } diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index f053e6172..05eb50c4b 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -2314,6 +2314,16 @@ void FurnaceGUI::drawSettings() { settings.oscBorder=oscBorderB; } + bool oscMonoB=settings.oscMono; + if (ImGui::Checkbox("Mono",&oscMonoB)) { + settings.oscMono=oscMonoB; + } + + bool oscAntiAliasB=settings.oscAntiAlias; + if (ImGui::Checkbox("Anti-aliased",&oscAntiAliasB)) { + settings.oscAntiAlias=oscAntiAliasB; + } + bool oscTakesEntireWindowB=settings.oscTakesEntireWindow; if (ImGui::Checkbox("Fill entire window",&oscTakesEntireWindowB)) { settings.oscTakesEntireWindow=oscTakesEntireWindowB; @@ -2439,6 +2449,26 @@ void FurnaceGUI::drawSettings() { UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_PEAK,"Waveform (clip)"); UI_COLOR_CONFIG(GUI_COLOR_OSC_REF,"Reference"); UI_COLOR_CONFIG(GUI_COLOR_OSC_GUIDE,"Guide"); + + if (ImGui::TreeNode("Wave (non-mono)")) { + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_CH0,"Waveform (1)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_CH1,"Waveform (2)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_CH2,"Waveform (3)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_CH3,"Waveform (4)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_CH4,"Waveform (5)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_CH5,"Waveform (6)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_CH6,"Waveform (7)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_CH7,"Waveform (8)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_CH8,"Waveform (9)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_CH9,"Waveform (10)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_CH10,"Waveform (11)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_CH11,"Waveform (12)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_CH12,"Waveform (13)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_CH13,"Waveform (14)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_CH14,"Waveform (15)"); + UI_COLOR_CONFIG(GUI_COLOR_OSC_WAVE_CH15,"Waveform (16)"); + ImGui::TreePop(); + } ImGui::TreePop(); } if (ImGui::TreeNode("Volume Meter")) { @@ -2818,6 +2848,8 @@ void FurnaceGUI::syncSettings() { settings.oscTakesEntireWindow=e->getConfInt("oscTakesEntireWindow",0); settings.oscBorder=e->getConfInt("oscBorder",1); settings.oscEscapesBoundary=e->getConfInt("oscEscapesBoundary",0); + settings.oscMono=e->getConfInt("oscMono",1); + settings.oscAntiAlias=e->getConfInt("oscAntiAlias",1); settings.separateFMColors=e->getConfInt("separateFMColors",0); settings.insEditColorize=e->getConfInt("insEditColorize",0); settings.metroVol=e->getConfInt("metroVol",100); @@ -3177,6 +3209,8 @@ void FurnaceGUI::commitSettings() { e->setConf("oscTakesEntireWindow",settings.oscTakesEntireWindow); e->setConf("oscBorder",settings.oscBorder); e->setConf("oscEscapesBoundary",settings.oscEscapesBoundary); + e->setConf("oscMono",settings.oscMono); + e->setConf("oscAntiAlias",settings.oscAntiAlias); e->setConf("separateFMColors",settings.separateFMColors); e->setConf("insEditColorize",settings.insEditColorize); e->setConf("metroVol",settings.metroVol); From 2b78ea7abed6bc55ee0a45affce30a75c86cc509 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 5 Aug 2023 03:37:03 -0500 Subject: [PATCH 109/202] GUI: add setting to remove ins/vol val on OFF/REL --- src/gui/gui.cpp | 12 ++++++++++++ src/gui/gui.h | 4 ++++ src/gui/settings.cpp | 16 ++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 32f58fc39..b000ed789 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -1128,18 +1128,22 @@ void FurnaceGUI::stopPreviewNote(SDL_Scancode scancode, bool autoNote) { void FurnaceGUI::noteInput(int num, int key, int vol) { DivPattern* pat=e->curPat[cursor.xCoarse].getPattern(e->curOrders->ord[cursor.xCoarse][curOrder],true); + bool removeIns=false; prepareUndo(GUI_UNDO_PATTERN_EDIT); if (key==GUI_NOTE_OFF) { // note off pat->data[cursor.y][0]=100; pat->data[cursor.y][1]=0; + removeIns=true; } else if (key==GUI_NOTE_OFF_RELEASE) { // note off + env release pat->data[cursor.y][0]=101; pat->data[cursor.y][1]=0; + removeIns=true; } else if (key==GUI_NOTE_RELEASE) { // env release only pat->data[cursor.y][0]=102; pat->data[cursor.y][1]=0; + removeIns=true; } else { pat->data[cursor.y][0]=num%12; pat->data[cursor.y][1]=num/12; @@ -1165,6 +1169,14 @@ void FurnaceGUI::noteInput(int num, int key, int vol) { if (latchEffect!=-1) pat->data[cursor.y][4]=latchEffect; if (latchEffectVal!=-1) pat->data[cursor.y][5]=latchEffectVal; } + if (removeIns) { + if (settings.removeInsOff) { + pat->data[cursor.y][2]=-1; + } + if (settings.removeVolOff) { + pat->data[cursor.y][3]=-1; + } + } makeUndo(GUI_UNDO_PATTERN_EDIT); editAdvance(); curNibble=false; diff --git a/src/gui/gui.h b/src/gui/gui.h index 8a7430f6b..7178c382b 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1545,6 +1545,8 @@ class FurnaceGUI { int memUsageUnit; int cursorFollowsWheel; int noDMFCompat; + int removeInsOff; + int removeVolOff; unsigned int maxUndoSteps; String mainFontPath; String headFontPath; @@ -1704,6 +1706,8 @@ class FurnaceGUI { memUsageUnit(1), cursorFollowsWheel(0), noDMFCompat(0), + removeInsOff(0), + removeVolOff(0), maxUndoSteps(100), mainFontPath(""), headFontPath(""), diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 05eb50c4b..e09958483 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -1738,6 +1738,16 @@ void FurnaceGUI::drawSettings() { settings.absorbInsInput=absorbInsInputB; } + bool removeInsOffB=settings.removeInsOff; + if (ImGui::Checkbox("Remove instrument value when inserting note off/release",&removeInsOffB)) { + settings.removeInsOff=removeInsOffB; + } + + bool removeVolOffB=settings.removeVolOff; + if (ImGui::Checkbox("Remove volume value when inserting note off/release",&removeVolOffB)) { + settings.removeVolOff=removeVolOffB; + } + // SUBSECTION CURSOR MOVEMENT CONFIG_SUBSECTION("Cursor movement"); @@ -2923,6 +2933,8 @@ void FurnaceGUI::syncSettings() { settings.memUsageUnit=e->getConfInt("memUsageUnit",1); settings.cursorFollowsWheel=e->getConfInt("cursorFollowsWheel",0); settings.noDMFCompat=e->getConfInt("noDMFCompat",0); + settings.removeInsOff=e->getConfInt("removeInsOff",0); + settings.removeVolOff=e->getConfInt("removeVolOff",0); clampSetting(settings.mainFontSize,2,96); clampSetting(settings.headFontSize,2,96); @@ -3054,6 +3066,8 @@ void FurnaceGUI::syncSettings() { clampSetting(settings.memUsageUnit,0,1); clampSetting(settings.cursorFollowsWheel,0,1); clampSetting(settings.noDMFCompat,0,1); + clampSetting(settings.removeInsOff,0,1); + clampSetting(settings.removeVolOff,0,1); if (settings.exportLoops<0.0) settings.exportLoops=0.0; if (settings.exportFadeOut<0.0) settings.exportFadeOut=0.0; @@ -3285,6 +3299,8 @@ void FurnaceGUI::commitSettings() { e->setConf("memUsageUnit",settings.memUsageUnit); e->setConf("cursorFollowsWheel",settings.cursorFollowsWheel); e->setConf("noDMFCompat",settings.noDMFCompat); + e->setConf("removeInsOff",settings.removeInsOff); + e->setConf("removeVolOff",settings.removeVolOff); // colors for (int i=0; i Date: Sat, 5 Aug 2023 03:39:40 -0500 Subject: [PATCH 110/202] GUI: drop a mention of legacy --- src/gui/dataList.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/gui/dataList.cpp b/src/gui/dataList.cpp index f9e2ab749..8e9bc33ec 100644 --- a/src/gui/dataList.cpp +++ b/src/gui/dataList.cpp @@ -407,13 +407,10 @@ void FurnaceGUI::sampleListItem(int i, int dir, int asset) { lastAssetType=2; } if (ImGui::IsItemHovered() && !mobileUI) { - ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_TEXT]); - ImGui::SetTooltip("(legacy bank %d: %s)",i/12,sampleNote[i%12]); if (ImGui::IsMouseDoubleClicked(ImGuiMouseButton_Left)) { sampleEditOpen=true; nextWindow=GUI_WINDOW_SAMPLE_EDIT; } - ImGui::PopStyleColor(); } if (sampleListDir || (settings.unifiedDataView && insListDir)) { DRAG_SOURCE(dir,asset,"FUR_SDIR"); From 03383cff80166804793230fb97f9b81135e25630 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 5 Aug 2023 03:45:00 -0500 Subject: [PATCH 111/202] discourage use of legacy sample mode --- doc/6-sample/README.md | 8 ++++---- doc/7-systems/pce.md | 4 ++-- doc/7-systems/vrc6.md | 3 ++- doc/7-systems/x1-010.md | 3 ++- doc/7-systems/ym2612.md | 5 +++-- src/engine/engine.cpp | 2 +- src/engine/sysDef.cpp | 10 +++++----- 7 files changed, 19 insertions(+), 16 deletions(-) diff --git a/doc/6-sample/README.md b/doc/6-sample/README.md index 66d35479a..9f5a6cf86 100644 --- a/doc/6-sample/README.md +++ b/doc/6-sample/README.md @@ -33,15 +33,15 @@ the following sound chips have sample support: - Yamaha PCMD8/YMZ280B - MMC5 (last channel only) -## compatible sample mode +## compatible sample mode (LEGACY) -effect `17xx` enables/disables compatible sample mode whether supported (e.g. on Sega Genesis or PC Engine). +**use of this mode is discouraged in favor of Sample type instruments.** + +effect `17xx` enables/disables compatible sample mode where supported (e.g. on Sega Genesis or PC Engine). in this mode, samples are mapped to notes in an octave from C to B, allowing you to use up to 12 samples. if you need to use more samples, you may change the sample bank using effect `EBxx`. -use of this mode is discouraged in favor of Sample type instruments. - ## notes due to limitations in some of those sound chips, some restrictions exist: diff --git a/doc/7-systems/pce.md b/doc/7-systems/pce.md index 03727cfb8..308d42e46 100644 --- a/doc/7-systems/pce.md +++ b/doc/7-systems/pce.md @@ -18,8 +18,8 @@ furthermore, it has some PCM and LFO! - `03`: LFO enabled, shift 8. - when LFO is enabled, channel 2 is muted and its output is passed to channel 1's frequency. - `13xx`: **set LFO speed.** -- `17xx`: **toggle PCM mode.** - - _this effect is here for compatibility reasons_; it is otherwise recommended to use Sample type instruments (which automatically enable PCM mode when used). +- `17xx`: **toggle LEGACY sample mode.** + - **this effect exists only for compatibility reasons! its use is NOT recommented. use Sample type instruments instead.** # info diff --git a/doc/7-systems/vrc6.md b/doc/7-systems/vrc6.md index ea85469af..ba6df1d2a 100644 --- a/doc/7-systems/vrc6.md +++ b/doc/7-systems/vrc6.md @@ -15,7 +15,8 @@ Furnace supports this routine for PCM playback, but it consumes a lot of CPU tim these effects only are effective in the pulse channels. - `12xx`: **set duty cycle.** range is `0` to `7`. -- `17xx`: **toggle PCM mode.** +- `17xx`: **toggle LEGACY sample mode.** + - **this effect exists only for compatibility reasons! its use is NOT recommented. use Sample type instruments instead.** # info diff --git a/doc/7-systems/x1-010.md b/doc/7-systems/x1-010.md index 7e0bea875..e4836cf8f 100644 --- a/doc/7-systems/x1-010.md +++ b/doc/7-systems/x1-010.md @@ -27,7 +27,8 @@ in Furnace, you can enable the envelope shape split mode. when it is set, its wa - `10xx`: **change wave.** - `11xx`: **change envelope shape.** also wavetable. -- `17xx`: **toggle PCM mode.** +- `17xx`: **toggle LEGACY sample mode.** + - **this effect exists only for compatibility reasons! its use is NOT recommented. use Sample type instruments instead.** - `20xx`: **set PCM frequency.** range is `1` to `FF`. - PCM frequency formula: `step * (clock / 8192)`. - range is 1.95KHz to 498KHz if the chip clock is 16MHz. diff --git a/doc/7-systems/ym2612.md b/doc/7-systems/ym2612.md index b245b1ac2..7804984eb 100644 --- a/doc/7-systems/ym2612.md +++ b/doc/7-systems/ym2612.md @@ -16,8 +16,9 @@ as of Furnace 0.6pre5, Furnace offers DualPCM, a Z80 driver that splits channel - `16xy`: **set multiplier of operator.** - `x` is the operator (1-4). - `y` is the multiplier. -- `17xx`: **enable PCM channel.** +- `17xx`: **toggle LEGACY sample mode.** - this only works on channel 6. + - **this effect exists only for compatibility reasons! its use is NOT recommented. use Sample type instruments instead.** - `18xx`: **toggle extended channel 3 mode.** - 0 disables it and 1 enables it. - only in extended channel 3 chip. @@ -86,4 +87,4 @@ CSM is beyond the scope of this documentation. for more information, see this [b ## DualPCM -thanks to the Z80 sound CPU, DualPCM can play two samples at once! this mode splits channel 6 into two individual PCM channels with variable pitch. these are mixed together in software and streamed to channel 6 with a mix rate of 13750 Hz. VGM export requires the "direct stream mode" option to be enabled, and resulting files will be very large. \ No newline at end of file +thanks to the Z80 sound CPU, DualPCM can play two samples at once! this mode splits channel 6 into two individual PCM channels with variable pitch. these are mixed together in software and streamed to channel 6 with a mix rate of 13750 Hz. VGM export requires the "direct stream mode" option to be enabled, and resulting files will be very large. diff --git a/src/engine/engine.cpp b/src/engine/engine.cpp index d27b6a57e..8c6c8a386 100644 --- a/src/engine/engine.cpp +++ b/src/engine/engine.cpp @@ -107,7 +107,7 @@ const char* DivEngine::getEffectDesc(unsigned char effect, int chan, bool notNul case 0xea: return "EAxx: Legato"; case 0xeb: - return "EBxx: Set sample bank"; + return "EBxx: Set LEGACY sample mode bank"; case 0xec: return "ECxx: Note cut"; case 0xed: diff --git a/src/engine/sysDef.cpp b/src/engine/sysDef.cpp index f999a2d6f..08ed8f4f5 100644 --- a/src/engine/sysDef.cpp +++ b/src/engine/sysDef.cpp @@ -451,7 +451,7 @@ void DivEngine::registerSystems() { EffectHandlerMap fmOPN2EffectHandlerMap(fmEffectHandlerMap); fmOPN2EffectHandlerMap.insert({ - {0x17, {DIV_CMD_SAMPLE_MODE, "17xx: Toggle PCM mode"}}, + {0x17, {DIV_CMD_SAMPLE_MODE, "17xx: Toggle PCM mode (LEGACY)"}}, {0xdf, {DIV_CMD_SAMPLE_DIR, "DFxx: Set sample playback direction (0: normal; 1: reverse)"}}, }); @@ -681,7 +681,7 @@ void DivEngine::registerSystems() { {0x11, {DIV_CMD_STD_NOISE_MODE, "11xx: Toggle noise mode"}}, {0x12, {DIV_CMD_PCE_LFO_MODE, "12xx: Setup LFO (0: disabled; 1: 1x depth; 2: 16x depth; 3: 256x depth)"}}, {0x13, {DIV_CMD_PCE_LFO_SPEED, "13xx: Set LFO speed"}}, - {0x17, {DIV_CMD_SAMPLE_MODE, "17xx: Toggle PCM mode"}} + {0x17, {DIV_CMD_SAMPLE_MODE, "17xx: Toggle PCM mode (LEGACY)"}} } ); @@ -939,7 +939,7 @@ void DivEngine::registerSystems() { {DIV_INS_AMIGA, DIV_INS_AMIGA, DIV_INS_NULL}, { {0x12, {DIV_CMD_STD_NOISE_MODE, "12xx: Set duty cycle (pulse: 0 to 7)"}}, - {0x17, {DIV_CMD_SAMPLE_MODE, "17xx: Toggle PCM mode (pulse channel)"}}, + {0x17, {DIV_CMD_SAMPLE_MODE, "17xx: Toggle PCM mode (LEGACY)"}}, } ); @@ -1182,7 +1182,7 @@ void DivEngine::registerSystems() { {0x11, {DIV_CMD_STD_NOISE_MODE, "11xx: Setup noise mode (0: disabled; 1-8: enabled/tap)"}}, {0x12, {DIV_CMD_WS_SWEEP_TIME, "12xx: Setup sweep period (0: disabled; 1-20: enabled/period)"}}, {0x13, {DIV_CMD_WS_SWEEP_AMOUNT, "13xx: Set sweep amount"}}, - {0x17, {DIV_CMD_SAMPLE_MODE, "17xx: Toggle PCM mode"}}, + {0x17, {DIV_CMD_SAMPLE_MODE, "17xx: Toggle PCM mode (LEGACY)"}}, } ); @@ -1497,7 +1497,7 @@ void DivEngine::registerSystems() { {0x10, {DIV_CMD_WAVE, "10xx: Set waveform"}}, {0x11, {DIV_CMD_X1_010_ENVELOPE_SHAPE, "11xx: Set envelope shape"}}, {0x12, {DIV_CMD_X1_010_SAMPLE_BANK_SLOT, "12xx: Set sample bank slot (0 to 7)"}}, - {0x17, {DIV_CMD_SAMPLE_MODE, "17xx: Toggle PCM mode"}}, + {0x17, {DIV_CMD_SAMPLE_MODE, "17xx: Toggle PCM mode (LEGACY)"}}, }, { {0x20, {DIV_CMD_SAMPLE_FREQ, "20xx: Set PCM frequency (1 to FF)"}}, From 9340358eac458b3e28df55712c8a4dcc6497436a Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Sat, 5 Aug 2023 10:32:14 -0700 Subject: [PATCH 112/202] Add new settings to doc, other small edits. --- doc/2-interface/settings.md | 48 ++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/doc/2-interface/settings.md b/doc/2-interface/settings.md index 32c85242b..7a702981e 100644 --- a/doc/2-interface/settings.md +++ b/doc/2-interface/settings.md @@ -11,11 +11,9 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **Render backend** - changing this may help with performace issues. - **Late render clear** -- **Power-saving mode** - - saves power by lowering the frame rate to 2fps when idle. +- **Power-saving mode**: save power by lowering the frame rate to 2fps when idle. - may cause issues under Mesa drivers! -- **Disable threaded input (restart after changing!)** - - threaded input processes key presses for note preview on a separate thread (on supported platforms), which reduces latency. +- **Disable threaded input (restart after changing!)**: process key presses for note preview on a separate thread (on supported platforms), which reduces latency. - however, crashes have been reported when threaded input is on. enable this option if that is the case. - **Enable event delay** - may cause issues with high-polling-rate mice when previewing notes. @@ -23,7 +21,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. ### File - **Use system file picker**: use native OS file dialog instead of Furnace's. -- **Number of recent files** +- **Number of recent files**: number of files to show in the _open recent..._ menu. - **Compress when saving** - use zlib to compress saved songs. - **Save unused patterns** @@ -38,10 +36,10 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. ### Chip - **Initial system**: the system of chips loaded on starting Furnace. - - **Current system**: sets current chips as default. + - **Current system**: set current chips as default. - **Randomize**: set default to a random system. - this will not choose a random system at each start. - - **Reset to defaults**: sets default to "Sega Genesis/Mega Drive". + - **Reset to defaults**: set default to "Sega Genesis/Mega Drive". - **Name**: name for the default system. may be set to any text. - system configuration: same as in the [chip manager](../8-advanced/chip-manager.md) and [mixer](../8-advanced/mixer.md). - **When creating new song**: @@ -79,7 +77,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - only appears when Backend is JACK. - **Channels**: number of output channels to use. - **Buffer size**: size of buffer in both samples and milliseconds. -- **Low-latency mode (experimental!)**: reduces latency by running the engine faster than the tick rate. useful for live playback/jam mode. +- **Low-latency mode (experimental!)**: reduce latency by running the engine faster than the tick rate. useful for live playback/jam mode. - _warning:_ experimental! may produce glitches. only enable if your buffer size is small (10ms or less). - **Force mono audio** - **want:** displays requested audio configuration. @@ -87,8 +85,8 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. ### Mixing -- **Quality**: selects quality of resampling. low quality reduces CPU load. -- **Software clipping**: clips output to nominal range (-1.0 to 1.0) before passing it to the audio device. +- **Quality**: select quality of resampling. low quality reduces CPU load. +- **Software clipping**: clip output to nominal range (-1.0 to 1.0) before passing it to the audio device. - this avoids activating Windows' built-in limiter. ### Metronome @@ -136,7 +134,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **Control** - **Volume curve** - **Actions:** - - **`+`** button: adds a new action. + - **`+`** button: add a new action. - window-with-arrow button: new action with learning! press a button or move a slider/knob/something on your device. - each action has the following: - **Type** @@ -209,8 +207,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **Export**: writes current layout to a .ini file. - **Reset**: resets layout to default. - **Allow docking editors** -- **Remember window position** - - remembers the window's last position on start-up. +- **Remember window position**: remember the window's last position on start-up. - **Only allow window movement when clicking on title bar** - **Play/edit controls layout:** - **Classic** @@ -248,13 +245,15 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **Pull delete affects entire channel row** - **Push value when overwriting instead of clearing it**: in the order list and pattern editors, typing into an already-filled value will shift digits instead of starting fresh. - if off: moving the cursor onto the value `A5` and typing a "B" results in `0B`. - - if on: with the cursor on the value `A5` and typing a "B" results in `5B`. + - if on: moving the cursor onto the value `A5` and typing a "B" results in `5B`. - **Effect input behavior:** - **Move down** - **Move to effect value (otherwise move down)** - **Move to effect value/next effect and wrap around** - **Delete effect value when deleting effect** - **Change current instrument when changing instrument column (absorb)** +- **Remove instrument value when inserting note off/release** +- **Remove volume value when inserting note off/release** ### Cursor movement @@ -294,13 +293,15 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. ### Scaling - **Automatic UI scaling factor**: automatically match the OS's UI scaling. -- **UI scaling factor**: only if "Automatic UI scaling factor" is off. +- **UI scaling factor**: only appears if "Automatic UI scaling factor" is off. - **Icon size** ### Text - **Main font**: if "Custom...", a file path selector will appear beneath. - **Size** +- **Header font**: if "Custom...", a file path selector will appear beneath. +- **Size** - **Pattern font**: if "Custom...", a file path selector will appear beneath. - **Size** - **Display Japanese characters**\ @@ -334,7 +335,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. ### Pattern -- **Center pattern view**: centers pattern horizontally in view. +- **Center pattern view**: center pattern horizontally in view. - **Overflow pattern highlights** - **Display previous/next pattern** - **Pattern row number format:** @@ -428,11 +429,11 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **Between Decay and Sustain Rate** - **After Release Rate** - **Use separate colors for carriers/modulators in FM editor** -- **Unsigned FM detune values** +- **Unsigned FM detune values**: use internal representation of detune values, such that detune amounts of -1, -2, and -3 are shown as 5, 6, and 7. ### Statistics -- **Chip memory usage unit:** +- **Chip memory usage unit:** unit for displaying memory usage in the Statistics window. - **Bytes** - **Kilobytes** @@ -440,15 +441,18 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **Rounded corners** - **Border** -- **Fill entire window** -- **Waveform goes out of bounds** +- **Mono**: display a single monaural waveform of all sound mixed together. + - if turned off, waves will be drawn on top of each other for each output channel. their colors are configurable via _Settings > Color > Color scheme > Oscilloscope > Wave (non-mono)._ +- **Anti-aliased**: smooth the lines of the waveform. +- **Fill entire window**: remove the gap between the waveform and the edge of the window. +- **Waveform goes out of bounds**: allow the waveform to draw past the top and bottom of the oscilloscope. ### Windows - **Rounded window corners** - **Rounded buttons** - **Rounded menu corners** -- **Borders around widgets** +- **Borders around widgets**: draw thin borders on buttons, checkboxes, text widgets, and the like. @@ -463,5 +467,5 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **Color scheme type:** - **Dark** - **Light** - - **Frame shading**: applies a gradient effect to buttons and input boxes. + - **Frame shading**: apply a gradient effect to buttons and input boxes. - several more categories... From 3f80231f24ec8612d17b50989bb3c1e277c57050 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Sat, 5 Aug 2023 11:18:50 -0700 Subject: [PATCH 113/202] Settings window: Indent radio button groups. All radio button groups are indented for visual clarity. Also, font path and size selectors. --- src/gui/settings.cpp | 72 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 70 insertions(+), 2 deletions(-) diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index e09958483..bd587a21d 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -438,10 +438,12 @@ void FurnaceGUI::drawSettings() { } ImGui::Text("Audio export loop/fade out time:"); + ImGui::Indent(); if (ImGui::RadioButton("Set to these values on start-up:##fot0",settings.persistFadeOut==0)) { settings.persistFadeOut=0; } ImGui::BeginDisabled(settings.persistFadeOut); + ImGui::Indent(); if (ImGui::InputInt("Loops",&settings.exportLoops,1,2)) { if (exportLoops<0) exportLoops=0; exportLoops=settings.exportLoops; @@ -450,10 +452,12 @@ void FurnaceGUI::drawSettings() { if (exportFadeOut<0.0) exportFadeOut=0.0; exportFadeOut=settings.exportFadeOut; } + ImGui::Unindent(); ImGui::EndDisabled(); if (ImGui::RadioButton("Remember last values##fot1",settings.persistFadeOut==1)) { settings.persistFadeOut=1; } + ImGui::Unindent(); // SUBSECTION CHIP CONFIG_SUBSECTION("Chip"); @@ -645,12 +649,14 @@ void FurnaceGUI::drawSettings() { } ImGui::Text("When creating new song:"); + ImGui::Indent(); if (ImGui::RadioButton("Display system preset selector##NSB0",settings.newSongBehavior==0)) { settings.newSongBehavior=0; } if (ImGui::RadioButton("Start with initial system##NSB1",settings.newSongBehavior==1)) { settings.newSongBehavior=1; } + ImGui::Unindent(); bool restartOnFlagChangeB=settings.restartOnFlagChange; if (ImGui::Checkbox("Restart song when changing chip properties",&restartOnFlagChangeB)) { @@ -660,6 +666,7 @@ void FurnaceGUI::drawSettings() { // SUBSECTION START-UP CONFIG_SUBSECTION("Start-up"); ImGui::Text("Play intro on start-up:"); + ImGui::Indent(); if (ImGui::RadioButton("No##pis0",settings.alwaysPlayIntro==0)) { settings.alwaysPlayIntro=0; } @@ -672,6 +679,7 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Full (always)##pis3",settings.alwaysPlayIntro==3)) { settings.alwaysPlayIntro=3; } + ImGui::Unindent(); bool disableFadeInB=settings.disableFadeIn; if (ImGui::Checkbox("Disable fade-in during start-up",&disableFadeInB)) { @@ -1104,6 +1112,7 @@ void FurnaceGUI::drawSettings() { } ImGui::Text("Output mode:"); + ImGui::Indent(); if (ImGui::RadioButton("Off (use for TX81Z)",settings.midiOutMode==0)) { settings.midiOutMode=0; } @@ -1114,6 +1123,7 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Light Show (use for Launchpad)",settings.midiOutMode==2)) { settings.midiOutMode=2; }*/ + ImGui::Unindent(); bool midiOutProgramChangeB=settings.midiOutProgramChange; if (ImGui::Checkbox("Send Program Change",&midiOutProgramChangeB)) { @@ -1132,6 +1142,7 @@ void FurnaceGUI::drawSettings() { if (settings.midiOutTime) { ImGui::Text("Timecode frame rate:"); + ImGui::Indent(); if (ImGui::RadioButton("Closest to Tick Rate",settings.midiOutTimeRate==0)) { settings.midiOutTimeRate=0; } @@ -1147,6 +1158,7 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("NTSC non-drop (30fps)",settings.midiOutTimeRate==4)) { settings.midiOutTimeRate=4; } + ImGui::Unindent(); } END_SECTION; @@ -1615,6 +1627,7 @@ void FurnaceGUI::drawSettings() { } ImGui::Text("Play/edit controls layout:"); + ImGui::Indent(); if (ImGui::RadioButton("Classic##ecl0",settings.controlLayout==0)) { settings.controlLayout=0; } @@ -1627,8 +1640,10 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Split##ecl3",settings.controlLayout==3)) { settings.controlLayout=3; } + ImGui::Unindent(); ImGui::Text("Position of buttons in Orders:"); + ImGui::Indent(); if (ImGui::RadioButton("Top##obp0",settings.orderButtonPos==0)) { settings.orderButtonPos=0; } @@ -1638,6 +1653,7 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Right##obp2",settings.orderButtonPos==2)) { settings.orderButtonPos=2; } + ImGui::Unindent(); // SUBSECTION MOUSE CONFIG_SUBSECTION("Mouse"); @@ -1660,6 +1676,7 @@ void FurnaceGUI::drawSettings() { } ImGui::Text("Note preview behavior:"); + ImGui::Indent(); if (ImGui::RadioButton("Never##npb0",settings.notePreviewBehavior==0)) { settings.notePreviewBehavior=0; } @@ -1672,8 +1689,10 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Always##npb3",settings.notePreviewBehavior==3)) { settings.notePreviewBehavior=3; } + ImGui::Unindent(); ImGui::Text("Allow dragging selection:"); + ImGui::Indent(); if (ImGui::RadioButton("No##dms0",settings.dragMovesSelection==0)) { settings.dragMovesSelection=0; } @@ -1683,8 +1702,10 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Yes (while holding Ctrl only)##dms2",settings.dragMovesSelection==2)) { settings.dragMovesSelection=2; } + ImGui::Unindent(); ImGui::Text("Toggle channel solo on:"); + ImGui::Indent(); if (ImGui::RadioButton("Right-click or double-click##soloA",settings.soloAction==0)) { settings.soloAction=0; } @@ -1694,6 +1715,7 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Double-click##soloD",settings.soloAction==2)) { settings.soloAction=2; } + ImGui::Unindent(); bool doubleClickColumnB=settings.doubleClickColumn; if (ImGui::Checkbox("Double click selects entire column",&doubleClickColumnB)) { @@ -1718,6 +1740,7 @@ void FurnaceGUI::drawSettings() { } ImGui::Text("Effect input behavior:"); + ImGui::Indent(); if (ImGui::RadioButton("Move down##eicb0",settings.effectCursorDir==0)) { settings.effectCursorDir=0; } @@ -1727,6 +1750,7 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Move to effect value/next effect and wrap around##eicb2",settings.effectCursorDir==2)) { settings.effectCursorDir=2; } + ImGui::Unindent(); bool effectDeletionAltersValueB=settings.effectDeletionAltersValue; if (ImGui::Checkbox("Delete effect value when deleting effect",&effectDeletionAltersValueB)) { @@ -1752,6 +1776,7 @@ void FurnaceGUI::drawSettings() { CONFIG_SUBSECTION("Cursor movement"); ImGui::Text("Wrap horizontally:"); + ImGui::Indent(); if (ImGui::RadioButton("No##wrapH0",settings.wrapHorizontal==0)) { settings.wrapHorizontal=0; } @@ -1761,8 +1786,10 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Yes, and move to next/prev row##wrapH2",settings.wrapHorizontal==2)) { settings.wrapHorizontal=2; } + ImGui::Unindent(); ImGui::Text("Wrap vertically:"); + ImGui::Indent(); if (ImGui::RadioButton("No##wrapV0",settings.wrapVertical==0)) { settings.wrapVertical=0; } @@ -1775,14 +1802,17 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Yes, and move to next/prev pattern (wrap around)##wrapV2",settings.wrapVertical==3)) { settings.wrapVertical=3; } + ImGui::Unindent(); ImGui::Text("Cursor movement keys behavior:"); + ImGui::Indent(); if (ImGui::RadioButton("Move by one##cmk0",settings.scrollStep==0)) { settings.scrollStep=0; } if (ImGui::RadioButton("Move by Edit Step##cmk1",settings.scrollStep==1)) { settings.scrollStep=1; } + ImGui::Unindent(); bool stepOnDeleteB=settings.stepOnDelete; if (ImGui::Checkbox("Move cursor by edit step on delete",&stepOnDeleteB)) { @@ -1808,6 +1838,7 @@ void FurnaceGUI::drawSettings() { CONFIG_SUBSECTION("Scrolling"); ImGui::Text("Change order when scrolling outside of pattern bounds:"); + ImGui::Indent(); if (ImGui::RadioButton("No##pscroll0",settings.scrollChangesOrder==0)) { settings.scrollChangesOrder=0; } @@ -1817,6 +1848,7 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Yes, and wrap around song##pscroll2",settings.scrollChangesOrder==2)) { settings.scrollChangesOrder=2; } + ImGui::Unindent(); bool cursorFollowsOrderB=settings.cursorFollowsOrder; if (ImGui::Checkbox("Cursor follows current order when moving it",&cursorFollowsOrderB)) { @@ -1866,6 +1898,7 @@ void FurnaceGUI::drawSettings() { ImGui::Text("Main font"); ImGui::SameLine(); ImGui::Combo("##MainFont",&settings.mainFont,mainFonts,7); + ImGui::Indent(); if (settings.mainFont==6) { ImGui::InputText("##MainFontPath",&settings.mainFontPath); ImGui::SameLine(); @@ -1877,9 +1910,11 @@ void FurnaceGUI::drawSettings() { if (settings.mainFontSize<3) settings.mainFontSize=3; if (settings.mainFontSize>96) settings.mainFontSize=96; } + ImGui::Unindent(); ImGui::Text("Header font"); ImGui::SameLine(); ImGui::Combo("##HeadFont",&settings.headFont,headFonts,7); + ImGui::Indent(); if (settings.headFont==6) { ImGui::InputText("##HeadFontPath",&settings.headFontPath); ImGui::SameLine(); @@ -1891,9 +1926,11 @@ void FurnaceGUI::drawSettings() { if (settings.headFontSize<3) settings.headFontSize=3; if (settings.headFontSize>96) settings.headFontSize=96; } + ImGui::Unindent(); ImGui::Text("Pattern font"); ImGui::SameLine(); ImGui::Combo("##PatFont",&settings.patFont,patFonts,7); + ImGui::Indent(); if (settings.patFont==6) { ImGui::InputText("##PatFontPath",&settings.patFontPath); ImGui::SameLine(); @@ -1905,6 +1942,7 @@ void FurnaceGUI::drawSettings() { if (settings.patFontSize<3) settings.patFontSize=3; if (settings.patFontSize>96) settings.patFontSize=96; } + ImGui::Unindent(); bool loadJapaneseB=settings.loadJapanese; if (ImGui::Checkbox("Display Japanese characters",&loadJapaneseB)) { @@ -1961,6 +1999,7 @@ void FurnaceGUI::drawSettings() { // SUBSECTION PROGRAM CONFIG_SUBSECTION("Program"); ImGui::Text("Title bar:"); + ImGui::Indent(); if (ImGui::RadioButton("Furnace##tbar0",settings.titleBarInfo==0)) { settings.titleBarInfo=0; updateWindowTitle(); @@ -1977,6 +2016,7 @@ void FurnaceGUI::drawSettings() { settings.titleBarInfo=3; updateWindowTitle(); } + ImGui::Unindent(); bool titleBarSysB=settings.titleBarSys; if (ImGui::Checkbox("Display system name on title bar",&titleBarSysB)) { @@ -1991,6 +2031,7 @@ void FurnaceGUI::drawSettings() { } ImGui::Text("Status bar:"); + ImGui::Indent(); if (ImGui::RadioButton("Cursor details##sbar0",settings.statusDisplay==0)) { settings.statusDisplay=0; } @@ -2003,6 +2044,7 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Nothing##sbar3",settings.statusDisplay==3)) { settings.statusDisplay=3; } + ImGui::Unindent(); // SUBSECTION ORDERS CONFIG_SUBSECTION("Orders"); @@ -2018,12 +2060,14 @@ void FurnaceGUI::drawSettings() { } ImGui::Text("Orders row number format:"); + ImGui::Indent(); if (ImGui::RadioButton("Decimal##orbD",settings.orderRowsBase==0)) { settings.orderRowsBase=0; } if (ImGui::RadioButton("Hexadecimal##orbH",settings.orderRowsBase==1)) { settings.orderRowsBase=1; } + ImGui::Unindent(); // SUBSECTION PATTERN CONFIG_SUBSECTION("Pattern"); @@ -2043,12 +2087,14 @@ void FurnaceGUI::drawSettings() { } ImGui::Text("Pattern row number format:"); + ImGui::Indent(); if (ImGui::RadioButton("Decimal##prbD",settings.patRowsBase==0)) { settings.patRowsBase=0; } if (ImGui::RadioButton("Hexadecimal##prbH",settings.patRowsBase==1)) { settings.patRowsBase=1; } + ImGui::Unindent(); ImGui::Text("Pattern view labels:"); ImGui::InputTextWithHint("Note off (3-char)","OFF",&settings.noteOffLabel); @@ -2103,6 +2149,7 @@ void FurnaceGUI::drawSettings() { CONFIG_SUBSECTION("Channel"); ImGui::Text("Channel style:"); + ImGui::Indent(); if (ImGui::RadioButton("Classic##CHS0",settings.channelStyle==0)) { settings.channelStyle=0; } @@ -2121,8 +2168,10 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Round border##CHS5",settings.channelStyle==5)) { settings.channelStyle=5; } + ImGui::Unindent(); ImGui::Text("Channel volume bar:"); + ImGui::Indent(); if (ImGui::RadioButton("None##CHV0",settings.channelVolStyle==0)) { settings.channelVolStyle=0; } @@ -2138,9 +2187,10 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Real (stereo)##CHV4",settings.channelVolStyle==4)) { settings.channelVolStyle=4; } + ImGui::Unindent(); ImGui::Text("Channel feedback style:"); - + ImGui::Indent(); if (ImGui::RadioButton("Off##CHF0",settings.channelFeedbackStyle==0)) { settings.channelFeedbackStyle=0; } @@ -2153,15 +2203,17 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Active##CHF3",settings.channelFeedbackStyle==3)) { settings.channelFeedbackStyle=3; } + ImGui::Unindent(); ImGui::Text("Channel font:"); - + ImGui::Indent(); if (ImGui::RadioButton("Regular##CHFont0",settings.channelFont==0)) { settings.channelFont=0; } if (ImGui::RadioButton("Monospace##CHFont1",settings.channelFont==1)) { settings.channelFont=1; } + ImGui::Unindent(); bool channelTextCenterB=settings.channelTextCenter; if (ImGui::Checkbox("Center channel name",&channelTextCenterB)) { @@ -2169,6 +2221,7 @@ void FurnaceGUI::drawSettings() { } ImGui::Text("Channel colors:"); + ImGui::Indent(); if (ImGui::RadioButton("Single##CHC0",settings.channelColors==0)) { settings.channelColors=0; } @@ -2178,8 +2231,10 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Instrument type##CHC2",settings.channelColors==2)) { settings.channelColors=2; } + ImGui::Unindent(); ImGui::Text("Channel name colors:"); + ImGui::Indent(); if (ImGui::RadioButton("Single##CTC0",settings.channelTextColors==0)) { settings.channelTextColors=0; } @@ -2189,6 +2244,7 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Instrument type##CTC2",settings.channelTextColors==2)) { settings.channelTextColors=2; } + ImGui::Unindent(); // SUBSECTION ASSETS CONFIG_SUBSECTION("Assets"); @@ -2215,6 +2271,7 @@ void FurnaceGUI::drawSettings() { // SUBSECTION MACRO EDITOR CONFIG_SUBSECTION("Macro Editor"); ImGui::Text("Macro editor layout:"); + ImGui::Indent(); if (ImGui::RadioButton("Unified##mel0",settings.macroLayout==0)) { settings.macroLayout=0; } @@ -2230,6 +2287,7 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Single (combo box)##mel4",settings.macroLayout==4)) { settings.macroLayout=4; } + ImGui::Unindent(); bool oldMacroVSliderB=settings.oldMacroVSlider; if (ImGui::Checkbox("Use classic macro editor vertical slider",&oldMacroVSliderB)) { @@ -2246,6 +2304,7 @@ void FurnaceGUI::drawSettings() { // SUBSECTION FM EDITOR CONFIG_SUBSECTION("FM Editor"); ImGui::Text("FM parameter names:"); + ImGui::Indent(); if (ImGui::RadioButton("Friendly##fmn0",settings.fmNames==0)) { settings.fmNames=0; } @@ -2255,6 +2314,7 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Technical (alternate)##fmn2",settings.fmNames==2)) { settings.fmNames=2; } + ImGui::Unindent(); bool oplStandardWaveNamesB=settings.oplStandardWaveNames; if (ImGui::Checkbox("Use standard OPL waveform names",&oplStandardWaveNamesB)) { @@ -2262,6 +2322,7 @@ void FurnaceGUI::drawSettings() { } ImGui::Text("FM parameter editor layout:"); + ImGui::Indent(); if (ImGui::RadioButton("Modern##fml0",settings.fmLayout==0)) { settings.fmLayout=0; } @@ -2283,14 +2344,17 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Alternate (4x1)##fml5",settings.fmLayout==6)) { settings.fmLayout=6; } + ImGui::Unindent(); ImGui::Text("Position of Sustain in FM editor:"); + ImGui::Indent(); if (ImGui::RadioButton("Between Decay and Sustain Rate##susp0",settings.susPosition==0)) { settings.susPosition=0; } if (ImGui::RadioButton("After Release Rate##susp1",settings.susPosition==1)) { settings.susPosition=1; } + ImGui::Unindent(); bool separateFMColorsB=settings.separateFMColors; if (ImGui::Checkbox("Use separate colors for carriers/modulators in FM editor",&separateFMColorsB)) { @@ -2305,12 +2369,14 @@ void FurnaceGUI::drawSettings() { // SUBSECTION STATISTICS CONFIG_SUBSECTION("Statistics"); ImGui::Text("Chip memory usage unit:"); + ImGui::Indent(); if (ImGui::RadioButton("Bytes##MUU0",settings.memUsageUnit==0)) { settings.memUsageUnit=0; } if (ImGui::RadioButton("Kilobytes##MUU1",settings.memUsageUnit==1)) { settings.memUsageUnit=1; } + ImGui::Unindent(); // SUBSECTION OSCILLOSCOPE CONFIG_SUBSECTION("Oscilloscope"); @@ -2384,6 +2450,7 @@ void FurnaceGUI::drawSettings() { } if (ImGui::TreeNode("General")) { ImGui::Text("Color scheme type:"); + ImGui::Indent(); if (ImGui::RadioButton("Dark##gcb0",settings.guiColorsBase==0)) { settings.guiColorsBase=0; applyUISettings(false); @@ -2392,6 +2459,7 @@ void FurnaceGUI::drawSettings() { settings.guiColorsBase=1; applyUISettings(false); } + ImGui::Unindent(); if (ImGui::SliderInt("Frame shading",&settings.guiColorsShading,0,100,"%d%%")) { if (settings.guiColorsShading<0) settings.guiColorsShading=0; if (settings.guiColorsShading>100) settings.guiColorsShading=100; From 543d18b8d5912291405c0a6e23cc9f8dd27540e8 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Sat, 5 Aug 2023 11:50:17 -0700 Subject: [PATCH 114/202] Chip config UI: Indent radio buttons. Similarly, stuff is indented for clarity. This includes the chip clock rate selector. --- src/gui/sysConf.cpp | 100 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/src/gui/sysConf.cpp b/src/gui/sysConf.cpp index 283fad98d..2f80a8b93 100644 --- a/src/gui/sysConf.cpp +++ b/src/gui/sysConf.cpp @@ -44,6 +44,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo bool fbAllOps=flags.getBool("fbAllOps",false); ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("NTSC (7.67MHz)",clockSel==0)) { clockSel=0; altered=true; @@ -64,8 +65,10 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=4; altered=true; } + ImGui::Unindent(); ImGui::Text("Chip type:"); + ImGui::Indent(); if (ImGui::RadioButton("YM3438 (9-bit DAC)",chipType==0)) { chipType=0; altered=true; @@ -78,6 +81,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo chipType=2; altered=true; } + ImGui::Unindent(); if (type==DIV_SYSTEM_YM2612_EXT || type==DIV_SYSTEM_YM2612_DUALPCM_EXT || type==DIV_SYSTEM_YM2612_CSM) { if (ImGui::Checkbox("Disable ExtCh FM macros (compatibility)",&noExtMacros)) { @@ -105,6 +109,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo bool noEasyNoise=flags.getBool("noEasyNoise",false); ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("3.58MHz (NTSC)",clockSel==0)) { clockSel=0; altered=true; @@ -133,7 +138,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=6; altered=true; } + ImGui::Unindent(); ImGui::Text("Chip type:"); + ImGui::Indent(); if (ImGui::RadioButton("Sega VDP/Master System",chipType==0)) { chipType=0; altered=true; @@ -174,6 +181,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo chipType=9; altered=true; } + ImGui::Unindent(); if (ImGui::Checkbox("Disable noise period change phase reset",&noPhaseReset)) { altered=true; @@ -205,6 +213,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo altered=true; } ImGui::Text("Chip revision:"); + ImGui::Indent(); if (ImGui::RadioButton("HuC6280 (original)",chipType==0)) { chipType=0; altered=true; @@ -213,6 +222,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo chipType=1; altered=true; } + ImGui::Unindent(); if (altered) { e->lockSave([&]() { @@ -235,6 +245,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo int echoVol=(signed char)flags.getInt("echoVol",0); ImGui::Text("CPU rate:"); + ImGui::Indent(); if (ImGui::RadioButton("6.18MHz (NTSC)",clockSel==0)) { clockSel=0; altered=true; @@ -243,7 +254,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=1; altered=true; } + ImGui::Unindent(); ImGui::Text("Sample memory:"); + ImGui::Indent(); if (ImGui::RadioButton("8K (rev A/B/E)",sampleMemSize==0)) { sampleMemSize=0; altered=true; @@ -252,7 +265,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo sampleMemSize=1; altered=true; } + ImGui::Unindent(); ImGui::Text("DAC resolution:"); + ImGui::Indent(); if (ImGui::RadioButton("16-bit (rev A/B/D/F)",pdm==0)) { pdm=false; altered=true; @@ -261,6 +276,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo pdm=true; altered=true; } + ImGui::Unindent(); if (ImGui::Checkbox("Enable echo",&echo)) { altered=true; } @@ -317,6 +333,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo altered=true; } ImGui::Text("Chip revision:"); + ImGui::Indent(); if (ImGui::RadioButton("Original (DMG)",chipType==0)) { chipType=0; altered=true; @@ -333,8 +350,10 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo chipType=3; altered=true; } + ImGui::Unindent(); ImGui::Text("Wave channel orientation:"); if (chipType==3) { + ImGui::Indent(); if (ImGui::RadioButton("Normal",!invertWave)) { invertWave=false; altered=true; @@ -343,7 +362,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo invertWave=true; altered=true; } + ImGui::Unindent(); } else { + ImGui::Indent(); if (ImGui::RadioButton("Exact data (inverted)",!invertWave)) { invertWave=false; altered=true; @@ -352,6 +373,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo invertWave=true; altered=true; } + ImGui::Unindent(); } if (ImGui::Checkbox("Pretty please one more compat flag when I use arpeggio and my sound length",&enoughAlready)) { altered=true; @@ -375,6 +397,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo bool noTopHatFreq=flags.getBool("noTopHatFreq",false); ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("NTSC (3.58MHz)",clockSel==0)) { clockSel=0; altered=true; @@ -391,8 +414,10 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=3; altered=true; } + ImGui::Unindent(); if (type!=DIV_SYSTEM_VRC7) { ImGui::Text("Patch set:"); + ImGui::Indent(); if (ImGui::RadioButton("Yamaha YM2413",patchSet==0)) { patchSet=0; altered=true; @@ -409,6 +434,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo patchSet=3; altered=true; } + ImGui::Unindent(); } if (type==DIV_SYSTEM_OPLL_DRUMS) { @@ -431,6 +457,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo case DIV_SYSTEM_YM2151: { int clockSel=flags.getInt("clockSel",0); + ImGui::Indent(); if (ImGui::RadioButton("NTSC/X16 (3.58MHz)",clockSel==0)) { clockSel=0; altered=true; @@ -443,6 +470,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=2; altered=true; } + ImGui::Unindent(); if (altered) { e->lockSave([&]() { @@ -460,6 +488,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("NTSC (1.79MHz)",clockSel==0)) { clockSel=0; altered=true; @@ -472,9 +501,11 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=2; altered=true; } + ImGui::Unindent(); ImGui::Text("DPCM channel mode:"); + ImGui::Indent(); if (ImGui::RadioButton("DPCM (muffled samples; low CPU usage)",dpcmMode)) { dpcmMode=true; altered=true; @@ -483,6 +514,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo dpcmMode=false; altered=true; } + ImGui::Unindent(); if (altered) { e->lockSave([&]() { @@ -503,6 +535,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("NTSC (1.02MHz)",clockSel==0)) { clockSel=0; altered=true; @@ -515,9 +548,11 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=2; altered=true; } + ImGui::Unindent(); ImGui::Text("Global parameter priority:"); + ImGui::Indent(); if (ImGui::RadioButton("Left to right",!keyPriority)) { keyPriority=false; altered=true; @@ -526,6 +561,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo keyPriority=true; altered=true; } + ImGui::Unindent(); ImGui::Text("Hard reset envelope:"); @@ -576,6 +612,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo int ssgVol=flags.getInt("ssgVol",128); int fmVol=flags.getInt("fmVol",256); + ImGui::Indent(); if (ImGui::RadioButton("8MHz (Neo Geo MVS)",clockSel==0)) { clockSel=0; altered=true; @@ -584,6 +621,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=1; altered=true; } + ImGui::Unindent(); if (type==DIV_SYSTEM_YM2610_EXT || type==DIV_SYSTEM_YM2610_FULL_EXT || type==DIV_SYSTEM_YM2610B_EXT || type==DIV_SYSTEM_YM2610_CSM || type==DIV_SYSTEM_YM2610B_CSM) { if (ImGui::Checkbox("Disable ExtCh FM macros (compatibility)",&noExtMacros)) { @@ -626,6 +664,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo int stereoSep=flags.getInt("stereoSep",0); ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("1.79MHz (ZX Spectrum NTSC/MSX)",clockSel==0)) { clockSel=0; altered=true; @@ -686,8 +725,10 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=14; altered=true; } + ImGui::Unindent(); if (type==DIV_SYSTEM_AY8910) { ImGui::Text("Chip type:"); + ImGui::Indent(); if (ImGui::RadioButton("AY-3-8910",chipType==0)) { chipType=0; altered=true; @@ -704,6 +745,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo chipType=3; altered=true; } + ImGui::Unindent(); if (ImGui::IsItemHovered()) { ImGui::SetTooltip("note: AY-3-8914 is not supported by the VGM format!"); } @@ -744,6 +786,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo case DIV_SYSTEM_SAA1099: { int clockSel=flags.getInt("clockSel",0); + ImGui::Indent(); if (ImGui::RadioButton("SAM Coupé (8MHz)",clockSel==0)) { clockSel=0; altered=true; @@ -756,6 +799,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=2; altered=true; } + ImGui::Unindent(); if (altered) { e->lockSave([&]() { @@ -779,6 +823,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo } rightClickable ImGui::Text("Model:"); + ImGui::Indent(); if (ImGui::RadioButton("Amiga 500 (OCS)",chipType==0)) { chipType=0; altered=true; @@ -787,8 +832,10 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo chipType=1; altered=true; } + ImGui::Unindent(); ImGui::Text("Chip memory:"); + ImGui::Indent(); if (ImGui::RadioButton("2MB (ECS/AGA max)",chipMem==21)) { chipMem=21; altered=true; @@ -805,6 +852,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo chipMem=18; altered=true; } + ImGui::Unindent(); if (ImGui::Checkbox("PAL",&clockSel)) { @@ -830,6 +878,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo int mixingType=flags.getInt("mixingType",0); ImGui::Text("Mixing mode:"); + ImGui::Indent(); if (ImGui::RadioButton("Mono",mixingType==0)) { mixingType=0; altered=true; @@ -842,6 +891,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo mixingType=2; altered=true; } + ImGui::Unindent(); if (ImGui::Checkbox("PAL",&clockSel)) { altered=true; @@ -860,6 +910,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo int speakerType=flags.getInt("speakerType",0); ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("1.19MHz (PC)",clockSel==0)) { clockSel=0; altered=true; @@ -872,8 +923,10 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=2; altered=true; } + ImGui::Unindent(); ImGui::Text("Speaker type:"); + ImGui::Indent(); if (ImGui::RadioButton("Unfiltered",speakerType==0)) { speakerType=0; altered=true; @@ -890,6 +943,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo speakerType=3; altered=true; } + ImGui::Unindent(); if (altered) { e->lockSave([&]() { @@ -933,6 +987,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo bool stereo=flags.getBool("stereo",false); ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("16MHz (Seta 1)",clockSel==0)) { clockSel=0; altered=true; @@ -945,6 +1000,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=2; altered=true; } + ImGui::Unindent(); if (ImGui::Checkbox("Stereo",&stereo)) { altered=true; @@ -965,6 +1021,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo bool lenCompensate=flags.getBool("lenCompensate",false); ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("NTSC (1.79MHz)",clockSel==0)) { clockSel=0; altered=true; @@ -977,6 +1034,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=2; altered=true; } + ImGui::Unindent(); ImGui::Text("Initial channel limit:"); if (CWSliderInt("##N163_InitialChannelLimit",&channels,1,8)) { if (channels<1) channels=1; @@ -1037,6 +1095,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo int fmVol=flags.getInt("fmVol",256); ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("3.58MHz (NTSC)",clockSel==0)) { clockSel=0; altered=true; @@ -1061,7 +1120,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=5; altered=true; } + ImGui::Unindent(); ImGui::Text("Output rate:"); + ImGui::Indent(); if (ImGui::RadioButton("FM: clock / 72, SSG: clock / 16",prescale==0)) { prescale=0; altered=true; @@ -1074,6 +1135,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo prescale=2; altered=true; } + ImGui::Unindent(); if (CWSliderInt("SSG Volume",&ssgVol,0,256)) { if (ssgVol<0) ssgVol=0; @@ -1119,6 +1181,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo int fmVol=flags.getInt("fmVol",256); ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("8MHz (Arcade)",clockSel==0)) { clockSel=0; altered=true; @@ -1127,7 +1190,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=1; altered=true; } + ImGui::Unindent(); ImGui::Text("Output rate:"); + ImGui::Indent(); if (ImGui::RadioButton("FM: clock / 144, SSG: clock / 32",prescale==0)) { prescale=0; altered=true; @@ -1140,6 +1205,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo prescale=2; altered=true; } + ImGui::Unindent(); if (CWSliderInt("SSG Volume",&ssgVol,0,256)) { if (ssgVol<0) ssgVol=0; @@ -1179,6 +1245,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo int chipType=flags.getInt("chipType",0); ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("8MHz (FM Towns)",clockSel==0)) { clockSel=0; altered=true; @@ -1191,7 +1258,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=2; altered=true; } + ImGui::Unindent(); ImGui::Text("Chip type:"); + ImGui::Indent(); if (ImGui::RadioButton("RF5C68 (10-bit output)",chipType==0)) { chipType=0; altered=true; @@ -1200,6 +1269,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo chipType=1; altered=true; } + ImGui::Unindent(); if (altered) { e->lockSave([&]() { @@ -1213,6 +1283,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo int clockSel=flags.getInt("clockSel",0); ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("4MHz",clockSel==0)) { clockSel=0; altered=true; @@ -1229,6 +1300,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=3; altered=true; } + ImGui::Unindent(); if (altered) { e->lockSave([&]() { @@ -1242,6 +1314,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo bool rateSel=flags.getBool("rateSel",false); ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("1MHz",clockSel==0)) { clockSel=0; altered=true; @@ -1302,7 +1375,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=14; altered=true; } + ImGui::Unindent(); ImGui::Text("Output rate:"); + ImGui::Indent(); if (ImGui::RadioButton("clock / 132",rateSel==0)) { rateSel=false; altered=true; @@ -1311,6 +1386,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo rateSel=true; altered=true; } + ImGui::Unindent(); if (altered) { e->lockSave([&]() { @@ -1325,6 +1401,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo int clockSel=flags.getInt("clockSel",0); ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("1.79MHz (NTSC/MSX)",clockSel==0)) { clockSel=0; altered=true; @@ -1341,6 +1418,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=3; altered=true; } + ImGui::Unindent(); if (altered) { e->lockSave([&]() { @@ -1358,6 +1436,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo int clockSel=flags.getInt("clockSel",0); ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("3.58MHz (NTSC)",clockSel==0)) { clockSel=0; altered=true; @@ -1382,6 +1461,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=5; altered=true; } + ImGui::Unindent(); if (altered) { e->lockSave([&]() { @@ -1396,6 +1476,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo bool compatPan=flags.getBool("compatPan",false); ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("14.32MHz (NTSC)",clockSel==0)) { clockSel=0; altered=true; @@ -1416,6 +1497,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=4; altered=true; } + ImGui::Unindent(); if (ImGui::Checkbox("Compatible panning (0800)",&compatPan)) { altered=true; @@ -1433,6 +1515,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo int clockSel=flags.getInt("clockSel",0); ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("16.9344MHz",clockSel==0)) { clockSel=0; altered=true; @@ -1457,6 +1540,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=5; altered=true; } + ImGui::Unindent(); if (altered) { e->lockSave([&]() { @@ -1489,6 +1573,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo } ImGui::Text("Interpolation:"); + ImGui::Indent(); if (ImGui::RadioButton("None",interpolation==0)) { interpolation=0; altered=true; @@ -1505,6 +1590,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo interpolation=3; altered=true; } + ImGui::Unindent(); if (altered) { e->lockSave([&]() { @@ -1741,6 +1827,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo } ImGui::Text("Envelope mode (channel 1-4):"); + ImGui::Indent(); if (ImGui::RadioButton("Capacitor (attack/decay)##EM00",groupEnv[0])) { groupEnv[0]=true; altered=true; @@ -1749,8 +1836,10 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo groupEnv[0]=false; altered=true; } + ImGui::Unindent(); ImGui::Text("Envelope mode (channel 5-8):"); + ImGui::Indent(); if (ImGui::RadioButton("Capacitor (attack/decay)##EM10",groupEnv[1])) { groupEnv[1]=true; altered=true; @@ -1759,6 +1848,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo groupEnv[1]=false; altered=true; } + ImGui::Unindent(); ImGui::Text("Global vibrato:"); @@ -1834,6 +1924,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo bool romMode=flags.getBool("romMode",false); ImGui::Text("Waveform storage mode:"); + ImGui::Indent(); if (ImGui::RadioButton("RAM",!romMode)) { romMode=false; altered=true; @@ -1842,6 +1933,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo romMode=true; altered=true; } + ImGui::Unindent(); if (altered) { e->lockSave([&]() { @@ -1897,6 +1989,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo int clockSel=flags.getInt("clockSel",0); ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("3.58MHz (NTSC)",clockSel==0)) { clockSel=0; altered=true; @@ -1905,6 +1998,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=1; altered=true; } + ImGui::Unindent(); if (altered) { e->lockSave([&]() { @@ -1919,6 +2013,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo ImGui::Text("Clock rate:"); + ImGui::Indent(); if (ImGui::RadioButton("NTSC (1.79MHz)",clockSel==0)) { clockSel=0; altered=true; @@ -1927,9 +2022,11 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo clockSel=1; altered=true; } + ImGui::Unindent(); ImGui::Text("Global parameter priority:"); + ImGui::Indent(); if (ImGui::RadioButton("Left to right",!keyPriority)) { keyPriority=false; altered=true; @@ -1938,6 +2035,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo keyPriority=true; altered=true; } + ImGui::Unindent(); if (altered) { e->lockSave([&]() { @@ -1988,11 +2086,13 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo } altered=true; } + ImGui::Indent(); if (ImGui::InputInt("Hz",&customClock)) { if (customClockMAX_CUSTOM_CLOCK) customClock=MAX_CUSTOM_CLOCK; altered=true; } + ImGui::Unindent(); if (altered) { e->lockSave([&]() { From b7a751ccfa10d59054a8124e56df38e78dadec76 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Sat, 5 Aug 2023 12:42:43 -0700 Subject: [PATCH 115/202] Slight edits. --- doc/2-interface/settings.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/2-interface/settings.md b/doc/2-interface/settings.md index 7a702981e..209777bc2 100644 --- a/doc/2-interface/settings.md +++ b/doc/2-interface/settings.md @@ -359,7 +359,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. ### Channel -- **Channel style:** +- **Channel style:** set the appearance of channel headers in pattern view. - **Classic** - **Line** - **Round** @@ -444,6 +444,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **Mono**: display a single monaural waveform of all sound mixed together. - if turned off, waves will be drawn on top of each other for each output channel. their colors are configurable via _Settings > Color > Color scheme > Oscilloscope > Wave (non-mono)._ - **Anti-aliased**: smooth the lines of the waveform. + - slight performance cost and slightly buggy. - **Fill entire window**: remove the gap between the waveform and the edge of the window. - **Waveform goes out of bounds**: allow the waveform to draw past the top and bottom of the oscilloscope. From 86c1104529c5bbf9779d7478ba338e53ac8608bb Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 5 Aug 2023 14:43:29 -0500 Subject: [PATCH 116/202] GUI: add setting to play on load --- src/gui/gui.cpp | 7 +++++++ src/gui/gui.h | 2 ++ src/gui/settings.cpp | 14 ++++++++++++++ 3 files changed, 23 insertions(+) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index b000ed789..3e3601af6 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -2112,6 +2112,7 @@ int FurnaceGUI::save(String path, int dmfVersion) { } int FurnaceGUI::load(String path) { + bool wasPlaying=e->isPlaying(); if (!path.empty()) { logI("loading module..."); FILE* f=ps_fopen(path.c_str(),"rb"); @@ -2188,6 +2189,12 @@ int FurnaceGUI::load(String path) { showWarning(e->getWarnings(),GUI_WARN_GENERIC); } pushRecentFile(path); + // do not auto-play a backup + if (path.find(backupPath)!=0) { + if (settings.playOnLoad==2 || (settings.playOnLoad==1 && wasPlaying)) { + play(); + } + } return 0; } diff --git a/src/gui/gui.h b/src/gui/gui.h index 7178c382b..adfc0b720 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1547,6 +1547,7 @@ class FurnaceGUI { int noDMFCompat; int removeInsOff; int removeVolOff; + int playOnLoad; unsigned int maxUndoSteps; String mainFontPath; String headFontPath; @@ -1708,6 +1709,7 @@ class FurnaceGUI { noDMFCompat(0), removeInsOff(0), removeVolOff(0), + playOnLoad(0), maxUndoSteps(100), mainFontPath(""), headFontPath(""), diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index e09958483..c7765c327 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -437,6 +437,17 @@ void FurnaceGUI::drawSettings() { ImGui::SetTooltip("do not report any issues arising from the use of this option!"); } + ImGui::Text("Play after opening song:"); + if (ImGui::RadioButton("No##pol0",settings.playOnLoad==0)) { + settings.playOnLoad=0; + } + if (ImGui::RadioButton("Only if already playing##pol1",settings.playOnLoad==1)) { + settings.playOnLoad=1; + } + if (ImGui::RadioButton("Yes##pol0",settings.playOnLoad==2)) { + settings.playOnLoad=2; + } + ImGui::Text("Audio export loop/fade out time:"); if (ImGui::RadioButton("Set to these values on start-up:##fot0",settings.persistFadeOut==0)) { settings.persistFadeOut=0; @@ -2935,6 +2946,7 @@ void FurnaceGUI::syncSettings() { settings.noDMFCompat=e->getConfInt("noDMFCompat",0); settings.removeInsOff=e->getConfInt("removeInsOff",0); settings.removeVolOff=e->getConfInt("removeVolOff",0); + settings.playOnLoad=e->getConfInt("playOnLoad",0); clampSetting(settings.mainFontSize,2,96); clampSetting(settings.headFontSize,2,96); @@ -3068,6 +3080,7 @@ void FurnaceGUI::syncSettings() { clampSetting(settings.noDMFCompat,0,1); clampSetting(settings.removeInsOff,0,1); clampSetting(settings.removeVolOff,0,1); + clampSetting(settings.playOnLoad,0,2); if (settings.exportLoops<0.0) settings.exportLoops=0.0; if (settings.exportFadeOut<0.0) settings.exportFadeOut=0.0; @@ -3301,6 +3314,7 @@ void FurnaceGUI::commitSettings() { e->setConf("noDMFCompat",settings.noDMFCompat); e->setConf("removeInsOff",settings.removeInsOff); e->setConf("removeVolOff",settings.removeVolOff); + e->setConf("playOnLoad",settings.playOnLoad); // colors for (int i=0; i Date: Sat, 5 Aug 2023 12:44:49 -0700 Subject: [PATCH 117/202] ...the rest of the tiny edits. --- doc/2-interface/settings.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/doc/2-interface/settings.md b/doc/2-interface/settings.md index 209777bc2..f45cd9663 100644 --- a/doc/2-interface/settings.md +++ b/doc/2-interface/settings.md @@ -41,7 +41,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - this will not choose a random system at each start. - **Reset to defaults**: set default to "Sega Genesis/Mega Drive". - **Name**: name for the default system. may be set to any text. - - system configuration: same as in the [chip manager](../8-advanced/chip-manager.md) and [mixer](../8-advanced/mixer.md). + - **Configure:**: same as in the [chip manager](../8-advanced/chip-manager.md) and [mixer](../8-advanced/mixer.md). - **When creating new song**: - **Display system preset selector** - **Start with initial system** @@ -298,12 +298,11 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. ### Text -- **Main font**: if "Custom...", a file path selector will appear beneath. -- **Size** -- **Header font**: if "Custom...", a file path selector will appear beneath. -- **Size** -- **Pattern font**: if "Custom...", a file path selector will appear beneath. -- **Size** +- **Main font**: overall interface font.\ + **Header font**: font for section headers.\ + **Pattern font** font for the pattern view, the order list, and related. + - if "Custom...", a file path selector will appear. + - **Size**: font size. - **Display Japanese characters**\ **Display Chinese (Simplified) characters**\ **Display Chinese (Traditional) characters**\ From 49e799d5765a517e96626e1bf77b115b87f5e228 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 5 Aug 2023 15:12:14 -0500 Subject: [PATCH 118/202] GUI: indent play on load setting --- src/gui/settings.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 9227487de..564bebada 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -438,6 +438,7 @@ void FurnaceGUI::drawSettings() { } ImGui::Text("Play after opening song:"); + ImGui::Indent(); if (ImGui::RadioButton("No##pol0",settings.playOnLoad==0)) { settings.playOnLoad=0; } @@ -447,6 +448,7 @@ void FurnaceGUI::drawSettings() { if (ImGui::RadioButton("Yes##pol0",settings.playOnLoad==2)) { settings.playOnLoad=2; } + ImGui::Unindent(); ImGui::Text("Audio export loop/fade out time:"); ImGui::Indent(); From aa39a041b53b390295194a2b788965cae30bb50a Mon Sep 17 00:00:00 2001 From: Eknous <61464512+Eknous-P@users.noreply.github.com> Date: Sun, 6 Aug 2023 00:25:32 +0400 Subject: [PATCH 119/202] new demo song and small updates to my previous ones (#1327) * chanOsc note name * chanOsc auto cols * lowercase c for consistency * fix chan note text * change int to short * simplify * visible chan count for calculation * cleanup * cleanup 2 (not removing the comma yet) * remove extra spaces * add id * rename and shrink physicsexam * fix tiny error at the end * ted demo * add author --- demos/arcade/Physics_Exam_TaitoArcade.fur | Bin 0 -> 54249 bytes demos/arcade/physics_exam.fur | Bin 72951 -> 0 bytes demos/genesis/inside_the_computer.fur | Bin 33665 -> 33662 bytes demos/misc/teddy_bear_midnight_jam_ted.fur | Bin 0 -> 894 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/arcade/Physics_Exam_TaitoArcade.fur delete mode 100644 demos/arcade/physics_exam.fur create mode 100644 demos/misc/teddy_bear_midnight_jam_ted.fur diff --git a/demos/arcade/Physics_Exam_TaitoArcade.fur b/demos/arcade/Physics_Exam_TaitoArcade.fur new file mode 100644 index 0000000000000000000000000000000000000000..5cb97e54fb4196e4a35805ca23a6d217e5926f72 GIT binary patch literal 54249 zcmV)SK(fDhob0`MjAiF_CwA|B`~GU**Ivoy+9XAa5+za;CD9hOQJDk@k_m^RZNU;L zi&E?vByf=YkqrSR7-SG2K>SBAhCTLJj_ueUj73ovC2{S2tM0CSdsXk%^7j4Rob|i6 znxt$A_DlxJt-f7VuikR+_nq%7zwo33Z-B;mxx1Y8g z$HrIKw!YT3J8<=%30u}bh4U7iUyZ1%zV28L!ub@OUxf4b;jF_M*>J28 zI8VU&+i<=I=OUbYaJq2LZaUU~1?Li+XSW>de}(gR;rw$r1KW-@2*RR0qSK#$4@cI>a{R+H(1zx`buU~=JufXe9;Por; z`W1Nn3cP*=UXQQUi;0Gh9@d|OTr9wu!?pkUr#|~7c-D*Gc;&@kfBvO!Jn=yM#qYlQ zomam3G(G^o{mMUj>Kotq;_Vo|oQzH5li(Zk`Uqk$g zXTR|L*-yc*{{kNU!c!sZ8!x@^HS06a9k(ivTGrX)Gc%vfSk{BXGc!-!58ths@IQ3< z`;+kf^Ph%ypACH}^t%1b7w&wgfAqquukt%RX<1)R%p{+z!$DoIetTx-Nw}zwjLu}9e#QI!F>5CEncw+Yi9C4`krMyY|W&f|Dt6*_tY6H3YN}wt^byUw(+H( zA>i)M9F4Dm`QQ%*i}^xyIe_E$ytN#{?|s%Xji+NRM?Y{}pEB5>L*6-3a~;jmi7o=pWJ>g=JX3{sF`KVc(y7Y7_>;3c_H(;>)Cx zv4G7#f54sp6Z0`K>!p|fi&;;q{#Kv#0Dh9ZdqzJd7?vO65&6N1$`8?>J@&u(^_M-F z9<}&WM(^kEgF|EV{iS&5gNN*YF!$nrr@z&GJdO7;mceU`1j5mHB9TlcQ>k=1ok^!s z^m8ihq%C|xED%Zc506buO^yzvBaYs+{r+1Up$j_U$@BBip@DK{_|Kmdd$Rv-NSf{e-gKI-e{-XqqlzwzA{zWvhAarbk0 z_bE`RIA^4jQt@aQ3>Dm)^&x_DWXYIS|5>>7<1<-Y8fPa!fv^h7%J=jKE}8$yTzcAi z_T^W<^X>0`^QD)+GyCAfKgS(>9Pa>^e*jimW`ve`T$a1TkK5J^TjQ`it~d7q6ZgR~ zi8q&mPXyC{wqL$mAd{e=9~~T|@9%r3aU%jz>(y_)0tZWhZKUAHGhY1m3*UM1*XS9J zdB(7LM$r1T7rsM(4Vb@O;2mATGd_K36 zgMT|aJNf+n{$Z(7YqUDOp6vu9(RezO>F*yL9>QZ}Vq#|I_=%JE-GBD%Bac4%_{To} z@y9>$@h3k1@kbwe2`3qkY*-IuVaVLi81mMia4AGCepjG%`9mH90jk zJvTRh{MfN$^YgQ_(-RY;BmJ3V%(l9{ZmU%ZOa9E}Xw~`O1|W z3yaHZx!wIzt<`lx;ZQ6A*EKjcHa0#rF*P+YGdVdiGBP~SpG}5C=+O0=_)dp=yZO!4 z&6U;V)kQd$*VZ>Sws!M{gJP{(?{s>>KsXeQ!B->#|AGPVB|F_#yV^f`ptz~x0Y5nbGy3-rDmrMD+R8HZZ#fHCKGVrg@%H`pty4o%e1=9My*mV zAMC>{?(Xiu*KR()w|`KCfogZUb}$eKML>mS2S!FFr|0KRoj&uxBWE9d?BgH*IXw-6G&M0kJ~}+q*Pl+tBSE{{ZPY8(O0~GRSAf}DTVB4kaP9K>ci(*HCvUv| z{n!5TU;o+v{iomicdu zKlzhC`}05l%YXfEzW>_mKm6evKmF-jaE}+RT)DQeaC>QGV{0qFyI+Qt)v-dMNFQzyE{pgZg;wwZHoQU%mGI@4xoi_d%h&_Jh}c@H!kn{Nd|A z`r(iM`i;MS<45q4AOHBrKY8P)Z~XX;pWyM+w|@HOPv3s??Kj_f>)p5Bd;9!*7tUR{ zc=5{BE7z{WP~BVvCA7Y|wN3H}Qc-U z*M0Xs@ZbYy9|Z04$it6)^ijO+CqT(O@$pZ7;)zc@0fPa@6QB45jtZ)sk3E6^!RUPS zaU7t>AAju8M<09au}41w$0Imc51oDJK{y_G;QssXzwh2NXYRV|^vP2vjvqgM4D9*j z_{78rj9#`c1M4dmjRu1d#dW%!MjdqHAqo+$r=8v0*7gP-E31o3iwiKAum-MNy?FW3 z#S0hCoj-T(-S^&m>)p5Ec=OG-;DGP%y!keMf9IVy--VyvfgfO{yaQkFo_iP8&bjj! z&R@86;WB8qOYk;VE?t2&1aEomDky^+*B5TWacl7wD4wMin7_4+&CT2vsOZAp{^22v zWet`KED~5{5c-B-MB@qYkg~A8hDSgrj*X6@W}KXWH8MRtJ2!Xi`0e`K{y|PfV&5V zsM`cltyasWVsU?eAGBA#kS~C+;Fxc3q3Et{tgeE&Te`itcyn>#=EB1D8w+3)u3Wu* z^)mc-8At8nl}ndE>fpZ%^z9NpbP?wUMiia^(s&h)YcQ_Yuivo;%Qym9*` zeBHuh>Gsm%G7j_-S%{Ujbv!mUHaE6lv2SgIKHkmm77F|O2M346!(tgmzuu^mdg}Hp z7Xbt(7=j}jL3cHk$@GDm8yteKk>L?MhVdWH$tXzN#01RA^fV}pxnuJniYJc40OIVx zXr8|N%w1<-WZ^#;V35|k@Rz&s7yJhQoyI4ck;nf};>%BiR0k#@dEV6fBNS znyiiOt!+4R+c|V);Mk=jPe*}{y#inE!T#YsPUc~;SS%OIrE|p$ zgEZ+wdS!!jWpMQK(Z@$No1r5uN6H+iAwfmr!QUe2-+|KvOPWR{7~sQkEpljKjaxK? z?QR zJ{<>g9LiCYqlC8s2g(y4C{=pE&B{?D1+GUOzs%9VFW=GRFW-T(+5W(zgI~QK4ZipP z9kB$;vO|ZhU!cDNGJU~th!2|AkRPFo$h1dea=;I9{RzA???~zoV3v{;v>!SAe~**W z!6O!@ck_P3BhF9q9o{eel=zW1JaXLm-tiCrRC5Oi0S-`uOP(r$Ky&Y8l=w93>^3h($v5#2!NNs-)qK91FA$ z=<=Q&iY7rzXHxMnJO+x%l_%0i@NK}2AixVB8{o%K|HJb_Ec@XwJzeLF1|4jIe3WnM z^!?}~+`A@|(Eg+g%(_90nVo376k&)ay0S8#VkRnIi-Q zAn+rlS+0QoXy8-uIdux3;1$&hX&`t6URxS;#ouG1{cR#0BdGvvFmw1OT3pkA;H37+E z;!;R~57^%aeibPiPA+7{z@lBHKo)E;JS7=tJqJP@kA?y+3_r|Z#|ngF30Wg_$VG|@ zgX;<7aKR$$_ILo{W@yaYEzdrnB;Zuja~uRlXw+ah>ogBdG#W79<>EdD`Fn?@O1+6s zhbO`0u?$tf-$id1L<*fhoPT^ym!^(aB@Rvx-iba8rv#I3A|NPHO}1@lx$ufuR?EeM z!tVCw#`@;=PT>IFw^BOX%jdSxrQ6Eo_YT0E7SYP@u^k2na~F+w;hOY9O+3jYF0nd+3@E{H=^|t_vp7hs5&|?*GzguJdVyj^Q6%(9 zEc1a-Sk)q_hY%|>BTr~FNnYqZU6j@kn$dU?1px#ig;O8lCy2JCcMYR)A$t-E8tJA% z40caG)wd2oM|XbsE*uA!|nP)5;{|q&Qh%5n?MH zlH*sz<aZR3u5U(kR#?Q6n zb;gmi@6fj>Z3#+^q}UW%q6T=Cvhzo>UoGQ}93aMvNL#&HIw9!;(=mQXjW^$VL9{* zqUS}D@RPd`65E0D)NF&LkHpdIL~UyEk`cqMSLl$#;rBDxK|@mzBQJ)Wm;kDOatFw1 zNx*VVC88n6?HKif#(;xDerK@PDAZ)~Lbya>Hi9JeWYZ(;uJV<^FvEy~5)w-%YgmPz ztXPQ5Opoj+>P!+znpH%8aJ`6mY>5<-q~JY^b>~;0LZ>U^fP)+Y^c_ki(&bqvhx`Ga1iEkfOq4AgF1RGV5|(@ZC^8Cll;aLdrs!4U zoEc-L8rz7R_zNf?AOWX8o}!q~Lio@AuaX<)Y@ znTT^R1fB!B3J4#Kjtmd>gTKHRgCB{1 z?2^!s4Hb1tR>hs!|%O))+7zGy!c|$9we)E5?It7D1ag=E!H9q z&vQWR2-+3)iRqx(!xalt1F~Odkt-8mP(i6Y*e~qn5Mx4k4&rol405E!ayxkn*)f{O zj0lGId#LbOhO4Bsc}cjuSXk?_=OAG;jzLen)1K&0byjWih;eLj)QzsEP(%G$8ao;@ z9u@Hr#i^h-B)2k7foq)7Pv{P$2zo&%IwBq`TVmCJF@wFZ?D~{1d$|F%+qlm7lGpQM89}Y1;;M#M+z?yiQXXrzlH?44?j~_UpBADUTo>#l z*p_&TL7qyun2xy=)k_khkx^7or)mV99S2mZ;vu8X#bBy}q1PTJ<;t~2r^lk;_Buyn zKu0`2o;S6atf(RpjYw?q1q8&w(dn2NM5F}eB#aiOji_xy9Eu3vC&tJ<3Q`ENAw9v? z&g!xQP1DW?3ITaP#RGzP2?NKagvn!c&FQu{VT{v)k%V|s6)+Gz4HAPPMUM<_z&@G= z>7;5XO2NtN`NJxW(GjSkY3;Hv&TkMUH#AxH8Eow3`r>(c&PV zfrABhBv1vD-LE$}Jxl&!L){WK0lYS7Auv>XNUMRJYDFX19}z9d>)jHTr1`uySbuC~()}w&R%ndtlUA2Io3Zxm6SO)|@ zkw&`W0C)uG0FdAz8kPiqVQ`2OJpFwXTP8>l3G7snR3Je_D@0~ELZU`Mhs9PS93xL! zyc8Z}@9)g+V&XTMUbi~c4DlVy!SEfzLZ^yDnI1jlwI z1Xs`nQ&Ti%5(tZ`mk?bdc6L}0tzfkUinmBOLLm=c0%nMENRwd1AA%qBBhYhzhxWu% zK>beMFQNPdm@z7cmmsj5x(Z!Um%OqC7ZG2er_nO&zlZ@&jn65fPxsyt(*y%z8jpE<)wvXD1Dq!EsnT=|!_W@zGimV(54?;6%za zz{AReNs(@aWDAK*Fcs>_8fd7)YTpE{940i)`*G?+t%CR_UBUlY4ua}+8z?!Ty4!;r z6cwP5g`y`~2rOY`vZ078P$1S4!R7TM{spcE`ULg{70XbWpwNkh$_c2o42o08ZkNof zYFj^&AaP3AQ)e`XUG^EtjZg>8ha2E3qD6#<nVywmId>Cg5hbQ2O z&%mG^sz)N7QoIy!6u?2_1nY@i2jgBENno8RPPGKx z0`@p26`}x6K$VwgsokzZ0IcZIdms>4BR({s)v~z8sP0>e7cdx1U|O_{Jsaz)GP3US5fr|C6zR{aTjTmWmjTh%I_w)M~=_V~qT==RjUbWnS+ zc9eu4*(FN{w8I0^)Yvaz;xk`>rZc2qu`r!E)$aG~#LY2yg%^+Dvh2v5H7TaGj0@P4 z3w0F@mHZrOSwReuOD#G6Gh`&s$><4S(c$q%IiYzn@Pgy`G>MEI zC#%$va$1&i#@qKJf+)BJ=0$sf)wNOTznB=R1;cCiF9)=As=~fL| z&38$(Xm&orb_`id;xcsAmF$XxS@Y6S0(lXkmQtVPVo@wrk@BRZ8Vo9>5oSPfD@rI) zh~=`yl!(?O;yN8~P&C=>N;=6k0^y4c#Z6KiSd?U=&N(v*#fhns&r`aN;7kWsTBlX7 zK=cjbSgtnOuA|7ZPxRSGFm8_|-lIo+Q%9m*k-2~ue{|ToNv<+1xmjL?UGW&aApd=y zUQm)8>>bo?sW#Jmj;&FuWRp|8uFzAU)x*ow3^uKBMagxTyySz)1L`S;i3y9Px)mPP&RLkq^Myn@trhG|BXv%o{NgI43Pxw+fpGWl&Ycdtj(T z!p)k9SI1jtNBmyPOA^Ms6m3KTET;P?$}vRhN9+b z!sauPofPy{Nh+q166Jf8bHyG^D(NLnWHGRq2@o8mSk>cMSV|QUA3XVoeAE&-T^ zv=Wu5xouPjM}5ASPQYF@l7jJwm(RGhuwNwl?sj!`Tb6I!dK?4rh@f01JxAB1!SGcW zen|p{SD(Q%1?80Fki@l=3a2;~bpcZYgqH%gs%%740UQsIM(|1qI?Biq|Iavno$e7G zNWQE`hA;xi>p&I)Tn*b^!gQE>N0Z$UmsU+F<^2W9A`St)mAJl49Yc?m9Y!A~#WI)? z&mh}CTg6g+#;7n}?qIT59_dfWCKOS53XbL0(}@zyAIUpe8t2qK+N^j1aQ$@?K{7)a z{cnVR$b_)J$6=nybT>>iDS{diK8@&3iS8UtzeQq9;mRn)>ro#h31iYxMjj=p6Htzs z@vvAa^9mz;*0)$~+5T(Cqh$iVn?~Rm^p-K0q zFHQ>ueV#g7bfMGuZclI&_7;Q*=mo)^a2a<`<-Ds|Jmd9x>5H~H=0^RubusF~>X;{W zjl%3Ir%|$VwT8Ni@}Qzp0ywY+)@$=|`8Y$@_Tz!7$u!nL9f`UxE1EB;!V(Orzsp0a zj*bD&y_|%j{)NeS^4&{nz9SBsA*V3#%Si?zn~8U+IrpmSg8-`ozEbw>j3g*2K`>T9 zSt&&&+%4OL08utL_$OJZMnjP!&$PA-lR@$m47{A*`=X zPasm92LWcq&20&@g+xhS%fSn|45o;HTor~!F*ku!$hCE3Ln8OFsQRpEo<*66T0`%P zvQnf+&3Zt*2b{oIl9g35uDO00Cjr6_y3#{z|h|7}JB18p;D86pQ@`6C2@Y5d=}M zmJauJnXy8C1LsL=9L$S5;vdxbwp<%7I?ADNq9q9@Wz6HaJXRP%aWj1 zLCk6FBt+)>(L9}yZugWo1CDfC$$XCFmg~lGv%KLI>Xbm0VGrZfbX3S!P=e!}BFquw zl*u%bdJsBP%48mGKS`(K<$a|9Maz*4(AzOH(h_S>6$nvQKShudLejG2=n?(8uE0bs z!+#SnuVsuB4J!lc9^E2nY@cQRVro_-Y@!7=@`f(jz0g#2_*7pwQ>8bYvUZivI8$uC*>J{V6T!kDfSN}?074qFHCLLh!-AQDeykyFs0 zO=-$sKcD4*jJ7Cr<4dZyPt`D945wkIUriDO;>!(mIeDeJRq40pW0Vw18Q zdB1fp^ywHV=xBlnW1ujS!L$lU8FyWeWF|!c641l_G8CFLnJXU<=GvYw$hul^#-J*3 ziq6?z5Vnd*hMC?!n3Vz-a)4$Zraz+;?IYm`1A6#kUTw(t{`I;bO#jzK1j zV@-LxHdPXkN|zL)mH~AHD72Zk-B#N|;%Pu&4^1WY+%`H$ypn*)tw}+I0BwPw*eySG z#3X|ZBfP6|JhLA?_DVy52^Nq;Y#x$hav8GHc~$V-d3*)O^P(J|p_9aXl4mbPg#qOC zWzq~`vg6>7?#y6F&fm}2)|{V@=Hx{aIyhm&){>O>i&I>J~R!}Qq<74$TwKySibTlkADYUw|w#o=kT0}Czy3})e4E`+Rp~-%t zNFiv2NmsvvU$6V>;|QSQ>hlCVV0Y%kr*ej0i13kH(65Ldi_-b8!#T>RKa3!+T;$XHL zJxQnF;ZYkM@?X(flhzh)A_q*&5ylpXlDVRa8hSFeKRP7Y7q{Vv-_R4Bud7v*Wp;X* ziosO~BqvoRHsFvVkVmz+n;RSJQ~-~_;6ABgiAZY-ZYa&e?~0KkHGF=glcxKJM#d+x z+0^93*eDJt_8JhJL9Wt+5*uuZrj3y;7~&d2&%+|;Sg5e zI}0N>MopE*$3}(*`b@Ct^QeM?;;^-0tUatrl$Lnb81fKDfGcMj65iFR_rV?`{@BB6 zE4N!X0B!Dh3?~04)LCIQNNY|-^@1UZ>3raUpKzuGr9MVY&;k;F&x5bq%DMr2ceuy( z5lC6!>IifhHr7{{mzI{6SJpPRcJgR+&>KPxPx_3Xoi}}w2zr3P6eL7@gy5L)LMW56 zumX_;Yv}$g!~e=tW-rk2YY?Q4B+`9U{yHKvL0(=k;6?sgMByj_UI@7+a$yac5@qil zX%@dEcM9SxHm9bfJqO`ToEtNMrOTZ+ZQB6AnxN3?h$frJGFy8rNDoHh6rN_;xv=CG z>smS`L@j>@1W8dSlepDxdmxNjK23><<@^y@WO(g3|8z4nt*CI$Tnz1IS5gqN{)&Z$(2NFQzhplC*Qd4!5`}_Rz7R z>P#)^mJ;{|cno+&BxQT-zS8@u3RRMjsZ7$4oN7UoM&|mM1%^r;lKLmDk;Xv_P$?hA zu?Ra2i2hXVO402Q2Dhnrm})JX3fh>gh@^}SqA3(USJHuH4{4+rqau%Jt`Y%9GznW9 zYpbhk>svc}*!>pY+UAUqUwpd0lDD?WqHx26xV9h>J7p;7lKP{LT>=jHioSK4dOpum znQ5hJf%Vp#>p4P}KhAzB?MnFX%esS6gws#kLhhC|-+06S(T zaD+u(jS-Isy8~R6a76(sbDBHpuEyWZh^p7eJJ*DZJInTdmR5 zrd}OGHZ-J959t#!k+S%RYGZ31I2ns5gU(3h?31QcF>OKA^<+u1=?yO!1N}N3kYuB~g z4JlL3-9Zq(OC3NN0F&f?t1T_#Bqt6Qq!lH<*AERoW-VB~IS6fJk_REP>H-Jh5>${=(=3J|1KL)cIkVjlZTrwrtrvapmTrf`BIL&ZV3+kjR8cuaD= z5gwtqL4rNLh_82uFw8Y!t{}PN`0S+N$Z7j8gL5+`qLf}@a&X6wCavx$Cb@?|MMH!) zf&J45(QRNIT`HO&%hkm~%?|^lCJ0(r*M=)Ou}Op>uXm))p2e=Oc4w>!3#jAu2{Sni zx`_@syVP`4iY|=r�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 literal 0 HcmV?d00001 diff --git a/demos/arcade/physics_exam.fur b/demos/arcade/physics_exam.fur deleted file mode 100644 index b26e3f6e4eb38739fc9bdc8dcf54e64dac1b7cdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72951 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 Oj5~+?+bl<`{C@!C4_)X0 diff --git a/demos/genesis/inside_the_computer.fur b/demos/genesis/inside_the_computer.fur index b268201948904b2a2f0bce57633576019dc89661..b3bd29c0f95797531bc1c22722c686bb620fafc6 100644 GIT binary patch delta 16488 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 T4&s~P8|kZkRQZ1Z>^NcOC|n*9 delta 16508 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 Date: Sat, 5 Aug 2023 18:29:46 -0500 Subject: [PATCH 120/202] GUI: finish some TODOs --- src/gui/doAction.cpp | 20 ++++++++++++++++---- src/gui/editing.cpp | 4 ++-- src/gui/fileDialog.cpp | 1 - src/gui/settings.cpp | 1 + 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/gui/doAction.cpp b/src/gui/doAction.cpp index 56f1e32f9..f7d09ff16 100644 --- a/src/gui/doAction.cpp +++ b/src/gui/doAction.cpp @@ -589,11 +589,23 @@ void FurnaceGUI::doAction(int what) { case GUI_ACTION_PAT_EXPAND_SONG: doExpandSong(collapseAmount); break; - case GUI_ACTION_PAT_LATCH: // TODO + case GUI_ACTION_PAT_LATCH: { + DivPattern* pat=e->curPat[cursor.xCoarse].getPattern(e->curOrders->ord[cursor.xCoarse][curOrder],true); + latchIns=pat->data[cursor.y][2]; + latchVol=pat->data[cursor.y][3]; + latchEffect=pat->data[cursor.y][4]; + latchEffectVal=pat->data[cursor.y][5]; + latchTarget=0; + latchNibble=false; break; - case GUI_ACTION_PAT_SCROLL_MODE: // TODO - break; - case GUI_ACTION_PAT_CLEAR_LATCH: // TODO + } + case GUI_ACTION_PAT_CLEAR_LATCH: + latchIns=-2; + latchVol=-1; + latchEffect=-1; + latchEffectVal=-1; + latchTarget=0; + latchNibble=false; break; case GUI_ACTION_INS_LIST_ADD: diff --git a/src/gui/editing.cpp b/src/gui/editing.cpp index b9e035118..1e55d86e3 100644 --- a/src/gui/editing.cpp +++ b/src/gui/editing.cpp @@ -68,7 +68,7 @@ void FurnaceGUI::prepareUndo(ActionType action) { } break; case GUI_UNDO_PATTERN_COLLAPSE_SONG: - case GUI_UNDO_PATTERN_EXPAND_SONG: // TODO + case GUI_UNDO_PATTERN_EXPAND_SONG: // this is handled by doCollapseSong/doExpandSong break; case GUI_UNDO_REPLACE: // this is handled by doReplace() break; @@ -134,7 +134,7 @@ void FurnaceGUI::makeUndo(ActionType action) { } break; case GUI_UNDO_PATTERN_COLLAPSE_SONG: - case GUI_UNDO_PATTERN_EXPAND_SONG: // TODO + case GUI_UNDO_PATTERN_EXPAND_SONG: // this is handled by doCollapseSong/doExpandSong break; case GUI_UNDO_REPLACE: // this is handled by doReplace() break; diff --git a/src/gui/fileDialog.cpp b/src/gui/fileDialog.cpp index a0a45e1e0..b9ec5f69f 100644 --- a/src/gui/fileDialog.cpp +++ b/src/gui/fileDialog.cpp @@ -28,7 +28,6 @@ struct NFDState { } }; -// TODO: filter void _nfdThread(const NFDState state, std::atomic* ok, std::vector* result, bool* errorOutput) { nfdchar_t* out=NULL; nfdresult_t ret=NFD_CANCEL; diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 564bebada..47200f7ba 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -1478,6 +1478,7 @@ void FurnaceGUI::drawSettings() { UI_KEYBIND_CONFIG(GUI_ACTION_PAT_COLLAPSE_SONG); UI_KEYBIND_CONFIG(GUI_ACTION_PAT_EXPAND_SONG); UI_KEYBIND_CONFIG(GUI_ACTION_PAT_LATCH); + UI_KEYBIND_CONFIG(GUI_ACTION_PAT_CLEAR_LATCH); KEYBIND_CONFIG_END; ImGui::TreePop(); From 5ba51df56604087c8fbe9493ed4d1832c62c45ce Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Sat, 5 Aug 2023 19:18:53 -0700 Subject: [PATCH 121/202] Radio button group indents everywhere. This should be all of them. Except, of course, the find/replace dialog. Those have a specific layout already. --- src/gui/compatFlags.cpp | 8 ++++++++ src/gui/gui.cpp | 2 ++ src/gui/piano.cpp | 4 ++++ 3 files changed, 14 insertions(+) diff --git a/src/gui/compatFlags.cpp b/src/gui/compatFlags.cpp index f1b16c639..55f3cb589 100644 --- a/src/gui/compatFlags.cpp +++ b/src/gui/compatFlags.cpp @@ -199,6 +199,7 @@ void FurnaceGUI::drawCompatFlags() { } if (ImGui::BeginTabItem("Pitch/Playback")) { ImGui::Text("Pitch linearity:"); + ImGui::Indent(); if (ImGui::RadioButton("None",e->song.linearPitch==0)) { e->song.linearPitch=0; } @@ -217,6 +218,7 @@ void FurnaceGUI::drawCompatFlags() { if (ImGui::IsItemHovered()) { ImGui::SetTooltip("like Impulse Tracker"); } + ImGui::Unindent(); if (e->song.linearPitch==2) { ImGui::SameLine(); @@ -228,6 +230,7 @@ void FurnaceGUI::drawCompatFlags() { } ImGui::Text("Loop modality:"); + ImGui::Indent(); if (ImGui::RadioButton("Reset channels",e->song.loopModality==0)) { e->song.loopModality=0; } @@ -246,8 +249,10 @@ void FurnaceGUI::drawCompatFlags() { if (ImGui::IsItemHovered()) { ImGui::SetTooltip("select to not reset channels on loop."); } + ImGui::Unindent(); ImGui::Text("Cut/delay effect policy:"); + ImGui::Indent(); if (ImGui::RadioButton("Strict",e->song.delayBehavior==0)) { e->song.delayBehavior=0; } @@ -266,8 +271,10 @@ void FurnaceGUI::drawCompatFlags() { if (ImGui::IsItemHovered()) { ImGui::SetTooltip("no checks"); } + ImGui::Unindent(); ImGui::Text("Simultaneous jump (0B+0D) treatment:"); + ImGui::Indent(); if (ImGui::RadioButton("Normal",e->song.jumpTreatment==0)) { e->song.jumpTreatment=0; } @@ -286,6 +293,7 @@ void FurnaceGUI::drawCompatFlags() { if (ImGui::IsItemHovered()) { ImGui::SetTooltip("only accept 0Dxx"); } + ImGui::Unindent(); ImGui::EndTabItem(); } if (ImGui::BeginTabItem("Other")) { diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 3e3601af6..4e30823ba 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -4013,6 +4013,7 @@ bool FurnaceGUI::loop() { ImGui::Checkbox("loop",&vgmExportLoop); if (vgmExportLoop && e->song.loopModality==2) { ImGui::Text("loop trail:"); + ImGui::Indent(); if (ImGui::RadioButton("auto-detect",vgmExportTrailingTicks==-1)) { vgmExportTrailingTicks=-1; } @@ -4028,6 +4029,7 @@ bool FurnaceGUI::loop() { if (vgmExportTrailingTicks<0) vgmExportTrailingTicks=0; } } + ImGui::Unindent(); } ImGui::Checkbox("add pattern change hints",&vgmExportPatternHints); if (ImGui::IsItemHovered()) { diff --git a/src/gui/piano.cpp b/src/gui/piano.cpp index 4842d05cf..b53f97c23 100644 --- a/src/gui/piano.cpp +++ b/src/gui/piano.cpp @@ -100,6 +100,7 @@ void FurnaceGUI::drawPiano() { } if (ImGui::BeginPopupContextItem("PianoOptions",ImGuiPopupFlags_MouseButtonLeft)) { ImGui::Text("Key layout:"); + ImGui::Indent(); if (ImGui::RadioButton("Automatic",pianoView==PIANO_LAYOUT_AUTOMATIC)) { pianoView=PIANO_LAYOUT_AUTOMATIC; } @@ -109,7 +110,9 @@ void FurnaceGUI::drawPiano() { if (ImGui::RadioButton("Continuous",pianoView==PIANO_LAYOUT_CONTINUOUS)) { pianoView=PIANO_LAYOUT_CONTINUOUS; } + ImGui::Unindent(); ImGui::Text("Value input pad:"); + ImGui::Indent(); if (ImGui::RadioButton("Disabled",pianoInputPadMode==PIANO_INPUT_PAD_DISABLE)) { pianoInputPadMode=PIANO_INPUT_PAD_DISABLE; } @@ -122,6 +125,7 @@ void FurnaceGUI::drawPiano() { if (ImGui::RadioButton("Split (always visible)",pianoInputPadMode==PIANO_INPUT_PAD_SPLIT_VISIBLE)) { pianoInputPadMode=PIANO_INPUT_PAD_SPLIT_VISIBLE; } + ImGui::Unindent(); ImGui::Checkbox("Share play/edit offset/range",&pianoSharePosition); ImGui::Checkbox("Read-only (can't input notes)",&pianoReadonly); ImGui::EndPopup(); From 515a657b91794274f11c0f0f30eb60d64269554f Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 6 Aug 2023 04:15:02 -0500 Subject: [PATCH 122/202] GUI: don't show pan effects if can't pan issue #1331 --- src/gui/effectList.cpp | 56 +++++++++++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 11 deletions(-) diff --git a/src/gui/effectList.cpp b/src/gui/effectList.cpp index 2d1bd1f1e..0be9b159a 100644 --- a/src/gui/effectList.cpp +++ b/src/gui/effectList.cpp @@ -47,22 +47,56 @@ void FurnaceGUI::drawEffectList() { const char* prevName=NULL; for (int i=0; i<256; i++) { const char* name=e->getEffectDesc(i,cursor.xCoarse); - bool effectShow = true; + bool effectShow=true; if (name==prevName) { continue; } prevName=name; switch (fxColors[i]) { - case GUI_COLOR_PATTERN_EFFECT_MISC: effectShow = effectsShow[8]; break; - case GUI_COLOR_PATTERN_EFFECT_SONG: effectShow = effectsShow[1]; break; - case GUI_COLOR_PATTERN_EFFECT_SPEED: effectShow = effectsShow[3]; break; - case GUI_COLOR_PATTERN_EFFECT_TIME: effectShow = effectsShow[2]; break; - case GUI_COLOR_PATTERN_EFFECT_PITCH: effectShow = effectsShow[0]; break; - case GUI_COLOR_PATTERN_EFFECT_PANNING: effectShow = effectsShow[4]; break; - case GUI_COLOR_PATTERN_EFFECT_VOLUME: effectShow = effectsShow[5]; break; - case GUI_COLOR_PATTERN_EFFECT_SYS_PRIMARY: effectShow = effectsShow[6]; break; - case GUI_COLOR_PATTERN_EFFECT_SYS_SECONDARY: effectShow = effectsShow[7]; break; - default: effectShow = true; break; + case GUI_COLOR_PATTERN_EFFECT_MISC: + effectShow=effectsShow[8]; + break; + case GUI_COLOR_PATTERN_EFFECT_SONG: + effectShow=effectsShow[1]; + break; + case GUI_COLOR_PATTERN_EFFECT_SPEED: + effectShow=effectsShow[3]; + break; + case GUI_COLOR_PATTERN_EFFECT_TIME: + effectShow=effectsShow[2]; + break; + case GUI_COLOR_PATTERN_EFFECT_PITCH: + effectShow=effectsShow[0]; + break; + case GUI_COLOR_PATTERN_EFFECT_PANNING: + effectShow=effectsShow[4]; + break; + case GUI_COLOR_PATTERN_EFFECT_VOLUME: + effectShow=effectsShow[5]; + break; + case GUI_COLOR_PATTERN_EFFECT_SYS_PRIMARY: + effectShow=effectsShow[6]; + break; + case GUI_COLOR_PATTERN_EFFECT_SYS_SECONDARY: + effectShow=effectsShow[7]; + break; + default: + effectShow=true; + break; + } + if (fxColors[i]==GUI_COLOR_PATTERN_EFFECT_PANNING) { + DivDispatch* dispatch=e->getDispatch(e->dispatchOfChan[cursor.xCoarse]); + if (dispatch!=NULL) { + int outputs=dispatch->getOutputCount(); + if (outputs<2) { + effectShow=false; + } + if (outputs<3) { + if (i>=0x88 && i<=0x8f) { + effectShow=false; + } + } + } } if (name!=NULL && effectShow) { ImGui::TableNextRow(); From 4c158f0cd6699fb53ef92d7e99f414bd5f925740 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 6 Aug 2023 04:20:07 -0500 Subject: [PATCH 123/202] fix auto patchbay setting not being loaded --- src/engine/fileOps.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/fileOps.cpp b/src/engine/fileOps.cpp index 0ba5a1327..9cf94547b 100644 --- a/src/engine/fileOps.cpp +++ b/src/engine/fileOps.cpp @@ -2346,7 +2346,7 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) { } } - if (ds.version>=136) song.patchbayAuto=reader.readC(); + if (ds.version>=136) ds.patchbayAuto=reader.readC(); if (ds.version>=138) { ds.brokenPortaLegato=reader.readC(); From 8ba6c4cf426b83e801087ff7a4bb1531a572f011 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 6 Aug 2023 17:35:45 -0500 Subject: [PATCH 124/202] GUI: finish some more TODOs --- src/gui/piano.cpp | 1 - src/gui/settings.cpp | 9 ++------- src/gui/sysConf.cpp | 2 +- src/gui/sysEx.cpp | 3 +-- 4 files changed, 4 insertions(+), 11 deletions(-) diff --git a/src/gui/piano.cpp b/src/gui/piano.cpp index b53f97c23..3c501c45f 100644 --- a/src/gui/piano.cpp +++ b/src/gui/piano.cpp @@ -381,7 +381,6 @@ void FurnaceGUI::drawPiano() { pianoOptions=!pianoOptions; } - // TODO: wave and sample preview // first check released keys for (int i=0; i<180; i++) { int note=i-60; diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 47200f7ba..412dd2a94 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -3814,14 +3814,10 @@ void FurnaceGUI::popWarningColor() { #ifdef _WIN32 #define SYSTEM_FONT_PATH_1 "C:\\Windows\\Fonts\\segoeui.ttf" #define SYSTEM_FONT_PATH_2 "C:\\Windows\\Fonts\\tahoma.ttf" -// TODO! -#define SYSTEM_FONT_PATH_3 "C:\\Windows\\Fonts\\tahoma.ttf" -// TODO! +#define SYSTEM_FONT_PATH_3 "C:\\Windows\\Fonts\\micross.ttf" #define SYSTEM_HEAD_FONT_PATH_1 "C:\\Windows\\Fonts\\segoeui.ttf" #define SYSTEM_HEAD_FONT_PATH_2 "C:\\Windows\\Fonts\\tahoma.ttf" -// TODO! -#define SYSTEM_HEAD_FONT_PATH_3 "C:\\Windows\\Fonts\\tahoma.ttf" -// TODO! +#define SYSTEM_HEAD_FONT_PATH_3 "C:\\Windows\\Fonts\\micross.ttf" #define SYSTEM_PAT_FONT_PATH_1 "C:\\Windows\\Fonts\\consola.ttf" #define SYSTEM_PAT_FONT_PATH_2 "C:\\Windows\\Fonts\\cour.ttf" // GOOD LUCK WITH THIS ONE - UNTESTED @@ -4235,7 +4231,6 @@ void FurnaceGUI::applyUISettings(bool updateFonts) { mainFont->EllipsisCharCount=3; } - // TODO: allow changing these colors. ImGuiFileDialog::Instance()->SetFileStyle(IGFD_FileStyleByTypeDir,"",uiColors[GUI_COLOR_FILE_DIR],ICON_FA_FOLDER_O); ImGuiFileDialog::Instance()->SetFileStyle(IGFD_FileStyleByTypeFile,"",uiColors[GUI_COLOR_FILE_OTHER],ICON_FA_FILE_O); ImGuiFileDialog::Instance()->SetFileStyle(IGFD_FileStyleByExtension,".fur",uiColors[GUI_COLOR_FILE_SONG_NATIVE],ICON_FA_FILE); diff --git a/src/gui/sysConf.cpp b/src/gui/sysConf.cpp index 2f80a8b93..9e54ae7fd 100644 --- a/src/gui/sysConf.cpp +++ b/src/gui/sysConf.cpp @@ -1602,7 +1602,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo } break; } - case DIV_SYSTEM_SNES: { // TODO: echo + case DIV_SYSTEM_SNES: { char temp[64]; int vsL=127-(flags.getInt("volScaleL",0)&127); int vsR=127-(flags.getInt("volScaleR",0)&127); diff --git a/src/gui/sysEx.cpp b/src/gui/sysEx.cpp index 5a72649ee..aa86363f8 100644 --- a/src/gui/sysEx.cpp +++ b/src/gui/sysEx.cpp @@ -60,8 +60,7 @@ bool FurnaceGUI::parseSysEx(unsigned char* data, size_t len) { op.rs=reader.readC(); reader.readC(); // EBS - ignore op.am=reader.readC(); - // TODO: don't ignore after I add KVS to Furnace - reader.readC(); // KVS - ignore + op.kvs=(reader.readC()>2)?1:0; op.tl=3+((99-reader.readC())*124)/99; unsigned char freq=reader.readC(); logV("OP%d freq: %d",i,freq); From f66dd6e70b39b0953e749097978b7cc1429efa30 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Sun, 6 Aug 2023 20:28:11 -0700 Subject: [PATCH 125/202] Vertical centering of labels. Just the settings dialog, this commit. --- src/gui/settings.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 412dd2a94..a0716d162 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -239,6 +239,7 @@ const char* specificControls[18]={ #define UI_KEYBIND_CONFIG(what) \ ImGui::TableNextRow(); \ ImGui::TableNextColumn(); \ + ImGui::AlignTextToFramePadding();\ ImGui::TextUnformatted(guiActions[what].friendlyName); \ ImGui::TableNextColumn(); \ if (ImGui::Button(fmt::sprintf("%s##KC_" #what,(bindSetPending && bindSetTarget==what)?"Press key...":getKeyName(actionKeys[what])).c_str())) { \ @@ -474,6 +475,7 @@ void FurnaceGUI::drawSettings() { // SUBSECTION CHIP CONFIG_SUBSECTION("Chip"); + ImGui::AlignTextToFramePadding(); ImGui::Text("Initial system:"); ImGui::SameLine(); if (ImGui::Button("Current system")) { @@ -552,6 +554,7 @@ void FurnaceGUI::drawSettings() { settings.initialSysName="Sega Genesis/Mega Drive"; } + ImGui::AlignTextToFramePadding(); ImGui::Text("Name"); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -720,6 +723,7 @@ void FurnaceGUI::drawSettings() { // SUBSECTION OUTPUT CONFIG_SUBSECTION("Output"); #ifdef HAVE_JACK + ImGui::AlignTextToFramePadding(); ImGui::Text("Backend"); ImGui::SameLine(); int prevAudioEngine=settings.audioEngine; @@ -731,6 +735,7 @@ void FurnaceGUI::drawSettings() { #endif if (settings.audioEngine==DIV_AUDIO_SDL) { + ImGui::AlignTextToFramePadding(); ImGui::Text("Driver"); ImGui::SameLine(); if (ImGui::BeginCombo("##SDLADriver",settings.sdlAudioDriver.empty()?"Automatic":settings.sdlAudioDriver.c_str())) { @@ -749,6 +754,7 @@ void FurnaceGUI::drawSettings() { } } + ImGui::AlignTextToFramePadding(); ImGui::Text("Device"); ImGui::SameLine(); String audioDevName=settings.audioDevice.empty()?"":settings.audioDevice; @@ -764,6 +770,7 @@ void FurnaceGUI::drawSettings() { ImGui::EndCombo(); } + ImGui::AlignTextToFramePadding(); ImGui::Text("Sample rate"); ImGui::SameLine(); String sr=fmt::sprintf("%d",settings.audioRate); @@ -788,6 +795,7 @@ void FurnaceGUI::drawSettings() { if (settings.audioChans>16) settings.audioChans=16; } } else { + ImGui::AlignTextToFramePadding(); ImGui::Text("Channels"); ImGui::SameLine(); String chStr=(settings.audioChans<1 || settings.audioChans>8)?"What?":nonProAudioOuts[settings.audioChans-1]; @@ -801,6 +809,7 @@ void FurnaceGUI::drawSettings() { } } + ImGui::AlignTextToFramePadding(); ImGui::Text("Buffer size"); ImGui::SameLine(); String bs=fmt::sprintf("%d (latency: ~%.1fms)",settings.audioBufSize,2000.0*(double)settings.audioBufSize/(double)MAX(1,settings.audioRate)); @@ -835,6 +844,7 @@ void FurnaceGUI::drawSettings() { // SUBSECTION MIXING CONFIG_SUBSECTION("Mixing"); + ImGui::AlignTextToFramePadding(); ImGui::Text("Quality"); ImGui::SameLine(); ImGui::Combo("##Quality",&settings.audioQuality,audioQualities,2); @@ -846,6 +856,7 @@ void FurnaceGUI::drawSettings() { // SUBSECTION METRONOME CONFIG_SUBSECTION("Metronome"); + ImGui::AlignTextToFramePadding(); ImGui::Text("Metronome volume"); ImGui::SameLine(); if (ImGui::SliderInt("##MetroVol",&settings.metroVol,0,200,"%d%%")) { @@ -859,6 +870,7 @@ void FurnaceGUI::drawSettings() { CONFIG_SECTION("MIDI") { // SUBSECTION MIDI INPUT CONFIG_SUBSECTION("MIDI input"); + ImGui::AlignTextToFramePadding(); ImGui::Text("MIDI input"); ImGui::SameLine(); String midiInName=settings.midiInDevice.empty()?"":settings.midiInDevice; @@ -947,6 +959,7 @@ void FurnaceGUI::drawSettings() { } ImGui::PlotLines("##VolCurveDisplay",curve,128,0,"Volume curve",0.0,127.0,ImVec2(200.0f*dpiScale,200.0f*dpiScale)); + ImGui::AlignTextToFramePadding(); ImGui::Text("Actions:"); ImGui::SameLine(); if (ImGui::Button(ICON_FA_PLUS "##AddAction")) { @@ -1109,6 +1122,7 @@ void FurnaceGUI::drawSettings() { // SUBSECTION MIDI OUTPUT CONFIG_SUBSECTION("MIDI output"); + ImGui::AlignTextToFramePadding(); ImGui::Text("MIDI output"); ImGui::SameLine(); String midiOutName=settings.midiOutDevice.empty()?"":settings.midiOutDevice; @@ -1179,40 +1193,49 @@ void FurnaceGUI::drawSettings() { CONFIG_SECTION("Emulation") { // SUBSECTION LAYOUT CONFIG_SUBSECTION("Cores"); + ImGui::AlignTextToFramePadding(); ImGui::Text("Arcade/YM2151 core"); ImGui::SameLine(); ImGui::Combo("##ArcadeCore",&settings.arcadeCore,arcadeCores,2); + ImGui::AlignTextToFramePadding(); ImGui::Text("Genesis/YM2612 core"); ImGui::SameLine(); ImGui::Combo("##YM2612Core",&settings.ym2612Core,ym2612Cores,2); + ImGui::AlignTextToFramePadding(); ImGui::Text("SN76489 core"); ImGui::SameLine(); ImGui::Combo("##SNCore",&settings.snCore,snCores,2); + ImGui::AlignTextToFramePadding(); ImGui::Text("NES core"); ImGui::SameLine(); ImGui::Combo("##NESCore",&settings.nesCore,nesCores,2); + ImGui::AlignTextToFramePadding(); ImGui::Text("FDS core"); ImGui::SameLine(); ImGui::Combo("##FDSCore",&settings.fdsCore,nesCores,2); + ImGui::AlignTextToFramePadding(); ImGui::Text("SID core"); ImGui::SameLine(); ImGui::Combo("##C64Core",&settings.c64Core,c64Cores,3); + ImGui::AlignTextToFramePadding(); ImGui::Text("POKEY core"); ImGui::SameLine(); ImGui::Combo("##POKEYCore",&settings.pokeyCore,pokeyCores,2); + ImGui::AlignTextToFramePadding(); ImGui::Text("OPN/OPNA/OPNB cores"); ImGui::SameLine(); ImGui::Combo("##OPNCore",&settings.opnCore,opnCores,2); ImGui::Separator(); + ImGui::AlignTextToFramePadding(); ImGui::Text("PC Speaker strategy"); ImGui::SameLine(); ImGui::Combo("##PCSOutMethod",&settings.pcSpeakerOutMethod,pcspkrOutMethods,5); @@ -1220,6 +1243,7 @@ void FurnaceGUI::drawSettings() { ImGui::Separator(); ImGui::Text("Sample ROMs:"); + ImGui::AlignTextToFramePadding(); ImGui::Text("OPL4 YRW801 path"); ImGui::SameLine(); ImGui::InputText("##YRW801Path",&settings.yrw801Path); @@ -1228,6 +1252,7 @@ void FurnaceGUI::drawSettings() { openFileDialog(GUI_FILE_YRW801_ROM_OPEN); } + ImGui::AlignTextToFramePadding(); ImGui::Text("MultiPCM TG100 path"); ImGui::SameLine(); ImGui::InputText("##TG100Path",&settings.tg100Path); @@ -1236,6 +1261,7 @@ void FurnaceGUI::drawSettings() { openFileDialog(GUI_FILE_TG100_ROM_OPEN); } + ImGui::AlignTextToFramePadding(); ImGui::Text("MultiPCM MU5 path"); ImGui::SameLine(); ImGui::InputText("##MU5Path",&settings.mu5Path); @@ -1605,6 +1631,7 @@ void FurnaceGUI::drawSettings() { CONFIG_SECTION("Interface") { // SUBSECTION LAYOUT CONFIG_SUBSECTION("Layout"); + ImGui::AlignTextToFramePadding(); ImGui::Text("Workspace layout:"); ImGui::SameLine(); if (ImGui::Button("Import")) { @@ -1909,6 +1936,7 @@ void FurnaceGUI::drawSettings() { // SUBSECTION TEXT CONFIG_SUBSECTION("Text"); + ImGui::AlignTextToFramePadding(); ImGui::Text("Main font"); ImGui::SameLine(); ImGui::Combo("##MainFont",&settings.mainFont,mainFonts,7); @@ -1925,6 +1953,7 @@ void FurnaceGUI::drawSettings() { if (settings.mainFontSize>96) settings.mainFontSize=96; } ImGui::Unindent(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Header font"); ImGui::SameLine(); ImGui::Combo("##HeadFont",&settings.headFont,headFonts,7); @@ -1941,6 +1970,7 @@ void FurnaceGUI::drawSettings() { if (settings.headFontSize>96) settings.headFontSize=96; } ImGui::Unindent(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Pattern font"); ImGui::SameLine(); ImGui::Combo("##PatFont",&settings.patFont,patFonts,7); From 9ba1eb2541d90170274a4557ebdc82f5aff7ea06 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 6 Aug 2023 22:48:23 -0500 Subject: [PATCH 126/202] one more --- src/engine/dispatchContainer.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/engine/dispatchContainer.cpp b/src/engine/dispatchContainer.cpp index 2e8532603..61d8344a9 100644 --- a/src/engine/dispatchContainer.cpp +++ b/src/engine/dispatchContainer.cpp @@ -216,13 +216,6 @@ void DivDispatchContainer::clear() { if (dispatch->getDCOffRequired()) { dcOffCompensation=true; } - // run for one cycle to determine DC offset - // TODO: SAA1099 doesn't like that - /*dispatch->acquire(bbIn[0],bbIn[1],0,1); - temp[0]=bbIn[0][0]; - temp[1]=bbIn[1][0]; - prevSample[0]=temp[0]; - prevSample[1]=temp[1];*/ } void DivDispatchContainer::init(DivSystem sys, DivEngine* eng, int chanCount, double gotRate, const DivConfig& flags) { @@ -479,7 +472,7 @@ void DivDispatchContainer::init(DivSystem sys, DivEngine* eng, int chanCount, do break; case DIV_SYSTEM_NAMCO: dispatch=new DivPlatformNamcoWSG; - // Pac-Man (TODO: support Pole Position?) + // Pac-Man ((DivPlatformNamcoWSG*)dispatch)->setDeviceType(1); break; case DIV_SYSTEM_NAMCO_15XX: From 1ea4452e9bd58786f8598bea2fa24ba59439db54 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Sun, 6 Aug 2023 20:51:51 -0700 Subject: [PATCH 127/202] More vertical centering of labels. chanOsc, debugWindow, editControls, findReplace, gui --- src/gui/chanOsc.cpp | 6 ++++++ src/gui/debugWindow.cpp | 1 + src/gui/editControls.cpp | 4 ++++ src/gui/findReplace.cpp | 5 +++++ src/gui/gui.cpp | 4 ++++ 5 files changed, 20 insertions(+) diff --git a/src/gui/chanOsc.cpp b/src/gui/chanOsc.cpp index e4e9e85fb..aa7c91b5b 100644 --- a/src/gui/chanOsc.cpp +++ b/src/gui/chanOsc.cpp @@ -131,6 +131,7 @@ void FurnaceGUI::drawChanOsc() { if (ImGui::BeginTable("ChanOscSettings",3)) { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Columns"); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -154,6 +155,7 @@ void FurnaceGUI::drawChanOsc() { } ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Automatic columns"); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -169,6 +171,7 @@ void FurnaceGUI::drawChanOsc() { ImGui::EndTable(); } + ImGui::AlignTextToFramePadding(); ImGui::Text("Amplitude"); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -261,6 +264,7 @@ void FurnaceGUI::drawChanOsc() { if (ImGui::ColorPicker4("Color",(float*)&i.color)) { updateChanOscGradTex=true; } + ImGui::AlignTextToFramePadding(); ImGui::Text("Distance"); ImGui::SameLine(); float pDist=i.distance*100.0f; @@ -269,6 +273,7 @@ void FurnaceGUI::drawChanOsc() { updateChanOscGradTex=true; } + ImGui::AlignTextToFramePadding(); ImGui::Text("Spread"); ImGui::SameLine(); float pSpread=i.spread*100.0f; @@ -313,6 +318,7 @@ void FurnaceGUI::drawChanOsc() { ImGui::ColorPicker4("Color",(float*)&chanOscColor); } + ImGui::AlignTextToFramePadding(); ImGui::Text("Text format:"); ImGui::SameLine(); ImGui::InputText("##TextFormat",&chanOscTextFormat); diff --git a/src/gui/debugWindow.cpp b/src/gui/debugWindow.cpp index bfeb9067e..9d59e44d2 100644 --- a/src/gui/debugWindow.cpp +++ b/src/gui/debugWindow.cpp @@ -486,6 +486,7 @@ void FurnaceGUI::drawDebug() { pgProgram.clear(); } + ImGui::AlignTextToFramePadding(); ImGui::Text("Address"); ImGui::SameLine(); ImGui::SetNextItemWidth(100.0f*dpiScale); diff --git a/src/gui/editControls.cpp b/src/gui/editControls.cpp index 099ff7e25..24aeb87cd 100644 --- a/src/gui/editControls.cpp +++ b/src/gui/editControls.cpp @@ -619,6 +619,7 @@ void FurnaceGUI::drawMobileControls() { "Furnace Amiga emulator is working properly by\n" "comparing it with real Amiga output." ); + ImGui::AlignTextToFramePadding(); ImGui::Text("Directory"); ImGui::SameLine(); ImGui::InputText("##AVDPath",&workingDirROMExport); @@ -717,6 +718,7 @@ void FurnaceGUI::drawEditControls() { e->setMetronome(metro); } + ImGui::AlignTextToFramePadding(); ImGui::Text("Follow"); ImGui::SameLine(); unimportant(ImGui::Checkbox("Orders",&followOrders)); @@ -1063,6 +1065,7 @@ void FurnaceGUI::drawEditControls() { if (ImGui::Begin("Edit Controls",&editControlsOpen,globalWinFlags)) { ImGui::Columns(2); + ImGui::AlignTextToFramePadding(); ImGui::Text("Octave"); ImGui::SameLine(); float cursor=ImGui::GetCursorPosX(); @@ -1078,6 +1081,7 @@ void FurnaceGUI::drawEditControls() { } } + ImGui::AlignTextToFramePadding(); ImGui::Text("Step"); ImGui::SameLine(); ImGui::SetCursorPosX(cursor); diff --git a/src/gui/findReplace.cpp b/src/gui/findReplace.cpp index b6fcd14ce..60976d31c 100644 --- a/src/gui/findReplace.cpp +++ b/src/gui/findReplace.cpp @@ -595,6 +595,7 @@ void FurnaceGUI::drawFindReplace() { ImGui::TableSetupColumn("c3",ImGuiTableColumnFlags_WidthStretch,0.25); ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Note"); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -662,6 +663,7 @@ void FurnaceGUI::drawFindReplace() { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Ins"); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -697,6 +699,7 @@ void FurnaceGUI::drawFindReplace() { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Volume"); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -734,6 +737,7 @@ void FurnaceGUI::drawFindReplace() { ImGui::PushID(0x1000+j); ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Effect"); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -769,6 +773,7 @@ void FurnaceGUI::drawFindReplace() { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Value"); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 4e30823ba..cc0461653 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -2783,6 +2783,7 @@ void FurnaceGUI::editOptions(bool topMenu) { if (ImGui::MenuItem("values up (+16)",BIND_FOR(GUI_ACTION_PAT_VALUE_UP_COARSE))) doTranspose(16,opMaskTransposeValue); if (ImGui::MenuItem("values down (-16)",BIND_FOR(GUI_ACTION_PAT_VALUE_DOWN_COARSE))) doTranspose(-16,opMaskTransposeValue); ImGui::Separator(); + ImGui::AlignTextToFramePadding(); ImGui::Text("transpose"); ImGui::SameLine(); ImGui::SetNextItemWidth(120.0f*dpiScale); @@ -4118,6 +4119,7 @@ bool FurnaceGUI::loop() { "Furnace Amiga emulator is working properly by\n" "comparing it with real Amiga output." ); + ImGui::AlignTextToFramePadding(); ImGui::Text("Directory"); ImGui::SameLine(); ImGui::InputText("##AVDPath",&workingDirROMExport); @@ -5643,6 +5645,7 @@ bool FurnaceGUI::loop() { if (pendingInsSingle) { ImGui::Text("this is an instrument bank! select which one to use:"); } else { + ImGui::AlignTextToFramePadding(); ImGui::Text("this is an instrument bank! select which ones to load:"); ImGui::SameLine(); if (ImGui::Button("All")) { @@ -5730,6 +5733,7 @@ bool FurnaceGUI::loop() { } ImGui::BeginDisabled(pendingRawSampleDepth!=DIV_SAMPLE_DEPTH_8BIT && pendingRawSampleDepth!=DIV_SAMPLE_DEPTH_16BIT); + ImGui::AlignTextToFramePadding(); ImGui::Text("Channels"); ImGui::SameLine(); if (ImGui::InputInt("##RSChans",&pendingRawSampleChannels)) { From 3effd9e5064adcc6ab37ae72e55c523648a631ce Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Sun, 6 Aug 2023 22:47:17 -0700 Subject: [PATCH 128/202] Yet more vertical centering of labels. --- src/gui/insEdit.cpp | 4 ++++ src/gui/sampleEdit.cpp | 8 ++++++++ src/gui/songInfo.cpp | 5 +++++ src/gui/speed.cpp | 7 +++++++ src/gui/stats.cpp | 2 ++ src/gui/subSongs.cpp | 1 + src/gui/waveEdit.cpp | 10 ++++++++++ 7 files changed, 37 insertions(+) diff --git a/src/gui/insEdit.cpp b/src/gui/insEdit.cpp index e5f60d86b..1bfcf2848 100644 --- a/src/gui/insEdit.cpp +++ b/src/gui/insEdit.cpp @@ -4264,6 +4264,7 @@ void FurnaceGUI::drawInsEdit() { ImGui::EndTabItem(); } if (ins->type==DIV_INS_C64) if (ImGui::BeginTabItem("C64")) { + ImGui::AlignTextToFramePadding(); ImGui::Text("Waveform"); ImGui::SameLine(); pushToggleColors(ins->c64.triOn); @@ -4348,6 +4349,7 @@ void FurnaceGUI::drawInsEdit() { P(CWSliderScalar("Cutoff",ImGuiDataType_U16,&ins->c64.cut,&_ZERO,&_TWO_THOUSAND_FORTY_SEVEN)); rightClickable P(CWSliderScalar("Resonance",ImGuiDataType_U8,&ins->c64.res,&_ZERO,&_FIFTEEN)); rightClickable + ImGui::AlignTextToFramePadding(); ImGui::Text("Filter Mode"); ImGui::SameLine(); pushToggleColors(ins->c64.lp); @@ -5250,6 +5252,7 @@ void FurnaceGUI::drawInsEdit() { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Wave 1"); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -5260,6 +5263,7 @@ void FurnaceGUI::drawInsEdit() { } if (isSingleWaveFX) { ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Wave 2"); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); diff --git a/src/gui/sampleEdit.cpp b/src/gui/sampleEdit.cpp index 99ccbd22c..bd7529383 100644 --- a/src/gui/sampleEdit.cpp +++ b/src/gui/sampleEdit.cpp @@ -372,6 +372,7 @@ void FurnaceGUI::drawSampleEdit() { if (sampleInfo) { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Type"); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -445,6 +446,7 @@ void FurnaceGUI::drawSampleEdit() { bool coarseChanged=false; ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Hz"); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -459,6 +461,7 @@ void FurnaceGUI::drawSampleEdit() { } } + ImGui::AlignTextToFramePadding(); ImGui::Text("Note"); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -501,6 +504,7 @@ void FurnaceGUI::drawSampleEdit() { } } + ImGui::AlignTextToFramePadding(); ImGui::Text("Fine"); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -537,6 +541,7 @@ void FurnaceGUI::drawSampleEdit() { ImGui::TableNextColumn(); ImGui::BeginDisabled(!(doLoop || keepLoopAlive)); keepLoopAlive=false; + ImGui::AlignTextToFramePadding(); ImGui::Text("Mode"); ImGui::SameLine(); pushWarningColor(!warnLoopMode.empty()); @@ -560,6 +565,7 @@ void FurnaceGUI::drawSampleEdit() { popWarningColor(); pushWarningColor(!warnLoopPos.empty()); + ImGui::AlignTextToFramePadding(); ImGui::Text("Start"); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -585,6 +591,7 @@ void FurnaceGUI::drawSampleEdit() { ImGui::SetTooltip("%s",warnLoopPos.c_str()); } + ImGui::AlignTextToFramePadding(); ImGui::Text("End"); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -1018,6 +1025,7 @@ void FurnaceGUI::drawSampleEdit() { if (sampleFilterRes<0.0f) sampleFilterRes=0.0f; if (sampleFilterRes>0.99f) sampleFilterRes=0.99f; } + ImGui::AlignTextToFramePadding(); ImGui::Text("Power"); ImGui::SameLine(); if (ImGui::RadioButton("1x",sampleFilterPower==1)) { diff --git a/src/gui/songInfo.cpp b/src/gui/songInfo.cpp index 65803e577..b1c4895a0 100644 --- a/src/gui/songInfo.cpp +++ b/src/gui/songInfo.cpp @@ -36,6 +36,7 @@ void FurnaceGUI::drawSongInfo(bool asChild) { ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch,0.0); ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Name"); ImGui::TableNextColumn(); float avail=ImGui::GetContentRegionAvail().x; @@ -59,6 +60,7 @@ void FurnaceGUI::drawSongInfo(bool asChild) { } ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Author"); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(avail); @@ -68,6 +70,7 @@ void FurnaceGUI::drawSongInfo(bool asChild) { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Album"); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(avail); @@ -77,6 +80,7 @@ void FurnaceGUI::drawSongInfo(bool asChild) { if (!basicMode) { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("System"); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(MAX(16.0f*dpiScale,avail-autoButtonSize-ImGui::GetStyle().ItemSpacing.x)); @@ -112,6 +116,7 @@ void FurnaceGUI::drawSongInfo(bool asChild) { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Tuning (A-4)"); ImGui::TableNextColumn(); float tune=e->song.tuning; diff --git a/src/gui/speed.cpp b/src/gui/speed.cpp index 5557c663e..593467852 100644 --- a/src/gui/speed.cpp +++ b/src/gui/speed.cpp @@ -37,6 +37,7 @@ void FurnaceGUI::drawSpeed(bool asChild) { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); if (ImGui::SmallButton(tempoView?"Base Tempo##TempoOrHz":"Tick Rate##TempoOrHz")) { tempoView=!tempoView; } @@ -74,6 +75,7 @@ void FurnaceGUI::drawSpeed(bool asChild) { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); if (keepGrooveAlive || e->curSubSong->speeds.len>2) { if (ImGui::SmallButton("Groove")) { e->lockEngine([this]() { @@ -163,6 +165,7 @@ void FurnaceGUI::drawSpeed(bool asChild) { if (!basicMode) { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Virtual Tempo"); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(halfAvail); @@ -185,6 +188,7 @@ void FurnaceGUI::drawSpeed(bool asChild) { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Divider"); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(halfAvail); @@ -200,6 +204,7 @@ void FurnaceGUI::drawSpeed(bool asChild) { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Highlight"); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(halfAvail); @@ -222,6 +227,7 @@ void FurnaceGUI::drawSpeed(bool asChild) { ImGui::TableSetupColumn("c2",ImGuiTableColumnFlags_WidthStretch,0.0); ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Pattern Length"); ImGui::TableNextColumn(); float avail=ImGui::GetContentRegionAvail().x; @@ -236,6 +242,7 @@ void FurnaceGUI::drawSpeed(bool asChild) { if (!basicMode) { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Song Length"); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(avail); diff --git a/src/gui/stats.cpp b/src/gui/stats.cpp index ed879ff2a..5bc2ee102 100644 --- a/src/gui/stats.cpp +++ b/src/gui/stats.cpp @@ -32,6 +32,7 @@ void FurnaceGUI::drawStats() { size_t lastProcTime=e->processTime; double maxGot=1000000000.0*(double)e->getAudioDescGot().bufsize/(double)e->getAudioDescGot().rate; String procStr=fmt::sprintf("%.1f%%",100.0*((double)lastProcTime/(double)maxGot)); + ImGui::AlignTextToFramePadding(); ImGui::Text("Audio load"); ImGui::SameLine(); ImGui::ProgressBar((double)lastProcTime/maxGot,ImVec2(-FLT_MIN,0),procStr.c_str()); @@ -47,6 +48,7 @@ void FurnaceGUI::drawStats() { } else { usageStr=fmt::sprintf("%d/%d",usage,capacity); } + ImGui::AlignTextToFramePadding(); ImGui::Text("%s [%d]", e->getSystemName(e->song.system[i]), j); ImGui::SameLine(); ImGui::ProgressBar(((float)usage)/((float)capacity),ImVec2(-FLT_MIN,0),usageStr.c_str()); diff --git a/src/gui/subSongs.cpp b/src/gui/subSongs.cpp index 5d34c23fd..15b107ed0 100644 --- a/src/gui/subSongs.cpp +++ b/src/gui/subSongs.cpp @@ -127,6 +127,7 @@ void FurnaceGUI::drawSubSongs(bool asChild) { ImGui::SetTooltip("Remove"); } + ImGui::AlignTextToFramePadding(); ImGui::Text("Name"); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); diff --git a/src/gui/waveEdit.cpp b/src/gui/waveEdit.cpp index dce89bc96..3905b7614 100644 --- a/src/gui/waveEdit.cpp +++ b/src/gui/waveEdit.cpp @@ -593,6 +593,7 @@ void FurnaceGUI::drawWaveEdit() { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Duty"); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -602,6 +603,7 @@ void FurnaceGUI::drawWaveEdit() { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("Exponent"); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -611,6 +613,7 @@ void FurnaceGUI::drawWaveEdit() { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("XOR Point"); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -630,6 +633,7 @@ void FurnaceGUI::drawWaveEdit() { for (int i=0; i<16; i++) { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("%d",i+1); ImGui::TableNextColumn(); ImGui::PushID(140+i); @@ -683,6 +687,7 @@ void FurnaceGUI::drawWaveEdit() { for (int i=0; i<4; i++) { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("%d",i+1); ImGui::TableNextColumn(); @@ -727,6 +732,7 @@ void FurnaceGUI::drawWaveEdit() { for (int i=0; i<4; i++) { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("%d",i+1); ImGui::TableNextColumn(); @@ -760,6 +766,7 @@ void FurnaceGUI::drawWaveEdit() { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("1"); ImGui::TableNextColumn(); if (ImGui::Checkbox("##ConO1",&waveGenFMCon0[0])) { @@ -784,6 +791,7 @@ void FurnaceGUI::drawWaveEdit() { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("2"); ImGui::TableNextColumn(); if (ImGui::Checkbox("##Con11",&waveGenFMCon1[0])) { @@ -808,6 +816,7 @@ void FurnaceGUI::drawWaveEdit() { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("3"); ImGui::TableNextColumn(); if (ImGui::Checkbox("##Con21",&waveGenFMCon2[0])) { @@ -832,6 +841,7 @@ void FurnaceGUI::drawWaveEdit() { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("4"); ImGui::TableNextColumn(); if (ImGui::Checkbox("##Con31",&waveGenFMCon3[0])) { From 0a7d9571428969b8be8f726dcf206dde73245c20 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Mon, 7 Aug 2023 10:17:48 -0700 Subject: [PATCH 129/202] Last label tweak. --- src/gui/mixer.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/mixer.cpp b/src/gui/mixer.cpp index ff1641ba0..dfa270ecd 100644 --- a/src/gui/mixer.cpp +++ b/src/gui/mixer.cpp @@ -244,6 +244,7 @@ void FurnaceGUI::drawMixer() { ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::AlignTextToFramePadding(); ImGui::Text("%d. %s",i+1,getSystemName(e->song.system[i])); ImGui::TableNextColumn(); if (ImGui::Checkbox("Invert",&doInvert)) { From 9ae28a67bfc0bdebbcf3c7175c53ca66aea8d457 Mon Sep 17 00:00:00 2001 From: Lunathir <18320914+lunathir@users.noreply.github.com> Date: Thu, 3 Aug 2023 20:42:44 -0700 Subject: [PATCH 130/202] Update presets.cpp --- src/gui/presets.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/gui/presets.cpp b/src/gui/presets.cpp index 356ac6f6a..7044611fa 100644 --- a/src/gui/presets.cpp +++ b/src/gui/presets.cpp @@ -1407,28 +1407,40 @@ void FurnaceGUI::initSystemPresets() { "Sega System 32", { CH(DIV_SYSTEM_YM2612, 1.0f, 0, "clockSel=4"), // discrete 8.05MHz YM3438 CH(DIV_SYSTEM_YM2612, 1.0f, 0, "clockSel=4"), // ^^ - CH(DIV_SYSTEM_RF5C68, 1.0f, 0, "clockSel=2") // 12.5MHz + CH(DIV_SYSTEM_RF5C68, 1.0f, 0, + "clockSel=2\n", + "chipType=1\n" + ) // 12.5MHz } ); ENTRY( "Sega System 32 (extended channel 3 on first OPN2C)", { CH(DIV_SYSTEM_YM2612_EXT, 1.0f, 0, "clockSel=4"), // discrete 8.05MHz YM3438 CH(DIV_SYSTEM_YM2612, 1.0f, 0, "clockSel=4"), // ^^ - CH(DIV_SYSTEM_RF5C68, 1.0f, 0, "clockSel=2") // 12.5MHz + CH(DIV_SYSTEM_RF5C68, 1.0f, 0, + "clockSel=2\n", + "chipType=1\n" + ) // 12.5MHz } ); ENTRY( "Sega System 32 (extended channel 3 on second OPN2C)", { CH(DIV_SYSTEM_YM2612, 1.0f, 0, "clockSel=4"), // discrete 8.05MHz YM3438 CH(DIV_SYSTEM_YM2612_EXT, 1.0f, 0, "clockSel=4"), // ^^ - CH(DIV_SYSTEM_RF5C68, 1.0f, 0, "clockSel=2") // 12.5MHz + CH(DIV_SYSTEM_RF5C68, 1.0f, 0, + "clockSel=2\n", + "chipType=1\n" + ) // 12.5MHz } ); ENTRY( "Sega System 32 (extended channel 3 on both OPN2Cs)", { CH(DIV_SYSTEM_YM2612_EXT, 1.0f, 0, "clockSel=4"), // discrete 8.05MHz YM3438 CH(DIV_SYSTEM_YM2612_EXT, 1.0f, 0, "clockSel=4"), // ^^ - CH(DIV_SYSTEM_RF5C68, 1.0f, 0, "clockSel=2") // 12.5MHz + CH(DIV_SYSTEM_RF5C68, 1.0f, 0, + "clockSel=2\n", + "chipType=1\n" + ) // 12.5MHz } ); ENTRY( From 10ecc71a60bf709ceb1591b6e8de201a4c3738b4 Mon Sep 17 00:00:00 2001 From: Lunathir <18320914+lunathir@users.noreply.github.com> Date: Fri, 4 Aug 2023 01:18:23 -0700 Subject: [PATCH 131/202] Remove commas in flags --- src/gui/presets.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/presets.cpp b/src/gui/presets.cpp index 7044611fa..d23622ad2 100644 --- a/src/gui/presets.cpp +++ b/src/gui/presets.cpp @@ -1408,7 +1408,7 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_YM2612, 1.0f, 0, "clockSel=4"), // discrete 8.05MHz YM3438 CH(DIV_SYSTEM_YM2612, 1.0f, 0, "clockSel=4"), // ^^ CH(DIV_SYSTEM_RF5C68, 1.0f, 0, - "clockSel=2\n", + "clockSel=2\n" "chipType=1\n" ) // 12.5MHz } @@ -1418,7 +1418,7 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_YM2612_EXT, 1.0f, 0, "clockSel=4"), // discrete 8.05MHz YM3438 CH(DIV_SYSTEM_YM2612, 1.0f, 0, "clockSel=4"), // ^^ CH(DIV_SYSTEM_RF5C68, 1.0f, 0, - "clockSel=2\n", + "clockSel=2\n" "chipType=1\n" ) // 12.5MHz } @@ -1428,7 +1428,7 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_YM2612, 1.0f, 0, "clockSel=4"), // discrete 8.05MHz YM3438 CH(DIV_SYSTEM_YM2612_EXT, 1.0f, 0, "clockSel=4"), // ^^ CH(DIV_SYSTEM_RF5C68, 1.0f, 0, - "clockSel=2\n", + "clockSel=2\n" "chipType=1\n" ) // 12.5MHz } @@ -1438,7 +1438,7 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_YM2612_EXT, 1.0f, 0, "clockSel=4"), // discrete 8.05MHz YM3438 CH(DIV_SYSTEM_YM2612_EXT, 1.0f, 0, "clockSel=4"), // ^^ CH(DIV_SYSTEM_RF5C68, 1.0f, 0, - "clockSel=2\n", + "clockSel=2\n" "chipType=1\n" ) // 12.5MHz } From 9d410dfe9cd5b4c416d709604065a9c1ca73f58e Mon Sep 17 00:00:00 2001 From: tildearrow Date: Mon, 7 Aug 2023 18:05:31 -0500 Subject: [PATCH 132/202] add isVolGlobal to DivDispatch do not key release on pendingNotes if so issue #1325 --- src/engine/dispatch.h | 6 ++++++ src/engine/platform/abstract.cpp | 4 ++++ src/engine/platform/c64.cpp | 4 ++++ src/engine/platform/c64.h | 1 + src/engine/platform/ted.cpp | 4 ++++ src/engine/platform/ted.h | 1 + src/engine/platform/vic20.cpp | 4 ++++ src/engine/platform/vic20.h | 1 + src/engine/playback.cpp | 2 +- 9 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/engine/dispatch.h b/src/engine/dispatch.h index acd0cc77b..875ff487d 100644 --- a/src/engine/dispatch.h +++ b/src/engine/dispatch.h @@ -485,6 +485,12 @@ class DivDispatch { */ virtual bool keyOffAffectsPorta(int ch); + /** + * test whether volume is global. + * @return whether it is. + */ + virtual bool isVolGlobal(); + /** * get the lowest note in a portamento. * @param ch the channel in question. diff --git a/src/engine/platform/abstract.cpp b/src/engine/platform/abstract.cpp index 82694e003..2be22d1f4 100644 --- a/src/engine/platform/abstract.cpp +++ b/src/engine/platform/abstract.cpp @@ -86,6 +86,10 @@ bool DivDispatch::keyOffAffectsPorta(int ch) { return false; } +bool DivDispatch::isVolGlobal() { + return false; +} + int DivDispatch::getPortaFloor(int ch) { return 0x00; } diff --git a/src/engine/platform/c64.cpp b/src/engine/platform/c64.cpp index 6ca85ffe0..15ff00d92 100644 --- a/src/engine/platform/c64.cpp +++ b/src/engine/platform/c64.cpp @@ -566,6 +566,10 @@ bool DivPlatformC64::getWantPreNote() { return true; } +bool DivPlatformC64::isVolGlobal() { + return true; +} + float DivPlatformC64::getPostAmp() { return (sidCore==1)?3.0f:1.0f; } diff --git a/src/engine/platform/c64.h b/src/engine/platform/c64.h index 0da59fc83..def32eaab 100644 --- a/src/engine/platform/c64.h +++ b/src/engine/platform/c64.h @@ -105,6 +105,7 @@ class DivPlatformC64: public DivDispatch { void notifyInsChange(int ins); bool getDCOffRequired(); bool getWantPreNote(); + bool isVolGlobal(); float getPostAmp(); DivMacroInt* getChanMacroInt(int ch); void notifyInsDeletion(void* ins); diff --git a/src/engine/platform/ted.cpp b/src/engine/platform/ted.cpp index be5a379e7..a1e431bb4 100644 --- a/src/engine/platform/ted.cpp +++ b/src/engine/platform/ted.cpp @@ -257,6 +257,10 @@ void DivPlatformTED::forceIns() { updateCtrl=true; } +bool DivPlatformTED::isVolGlobal() { + return true; +} + void* DivPlatformTED::getChanState(int ch) { return &chan[ch]; } diff --git a/src/engine/platform/ted.h b/src/engine/platform/ted.h index 25c41e3d8..58b4d0b7d 100644 --- a/src/engine/platform/ted.h +++ b/src/engine/platform/ted.h @@ -54,6 +54,7 @@ class DivPlatformTED: public DivDispatch { public: void acquire(short** buf, size_t len); int dispatch(DivCommand c); + bool isVolGlobal(); void* getChanState(int chan); DivMacroInt* getChanMacroInt(int ch); DivDispatchOscBuffer* getOscBuffer(int chan); diff --git a/src/engine/platform/vic20.cpp b/src/engine/platform/vic20.cpp index bd25b5284..05705f7c7 100644 --- a/src/engine/platform/vic20.cpp +++ b/src/engine/platform/vic20.cpp @@ -278,6 +278,10 @@ void DivPlatformVIC20::forceIns() { } } +bool DivPlatformVIC20::isVolGlobal() { + return true; +} + void* DivPlatformVIC20::getChanState(int ch) { return &chan[ch]; } diff --git a/src/engine/platform/vic20.h b/src/engine/platform/vic20.h index e233d9844..b1c1533ab 100644 --- a/src/engine/platform/vic20.h +++ b/src/engine/platform/vic20.h @@ -46,6 +46,7 @@ class DivPlatformVIC20: public DivDispatch { public: void acquire(short** buf, size_t len); int dispatch(DivCommand c); + bool isVolGlobal(); void* getChanState(int chan); DivMacroInt* getChanMacroInt(int ch); DivDispatchOscBuffer* getOscBuffer(int chan); diff --git a/src/engine/playback.cpp b/src/engine/playback.cpp index 544d59250..d15933d65 100644 --- a/src/engine/playback.cpp +++ b/src/engine/playback.cpp @@ -1307,7 +1307,7 @@ bool DivEngine::nextTick(bool noAccum, bool inhibitLowLat) { } else { DivMacroInt* macroInt=disCont[dispatchOfChan[note.channel]].dispatch->getChanMacroInt(dispatchChanOfChan[note.channel]); if (macroInt!=NULL) { - if (macroInt->hasRelease) { + if (macroInt->hasRelease && !disCont[dispatchOfChan[note.channel]].dispatch->isVolGlobal()) { dispatchCmd(DivCommand(DIV_CMD_NOTE_OFF_ENV,note.channel)); } else { dispatchCmd(DivCommand(DIV_CMD_NOTE_OFF,note.channel)); From 0e5d11f9cdc2e5f7ad60c0ceba270467e387fd2e Mon Sep 17 00:00:00 2001 From: tildearrow Date: Mon, 7 Aug 2023 19:12:24 -0500 Subject: [PATCH 133/202] fix system file picker ins preview --- extern/nfd-modified/src/nfd_win.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/extern/nfd-modified/src/nfd_win.cpp b/extern/nfd-modified/src/nfd_win.cpp index 9c12c3485..c60f7a753 100644 --- a/extern/nfd-modified/src/nfd_win.cpp +++ b/extern/nfd-modified/src/nfd_win.cpp @@ -532,6 +532,9 @@ nfdresult_t NFD_OpenDialogMultiple( const std::vector& filterList, nfdselcallback_t selCallback ) { nfdresult_t nfdResult = NFD_ERROR; + NFDWinEvents* winEvents; + bool hasEvents=true; + DWORD eventID=0; HRESULT coResult = COMInit(); @@ -566,6 +569,16 @@ nfdresult_t NFD_OpenDialogMultiple( const std::vector& filterList, goto end; } + // Pass the callback + winEvents=new NFDWinEvents(selCallback); + if ( !SUCCEEDED(fileOpenDialog->Advise(winEvents,&eventID)) ) { + // error... ignore + hasEvents=false; + winEvents->Release(); + } else { + winEvents->Release(); + } + // Set a flag for multiple options DWORD dwFlags; result = fileOpenDialog->GetOptions(&dwFlags); @@ -613,8 +626,12 @@ nfdresult_t NFD_OpenDialogMultiple( const std::vector& filterList, } end: - if ( fileOpenDialog ) + if (fileOpenDialog) { + if (hasEvents) { + fileOpenDialog->Unadvise(eventID); + } fileOpenDialog->Release(); + } COMUninit(coResult); From 3af2f8d2a403bb3afe573a0e14f348d3e5938481 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Mon, 7 Aug 2023 19:52:15 -0500 Subject: [PATCH 134/202] let's add more --- demos/gameboy/freedom.fur | Bin 0 -> 8017 bytes demos/gameboy/minos.fur | Bin 0 -> 4930 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/gameboy/freedom.fur create mode 100644 demos/gameboy/minos.fur diff --git a/demos/gameboy/freedom.fur b/demos/gameboy/freedom.fur new file mode 100644 index 0000000000000000000000000000000000000000..024bafded92ec382798813b560eb60eacc8aef29 GIT binary patch literal 8017 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 literal 0 HcmV?d00001 diff --git a/demos/gameboy/minos.fur b/demos/gameboy/minos.fur new file mode 100644 index 0000000000000000000000000000000000000000..14cb6244db30c6638f99b6320fa381df71b76f60 GIT binary patch literal 4930 zcmcJSO>9(E6vxl|=*)EZm@0-3Kj6hg0t-knxL|>Hico5x5UEzvNO+yTPN$vDzr zE`UNUtS}@d#+bM=W*af)i1d@&siu>SBu_(yCUKM-A2bwocZ3uD3LHkP7V*rHn9i#Bni;5rt$NmLf}Rc@Od%+j@{;vSp7V-7<(3NWyt6M?Ui5rtYRRb-iqoF!`{m2~G0S(y z#59p45kp<0-rHEfx4`TZ83lL151^C~v5>|0z=4#=S74%FP%dXT!;B{s)0A{6iOH(aZ65lD#%rR&&e(n z@~)G27d$8D7K_k1T_}}c=gbcBZCLi z=~CJ8W@fxxC2%f#@T@1S%wl7^^996!Xp~zO+d=ts_gaxun%D$!ajt32>THBA?!oghp-P}AHtrtI+#RTlh?4;BDeugoXU=z zg=TKHaB+O;qIYyKovQ|w^1`uVIX91yS1MQYv)Q8WxzkHWXWU}or3)q0u`=NgxmL$WW9zKmU}5+T@L*k?9n*qMW>wb8M2&pwadT`^@W zo06Qr6ja=zoX$Fu62q$1U~FvODQ4PKUA%ByDE4V>WZ0IkheVE#(aYYtm!t$0A3H!M z&f!%+<7PK*8PZS7NShUm=1j<9xsdZP<5tWl@r-tVM)^+;8OjYU88h7^ySeF;DK`k< zWe4LnN8NvxG=qV_NmWj43zVA4T=HK z3GXy$cF;aCb#!)gpzWE^8K57XX`Nx6QQFdut!q$>m#};gnKs5Z57a2fPnH0w2fyW!x_So-(|D2)+S-fWPAV=eW-SHeF%{ z#Dy&b&O_Zl!7pGL41odA5tL3bSJPZJj`a%ZoU3LgnN?x}T_*M^ z3F5YjaOT570DL$jlm(y&8Gf@Ae7=@$XFyGpphDIhoR#6=5-7tVq3jZvgKSQXMLqW* zn~!zpAt#h^au0G(jTuzaB-jc{iH3}NeZ&8puEVM(*fPv_GH<7NQ9Tp$u3yi+wB_!& zfr_s{d&Me%JSy(ROkr2V)jzMaq0X{DNSW7Kqe@yd3(C*BZ@kXkbh~f7rdd#b7QVC4 zYi)|oLbK@IHbv7c*Z|S~Y~3Oa%l2Kd@$9Nu4yn3e2e9&)#vZuQtDyWDPzQu^qdtcC z{}n55d|-LTZEMO<51vzMd?Bxyc=^B;5cO9vUbWuDm@LM3$^ugv^ZXK%FWNP8)$X_L zzAxmRp2sR%BE^WwK^;$=f)%vogRpL8E?;ze`-MFs5i`K|Zk5zV53^Q`~ zJgi#&q~1$>M(T|49%nYn@ Date: Mon, 7 Aug 2023 18:04:01 -0700 Subject: [PATCH 135/202] Switching to non-imperative tone. --- doc/2-interface/settings.md | 53 +++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/doc/2-interface/settings.md b/doc/2-interface/settings.md index f45cd9663..dfb5121a6 100644 --- a/doc/2-interface/settings.md +++ b/doc/2-interface/settings.md @@ -11,19 +11,19 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **Render backend** - changing this may help with performace issues. - **Late render clear** -- **Power-saving mode**: save power by lowering the frame rate to 2fps when idle. +- **Power-saving mode**: saves power by lowering the frame rate to 2fps when idle. - may cause issues under Mesa drivers! -- **Disable threaded input (restart after changing!)**: process key presses for note preview on a separate thread (on supported platforms), which reduces latency. +- **Disable threaded input (restart after changing!)**: processes key presses for note preview on a separate thread (on supported platforms), which reduces latency. - however, crashes have been reported when threaded input is on. enable this option if that is the case. - **Enable event delay** - may cause issues with high-polling-rate mice when previewing notes. ### File -- **Use system file picker**: use native OS file dialog instead of Furnace's. +- **Use system file picker**: uses native OS file dialog instead of Furnace's. - **Number of recent files**: number of files to show in the _open recent..._ menu. - **Compress when saving** - - use zlib to compress saved songs. + - uses zlib to compress saved songs. - **Save unused patterns** - **Use new pattern format when saving** - **Don't apply compatibility flags when loading .dmf** @@ -36,10 +36,10 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. ### Chip - **Initial system**: the system of chips loaded on starting Furnace. - - **Current system**: set current chips as default. - - **Randomize**: set default to a random system. + - **Current system**: sets current chips as default. + - **Randomize**: sets default to a random system. - this will not choose a random system at each start. - - **Reset to defaults**: set default to "Sega Genesis/Mega Drive". + - **Reset to defaults**: sets default to "Sega Genesis/Mega Drive". - **Name**: name for the default system. may be set to any text. - **Configure:**: same as in the [chip manager](../8-advanced/chip-manager.md) and [mixer](../8-advanced/mixer.md). - **When creating new song**: @@ -68,16 +68,16 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. ### Output -- **Backend**: select SDL or JACK for audio output. +- **Backend**: selects SDL or JACK for audio output. - only appears on Linux, or MacOS compiled with JACK support - **Driver** - **Device**: audio device for playback. - **Sample rate** -- **Outputs**: select number of audio outputs created, up to 16. +- **Outputs**: number of audio outputs created, up to 16. - only appears when Backend is JACK. - **Channels**: number of output channels to use. - **Buffer size**: size of buffer in both samples and milliseconds. -- **Low-latency mode (experimental!)**: reduce latency by running the engine faster than the tick rate. useful for live playback/jam mode. +- **Low-latency mode (experimental!)**: reduces latency by running the engine faster than the tick rate. useful for live playback/jam mode. - _warning:_ experimental! may produce glitches. only enable if your buffer size is small (10ms or less). - **Force mono audio** - **want:** displays requested audio configuration. @@ -85,8 +85,8 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. ### Mixing -- **Quality**: select quality of resampling. low quality reduces CPU load. -- **Software clipping**: clip output to nominal range (-1.0 to 1.0) before passing it to the audio device. +- **Quality**: selects quality of resampling. low quality reduces CPU load. +- **Software clipping**: clips output to nominal range (-1.0 to 1.0) before passing it to the audio device. - this avoids activating Windows' built-in limiter. ### Metronome @@ -134,7 +134,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **Control** - **Volume curve** - **Actions:** - - **`+`** button: add a new action. + - **`+`** button: adds a new action. - window-with-arrow button: new action with learning! press a button or move a slider/knob/something on your device. - each action has the following: - **Type** @@ -207,7 +207,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **Export**: writes current layout to a .ini file. - **Reset**: resets layout to default. - **Allow docking editors** -- **Remember window position**: remember the window's last position on start-up. +- **Remember window position**: remembers the window's last position on start-up. - **Only allow window movement when clicking on title bar** - **Play/edit controls layout:** - **Classic** @@ -233,7 +233,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **No** - **Yes** - **Yes (while holding Ctrl only)** -- **Toggle channel solo on:** select which interactions with a channel header will toggle solo for that channel. +- **Toggle channel solo on:** selects which interactions with a channel header will toggle solo for that channel. - Right-click or double click - Right-click - Double-click @@ -292,7 +292,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. ### Scaling -- **Automatic UI scaling factor**: automatically match the OS's UI scaling. +- **Automatic UI scaling factor**: automatically matches the OS's UI scaling. - **UI scaling factor**: only appears if "Automatic UI scaling factor" is off. - **Icon size** @@ -334,7 +334,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. ### Pattern -- **Center pattern view**: center pattern horizontally in view. +- **Center pattern view**: centers pattern horizontally in view. - **Overflow pattern highlights** - **Display previous/next pattern** - **Pattern row number format:** @@ -358,7 +358,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. ### Channel -- **Channel style:** set the appearance of channel headers in pattern view. +- **Channel style:** sets the appearance of channel headers in pattern view. - **Classic** - **Line** - **Round** @@ -428,7 +428,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **Between Decay and Sustain Rate** - **After Release Rate** - **Use separate colors for carriers/modulators in FM editor** -- **Unsigned FM detune values**: use internal representation of detune values, such that detune amounts of -1, -2, and -3 are shown as 5, 6, and 7. +- **Unsigned FM detune values**: uses the internal representation of detune values, such that detune amounts of -1, -2, and -3 are shown as 5, 6, and 7. ### Statistics @@ -440,19 +440,20 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **Rounded corners** - **Border** -- **Mono**: display a single monaural waveform of all sound mixed together. - - if turned off, waves will be drawn on top of each other for each output channel. their colors are configurable via _Settings > Color > Color scheme > Oscilloscope > Wave (non-mono)._ -- **Anti-aliased**: smooth the lines of the waveform. +- **Mono**: displays a single monaural waveform of all sound mixed together. + - if turned off, waves will be drawn on top of each other for each output channel. + - all colors are configurable via _Settings > Color > Color scheme > Oscilloscope > Wave (non-mono)._ +- **Anti-aliased**: smoothes the lines of the waveform. - slight performance cost and slightly buggy. -- **Fill entire window**: remove the gap between the waveform and the edge of the window. -- **Waveform goes out of bounds**: allow the waveform to draw past the top and bottom of the oscilloscope. +- **Fill entire window**: removes the gap between the waveform and the edge of the window. +- **Waveform goes out of bounds**: allows the waveform to draw past the top and bottom of the oscilloscope. ### Windows - **Rounded window corners** - **Rounded buttons** - **Rounded menu corners** -- **Borders around widgets**: draw thin borders on buttons, checkboxes, text widgets, and the like. +- **Borders around widgets**: draws thin borders on buttons, checkboxes, text widgets, and the like. @@ -467,5 +468,5 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. - **Color scheme type:** - **Dark** - **Light** - - **Frame shading**: apply a gradient effect to buttons and input boxes. + - **Frame shading**: applies a gradient effect to buttons and input boxes. - several more categories... From cc8b5d28a8aad637eb87fe4713e221f583962045 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Tue, 8 Aug 2023 00:03:56 -0500 Subject: [PATCH 136/202] GUI: add option to show ins type menu when adding --- src/gui/doAction.cpp | 8 ++++++++ src/gui/gui.h | 2 ++ src/gui/settings.cpp | 8 ++++++++ 3 files changed, 18 insertions(+) diff --git a/src/gui/doAction.cpp b/src/gui/doAction.cpp index f7d09ff16..aca82821a 100644 --- a/src/gui/doAction.cpp +++ b/src/gui/doAction.cpp @@ -609,6 +609,14 @@ void FurnaceGUI::doAction(int what) { break; case GUI_ACTION_INS_LIST_ADD: + if (settings.insTypeMenu) { + makeInsTypeList=e->getPossibleInsTypes(); + if (makeInsTypeList.size()>1) { + displayInsTypeList=true; + displayInsTypeListMakeInsSample=-1; + break; + } + } curIns=e->addInstrument(cursor.xCoarse); if (curIns==-1) { showError("too many instruments!"); diff --git a/src/gui/gui.h b/src/gui/gui.h index adfc0b720..0a14965c9 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1548,6 +1548,7 @@ class FurnaceGUI { int removeInsOff; int removeVolOff; int playOnLoad; + int insTypeMenu; unsigned int maxUndoSteps; String mainFontPath; String headFontPath; @@ -1710,6 +1711,7 @@ class FurnaceGUI { removeInsOff(0), removeVolOff(0), playOnLoad(0), + insTypeMenu(1), maxUndoSteps(100), mainFontPath(""), headFontPath(""), diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 412dd2a94..f663a9e40 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -2282,6 +2282,11 @@ void FurnaceGUI::drawSettings() { settings.insEditColorize=insEditColorizeB; } + bool insTypeMenuB=settings.insTypeMenu; + if (ImGui::Checkbox("Display instrument type menu when adding instrument",&insTypeMenuB)) { + settings.insTypeMenu=insTypeMenuB; + } + // SUBSECTION MACRO EDITOR CONFIG_SUBSECTION("Macro Editor"); ImGui::Text("Macro editor layout:"); @@ -3018,6 +3023,7 @@ void FurnaceGUI::syncSettings() { settings.removeInsOff=e->getConfInt("removeInsOff",0); settings.removeVolOff=e->getConfInt("removeVolOff",0); settings.playOnLoad=e->getConfInt("playOnLoad",0); + settings.insTypeMenu=e->getConfInt("insTypeMenu",1); clampSetting(settings.mainFontSize,2,96); clampSetting(settings.headFontSize,2,96); @@ -3152,6 +3158,7 @@ void FurnaceGUI::syncSettings() { clampSetting(settings.removeInsOff,0,1); clampSetting(settings.removeVolOff,0,1); clampSetting(settings.playOnLoad,0,2); + clampSetting(settings.insTypeMenu,0,1); if (settings.exportLoops<0.0) settings.exportLoops=0.0; if (settings.exportFadeOut<0.0) settings.exportFadeOut=0.0; @@ -3386,6 +3393,7 @@ void FurnaceGUI::commitSettings() { e->setConf("removeInsOff",settings.removeInsOff); e->setConf("removeVolOff",settings.removeVolOff); e->setConf("playOnLoad",settings.playOnLoad); + e->setConf("insTypeMenu",settings.insTypeMenu); // colors for (int i=0; i Date: Tue, 8 Aug 2023 21:27:12 +0900 Subject: [PATCH 137/202] Prepare for C140 --- CMakeLists.txt | 3 + src/engine/platform/c140.cpp | 481 +++++++++++++++++++++++++++++++ src/engine/platform/c140.h | 102 +++++++ src/engine/platform/sound/c140.c | 183 ++++++++++++ src/engine/platform/sound/c140.h | 91 ++++++ src/gui/about.cpp | 10 +- src/main.cpp | 3 + 7 files changed, 867 insertions(+), 6 deletions(-) create mode 100644 src/engine/platform/c140.cpp create mode 100644 src/engine/platform/c140.h create mode 100644 src/engine/platform/sound/c140.c create mode 100644 src/engine/platform/sound/c140.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 1bf22a333..592cd5e10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -507,6 +507,8 @@ src/engine/platform/sound/d65modified.c src/engine/platform/sound/ted-sound.c +src/engine/platform/sound/c140.c + src/engine/platform/oplAInterface.cpp src/engine/platform/ym2608Interface.cpp src/engine/platform/ym2610Interface.cpp @@ -599,6 +601,7 @@ src/engine/platform/sm8521.cpp src/engine/platform/pv1000.cpp src/engine/platform/k053260.cpp src/engine/platform/ted.cpp +src/engine/platform/c140.cpp src/engine/platform/pcmdac.cpp src/engine/platform/dummy.cpp diff --git a/src/engine/platform/c140.cpp b/src/engine/platform/c140.cpp new file mode 100644 index 000000000..62067baea --- /dev/null +++ b/src/engine/platform/c140.cpp @@ -0,0 +1,481 @@ +/** + * Furnace Tracker - multi-system chiptune tracker + * Copyright (C) 2021-2023 tildearrow and contributors + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "c140.h" +#include "../engine.h" +#include "../../ta-log.h" +#include +#include + +#define CHIP_FREQBASE 12582912 + +#define rWrite(a,v) {if(!skipRegisterWrites) {writes.push(QueuedWrite(a,v)); if(dumpWrites) addWrite(a,v); }} + +const char* regCheatSheetC140[]={ + "CHx_RVol", "00+x*10", + "CHx_LVol", "01+x*10", + "CHx_FreqH", "02+x*10", + "CHx_FreqL", "03+x*10", + "CHx_Bank", "04+x*10", + "CHx_Ctrl", "05+x*10", + "CHx_StartH", "06+x*10", + "CHx_StartL", "07+x*10", + "CHx_EndH", "08+x*10", + "CHx_EndL", "09+x*10", + "CHx_LoopH", "0A+x*10", + "CHx_LoopL", "0B+x*10", + "Timer", "1FA", + "IRQ", "1FE", + NULL +}; + +const char** DivPlatformC140::getRegisterSheet() { + return regCheatSheetC140; +} + +void DivPlatformC140::acquire(short** buf, size_t len) { + for (size_t h=0; h32767) c140.lout=32767; + + if (c140.rout<-32768) c140.rout=-32768; + if (c140.rout>32767) c140.rout=32767; + + buf[0][h]=c140.lout; + buf[1][h]=c140.rout; + + for (int i=0; i<24; i++) { + oscBuf[i]->data[oscBuf[i]->needle++]=(c140.voice[i].lout+c140.voice[i].rout)>>9; + } + } +} + +void DivPlatformC140::tick(bool sysTick) { + for (int i=0; i<24; i++) { + chan[i].std.next(); + if (chan[i].std.vol.had) { + chan[i].outVol=(chan[i].vol*MIN(chan[i].macroVolMul,chan[i].std.vol.val))/chan[i].macroVolMul; + chan[i].chVolL=(chan[i].outVol*chan[i].chPanL)/255; + chan[i].chVolR=(chan[i].outVol*chan[i].chPanR)/255; + rWrite(1+(i<<4),chan[i].chVolL); + rWrite(0+(i<<4),chan[i].chVolR); + } + if (NEW_ARP_STRAT) { + chan[i].handleArp(); + } else if (chan[i].std.arp.had) { + if (!chan[i].inPorta) { + chan[i].baseFreq=NOTE_FREQUENCY(parent->calcArp(chan[i].note,chan[i].std.arp.val)); + } + chan[i].freqChanged=true; + } + if (chan[i].std.pitch.had) { + if (chan[i].std.pitch.mode) { + chan[i].pitch2+=chan[i].std.pitch.val; + CLAMP_VAR(chan[i].pitch2,-32768,32767); + } else { + chan[i].pitch2=chan[i].std.pitch.val; + } + chan[i].freqChanged=true; + } + if (chan[i].std.panL.had) { + chan[i].chPanL=chan[i].std.panL.val&255; + chan[i].chVolL=(chan[i].outVol*chan[i].chPanL)/255; + rWrite(1+(i<<4),chan[i].chVolL); + } + + if (chan[i].std.panR.had) { + chan[i].chPanR=chan[i].std.panR.val&255; + chan[i].chVolR=(chan[i].outVol*chan[i].chPanR)/255; + rWrite(0+(i<<4),chan[i].chVolR); + } + + if (chan[i].std.phaseReset.had) { + if ((chan[i].std.phaseReset.val==1) && chan[i].active) { + chan[i].audPos=0; + chan[i].setPos=true; + } + } + if (chan[i].setPos) { + // force keyon + chan[i].keyOn=true; + chan[i].setPos=false; + } else { + chan[i].audPos=0; + } + if (chan[i].freqChanged || chan[i].keyOn || chan[i].keyOff) { + DivSample* s=parent->getSample(chan[i].sample); + unsigned char ctrl=0; + double off=(s->centerRate>=1)?((double)s->centerRate/8363.0):1.0; + chan[i].freq=(int)(off*parent->calcFreq(chan[i].baseFreq,chan[i].pitch,chan[i].fixedArp?chan[i].baseNoteOverride:chan[i].arpOff,chan[i].fixedArp,false,2,chan[i].pitch2,chipClock,CHIP_FREQBASE)); + if (chan[i].freq<0) chan[i].freq=0; + if (chan[i].freq>65535) chan[i].freq=65535; + ctrl|=(chan[i].active?0x80:0)|((s->isLoopable())?0x10:0); + if (chan[i].keyOn) { + unsigned int start=0; + unsigned int loop=0; + unsigned int end=0; + if (chan[i].sample>=0 && chan[i].samplesong.sampleLen) { + start=sampleOff[chan[i].sample]; + end=MIN(start+s->getCurBufLen(),getSampleMemCapacity()-1); + } + if (chan[i].audPos>0) { + start=start+MIN(chan[i].audPos,s->length8); + } + if (s->isLoopable()) { + loop=start+s->loopStart; + } + rWrite(0x05+i*16,ctrl&~0x80); // force keyoff first + rWrite(0x06+i*16,(start>>8)&0xff); + rWrite(0x07+i*16,start&0xff); + rWrite(0x08+i*16,(end>>8)&0xff); + rWrite(0x09+i*16,end&0xff); + rWrite(0x0a+i*16,(loop>>8)&0xff); + rWrite(0x0b+i*16,loop&0xff); + if (!chan[i].std.vol.had) { + chan[i].outVol=chan[i].vol; + chan[i].chVolL=(chan[i].outVol*chan[i].chPanL)/255; + chan[i].chVolR=(chan[i].outVol*chan[i].chPanR)/255; + rWrite(1+(i<<4),chan[i].chVolL); + rWrite(0+(i<<4),chan[i].chVolR); + } + chan[i].keyOn=false; + } + if (chan[i].keyOff) { + chan[i].keyOff=false; + } + if (chan[i].freqChanged) { + rWrite(0x02+i*16,chan[i].freq&0xff); + rWrite(0x03+i*16,chan[i].freq>>8); + chan[i].freqChanged=false; + } + rWrite(0x05+i*16,ctrl); + } + } +} + +int DivPlatformC140::dispatch(DivCommand c) { + switch (c.cmd) { + case DIV_CMD_NOTE_ON: { + DivInstrument* ins=parent->getIns(chan[c.chan].ins,DIV_INS_AMIGA); + chan[c.chan].isNewYMZ=ins->type==DIV_INS_YMZ280B; + chan[c.chan].macroVolMul=ins->type==DIV_INS_AMIGA?64:255; + if (c.value!=DIV_NOTE_NULL) { + chan[c.chan].sample=ins->amiga.getSample(c.value); + c.value=ins->amiga.getFreq(c.value); + } + if (c.value!=DIV_NOTE_NULL) { + chan[c.chan].baseFreq=NOTE_FREQUENCY(c.value); + } + if (chan[c.chan].sample<0 || chan[c.chan].sample>=parent->song.sampleLen) { + chan[c.chan].sample=-1; + } + if (c.value!=DIV_NOTE_NULL) { + chan[c.chan].freqChanged=true; + chan[c.chan].note=c.value; + } + chan[c.chan].active=true; + chan[c.chan].keyOn=true; + chan[c.chan].macroInit(ins); + if (!parent->song.brokenOutVol && !chan[c.chan].std.vol.will) { + chan[c.chan].outVol=chan[c.chan].vol; + + chan[c.chan].chVolL=(chan[c.chan].outVol*chan[c.chan].chPanL)/255; + chan[c.chan].chVolR=(chan[c.chan].outVol*chan[c.chan].chPanR)/255; + rWrite(1+(c.chan<<4),chan[c.chan].chVolL); + rWrite(0+(c.chan<<4),chan[c.chan].chVolR); + } + break; + } + case DIV_CMD_NOTE_OFF: + chan[c.chan].sample=-1; + chan[c.chan].active=false; + chan[c.chan].keyOff=true; + chan[c.chan].macroInit(NULL); + break; + case DIV_CMD_NOTE_OFF_ENV: + case DIV_CMD_ENV_RELEASE: + chan[c.chan].std.release(); + break; + case DIV_CMD_INSTRUMENT: + if (chan[c.chan].ins!=c.value || c.value2==1) { + chan[c.chan].ins=c.value; + } + break; + case DIV_CMD_VOLUME: + chan[c.chan].vol=c.value; + if (!chan[c.chan].std.vol.has) { + chan[c.chan].outVol=c.value; + } + chan[c.chan].chVolL=(c.value*chan[c.chan].chPanL)/255; + chan[c.chan].chVolR=(c.value*chan[c.chan].chPanR)/255; + rWrite(1+(c.chan<<4),chan[c.chan].chVolL); + rWrite(0+(c.chan<<4),chan[c.chan].chVolR); + break; + case DIV_CMD_GET_VOLUME: + if (chan[c.chan].std.vol.has) { + return chan[c.chan].vol; + } + return chan[c.chan].outVol; + break; + case DIV_CMD_PANNING: + chan[c.chan].chPanL=c.value; + chan[c.chan].chPanR=c.value2; + chan[c.chan].chVolL=(chan[c.chan].outVol*chan[c.chan].chPanL)/255; + chan[c.chan].chVolR=(chan[c.chan].outVol*chan[c.chan].chPanR)/255; + rWrite(1+(c.chan<<4),chan[c.chan].chVolL); + rWrite(0+(c.chan<<4),chan[c.chan].chVolR); + break; + case DIV_CMD_PITCH: + chan[c.chan].pitch=c.value; + chan[c.chan].freqChanged=true; + break; + case DIV_CMD_NOTE_PORTA: { + int destFreq=NOTE_FREQUENCY(c.value2); + bool return2=false; + if (destFreq>chan[c.chan].baseFreq) { + chan[c.chan].baseFreq+=c.value; + if (chan[c.chan].baseFreq>=destFreq) { + chan[c.chan].baseFreq=destFreq; + return2=true; + } + } else { + chan[c.chan].baseFreq-=c.value; + if (chan[c.chan].baseFreq<=destFreq) { + chan[c.chan].baseFreq=destFreq; + return2=true; + } + } + chan[c.chan].freqChanged=true; + if (return2) { + chan[c.chan].inPorta=false; + return 2; + } + break; + } + case DIV_CMD_LEGATO: { + chan[c.chan].baseFreq=NOTE_FREQUENCY(c.value+((HACKY_LEGATO_MESS)?(chan[c.chan].std.arp.val-12):(0))); + chan[c.chan].freqChanged=true; + chan[c.chan].note=c.value; + break; + } + case DIV_CMD_PRE_PORTA: + if (chan[c.chan].active && c.value2) { + if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_AMIGA)); + } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will && !NEW_ARP_STRAT) chan[c.chan].baseFreq=NOTE_FREQUENCY(chan[c.chan].note); + chan[c.chan].inPorta=c.value; + break; + case DIV_CMD_SAMPLE_POS: + chan[c.chan].audPos=c.value; + chan[c.chan].setPos=true; + break; + case DIV_CMD_GET_VOLMAX: + return 255; + break; + case DIV_CMD_MACRO_OFF: + chan[c.chan].std.mask(c.value,true); + break; + case DIV_CMD_MACRO_ON: + chan[c.chan].std.mask(c.value,false); + break; + case DIV_ALWAYS_SET_VOLUME: + return 1; + break; + default: + break; + } + return 1; +} + +void DivPlatformC140::muteChannel(int ch, bool mute) { + isMuted[ch]=mute; +} + +void DivPlatformC140::forceIns() { + for (int i=0; i<24; i++) { + chan[i].insChanged=true; + chan[i].freqChanged=true; + chan[i].sample=-1; + } +} + +void* DivPlatformC140::getChanState(int ch) { + return &chan[ch]; +} + +DivMacroInt* DivPlatformC140::getChanMacroInt(int ch) { + return &chan[ch].std; +} + +DivDispatchOscBuffer* DivPlatformC140::getOscBuffer(int ch) { + return oscBuf[ch]; +} + +void DivPlatformC140::reset() { + while (!writes.empty()) writes.pop(); + memset(regPool,0,512); + c140_reset(&c140); + for (int i=0; i<24; i++) { + chan[i]=DivPlatformC140::Channel(); + chan[i].std.setEngine(parent); + rWrite(0x05+i*16,0); + } +} + +int DivPlatformC140::getOutputCount() { + return 2; +} + +void DivPlatformC140::notifyInsChange(int ins) { + for (int i=0; i<24; i++) { + if (chan[i].ins==ins) { + chan[i].insChanged=true; + } + } +} + +void DivPlatformC140::notifyWaveChange(int wave) { + // TODO when wavetables are added + // TODO they probably won't be added unless the samples reside in RAM +} + +void DivPlatformC140::notifyInsDeletion(void* ins) { + for (int i=0; i<24; i++) { + chan[i].std.notifyInsDeletion((DivInstrument*)ins); + } +} + +void DivPlatformC140::poke(unsigned int addr, unsigned short val) { + rWrite(addr,val); +} + +void DivPlatformC140::poke(std::vector& wlist) { + for (DivRegWrite& i: wlist) rWrite(i.addr,i.val); +} + +unsigned char* DivPlatformC140::getRegisterPool() { + return regPool; +} + +int DivPlatformC140::getRegisterPoolSize() { + return 512; +} + +const void* DivPlatformC140::getSampleMem(int index) { + return index == 0 ? sampleMem : NULL; +} + +size_t DivPlatformC140::getSampleMemCapacity(int index) { + return index == 0 ? 16777216 : 0; +} + +size_t DivPlatformC140::getSampleMemUsage(int index) { + return index == 0 ? sampleMemLen : 0; +} + +bool DivPlatformC140::isSampleLoaded(int index, int sample) { + if (index!=0) return false; + if (sample<0 || sample>255) return false; + return sampleLoaded[sample]; +} + +void DivPlatformC140::renderSamples(int sysID) { + memset(sampleMem,0,getSampleMemCapacity()); + memset(sampleOff,0,256*sizeof(unsigned int)); + memset(sampleLoaded,0,256*sizeof(bool)); + + size_t memPos=0; + for (int i=0; isong.sampleLen; i++) { + DivSample* s=parent->song.sample[i]; + if (!s->renderOn[0][sysID]) { + sampleOff[i]=0; + continue; + } + + unsigned int length=s->length16; + // fit sample size to single bank size + if (length>(131072)) { + length=131072; + } + if ((memPos&0xfe0000)!=((memPos+length)&0xfe0000)) { + memPos=((memPos+0x1ffff)&0xfe0000); + } + if (memPos>=(getSampleMemCapacity())) { + logW("out of C140 memory for sample %d!",i); + break; + } + if (memPos+length>=(getSampleMemCapacity())) { + memcpy(sampleMem+(memPos/sizeof(short)),s->data16,(getSampleMemCapacity())-memPos); + logW("out of C140 memory for sample %d!",i); + } else { + memcpy(sampleMem+(memPos/sizeof(short)),s->data16,length); + } + sampleOff[i]=memPos; + sampleLoaded[i]=true; + memPos+=length; + } + sampleMemLen=memPos+256; +} + +void DivPlatformC140::setChipModel(int type) { + chipType=type; +} + +void DivPlatformC140::setFlags(const DivConfig& flags) { + chipClock = 8192000; + CHECK_CUSTOM_CLOCK; + rate=chipClock/192; + for (int i=0; i<24; i++) { + oscBuf[i]->rate=rate; + } +} + +int DivPlatformC140::init(DivEngine* p, int channels, int sugRate, const DivConfig& flags) { + parent=p; + dumpWrites=false; + skipRegisterWrites=false; + + for (int i=0; i<24; i++) { + isMuted[i]=false; + oscBuf[i]=new DivDispatchOscBuffer; + } + sampleMem=new unsigned char[getSampleMemCapacity()]; + sampleMemLen=0; + c140_init(&c140); + setFlags(flags); + reset(); + + return 24; +} + +void DivPlatformC140::quit() { + delete[] sampleMem; + for (int i=0; i<24; i++) { + delete oscBuf[i]; + } +} diff --git a/src/engine/platform/c140.h b/src/engine/platform/c140.h new file mode 100644 index 000000000..830760022 --- /dev/null +++ b/src/engine/platform/c140.h @@ -0,0 +1,102 @@ +/** + * Furnace Tracker - multi-system chiptune tracker + * Copyright (C) 2021-2023 tildearrow and contributors + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _C140_H +#define _C140_H + +#include "../dispatch.h" +#include "sound/c140.h" +#include "../fixedQueue.h" + +class DivPlatformC140: public DivDispatch { + struct Channel: public SharedChannel { + unsigned int audPos; + int sample, wave; + int panning; + bool setPos, isNewYMZ; + int chPanL, chPanR; + int chVolL, chVolR; + int macroVolMul; + Channel(): + SharedChannel(255), + audPos(0), + sample(-1), + wave(-1), + panning(8), + setPos(false), + isNewYMZ(false), + chPanL(255), + chPanR(255), + chVolL(255), + chVolR(255), + macroVolMul(64) {} + }; + Channel chan[24]; + DivDispatchOscBuffer* oscBuf[24]; + bool isMuted[24]; + int chipType; + unsigned int sampleOff[256]; + bool sampleLoaded[256]; + + unsigned char* sampleMem; + size_t sampleMemLen; + struct QueuedWrite { + unsigned short addr; + unsigned char val; + bool addrOrVal; + QueuedWrite(): addr(0), val(0), addrOrVal(false) {} + QueuedWrite(unsigned short a, unsigned char v): addr(a), val(v), addrOrVal(false) {} + }; + FixedQueue writes; + struct c140_t c140; + unsigned char regPool[512]; + friend void putDispatchChip(void*,int); + friend void putDispatchChan(void*,int,int); + + public: + void acquire(short** buf, size_t len); + int dispatch(DivCommand c); + void* getChanState(int chan); + DivMacroInt* getChanMacroInt(int ch); + DivDispatchOscBuffer* getOscBuffer(int chan); + unsigned char* getRegisterPool(); + int getRegisterPoolSize(); + void reset(); + void forceIns(); + void tick(bool sysTick=true); + void muteChannel(int ch, bool mute); + int getOutputCount(); + void setChipModel(int type); + void notifyInsChange(int ins); + void notifyWaveChange(int wave); + void notifyInsDeletion(void* ins); + void poke(unsigned int addr, unsigned short val); + void poke(std::vector& wlist); + const char** getRegisterSheet(); + const void* getSampleMem(int index = 0); + size_t getSampleMemCapacity(int index = 0); + size_t getSampleMemUsage(int index = 0); + bool isSampleLoaded(int index, int sample); + void renderSamples(int chipID); + void setFlags(const DivConfig& flags); + int init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags); + void quit(); +}; + +#endif diff --git a/src/engine/platform/sound/c140.c b/src/engine/platform/sound/c140.c new file mode 100644 index 000000000..6057782b3 --- /dev/null +++ b/src/engine/platform/sound/c140.c @@ -0,0 +1,183 @@ +/* + +============================================================================ + +Namco C140 sound emulator +by cam900 + +This file is licensed under zlib license. + +============================================================================ + +zlib License + +(C) 2023-present cam900 and contributors + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + +============================================================================ + +TODO: +- unknown registers (Bit 6 of control register, etc) +- Internal timer + +*/ + +#include "c140.h" + +static int c140_max(int a, int b) { return (a > b) ? a : b; } +static int c140_min(int a, int b) { return (a < b) ? a : b; } +static int c140_clamp(int v, int min, int max) { return c140_min(c140_max(v,min),max); } +static int c140_bit(int val, int bit) { return (val >> bit) & 1; } + +void c140_tick(struct c140_t *c140, const int cycle) +{ + for (int i = 0; i < 24; i++) + { + c140_voice_tick(c140, i, cycle); + c140->lout += c140->voice[i].lout; + c140->rout += c140->voice[i].rout; + } + // scale as 16bit + c140->lout >>= 5; + c140->rout >>= 5; +} + +void c140_voice_tick(struct c140_t *c140, const unsigned char voice, const int cycle) +{ + struct c140_voice_t *c140_voice = &c140->voice[voice]; + if (c140_voice->busy && c140_voice->keyon) + { + for (int c = 0; c < cycle; c++) + { + c140_voice->frac += c140_voice->freq; + if (c140_voice->frac > 0xffff) + { + c140_voice->addr += c140_voice->frac >> 16; + if (c140_voice->addr > c140_voice->end_addr) + { + if (c140_voice->loop) + { + c140_voice->addr = (c140_voice->addr + c140_voice->end_addr) - c140_voice->loop_addr; + } + else + { + c140_voice->keyon = false; + } + } + c140_voice->frac &= 0xffff; + } + // fetch 12 bit sample + signed short s1 = c140->read_sample(c140_voice->bank, c140_voice->addr) & ~0xf; + signed short s2 = c140->read_sample(c140_voice->bank, c140_voice->addr + 1) & ~0xf; + if (c140_voice->compressed) + { + s1 = c140->mulaw[(s1 >> 8) & 0xff]; + s2 = c140->mulaw[(s2 >> 8) & 0xff]; + } + // interpolate + signed int sample = s1 + (((c140_voice->frac) * (s2 - s1)) >> 16); + c140_voice->lout = sample * c140_voice->lvol; + c140_voice->rout = sample * c140_voice->rvol; + } + } + else + { + c140_voice->lout = 0; + c140_voice->rout = 0; + } +} + +void c140_keyon(struct c140_voice_t *c140_voice) +{ + c140_voice->busy = true; + c140_voice->keyon = true; + c140_voice->frac = 0; + c140_voice->addr = c140_voice->start_addr; +} + +void c140_init(struct c140_t *c140) +{ + // u-law table verified from Wii Virtual Console Arcade Starblade + for (int i = 0; i < 256; i++) + { + int j = (signed char)i; + signed char s1 = j & 7; + signed char s2 = abs(j >> 3) & 31; + + c140->mulaw[i] = 0x80 << s1 & 0xff00; + c140->mulaw[i] += s2 << (s1 ? s1 + 3 : 4); + + if (j < 0) + c140->mulaw[i] = -c140->mulaw[i]; + } +} + +void c140_reset(struct c140_t *c140) +{ + for (int i = 0; i < 24; i++) + { + c140->voice[i].busy = false; + c140->voice[i].keyon = false; + c140->voice[i].freq = 0; + c140->voice[i].bank = 0; + c140->voice[i].start_addr = 0; + c140->voice[i].loop_addr = 0; + c140->voice[i].end_addr = 0; + c140->voice[i].lvol = 0; + c140->voice[i].rvol = 0; + c140->voice[i].compressed = false; + c140->voice[i].loop = false; + c140->voice[i].addr = 0; + c140->voice[i].frac = 0; + c140->voice[i].lout = 0; + c140->voice[i].rout = 0; + } +} + +void c140_write(struct c140_t *c140, const unsigned short addr, const unsigned char data) +{ + // voice register + if (addr < 0x180) + { + struct c140_voice_t *voice = &c140->voice[addr >> 4]; + switch (addr & 0xf) + { + case 0x0: voice->rvol = data; break; + case 0x1: voice->lvol = data; break; + case 0x2: voice->freq = (voice->freq & ~0xff00) | (unsigned int)(data << 8); break; + case 0x3: voice->freq = (voice->freq & ~0x00ff) | data; break; + case 0x4: voice->bank = data; break; + case 0x5: + voice->compressed = c140_bit(data, 3); + voice->loop = c140_bit(data, 4); + if (data & 0x80) + c140_keyon(voice); + else + voice->busy = false; + break; + case 0x6: voice->start_addr = (voice->start_addr & ~0xff00) | (unsigned int)(data << 8); break; + case 0x7: voice->start_addr = (voice->start_addr & ~0x00ff) | data; break; + case 0x8: voice->end_addr = (voice->end_addr & ~0xff00) | (unsigned int)(data << 8); break; + case 0x9: voice->end_addr = (voice->end_addr & ~0x00ff) | data; break; + case 0xa: voice->loop_addr = (voice->loop_addr & ~0xff00) | (unsigned int)(data << 8); break; + case 0xb: voice->loop_addr = (voice->loop_addr & ~0x00ff) | data; break; + default: break; + } + } + // Timer +} \ No newline at end of file diff --git a/src/engine/platform/sound/c140.h b/src/engine/platform/sound/c140.h new file mode 100644 index 000000000..d0a4ff463 --- /dev/null +++ b/src/engine/platform/sound/c140.h @@ -0,0 +1,91 @@ +/* + +============================================================================ + +Namco C140 sound emulator +by cam900 + +This file is licensed under zlib license. + +============================================================================ + +zlib License + +(C) 2023-present cam900 and contributors + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + +============================================================================ + +TODO: +- unknown registers (Bit 6 of control register, etc) +- Internal timer + +*/ + +#ifndef _C140_EMU_H +#define _C140_EMU_H + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +struct c140_voice_t +{ + bool busy; // busy flag + bool keyon; // key on flag + unsigned short freq; // sample frequency + unsigned char bank; // sample bank + unsigned short start_addr; // sample start address + unsigned short loop_addr; // sample loop address + unsigned short end_addr; // sample end address + int lvol, rvol; // left/right volume + bool compressed; // compressed sample flag + bool loop; // loop flag + unsigned short addr; // sample address + int frac; // frequency counter (.16 fixed point) + int lout, rout; // left/right output +}; + +struct c140_t +{ + struct c140_voice_t voice[24]; + signed int lout, rout; + signed short mulaw[256]; + unsigned short (*read_sample)(unsigned char bank, unsigned short addr); +}; + +void c140_tick(struct c140_t *c140, const int cycle); + +void c140_voice_tick(struct c140_t *c140, const unsigned char voice, const int cycle); + +void c140_keyon(struct c140_voice_t *c140_voice); + +void c140_write(struct c140_t *c140, const unsigned short addr, const unsigned char data); + +void c140_init(struct c140_t *c140); + +void c140_reset(struct c140_t *c140); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // _C140_EMU_H diff --git a/src/gui/about.cpp b/src/gui/about.cpp index b849c6bbe..ea983787e 100644 --- a/src/gui/about.cpp +++ b/src/gui/about.cpp @@ -192,12 +192,10 @@ const char* aboutLine[]={ "mzpokeysnd POKEY emulator by Michael Borisov", "ASAP POKEY emulator by Piotr Fusik", "ported by laoo to C++", - "K005289 emulator by cam900", - "Namco 163 emulator by cam900", - "Seta X1-010 emulator by cam900", - "Konami VRC6 emulator by cam900", - "Konami SCC emulator by cam900", - "MSM6295 emulator by cam900", + "vgsound_emu (second version, modified version) by cam900", + "SM8521 emulator (modified version) by cam900", + "D65010G031 emulator (modified version) by cam900", + "Namco C140 emulator by cam900", "", "greetings to:", "NEOART Costa Rica", diff --git a/src/main.cpp b/src/main.cpp index bf2ac269b..d1fb2dc12 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -208,6 +208,9 @@ TAParamResult pVersion(String) { printf("- MAME GA20 core by Acho A. Tang, R. Belmont, Valley Bell (BSD 3-clause)\n"); printf("- Atari800 mzpokeysnd POKEY emulator by Michael Borisov (GPLv2)\n"); printf("- ASAP POKEY emulator by Piotr Fusik ported to C++ by laoo (GPLv2)\n"); + printf("- SM8521 emulator (modified version) by cam900 (zlib license)\n"); + printf("- D65010G031 emulator (modified version) by cam900 (zlib license)\n"); + printf("- C140 emulator by cam900 (zlib license)\n"); return TA_PARAM_QUIT; } From de1dd96785987a001b4d22c566c678f63c417b00 Mon Sep 17 00:00:00 2001 From: freq-mod <32672779+freq-mod@users.noreply.github.com> Date: Tue, 8 Aug 2023 20:10:59 +0200 Subject: [PATCH 138/202] add N163 + konami pcm demo song --- demos/multichip/n163+k053260_track8.fur | Bin 0 -> 107609 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/multichip/n163+k053260_track8.fur diff --git a/demos/multichip/n163+k053260_track8.fur b/demos/multichip/n163+k053260_track8.fur new file mode 100644 index 0000000000000000000000000000000000000000..d5bc373ae3975816bf1e17c73b4ef8aa38d88c63 GIT binary patch literal 107609 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 Je*=bnIz-0Lp&$SN literal 0 HcmV?d00001 From e561a90615fdf09937a98dc9475a79e408260933 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 9 Aug 2023 03:47:11 -0500 Subject: [PATCH 139/202] add another demo song --- demos/gameboy/spreadtro.fur | Bin 0 -> 3372 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/gameboy/spreadtro.fur diff --git a/demos/gameboy/spreadtro.fur b/demos/gameboy/spreadtro.fur new file mode 100644 index 0000000000000000000000000000000000000000..f8804b394fae9376775248010546532b8856001c GIT binary patch literal 3372 zcmc&$OKcle6umQV{CAp`Pl@oN!$&}Y6jT?wp~BOUhDbDpreH;U)TuM6oj5bGJ$7Oh zL;|X47nTrh8V#OMpegwQG*K?9F$Z&iF+lG6A)wXO0|uPC!bfG@{oJS13=$&I0LBJq#GYcB}F)Yr9ys z&GO#&aXHJdB<+Iz16*__qPes zb##nKliwltJD%nMT6Pln0{9guq==3K7l6ya{xs1F@Fh^r5d8!gS)%uWKY)=O(H@`< zTm*gqp2!nfzzJX#_zEZ&h`tAY0d^PR3w#G$2T+x+3t^n>~?fBmEMANG+9eOeExL)^k-D>iI>K|ILn;j?LaB+>a5v3JLA0x@ZF`PM01y(%%;nZP+iWQ>C8BX|QoG?YF>`sTOv%8=QOVB>iXwO3s zLf>b>g_~!|Zm)Ej-YOlnir8M)!tF_BzgAHZe3Zh76s^{6AMPct*3hCFQLo}PoufzS zScL@LsOY0amCBYIFW4Q%8KkQsBsTsBkK+?{=KcbQ??|S`c(1DU&g1~zWbzjl zhD$j4G!jvkaphvfR}?zt*{0~-JWRxwhM|^{lT_L89wx>;MeR`@_mRG7otQbG_7^QW zH+H#PYSHEL`q-6n$)_vjv8$h-19NqKLv-joTu698i-sJ_FD%(AD9#I?Hb6H(N%ZKf zSd)~btO9$`v0ce6_^k^P9|Io&XM{|ARwl+fNwlD3_z~?zbPbew)+f=4>>g+{;{QuL z$8n6>FQl@Vk}L)X0j<$#AkLuXRiH2z=)dip@D0j;pesx-r1 zY8iA8(=*Tj3Fc9b1R4!p$Zv=>=++>I2xa!&94kx5&ByMTVxg5n-~7}-ct9^Dt$ZU% zlWoQ3QYAah{{)m;8I)V{GBh)8>h=eIO|C-K&rOOG1abB3|5eVeH!__q^$ zLNB8~<7j?o3MWhA!#w(x3n|MCmKCq;cgw72ow6%g#Vc9aReUoSr3aDa?2_g1_?_%o kU;~hbz0$y=2n}r93UPqEhJxF*wWA8=2jq{Fk literal 0 HcmV?d00001 From 3b42abcf26acd4fa96b3f4a71344af5356d68b2a Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 9 Aug 2023 03:49:27 -0500 Subject: [PATCH 140/202] move --- .../{n163+k053260_track8.fur => track8.fur} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename demos/multichip/{n163+k053260_track8.fur => track8.fur} (100%) diff --git a/demos/multichip/n163+k053260_track8.fur b/demos/multichip/track8.fur similarity index 100% rename from demos/multichip/n163+k053260_track8.fur rename to demos/multichip/track8.fur From 07abd1fd85c73a787cd519e9973c58ceb5132c9f Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 9 Aug 2023 05:26:50 -0500 Subject: [PATCH 141/202] evom --- .../{track8.fur => track8_n163_k053260.fur} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename demos/multichip/{track8.fur => track8_n163_k053260.fur} (100%) diff --git a/demos/multichip/track8.fur b/demos/multichip/track8_n163_k053260.fur similarity index 100% rename from demos/multichip/track8.fur rename to demos/multichip/track8_n163_k053260.fur From 14c5d94499e3d051cac4e87971e5381ab790794f Mon Sep 17 00:00:00 2001 From: cam900 Date: Wed, 9 Aug 2023 20:30:00 +0900 Subject: [PATCH 142/202] C140 Part 2 --- src/engine/dispatchContainer.cpp | 4 ++ src/engine/instrument.cpp | 4 ++ src/engine/instrument.h | 1 + src/engine/platform/c140.cpp | 99 +++++++++++++++++++------------- src/engine/platform/c140.h | 23 ++++++-- src/engine/platform/sound/c140.c | 10 ++-- src/engine/platform/sound/c140.h | 2 +- src/engine/song.h | 3 +- src/engine/sysDef.cpp | 12 ++++ src/engine/vgmOps.cpp | 43 ++++++++++++++ src/gui/dataList.cpp | 4 ++ src/gui/debug.cpp | 18 ++++++ src/gui/doAction.cpp | 3 +- src/gui/gui.h | 1 + src/gui/guiConst.cpp | 4 ++ src/gui/insEdit.cpp | 14 ++++- src/gui/presets.cpp | 11 ++++ src/gui/sampleEdit.cpp | 5 ++ src/gui/settings.cpp | 1 + src/gui/sysConf.cpp | 1 + src/gui/sysPartNumber.cpp | 3 + 21 files changed, 210 insertions(+), 56 deletions(-) diff --git a/src/engine/dispatchContainer.cpp b/src/engine/dispatchContainer.cpp index 61d8344a9..ac92b23f4 100644 --- a/src/engine/dispatchContainer.cpp +++ b/src/engine/dispatchContainer.cpp @@ -80,6 +80,7 @@ #include "platform/pv1000.h" #include "platform/k053260.h" #include "platform/ted.h" +#include "platform/c140.h" #include "platform/pcmdac.h" #include "platform/dummy.h" #include "../ta-log.h" @@ -504,6 +505,9 @@ void DivDispatchContainer::init(DivSystem sys, DivEngine* eng, int chanCount, do case DIV_SYSTEM_TED: dispatch=new DivPlatformTED; break; + case DIV_SYSTEM_C140: + dispatch=new DivPlatformC140; + break; case DIV_SYSTEM_PCM_DAC: dispatch=new DivPlatformPCMDAC; break; diff --git a/src/engine/instrument.cpp b/src/engine/instrument.cpp index 9fa7477f2..3931a6f50 100644 --- a/src/engine/instrument.cpp +++ b/src/engine/instrument.cpp @@ -963,6 +963,10 @@ void DivInstrument::putInsData2(SafeWriter* w, bool fui, const DivSong* song) { break; case DIV_INS_TED: break; + case DIV_INS_C140: + featureSM=true; + featureSL=true; + break; case DIV_INS_MAX: break; diff --git a/src/engine/instrument.h b/src/engine/instrument.h index ef79a97a3..cd8c56527 100644 --- a/src/engine/instrument.h +++ b/src/engine/instrument.h @@ -83,6 +83,7 @@ enum DivInstrumentType: unsigned short { DIV_INS_K053260=50, // DIV_INS_YMF292=51, DIV_INS_TED=52, + DIV_INS_C140=53, DIV_INS_MAX, DIV_INS_NULL }; diff --git a/src/engine/platform/c140.cpp b/src/engine/platform/c140.cpp index 62067baea..5330443ac 100644 --- a/src/engine/platform/c140.cpp +++ b/src/engine/platform/c140.cpp @@ -80,10 +80,9 @@ void DivPlatformC140::tick(bool sysTick) { chan[i].std.next(); if (chan[i].std.vol.had) { chan[i].outVol=(chan[i].vol*MIN(chan[i].macroVolMul,chan[i].std.vol.val))/chan[i].macroVolMul; - chan[i].chVolL=(chan[i].outVol*chan[i].chPanL)/255; - chan[i].chVolR=(chan[i].outVol*chan[i].chPanR)/255; - rWrite(1+(i<<4),chan[i].chVolL); - rWrite(0+(i<<4),chan[i].chVolR); + if (!isMuted[i]) { + chan[i].volumeChanged.changed=0xff; + } } if (NEW_ARP_STRAT) { chan[i].handleArp(); @@ -104,14 +103,16 @@ void DivPlatformC140::tick(bool sysTick) { } if (chan[i].std.panL.had) { chan[i].chPanL=chan[i].std.panL.val&255; - chan[i].chVolL=(chan[i].outVol*chan[i].chPanL)/255; - rWrite(1+(i<<4),chan[i].chVolL); + if (!isMuted[i]) { + chan[i].volumeChanged.left=1; + } } if (chan[i].std.panR.had) { chan[i].chPanR=chan[i].std.panR.val&255; - chan[i].chVolR=(chan[i].outVol*chan[i].chPanR)/255; - rWrite(0+(i<<4),chan[i].chVolR); + if (!isMuted[i]) { + chan[i].volumeChanged.right=1; + } } if (chan[i].std.phaseReset.had) { @@ -120,6 +121,25 @@ void DivPlatformC140::tick(bool sysTick) { chan[i].setPos=true; } } + if (chan[i].volumeChanged.changed) { + if (chan[i].volumeChanged.left) { + if (isMuted[i]) { + chan[i].chVolL=0; + } else { + chan[i].chVolL=(chan[i].outVol*chan[i].chPanL)/255; + } + rWrite(1+(i<<4),chan[i].chVolL); + } + if (chan[i].volumeChanged.right) { + if (isMuted[i]) { + chan[i].chVolR=0; + } else { + chan[i].chVolR=(chan[i].outVol*chan[i].chPanR)/255; + } + rWrite(0+(i<<4),chan[i].chVolR); + } + chan[i].volumeChanged.changed=0; + } if (chan[i].setPos) { // force keyon chan[i].keyOn=true; @@ -141,7 +161,7 @@ void DivPlatformC140::tick(bool sysTick) { unsigned int end=0; if (chan[i].sample>=0 && chan[i].samplesong.sampleLen) { start=sampleOff[chan[i].sample]; - end=MIN(start+s->getCurBufLen(),getSampleMemCapacity()-1); + end=MIN(start+s->length8,getSampleMemCapacity()-1); } if (chan[i].audPos>0) { start=start+MIN(chan[i].audPos,s->length8); @@ -149,19 +169,18 @@ void DivPlatformC140::tick(bool sysTick) { if (s->isLoopable()) { loop=start+s->loopStart; } - rWrite(0x05+i*16,ctrl&~0x80); // force keyoff first - rWrite(0x06+i*16,(start>>8)&0xff); - rWrite(0x07+i*16,start&0xff); - rWrite(0x08+i*16,(end>>8)&0xff); - rWrite(0x09+i*16,end&0xff); - rWrite(0x0a+i*16,(loop>>8)&0xff); - rWrite(0x0b+i*16,loop&0xff); + rWrite(0x05+(i<<4),0); // force keyoff first + rWrite(0x06+(i<<4),(start>>8)&0xff); + rWrite(0x07+(i<<4),start&0xff); + rWrite(0x08+(i<<4),(end>>8)&0xff); + rWrite(0x09+(i<<4),end&0xff); + rWrite(0x0a+(i<<4),(loop>>8)&0xff); + rWrite(0x0b+(i<<4),loop&0xff); if (!chan[i].std.vol.had) { chan[i].outVol=chan[i].vol; - chan[i].chVolL=(chan[i].outVol*chan[i].chPanL)/255; - chan[i].chVolR=(chan[i].outVol*chan[i].chPanR)/255; - rWrite(1+(i<<4),chan[i].chVolL); - rWrite(0+(i<<4),chan[i].chVolR); + if (!isMuted[i]) { + chan[i].volumeChanged.changed=0xff; + } } chan[i].keyOn=false; } @@ -169,11 +188,11 @@ void DivPlatformC140::tick(bool sysTick) { chan[i].keyOff=false; } if (chan[i].freqChanged) { - rWrite(0x02+i*16,chan[i].freq&0xff); - rWrite(0x03+i*16,chan[i].freq>>8); + rWrite(0x02+(i<<4),chan[i].freq>>8); + rWrite(0x03+(i<<4),chan[i].freq&0xff); chan[i].freqChanged=false; } - rWrite(0x05+i*16,ctrl); + rWrite(0x05+(i<<4),ctrl); } } } @@ -182,7 +201,6 @@ int DivPlatformC140::dispatch(DivCommand c) { switch (c.cmd) { case DIV_CMD_NOTE_ON: { DivInstrument* ins=parent->getIns(chan[c.chan].ins,DIV_INS_AMIGA); - chan[c.chan].isNewYMZ=ins->type==DIV_INS_YMZ280B; chan[c.chan].macroVolMul=ins->type==DIV_INS_AMIGA?64:255; if (c.value!=DIV_NOTE_NULL) { chan[c.chan].sample=ins->amiga.getSample(c.value); @@ -203,11 +221,9 @@ int DivPlatformC140::dispatch(DivCommand c) { chan[c.chan].macroInit(ins); if (!parent->song.brokenOutVol && !chan[c.chan].std.vol.will) { chan[c.chan].outVol=chan[c.chan].vol; - - chan[c.chan].chVolL=(chan[c.chan].outVol*chan[c.chan].chPanL)/255; - chan[c.chan].chVolR=(chan[c.chan].outVol*chan[c.chan].chPanR)/255; - rWrite(1+(c.chan<<4),chan[c.chan].chVolL); - rWrite(0+(c.chan<<4),chan[c.chan].chVolR); + if (!isMuted[c.chan]) { + chan[c.chan].volumeChanged.changed=0xff; + } } break; } @@ -231,10 +247,9 @@ int DivPlatformC140::dispatch(DivCommand c) { if (!chan[c.chan].std.vol.has) { chan[c.chan].outVol=c.value; } - chan[c.chan].chVolL=(c.value*chan[c.chan].chPanL)/255; - chan[c.chan].chVolR=(c.value*chan[c.chan].chPanR)/255; - rWrite(1+(c.chan<<4),chan[c.chan].chVolL); - rWrite(0+(c.chan<<4),chan[c.chan].chVolR); + if (!isMuted[c.chan]) { + chan[c.chan].volumeChanged.changed=0xff; + } break; case DIV_CMD_GET_VOLUME: if (chan[c.chan].std.vol.has) { @@ -245,10 +260,9 @@ int DivPlatformC140::dispatch(DivCommand c) { case DIV_CMD_PANNING: chan[c.chan].chPanL=c.value; chan[c.chan].chPanR=c.value2; - chan[c.chan].chVolL=(chan[c.chan].outVol*chan[c.chan].chPanL)/255; - chan[c.chan].chVolR=(chan[c.chan].outVol*chan[c.chan].chPanR)/255; - rWrite(1+(c.chan<<4),chan[c.chan].chVolL); - rWrite(0+(c.chan<<4),chan[c.chan].chVolR); + if (!isMuted[c.chan]) { + chan[c.chan].volumeChanged.changed=0xff; + } break; case DIV_CMD_PITCH: chan[c.chan].pitch=c.value; @@ -314,12 +328,14 @@ int DivPlatformC140::dispatch(DivCommand c) { void DivPlatformC140::muteChannel(int ch, bool mute) { isMuted[ch]=mute; + chan[ch].volumeChanged.changed=0xff; } void DivPlatformC140::forceIns() { for (int i=0; i<24; i++) { chan[i].insChanged=true; chan[i].freqChanged=true; + chan[i].volumeChanged.changed=0xff; chan[i].sample=-1; } } @@ -343,7 +359,7 @@ void DivPlatformC140::reset() { for (int i=0; i<24; i++) { chan[i]=DivPlatformC140::Channel(); chan[i].std.setEngine(parent); - rWrite(0x05+i*16,0); + rWrite(0x05+(i<<4),0); } } @@ -435,7 +451,7 @@ void DivPlatformC140::renderSamples(int sysID) { } else { memcpy(sampleMem+(memPos/sizeof(short)),s->data16,length); } - sampleOff[i]=memPos; + sampleOff[i]=memPos>>1; sampleLoaded[i]=true; memPos+=length; } @@ -447,7 +463,7 @@ void DivPlatformC140::setChipModel(int type) { } void DivPlatformC140::setFlags(const DivConfig& flags) { - chipClock = 8192000; + chipClock=32000*256; // 8.192MHz and 12.288MHz input, verified from Assault Schematics CHECK_CUSTOM_CLOCK; rate=chipClock/192; for (int i=0; i<24; i++) { @@ -464,9 +480,10 @@ int DivPlatformC140::init(DivEngine* p, int channels, int sugRate, const DivConf isMuted[i]=false; oscBuf[i]=new DivDispatchOscBuffer; } - sampleMem=new unsigned char[getSampleMemCapacity()]; + sampleMem=new signed short[getSampleMemCapacity()/sizeof(short)]; sampleMemLen=0; c140_init(&c140); + c140.sample_mem=sampleMem; setFlags(flags); reset(); diff --git a/src/engine/platform/c140.h b/src/engine/platform/c140.h index 830760022..5604a794e 100644 --- a/src/engine/platform/c140.h +++ b/src/engine/platform/c140.h @@ -26,21 +26,33 @@ class DivPlatformC140: public DivDispatch { struct Channel: public SharedChannel { + struct VolumeUpdate { + union { // pack flag bits in single byte + struct { // flag bits + unsigned char left : 1; // left volume + unsigned char right : 1; // right volume + unsigned char reserved : 6; + }; + unsigned char changed = 0; // Packed flags are stored here + }; + + VolumeUpdate(): + changed(0) {} + } volumeChanged; + unsigned int audPos; int sample, wave; - int panning; - bool setPos, isNewYMZ; + bool setPos; int chPanL, chPanR; int chVolL, chVolR; int macroVolMul; Channel(): SharedChannel(255), + volumeChanged(VolumeUpdate()), audPos(0), sample(-1), wave(-1), - panning(8), setPos(false), - isNewYMZ(false), chPanL(255), chPanR(255), chVolL(255), @@ -54,7 +66,7 @@ class DivPlatformC140: public DivDispatch { unsigned int sampleOff[256]; bool sampleLoaded[256]; - unsigned char* sampleMem; + signed short* sampleMem; size_t sampleMemLen; struct QueuedWrite { unsigned short addr; @@ -97,6 +109,7 @@ class DivPlatformC140: public DivDispatch { void setFlags(const DivConfig& flags); int init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags); void quit(); + private: }; #endif diff --git a/src/engine/platform/sound/c140.c b/src/engine/platform/sound/c140.c index 6057782b3..7481ac77e 100644 --- a/src/engine/platform/sound/c140.c +++ b/src/engine/platform/sound/c140.c @@ -46,6 +46,8 @@ static int c140_bit(int val, int bit) { return (val >> bit) & 1; } void c140_tick(struct c140_t *c140, const int cycle) { + c140->lout = 0; + c140->rout = 0; for (int i = 0; i < 24; i++) { c140_voice_tick(c140, i, cycle); @@ -53,8 +55,8 @@ void c140_tick(struct c140_t *c140, const int cycle) c140->rout += c140->voice[i].rout; } // scale as 16bit - c140->lout >>= 5; - c140->rout >>= 5; + c140->lout >>= 8; + c140->rout >>= 8; } void c140_voice_tick(struct c140_t *c140, const unsigned char voice, const int cycle) @@ -82,8 +84,8 @@ void c140_voice_tick(struct c140_t *c140, const unsigned char voice, const int c c140_voice->frac &= 0xffff; } // fetch 12 bit sample - signed short s1 = c140->read_sample(c140_voice->bank, c140_voice->addr) & ~0xf; - signed short s2 = c140->read_sample(c140_voice->bank, c140_voice->addr + 1) & ~0xf; + signed short s1 = c140->sample_mem[((unsigned int)(c140_voice->bank) << 16) | c140_voice->addr] & ~0xf; + signed short s2 = c140->sample_mem[((unsigned int)(c140_voice->bank) << 16) | ((c140_voice->addr + 1) & 0xffff)] & ~0xf; if (c140_voice->compressed) { s1 = c140->mulaw[(s1 >> 8) & 0xff]; diff --git a/src/engine/platform/sound/c140.h b/src/engine/platform/sound/c140.h index d0a4ff463..defe3f87d 100644 --- a/src/engine/platform/sound/c140.h +++ b/src/engine/platform/sound/c140.h @@ -69,7 +69,7 @@ struct c140_t struct c140_voice_t voice[24]; signed int lout, rout; signed short mulaw[256]; - unsigned short (*read_sample)(unsigned char bank, unsigned short addr); + signed short *sample_mem; }; void c140_tick(struct c140_t *c140, const int cycle); diff --git a/src/engine/song.h b/src/engine/song.h index 7fc8dc2a8..803f87360 100644 --- a/src/engine/song.h +++ b/src/engine/song.h @@ -129,7 +129,8 @@ enum DivSystem { DIV_SYSTEM_SM8521, DIV_SYSTEM_PV1000, DIV_SYSTEM_K053260, - DIV_SYSTEM_TED + DIV_SYSTEM_TED, + DIV_SYSTEM_C140 }; enum DivEffectType: unsigned short { diff --git a/src/engine/sysDef.cpp b/src/engine/sysDef.cpp index 08ed8f4f5..39caf88b4 100644 --- a/src/engine/sysDef.cpp +++ b/src/engine/sysDef.cpp @@ -1872,6 +1872,18 @@ void DivEngine::registerSystems() { {} ); + // TODO: Custom sample format + sysDefs[DIV_SYSTEM_C140]=new DivSysDef( + "Namco C140", NULL, 0xfe/*Placeholder*/, 0, 24, false, true, 0x161, false, 1U<writeC(0); } break; + case DIV_SYSTEM_C140: + for (int i=0; i<24; i++) { + w->writeC(0xd4); // mute + w->writeS(baseAddr2S|(i<<4)|0); + w->writeC(0); + w->writeC(0xd4); + w->writeS(baseAddr2S|(i<<4)|1); + w->writeC(0); + w->writeC(0xd4); // keyoff + w->writeS(baseAddr2S|(i<<4)|5); + w->writeC(0); + } + break; default: break; } @@ -1044,6 +1057,11 @@ void DivEngine::performVGMWrite(SafeWriter* w, DivSystem sys, DivRegWrite& write w->writeC(baseAddr2|(write.addr&0x3f)); w->writeC(write.val&0xff); break; + case DIV_SYSTEM_C140: + w->writeC(0xd4); + w->writeC(baseAddr2S|(write.addr&0x1ff)); + w->writeC(write.val&0xff); + break; default: logW("write not handled!"); break; @@ -1217,6 +1235,7 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p DivDispatch* writeMSM6295[2]={NULL,NULL}; DivDispatch* writeGA20[2]={NULL,NULL}; DivDispatch* writeK053260[2]={NULL,NULL}; + DivDispatch* writeC140[2]={NULL,NULL}; DivDispatch* writeNES[2]={NULL,NULL}; int writeNESIndex[2]={0,0}; @@ -1765,6 +1784,21 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p willExport[i]=true; } break; + case DIV_SYSTEM_C140: + if (!hasNamco) { + hasNamco=disCont[i].dispatch->chipClock; + CHIP_VOL(40,0.4); + willExport[i]=true; + writeC140[0]=disCont[i].dispatch; + } else if (!(hasNamco&0x40000000)) { + isSecond[i]=true; + CHIP_VOL_SECOND(40,0.4); + willExport[i]=true; + writeC140[1]=disCont[i].dispatch; + hasNamco|=0x40000000; + howManyChips++; + } + break; default: break; } @@ -2163,6 +2197,15 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p w->writeI(0); w->write(writeES5506[i]->getSampleMem(),writeES5506[i]->getSampleMemUsage()); } + if (writeC140[i]!=NULL && writeC140[i]->getSampleMemUsage()>0) { + w->writeC(0x67); + w->writeC(0x66); + w->writeC(0x8d); + w->writeI((writeC140[i]->getSampleMemUsage()+8)|(i*0x80000000)); + w->writeI(writeC140[i]->getSampleMemCapacity()); + w->writeI(0); + w->write(writeC140[i]->getSampleMem(),writeC140[i]->getSampleMemUsage()); + } } // initialize streams diff --git a/src/gui/dataList.cpp b/src/gui/dataList.cpp index 8e9bc33ec..edc1a9145 100644 --- a/src/gui/dataList.cpp +++ b/src/gui/dataList.cpp @@ -286,6 +286,10 @@ void FurnaceGUI::insListItem(int i, int dir, int asset) { ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_INSTR_TED]); name=fmt::sprintf(ICON_FA_BAR_CHART "##_INS%d",i); break; + case DIV_INS_C140: + ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_INSTR_C140]); + name=fmt::sprintf(ICON_FA_BAR_CHART "##_INS%d",i); + break; default: ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_INSTR_UNKNOWN]); name=fmt::sprintf(ICON_FA_QUESTION "##_INS%d",i); diff --git a/src/gui/debug.cpp b/src/gui/debug.cpp index d2b2f44ab..a2089f47f 100644 --- a/src/gui/debug.cpp +++ b/src/gui/debug.cpp @@ -54,6 +54,7 @@ #include "../engine/platform/sm8521.h" #include "../engine/platform/pv1000.h" #include "../engine/platform/k053260.h" +#include "../engine/platform/c140.h" #include "../engine/platform/dummy.h" #define COMMON_CHIP_DEBUG \ @@ -1093,6 +1094,23 @@ void putDispatchChan(void* data, int chanNum, int type) { ImGui::TextColored(ch->reverse?colorOn:colorOff,">> Reverse"); break; } + case DIV_SYSTEM_C140: { + DivPlatformC140::Channel* ch=(DivPlatformC140::Channel*)data; + ImGui::Text("> C140"); + COMMON_CHAN_DEBUG; + ImGui::Text("* Sample: %d",ch->sample); + ImGui::Text(" - pos: %d",ch->audPos); + ImGui::Text("- chPanL: %.2x",ch->chPanL); + ImGui::Text("- chPanR: %.2x",ch->chPanR); + ImGui::Text("- chVolL: %.2x",ch->chVolL); + ImGui::Text("- chVolR: %.2x",ch->chVolR); + ImGui::Text("- macroVolMul: %.2x",ch->macroVolMul); + COMMON_CHAN_DEBUG_BOOL; + ImGui::TextColored(ch->volumeChanged.left?colorOn:colorOff,">> VolumeChangedLeft"); + ImGui::TextColored(ch->volumeChanged.right?colorOn:colorOff,">> VolumeChangedRight"); + ImGui::TextColored(ch->setPos?colorOn:colorOff,">> SetPos"); + break; + } default: ImGui::Text("Unimplemented chip! Help!"); break; diff --git a/src/gui/doAction.cpp b/src/gui/doAction.cpp index aca82821a..f74c4243c 100644 --- a/src/gui/doAction.cpp +++ b/src/gui/doAction.cpp @@ -1396,7 +1396,8 @@ void FurnaceGUI::doAction(int what) { i==DIV_INS_ES5506 || i==DIV_INS_K007232 || i==DIV_INS_GA20 || - i==DIV_INS_K053260) { + i==DIV_INS_K053260 || + i==DIV_INS_C140) { makeInsTypeList.push_back(i); } } diff --git a/src/gui/gui.h b/src/gui/gui.h index 0a14965c9..53d887041 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -258,6 +258,7 @@ enum FurnaceGUIColors { GUI_COLOR_INSTR_K053260, GUI_COLOR_INSTR_SCSP, GUI_COLOR_INSTR_TED, + GUI_COLOR_INSTR_C140, GUI_COLOR_INSTR_UNKNOWN, GUI_COLOR_CHANNEL_BG, diff --git a/src/gui/guiConst.cpp b/src/gui/guiConst.cpp index a4c5c956d..f04d51ec2 100644 --- a/src/gui/guiConst.cpp +++ b/src/gui/guiConst.cpp @@ -170,6 +170,7 @@ const char* insTypes[DIV_INS_MAX+1]={ "K053260", "SCSP", "TED", + "C140", NULL }; @@ -934,6 +935,7 @@ const FurnaceGUIColorDef guiColors[GUI_COLOR_MAX]={ D(GUI_COLOR_INSTR_K053260,"",ImVec4(1.0f,0.8f,0.1f,1.0f)), D(GUI_COLOR_INSTR_SCSP,"",ImVec4(0.5f,0.5f,0.5f,1.0f)), D(GUI_COLOR_INSTR_TED,"",ImVec4(0.7f,0.6f,1.0f,1.0f)), + D(GUI_COLOR_INSTR_C140,"",ImVec4(0.7f,0.6f,1.0f,1.0f)), D(GUI_COLOR_INSTR_UNKNOWN,"",ImVec4(0.3f,0.3f,0.3f,1.0f)), D(GUI_COLOR_CHANNEL_BG,"",ImVec4(0.4f,0.6f,0.8f,1.0f)), @@ -1119,6 +1121,7 @@ const int availableSystems[]={ DIV_SYSTEM_PV1000, DIV_SYSTEM_K053260, DIV_SYSTEM_TED, + DIV_SYSTEM_C140, DIV_SYSTEM_PCM_DAC, DIV_SYSTEM_PONG, 0 // don't remove this last one! @@ -1229,6 +1232,7 @@ const int chipsSample[]={ DIV_SYSTEM_PCM_DAC, DIV_SYSTEM_ES5506, DIV_SYSTEM_K053260, + DIV_SYSTEM_C140, 0 // don't remove this last one! }; diff --git a/src/gui/insEdit.cpp b/src/gui/insEdit.cpp index e5f60d86b..6a89e7422 100644 --- a/src/gui/insEdit.cpp +++ b/src/gui/insEdit.cpp @@ -4411,7 +4411,8 @@ void FurnaceGUI::drawInsEdit() { ins->type==DIV_INS_ES5506 || ins->type==DIV_INS_K007232 || ins->type==DIV_INS_GA20 || - ins->type==DIV_INS_K053260) { + ins->type==DIV_INS_K053260 || + ins->type==DIV_INS_C140) { if (ImGui::BeginTabItem((ins->type==DIV_INS_SU)?"Sound Unit":"Sample")) { String sName; bool wannaOpenSMPopup=false; @@ -5397,7 +5398,7 @@ void FurnaceGUI::drawInsEdit() { volMax=31; } if (ins->type==DIV_INS_ADPCMB || ins->type==DIV_INS_YMZ280B || ins->type==DIV_INS_RF5C68 || - ins->type==DIV_INS_GA20) { + ins->type==DIV_INS_GA20 || ins->type==DIV_INS_C140) { volMax=255; } if (ins->type==DIV_INS_QSOUND) { @@ -5457,7 +5458,8 @@ void FurnaceGUI::drawInsEdit() { if (ins->type==DIV_INS_TIA || ins->type==DIV_INS_AMIGA || ins->type==DIV_INS_SCC || ins->type==DIV_INS_PET || ins->type==DIV_INS_SEGAPCM || ins->type==DIV_INS_FM || ins->type==DIV_INS_K007232 || ins->type==DIV_INS_GA20 || - ins->type==DIV_INS_SM8521 || ins->type==DIV_INS_PV1000 || ins->type==DIV_INS_K053260) { + ins->type==DIV_INS_SM8521 || ins->type==DIV_INS_PV1000 || ins->type==DIV_INS_K053260 || + ins->type==DIV_INS_C140) { dutyMax=0; } if (ins->type==DIV_INS_VBOY) { @@ -5565,6 +5567,7 @@ void FurnaceGUI::drawInsEdit() { if (ins->type==DIV_INS_K053260) waveMax=0; if (ins->type==DIV_INS_POKEMINI) waveMax=0; if (ins->type==DIV_INS_TED) waveMax=0; + if (ins->type==DIV_INS_C140) waveMax=0; if (ins->type==DIV_INS_SU || ins->type==DIV_INS_POKEY) waveMax=7; if (ins->type==DIV_INS_PET) { waveMax=8; @@ -5695,6 +5698,10 @@ void FurnaceGUI::drawInsEdit() { panMin=0; panMax=127; } + if (ins->type==DIV_INS_C140) { + panMin=0; + panMax=255; + } if (ins->type==DIV_INS_ES5506) { panMax=4095; } @@ -5780,6 +5787,7 @@ void FurnaceGUI::drawInsEdit() { ins->type==DIV_INS_K007232 || ins->type==DIV_INS_GA20 || ins->type==DIV_INS_K053260 || + ins->type==DIV_INS_C140 || ins->type==DIV_INS_TED) { macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); } diff --git a/src/gui/presets.cpp b/src/gui/presets.cpp index d23622ad2..9f78f360d 100644 --- a/src/gui/presets.cpp +++ b/src/gui/presets.cpp @@ -2024,6 +2024,12 @@ void FurnaceGUI::initSystemPresets() { ) // "" } ); + ENTRY( + "Namco System 2", { + CH(DIV_SYSTEM_YM2151, 1.0f, 0, ""), + CH(DIV_SYSTEM_C140, 1.0f, 0, "") + } + ); ENTRY( "Taito Arcade", { CH(DIV_SYSTEM_YM2610B, 1.0f, 0, "") @@ -2530,6 +2536,11 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_K053260, 1.0f, 0, "") } ); + ENTRY( + "Namco C140", { + CH(DIV_SYSTEM_C140, 1.0f, 0, "") + } + ); CATEGORY_END; CATEGORY_BEGIN("Wavetable","chips which use user-specified waveforms to generate sound."); diff --git a/src/gui/sampleEdit.cpp b/src/gui/sampleEdit.cpp index 99ccbd22c..390b8d571 100644 --- a/src/gui/sampleEdit.cpp +++ b/src/gui/sampleEdit.cpp @@ -277,6 +277,11 @@ void FurnaceGUI::drawSampleEdit() { SAMPLE_WARN(warnLength,"K053260: maximum sample length is 65535"); } break; + case DIV_SYSTEM_C140: + if (sample->samples>65535) { + SAMPLE_WARN(warnLength,"C140: maximum sample length is 65535"); + } + break; default: break; } diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index f663a9e40..26884f51b 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -2671,6 +2671,7 @@ void FurnaceGUI::drawSettings() { UI_COLOR_CONFIG(GUI_COLOR_INSTR_SM8521,"SM8521"); UI_COLOR_CONFIG(GUI_COLOR_INSTR_PV1000,"PV-1000"); UI_COLOR_CONFIG(GUI_COLOR_INSTR_K053260,"K053260"); + UI_COLOR_CONFIG(GUI_COLOR_INSTR_C140,"C140"); UI_COLOR_CONFIG(GUI_COLOR_INSTR_UNKNOWN,"Other/Unknown"); ImGui::TreePop(); } diff --git a/src/gui/sysConf.cpp b/src/gui/sysConf.cpp index 9e54ae7fd..278b489b9 100644 --- a/src/gui/sysConf.cpp +++ b/src/gui/sysConf.cpp @@ -2052,6 +2052,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo case DIV_SYSTEM_GA20: case DIV_SYSTEM_PV1000: case DIV_SYSTEM_VERA: + case DIV_SYSTEM_C140: break; case DIV_SYSTEM_YMU759: supportsCustomRate=false; diff --git a/src/gui/sysPartNumber.cpp b/src/gui/sysPartNumber.cpp index 94dc822b8..22a602663 100644 --- a/src/gui/sysPartNumber.cpp +++ b/src/gui/sysPartNumber.cpp @@ -265,6 +265,9 @@ const char* FurnaceGUI::getSystemPartNumber(DivSystem sys, DivConfig& flags) { case DIV_SYSTEM_TED: return "TED"; break; + case DIV_SYSTEM_C140: + return "C140"; + break; default: return FurnaceGUI::getSystemName(sys); break; From 1e2cd8282a918ca6f26fcc43cb91dfab0773aa23 Mon Sep 17 00:00:00 2001 From: cam900 Date: Wed, 9 Aug 2023 20:33:42 +0900 Subject: [PATCH 143/202] Change Mulaw algorithm --- src/engine/platform/sound/c140.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/engine/platform/sound/c140.c b/src/engine/platform/sound/c140.c index 7481ac77e..da5d997fd 100644 --- a/src/engine/platform/sound/c140.c +++ b/src/engine/platform/sound/c140.c @@ -43,6 +43,7 @@ static int c140_max(int a, int b) { return (a > b) ? a : b; } static int c140_min(int a, int b) { return (a < b) ? a : b; } static int c140_clamp(int v, int min, int max) { return c140_min(c140_max(v,min),max); } static int c140_bit(int val, int bit) { return (val >> bit) & 1; } +static int c140_bitfield(int val, int bit, int len) { return (val >> bit) & ((1 << len) - 1);} void c140_tick(struct c140_t *c140, const int cycle) { @@ -117,15 +118,18 @@ void c140_init(struct c140_t *c140) // u-law table verified from Wii Virtual Console Arcade Starblade for (int i = 0; i < 256; i++) { - int j = (signed char)i; - signed char s1 = j & 7; - signed char s2 = abs(j >> 3) & 31; - - c140->mulaw[i] = 0x80 << s1 & 0xff00; - c140->mulaw[i] += s2 << (s1 ? s1 + 3 : 4); - - if (j < 0) - c140->mulaw[i] = -c140->mulaw[i]; + const unsigned char exponent = c140_bitfield(i, 0, 3); + const unsigned char mantissa = c140_bitfield(i, 3, 4); + if (c140_bit(i, 7)) + { + c140->mulaw[i] = (signed short)(((exponent ? 0xfe00 : 0xff00) | (mantissa << 4)) + << (exponent ? exponent - 1 : 0)); + } + else + { + c140->mulaw[i] = (signed short)(((exponent ? 0x100 : 0) | (mantissa << 4)) + << (exponent ? exponent - 1 : 0)); + } } } From 85aa3736ade17a623d1457f8a88eb6bb12c72d74 Mon Sep 17 00:00:00 2001 From: cam900 Date: Wed, 9 Aug 2023 20:34:57 +0900 Subject: [PATCH 144/202] oops --- src/engine/vgmOps.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/vgmOps.cpp b/src/engine/vgmOps.cpp index f5e6d53dc..48afca4c4 100644 --- a/src/engine/vgmOps.cpp +++ b/src/engine/vgmOps.cpp @@ -1059,7 +1059,7 @@ void DivEngine::performVGMWrite(SafeWriter* w, DivSystem sys, DivRegWrite& write break; case DIV_SYSTEM_C140: w->writeC(0xd4); - w->writeC(baseAddr2S|(write.addr&0x1ff)); + w->writeS(baseAddr2S|(write.addr&0x1ff)); w->writeC(write.val&0xff); break; default: From 46b83833e1e1c6003ab1839658ddb3529f20d81e Mon Sep 17 00:00:00 2001 From: cam900 Date: Wed, 9 Aug 2023 20:36:59 +0900 Subject: [PATCH 145/202] Less louder output --- src/engine/platform/sound/c140.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engine/platform/sound/c140.c b/src/engine/platform/sound/c140.c index da5d997fd..dc0ff02ec 100644 --- a/src/engine/platform/sound/c140.c +++ b/src/engine/platform/sound/c140.c @@ -56,8 +56,8 @@ void c140_tick(struct c140_t *c140, const int cycle) c140->rout += c140->voice[i].rout; } // scale as 16bit - c140->lout >>= 8; - c140->rout >>= 8; + c140->lout >>= 13; + c140->rout >>= 13; } void c140_voice_tick(struct c140_t *c140, const unsigned char voice, const int cycle) From 72d04777c013988ed8cf6da27c62a9d784a59dff Mon Sep 17 00:00:00 2001 From: cam900 Date: Wed, 9 Aug 2023 20:38:17 +0900 Subject: [PATCH 146/202] Less silent output --- src/engine/platform/sound/c140.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engine/platform/sound/c140.c b/src/engine/platform/sound/c140.c index dc0ff02ec..948b2f074 100644 --- a/src/engine/platform/sound/c140.c +++ b/src/engine/platform/sound/c140.c @@ -56,8 +56,8 @@ void c140_tick(struct c140_t *c140, const int cycle) c140->rout += c140->voice[i].rout; } // scale as 16bit - c140->lout >>= 13; - c140->rout >>= 13; + c140->lout >>= 10; + c140->rout >>= 10; } void c140_voice_tick(struct c140_t *c140, const unsigned char voice, const int cycle) From 3d2ae77708a618a46c2326bee987075a0f753624 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Wed, 9 Aug 2023 12:50:18 -0700 Subject: [PATCH 147/202] Test font for instrument "letter icons". Here's a test version of the font, to make sure I have the metrics right and all that. Only six (useful) codepoints are implemented right now: - `F004`: Generic Sample - `F015`: Beeper - `F016`: WonderSwan - `F01A`: VRC6 (saw) - `F01E`: Sound Unit - `F028`: QSound Note that their codepoints are the instrument ID's plus 0xF000. Convenient! Once implemented so I can test, I can refine things and work up the rest of the "icons". --- res/FurnaceLetterIcons.ttf | Bin 0 -> 4604 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 res/FurnaceLetterIcons.ttf diff --git a/res/FurnaceLetterIcons.ttf b/res/FurnaceLetterIcons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..07581909e618e57e8e175768d139d4c461c6bc75 GIT binary patch literal 4604 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 Date: Wed, 9 Aug 2023 13:01:34 -0700 Subject: [PATCH 148/202] And here's the FontForge file. The "W" icons are for testing width and such, and can be safely ignored for now. --- res/FurnaceLetterIcons.sfd | 3484 ++++++++++++++++++++++++++++++++++++ 1 file changed, 3484 insertions(+) create mode 100644 res/FurnaceLetterIcons.sfd diff --git a/res/FurnaceLetterIcons.sfd b/res/FurnaceLetterIcons.sfd new file mode 100644 index 000000000..e301a636d --- /dev/null +++ b/res/FurnaceLetterIcons.sfd @@ -0,0 +1,3484 @@ +SplineFontDB: 3.2 +FontName: FurnaceLetterIcons +FullName: Furnace letter icons +FamilyName: Furnace letter icons +Weight: Regular +Copyright: +UComments: "2023-8-8: Created with FontForge (http://fontforge.org)" +Version: 001.000 +ItalicAngle: 0 +UnderlinePosition: 0 +UnderlineWidth: 0 +Ascent: 1536 +Descent: 256 +InvalidEm: 0 +LayerCount: 2 +Layer: 0 0 "Back" 1 +Layer: 1 0 "Fore" 0 +XUID: [1021 230 235539655 3711] +FSType: 0 +OS2Version: 0 +OS2_WeightWidthSlopeOnly: 0 +OS2_UseTypoMetrics: 0 +CreationTime: 1691524879 +ModificationTime: 1691609499 +PfmFamily: 81 +TTFWeight: 400 +TTFWidth: 5 +LineGap: 0 +VLineGap: 0 +OS2TypoAscent: 1536 +OS2TypoAOffset: 0 +OS2TypoDescent: -256 +OS2TypoDOffset: 0 +OS2TypoLinegap: 0 +OS2WinAscent: 1536 +OS2WinAOffset: 0 +OS2WinDescent: 256 +OS2WinDOffset: 0 +HheadAscent: 1536 +HheadAOffset: 0 +HheadDescent: -256 +HheadDOffset: 0 +OS2Vendor: 'FurT' +MarkAttachClasses: 1 +DEI: 91125 +LangName: 1033 +Encoding: UnicodeBmp +UnicodeInterp: none +NameList: AGL For New Fonts +DisplaySize: -48 +AntiAlias: 1 +FitToEm: 0 +WinInfo: 61400 8 11 +BeginPrivate: 0 +EndPrivate +TeXData: 1 0 0 346030 173015 115343 0 1048576 115343 783286 444596 497025 792723 393216 433062 380633 303038 157286 324010 404750 52429 2506097 1059062 262144 +BeginChars: 65536 11 + +StartChar: uniEFF6 +Encoding: 61430 61430 0 +Width: 1792 +Flags: HW +HStem: -87.5 97.6641<15.6582 26.9082 329.322 340.572 735.658 746.908 1049.32 1060.57 1455.66 1466.91 1769.32 1780.57> 423.109 92.4609<171.189 181.596 891.189 901.596 1611.19 1621.6> 735.5 97.6641<15.6582 26.9082 329.322 340.572 735.658 746.908 1049.32 1060.57 1455.66 1466.91 1769.32 1780.57> 1246.11 92.4609<171.189 181.596 891.189 901.596 1611.19 1621.6> +VStem: -167.506 93.3047<422.266 515.57 1245.27 1338.57> 121.971 111.445<455.694 515.57 1278.69 1338.57> 278.346 109.758<-87.5 -30.2713 735.5 792.729> 430.432 89.8594<425.711 515.57 1248.71 1338.57> 552.494 93.3047<422.266 515.57 1245.27 1338.57> 841.971 111.445<455.694 515.57 1278.69 1338.57> 998.346 109.758<-87.5 -30.2713 735.5 792.729> 1150.43 89.8594<425.711 515.57 1248.71 1338.57> 1272.49 93.3047<422.266 515.57 1245.27 1338.57> 1561.97 111.445<455.694 515.57 1278.69 1338.57> 1718.35 109.758<-87.5 -30.2713 735.5 792.729> 1870.43 89.8594<425.711 515.57 1248.71 1338.57> +DStem2: -74.2012 1338.57 -167.506 1338.57 0.207465 -0.978243<0 372.236> -74.2012 515.57 -167.506 515.57 0.207465 -0.978243<0 372.236> 26.9082 833.164 152.205 1107.03 0.135247 0.990812<0 428.665> 26.9082 10.1641 152.205 284.031 0.135247 0.990812<0 428.665> 310.338 971.398 200.58 1107.03 0.204871 -0.978789<-295.26 139.192> 310.338 148.398 200.58 284.031 0.204871 -0.978789<-295.26 139.192> 645.799 1338.57 552.494 1338.57 0.207465 -0.978243<0 372.236> 645.799 515.57 552.494 515.57 0.207465 -0.978243<0 372.236> 746.908 833.164 872.205 1107.03 0.135247 0.990812<0 428.665> 746.908 10.1641 872.205 284.031 0.135247 0.990812<0 428.665> 1030.34 971.398 920.58 1107.03 0.204871 -0.978789<-295.26 139.192> 1030.34 148.398 920.58 284.031 0.204871 -0.978789<-295.26 139.192> 1365.8 1338.57 1272.49 1338.57 0.207465 -0.978243<0 372.236> 1365.8 515.57 1272.49 515.57 0.207465 -0.978243<0 372.236> 1466.91 833.164 1592.21 1107.03 0.135247 0.990812<0 428.665> 1466.91 10.1641 1592.21 284.031 0.135247 0.990812<0 428.665> 1750.34 971.398 1640.58 1107.03 0.204871 -0.978789<-295.26 139.192> 1750.34 148.398 1640.58 284.031 0.204871 -0.978789<-295.26 139.192> +LayerCount: 2 +UndoRedoHistory +Layer: 1 +Undoes +UndoOperation +Index: 0 +Type: 3 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +EndUndoes +Redoes +EndRedoes +EndUndoRedoHistory +Fore +SplineSet +-39.607421875 735.5 m 1 + -167.505859375 1338.5703125 l 1 + -74.201171875 1338.5703125 l 1 + -3.326171875 973.0859375 l 1 + 15.658203125 833.1640625 l 1 + 26.908203125 833.1640625 l 1 + 45.892578125 971.3984375 l 1 + 121.970703125 1338.5703125 l 1 + 233.416015625 1338.5703125 l 1 + 310.337890625 971.3984375 l 1 + 329.322265625 833.1640625 l 1 + 340.572265625 833.1640625 l 1 + 359.556640625 973.0859375 l 1 + 430.431640625 1338.5703125 l 1 + 520.291015625 1338.5703125 l 1 + 388.103515625 735.5 l 1 + 278.345703125 735.5 l 1 + 200.580078125 1107.03125 l 1 + 181.595703125 1246.109375 l 1 + 171.189453125 1246.109375 l 1 + 152.205078125 1107.03125 l 1 + 70.994140625 735.5 l 1 + -39.607421875 735.5 l 1 +680.392578125 735.5 m 1 + 552.494140625 1338.5703125 l 1 + 645.798828125 1338.5703125 l 1 + 716.673828125 973.0859375 l 1 + 735.658203125 833.1640625 l 1 + 746.908203125 833.1640625 l 1 + 765.892578125 971.3984375 l 1 + 841.970703125 1338.5703125 l 1 + 953.416015625 1338.5703125 l 1 + 1030.33789062 971.3984375 l 1 + 1049.32226562 833.1640625 l 1 + 1060.57226562 833.1640625 l 1 + 1079.55664062 973.0859375 l 1 + 1150.43164062 1338.5703125 l 1 + 1240.29101562 1338.5703125 l 1 + 1108.10351562 735.5 l 1 + 998.345703125 735.5 l 1 + 920.580078125 1107.03125 l 1 + 901.595703125 1246.109375 l 1 + 891.189453125 1246.109375 l 1 + 872.205078125 1107.03125 l 1 + 790.994140625 735.5 l 1 + 680.392578125 735.5 l 1 +1400.39257812 735.5 m 1 + 1272.49414062 1338.5703125 l 1 + 1365.79882812 1338.5703125 l 1 + 1436.67382812 973.0859375 l 1 + 1455.65820312 833.1640625 l 1 + 1466.90820312 833.1640625 l 1 + 1485.89257812 971.3984375 l 1 + 1561.97070312 1338.5703125 l 1 + 1673.41601562 1338.5703125 l 1 + 1750.33789062 971.3984375 l 1 + 1769.32226562 833.1640625 l 1 + 1780.57226562 833.1640625 l 1 + 1799.55664062 973.0859375 l 1 + 1870.43164062 1338.5703125 l 1 + 1960.29101562 1338.5703125 l 1 + 1828.10351562 735.5 l 1 + 1718.34570312 735.5 l 1 + 1640.58007812 1107.03125 l 1 + 1621.59570312 1246.109375 l 1 + 1611.18945312 1246.109375 l 1 + 1592.20507812 1107.03125 l 1 + 1510.99414062 735.5 l 1 + 1400.39257812 735.5 l 1 +-39.607421875 -87.5 m 5 + -167.505859375 515.5703125 l 5 + -74.201171875 515.5703125 l 5 + -3.326171875 150.0859375 l 5 + 15.658203125 10.1640625 l 5 + 26.908203125 10.1640625 l 5 + 45.892578125 148.3984375 l 5 + 121.970703125 515.5703125 l 5 + 233.416015625 515.5703125 l 5 + 310.337890625 148.3984375 l 5 + 329.322265625 10.1640625 l 5 + 340.572265625 10.1640625 l 5 + 359.556640625 150.0859375 l 5 + 430.431640625 515.5703125 l 5 + 520.291015625 515.5703125 l 5 + 388.103515625 -87.5 l 5 + 278.345703125 -87.5 l 5 + 200.580078125 284.03125 l 5 + 181.595703125 423.109375 l 5 + 171.189453125 423.109375 l 5 + 152.205078125 284.03125 l 5 + 70.994140625 -87.5 l 5 + -39.607421875 -87.5 l 5 +680.392578125 -87.5 m 5 + 552.494140625 515.5703125 l 5 + 645.798828125 515.5703125 l 5 + 716.673828125 150.0859375 l 5 + 735.658203125 10.1640625 l 5 + 746.908203125 10.1640625 l 5 + 765.892578125 148.3984375 l 5 + 841.970703125 515.5703125 l 5 + 953.416015625 515.5703125 l 5 + 1030.33789062 148.3984375 l 5 + 1049.32226562 10.1640625 l 5 + 1060.57226562 10.1640625 l 5 + 1079.55664062 150.0859375 l 5 + 1150.43164062 515.5703125 l 5 + 1240.29101562 515.5703125 l 5 + 1108.10351562 -87.5 l 5 + 998.345703125 -87.5 l 5 + 920.580078125 284.03125 l 5 + 901.595703125 423.109375 l 5 + 891.189453125 423.109375 l 5 + 872.205078125 284.03125 l 5 + 790.994140625 -87.5 l 5 + 680.392578125 -87.5 l 5 +1400.39257812 -87.5 m 5 + 1272.49414062 515.5703125 l 5 + 1365.79882812 515.5703125 l 5 + 1436.67382812 150.0859375 l 5 + 1455.65820312 10.1640625 l 5 + 1466.90820312 10.1640625 l 5 + 1485.89257812 148.3984375 l 5 + 1561.97070312 515.5703125 l 5 + 1673.41601562 515.5703125 l 5 + 1750.33789062 148.3984375 l 5 + 1769.32226562 10.1640625 l 5 + 1780.57226562 10.1640625 l 5 + 1799.55664062 150.0859375 l 5 + 1870.43164062 515.5703125 l 5 + 1960.29101562 515.5703125 l 5 + 1828.10351562 -87.5 l 5 + 1718.34570312 -87.5 l 5 + 1640.58007812 284.03125 l 5 + 1621.59570312 423.109375 l 5 + 1611.18945312 423.109375 l 5 + 1592.20507812 284.03125 l 5 + 1510.99414062 -87.5 l 5 + 1400.39257812 -87.5 l 5 +EndSplineSet +EndChar + +StartChar: uniEFF3 +Encoding: 61427 61427 1 +Width: 1792 +Flags: HW +HStem: 323.95 97.6641<15.6582 26.9082 329.322 340.572 735.658 746.908 1049.32 1060.57 1455.66 1466.91 1769.32 1780.57> 834.56 92.4609<171.189 181.596 891.189 901.596 1611.19 1621.6> +VStem: -167.506 93.3047<833.716 927.021> 121.971 111.445<867.144 927.021> 278.346 109.758<323.95 381.179> 430.432 89.8594<837.161 927.021> 552.494 93.3047<833.716 927.021> 841.971 111.445<867.144 927.021> 998.346 109.758<323.95 381.179> 1150.43 89.8594<837.161 927.021> 1272.49 93.3047<833.716 927.021> 1561.97 111.445<867.144 927.021> 1718.35 109.758<323.95 381.179> 1870.43 89.8594<837.161 927.021> +DStem2: -74.2012 927.021 -167.506 927.021 0.207465 -0.978243<0 372.236> 26.9082 421.614 152.205 695.481 0.135247 0.990812<0 428.665> 310.338 559.849 200.58 695.481 0.204871 -0.978789<-295.26 139.192> 645.799 927.021 552.494 927.021 0.207465 -0.978243<0 372.236> 746.908 421.614 872.205 695.481 0.135247 0.990812<0 428.665> 1030.34 559.849 920.58 695.481 0.204871 -0.978789<-295.26 139.192> 1365.8 927.021 1272.49 927.021 0.207465 -0.978243<0 372.236> 1466.91 421.614 1592.21 695.481 0.135247 0.990812<0 428.665> 1750.34 559.849 1640.58 695.481 0.204871 -0.978789<-295.26 139.192> +LayerCount: 2 +UndoRedoHistory +Layer: 1 +Undoes +UndoOperation +Index: 0 +Type: 3 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +EndUndoes +Redoes +EndRedoes +EndUndoRedoHistory +Fore +SplineSet +-39.607421875 323.950195312 m 1 + -167.505859375 927.020507812 l 1 + -74.201171875 927.020507812 l 1 + -3.326171875 561.536132812 l 1 + 15.658203125 421.614257812 l 1 + 26.908203125 421.614257812 l 1 + 45.892578125 559.848632812 l 1 + 121.970703125 927.020507812 l 1 + 233.416015625 927.020507812 l 1 + 310.337890625 559.848632812 l 1 + 329.322265625 421.614257812 l 1 + 340.572265625 421.614257812 l 1 + 359.556640625 561.536132812 l 1 + 430.431640625 927.020507812 l 1 + 520.291015625 927.020507812 l 1 + 388.103515625 323.950195312 l 1 + 278.345703125 323.950195312 l 1 + 200.580078125 695.481445312 l 1 + 181.595703125 834.559570312 l 1 + 171.189453125 834.559570312 l 1 + 152.205078125 695.481445312 l 1 + 70.994140625 323.950195312 l 1 + -39.607421875 323.950195312 l 1 +680.392578125 323.950195312 m 1 + 552.494140625 927.020507812 l 1 + 645.798828125 927.020507812 l 1 + 716.673828125 561.536132812 l 1 + 735.658203125 421.614257812 l 1 + 746.908203125 421.614257812 l 1 + 765.892578125 559.848632812 l 1 + 841.970703125 927.020507812 l 1 + 953.416015625 927.020507812 l 1 + 1030.33789062 559.848632812 l 1 + 1049.32226562 421.614257812 l 1 + 1060.57226562 421.614257812 l 1 + 1079.55664062 561.536132812 l 1 + 1150.43164062 927.020507812 l 1 + 1240.29101562 927.020507812 l 1 + 1108.10351562 323.950195312 l 1 + 998.345703125 323.950195312 l 1 + 920.580078125 695.481445312 l 1 + 901.595703125 834.559570312 l 1 + 891.189453125 834.559570312 l 1 + 872.205078125 695.481445312 l 1 + 790.994140625 323.950195312 l 1 + 680.392578125 323.950195312 l 1 +1400.39257812 323.950195312 m 1 + 1272.49414062 927.020507812 l 1 + 1365.79882812 927.020507812 l 1 + 1436.67382812 561.536132812 l 1 + 1455.65820312 421.614257812 l 1 + 1466.90820312 421.614257812 l 1 + 1485.89257812 559.848632812 l 1 + 1561.97070312 927.020507812 l 1 + 1673.41601562 927.020507812 l 1 + 1750.33789062 559.848632812 l 1 + 1769.32226562 421.614257812 l 1 + 1780.57226562 421.614257812 l 1 + 1799.55664062 561.536132812 l 1 + 1870.43164062 927.020507812 l 1 + 1960.29101562 927.020507812 l 1 + 1828.10351562 323.950195312 l 1 + 1718.34570312 323.950195312 l 1 + 1640.58007812 695.481445312 l 1 + 1621.59570312 834.559570312 l 1 + 1611.18945312 834.559570312 l 1 + 1592.20507812 695.481445312 l 1 + 1510.99414062 323.950195312 l 1 + 1400.39257812 323.950195312 l 1 +EndSplineSet +EndChar + +StartChar: uniEFF2 +Encoding: 61426 61426 2 +Width: 1792 +Flags: HW +HStem: 290.5 108.516<317.609 330.109 666.125 678.625 1117.61 1130.11 1466.12 1478.62> +VStem: 114.094 103.672<856.906 960.578> 435.734 123.828<900.702 960.578> 609.484 121.953<290.5 347.729> 778.469 99.8438<860.734 960.578> 914.094 103.672<856.906 960.578> 1235.73 123.828<900.702 960.578> 1409.48 121.953<290.5 347.729> 1578.47 99.8438<860.734 960.578> +DStem2: 217.766 960.578 114.094 960.578 0.207465 -0.978243<0 413.596> 330.109 399.016 469.328 703.312 0.135247 0.990812<28.0512 476.294> 645.031 552.609 523.078 703.312 0.204871 -0.978789<-328.066 154.657> 1017.77 960.578 914.094 960.578 0.207465 -0.978243<0 413.596> 1130.11 399.016 1269.33 703.312 0.135247 0.990812<28.0512 476.294> 1445.03 552.609 1323.08 703.312 0.204871 -0.978789<-328.066 154.657> +LayerCount: 2 +UndoRedoHistory +Layer: 1 +Undoes +UndoOperation +Index: 0 +Type: 3 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +EndUndoes +Redoes +EndRedoes +EndUndoRedoHistory +Fore +SplineSet +256.203125 290.5 m 1 + 114.09375 960.578125 l 1 + 217.765625 960.578125 l 1 + 296.515625 554.484375 l 1 + 317.609375 399.015625 l 1 + 330.109375 399.015625 l 1 + 351.203125 552.609375 l 1 + 435.734375 960.578125 l 1 + 559.5625 960.578125 l 1 + 645.03125 552.609375 l 1 + 666.125 399.015625 l 1 + 678.625 399.015625 l 1 + 699.71875 554.484375 l 1 + 778.46875 960.578125 l 1 + 878.3125 960.578125 l 1 + 731.4375 290.5 l 1 + 609.484375 290.5 l 1 + 523.078125 703.3125 l 1 + 501.984375 857.84375 l 1 + 490.421875 857.84375 l 1 + 469.328125 703.3125 l 1 + 379.09375 290.5 l 1 + 256.203125 290.5 l 1 +1056.203125 290.5 m 1 + 914.09375 960.578125 l 1 + 1017.765625 960.578125 l 1 + 1096.515625 554.484375 l 1 + 1117.609375 399.015625 l 1 + 1130.109375 399.015625 l 1 + 1151.203125 552.609375 l 1 + 1235.734375 960.578125 l 1 + 1359.5625 960.578125 l 1 + 1445.03125 552.609375 l 1 + 1466.125 399.015625 l 1 + 1478.625 399.015625 l 1 + 1499.71875 554.484375 l 1 + 1578.46875 960.578125 l 1 + 1678.3125 960.578125 l 1 + 1531.4375 290.5 l 1 + 1409.484375 290.5 l 1 + 1323.078125 703.3125 l 1 + 1301.984375 857.84375 l 1 + 1290.421875 857.84375 l 1 + 1269.328125 703.3125 l 1 + 1179.09375 290.5 l 1 + 1056.203125 290.5 l 1 +EndSplineSet +EndChar + +StartChar: uniEFF5 +Encoding: 61429 61429 3 +Width: 1792 +Flags: HW +HStem: -142.5 108.516<317.609 330.109 666.125 678.625 1117.61 1130.11 1466.12 1478.62> 723.5 108.516<317.609 330.109 666.125 678.625 1117.61 1130.11 1466.12 1478.62> +VStem: 114.094 103.672<423.906 527.578 1289.91 1393.58> 435.734 123.828<467.702 527.578 1333.7 1393.58> 609.484 121.953<-142.5 -85.2713 723.5 780.729> 778.469 99.8438<427.734 527.578 1293.73 1393.58> 914.094 103.672<423.906 527.578 1289.91 1393.58> 1235.73 123.828<467.702 527.578 1333.7 1393.58> 1409.48 121.953<-142.5 -85.2713 723.5 780.729> 1578.47 99.8438<427.734 527.578 1293.73 1393.58> +DStem2: 217.766 1393.58 114.094 1393.58 0.207465 -0.978243<0 413.596> 217.766 527.578 114.094 527.578 0.207465 -0.978243<0 413.596> 330.109 832.016 469.328 1136.31 0.135247 0.990812<28.0512 476.294> 330.109 -33.9844 469.328 270.312 0.135247 0.990812<28.0512 476.294> 645.031 985.609 523.078 1136.31 0.204871 -0.978789<-328.066 154.657> 645.031 119.609 523.078 270.312 0.204871 -0.978789<-328.066 154.657> 1017.77 1393.58 914.094 1393.58 0.207465 -0.978243<0 413.596> 1017.77 527.578 914.094 527.578 0.207465 -0.978243<0 413.596> 1130.11 832.016 1269.33 1136.31 0.135247 0.990812<28.0512 476.294> 1130.11 -33.9844 1269.33 270.312 0.135247 0.990812<28.0512 476.294> 1445.03 985.609 1323.08 1136.31 0.204871 -0.978789<-328.066 154.657> 1445.03 119.609 1323.08 270.312 0.204871 -0.978789<-328.066 154.657> +LayerCount: 2 +UndoRedoHistory +Layer: 1 +Undoes +UndoOperation +Index: 0 +Type: 3 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +EndUndoes +Redoes +EndRedoes +EndUndoRedoHistory +Fore +SplineSet +256.203125 -142.5 m 1 + 114.09375 527.578125 l 1 + 217.765625 527.578125 l 1 + 296.515625 121.484375 l 1 + 317.609375 -33.984375 l 1 + 330.109375 -33.984375 l 1 + 351.203125 119.609375 l 1 + 435.734375 527.578125 l 1 + 559.5625 527.578125 l 1 + 645.03125 119.609375 l 1 + 666.125 -33.984375 l 1 + 678.625 -33.984375 l 1 + 699.71875 121.484375 l 1 + 778.46875 527.578125 l 1 + 878.3125 527.578125 l 1 + 731.4375 -142.5 l 1 + 609.484375 -142.5 l 1 + 523.078125 270.3125 l 1 + 501.984375 424.84375 l 1 + 490.421875 424.84375 l 1 + 469.328125 270.3125 l 1 + 379.09375 -142.5 l 1 + 256.203125 -142.5 l 1 +1056.203125 -142.5 m 1 + 914.09375 527.578125 l 1 + 1017.765625 527.578125 l 1 + 1096.515625 121.484375 l 1 + 1117.609375 -33.984375 l 1 + 1130.109375 -33.984375 l 1 + 1151.203125 119.609375 l 1 + 1235.734375 527.578125 l 1 + 1359.5625 527.578125 l 1 + 1445.03125 119.609375 l 1 + 1466.125 -33.984375 l 1 + 1478.625 -33.984375 l 1 + 1499.71875 121.484375 l 1 + 1578.46875 527.578125 l 1 + 1678.3125 527.578125 l 1 + 1531.4375 -142.5 l 1 + 1409.484375 -142.5 l 1 + 1323.078125 270.3125 l 1 + 1301.984375 424.84375 l 1 + 1290.421875 424.84375 l 1 + 1269.328125 270.3125 l 1 + 1179.09375 -142.5 l 1 + 1056.203125 -142.5 l 1 +256.203125 723.5 m 1 + 114.09375 1393.578125 l 1 + 217.765625 1393.578125 l 1 + 296.515625 987.484375 l 1 + 317.609375 832.015625 l 1 + 330.109375 832.015625 l 1 + 351.203125 985.609375 l 1 + 435.734375 1393.578125 l 1 + 559.5625 1393.578125 l 1 + 645.03125 985.609375 l 1 + 666.125 832.015625 l 1 + 678.625 832.015625 l 1 + 699.71875 987.484375 l 1 + 778.46875 1393.578125 l 1 + 878.3125 1393.578125 l 1 + 731.4375 723.5 l 1 + 609.484375 723.5 l 1 + 523.078125 1136.3125 l 1 + 501.984375 1290.84375 l 1 + 490.421875 1290.84375 l 1 + 469.328125 1136.3125 l 1 + 379.09375 723.5 l 1 + 256.203125 723.5 l 1 +1056.203125 723.5 m 1 + 914.09375 1393.578125 l 1 + 1017.765625 1393.578125 l 1 + 1096.515625 987.484375 l 1 + 1117.609375 832.015625 l 1 + 1130.109375 832.015625 l 1 + 1151.203125 985.609375 l 1 + 1235.734375 1393.578125 l 1 + 1359.5625 1393.578125 l 1 + 1445.03125 985.609375 l 1 + 1466.125 832.015625 l 1 + 1478.625 832.015625 l 1 + 1499.71875 987.484375 l 1 + 1578.46875 1393.578125 l 1 + 1678.3125 1393.578125 l 1 + 1531.4375 723.5 l 1 + 1409.484375 723.5 l 1 + 1323.078125 1136.3125 l 1 + 1301.984375 1290.84375 l 1 + 1290.421875 1290.84375 l 1 + 1269.328125 1136.3125 l 1 + 1179.09375 723.5 l 1 + 1056.203125 723.5 l 1 +EndSplineSet +EndChar + +StartChar: uniEFF1 +Encoding: 61425 61425 4 +Width: 1792 +Flags: H +VStem: 232.799 173.865<979.508 1153.37> 1392.52 167.836<985.537 1153.37> +DStem2: 406.664 1153.37 232.799 1153.37 0.229994 -0.973192<0 877.585> 592.588 294.506 674.291 98 0.24367 0.969858<0 722.624> 993.352 1153.37 895.037 964.373 0.238997 -0.97102<160.026 881.918> 1204.99 296.105 1300.23 98 0.239311 0.970943<0 877.234> +LayerCount: 2 +UndoRedoHistory +Layer: 1 +Undoes +UndoOperation +Index: 0 +Type: 3 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +EndUndoes +Redoes +EndRedoes +EndUndoRedoHistory +Fore +SplineSet +482.21484375 98 m 1 + 232.798828125 1153.37304688 l 1 + 406.6640625 1153.37304688 l 1 + 513.9609375 645.3125 l 1 + 588.158203125 294.505859375 l 1 + 592.587890625 294.505859375 l 1 + 677.3671875 645.3125 l 1 + 802.751953125 1153.37304688 l 1 + 993.3515625 1153.37304688 l 1 + 1117.25976562 645.3125 l 1 + 1200.43945312 296.10546875 l 1 + 1204.9921875 296.10546875 l 1 + 1282.14257812 645.3125 l 1 + 1392.515625 1153.37304688 l 1 + 1560.3515625 1153.37304688 l 1 + 1300.23046875 98 l 1 + 1108.27734375 98 l 1 + 973.6640625 643.8359375 l 1 + 895.037109375 964.373046875 l 1 + 891.9609375 964.373046875 l 1 + 811.857421875 643.8359375 l 1 + 674.291015625 98 l 1 + 482.21484375 98 l 1 +EndSplineSet +EndChar + +StartChar: uniF004 +Encoding: 61444 61444 5 +Width: 1792 +Flags: H +LayerCount: 2 +UndoRedoHistory +Layer: 0 +Undoes +UndoOperation +Index: 0 +Type: 1 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +EndUndoOperation +EndUndoes +Redoes +EndRedoes +EndUndoRedoHistory +UndoRedoHistory +Layer: 1 +Undoes +UndoOperation +Index: 0 +Type: 3 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 1 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +254.8828125 456.1640625 m 4 + 204.1875 456.1640625 161.15625 465.375 125.71875 483.796875 c 132 + 90.28125 502.21875 59.90625 526.96875 34.59375 558.1171875 c 5 + 101.953125 621.1875 l 5 + 123.2578125 595.2421875 146.7421875 575.625 172.3359375 562.40625 c 132 + 198 549.1875 227.25 542.5078125 260.0859375 542.5078125 c 4 + 298.6875 542.5078125 327.7265625 551.15625 347.34375 568.453125 c 132 + 366.890625 585.75 376.734375 609.09375 376.734375 638.4140625 c 4 + 376.734375 662.0390625 369.7734375 680.7421875 355.9921875 694.59375 c 132 + 342.140625 708.4453125 317.671875 718.78125 282.515625 725.671875 c 6 + 228.9375 735.234375 l 6 + 170.2265625 746.1328125 126.140625 765.46875 96.75 793.1015625 c 132 + 67.359375 820.734375 52.734375 858.7734375 52.734375 907.1484375 c 4 + 52.734375 933.65625 57.7265625 957.703125 67.8515625 979.2890625 c 132 + 77.90625 1000.875 92.0390625 1019.015625 110.1796875 1033.7109375 c 132 + 128.3203125 1048.40625 150.328125 1059.796875 176.2734375 1067.8125 c 132 + 202.1484375 1075.8984375 231.2578125 1079.90625 263.53125 1079.90625 c 4 + 309.0234375 1079.90625 348.46875 1072.03125 381.8671875 1056.2109375 c 132 + 415.265625 1040.3203125 443.8125 1017.46875 467.4375 987.515625 c 5 + 399.1640625 927.046875 l 5 + 383.625 947.15625 364.640625 963.328125 342.140625 975.421875 c 132 + 319.7109375 987.515625 291.7265625 993.5625 258.328125 993.5625 c 4 + 223.8046875 993.5625 197.015625 986.6015625 177.9609375 972.8203125 c 132 + 158.9765625 958.96875 149.484375 938.7890625 149.484375 912.3515625 c 4 + 149.484375 886.96875 157.21875 868.125 172.828125 855.75 c 132 + 188.3671875 843.375 212.5546875 833.953125 245.390625 827.625 c 6 + 298.96875 816.4453125 l 6 + 359.4375 804.9140625 403.6640625 785.296875 431.578125 757.6640625 c 132 + 459.4921875 730.03125 473.484375 691.9921875 473.484375 643.6171875 c 4 + 473.484375 615.421875 468.5625 589.7578125 458.7890625 566.6953125 c 132 + 449.015625 543.703125 434.7421875 523.9453125 416.0390625 507.5625 c 132 + 397.265625 491.109375 374.4140625 478.453125 347.34375 469.5234375 c 132 + 320.2734375 460.59375 289.40625 456.1640625 254.8828125 456.1640625 c 4 +1039.7109375 927.890625 m 5 + 1035.3515625 927.890625 l 5 + 987.8203125 830.2265625 l 5 + 855.6328125 589.1953125 l 5 + 723.4453125 830.2265625 l 5 + 675.9140625 927.890625 l 5 + 671.625 927.890625 l 5 + 671.625 466.5 l 5 + 578.3203125 466.5 l 5 + 578.3203125 1069.5703125 l 5 + 694.0546875 1069.5703125 l 5 + 855.6328125 762.8671875 l 5 + 860.8359375 762.8671875 l 5 + 1022.4140625 1069.5703125 l 5 + 1133.015625 1069.5703125 l 5 + 1133.015625 466.5 l 5 + 1039.7109375 466.5 l 5 + 1039.7109375 927.890625 l 5 +1298.3203125 466.5 m 5 + 1298.3203125 1069.5703125 l 5 + 1557.4921875 1069.5703125 l 6 + 1613.390625 1069.5703125 1656.5625 1053.1875 1687.078125 1020.3515625 c 132 + 1717.6640625 987.515625 1732.921875 943.4296875 1732.921875 888.1640625 c 260 + 1732.921875 832.828125 1717.6640625 788.7421875 1687.078125 755.90625 c 132 + 1656.5625 723.140625 1613.390625 706.6875 1557.4921875 706.6875 c 6 + 1395.9140625 706.6875 l 5 + 1395.9140625 466.5 l 5 + 1298.3203125 466.5 l 5 +1395.9140625 792.2578125 m 5 + 1551.4453125 792.2578125 l 6 + 1576.1953125 792.2578125 1595.53125 798.7265625 1609.3125 811.6640625 c 132 + 1623.1640625 824.6015625 1630.0546875 843.234375 1630.0546875 867.421875 c 6 + 1630.0546875 908.8359375 l 6 + 1630.0546875 933.09375 1623.1640625 951.65625 1609.3125 964.59375 c 132 + 1595.53125 977.53125 1576.1953125 984.0703125 1551.4453125 984.0703125 c 6 + 1395.9140625 984.0703125 l 5 + 1395.9140625 792.2578125 l 5 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 2 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 3 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 4 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +254.8828125 -10.3359375 m 4 + 204.1875 -10.3359375 161.15625 -1.125 125.71875 17.296875 c 132 + 90.28125 35.71875 59.90625 60.46875 34.59375 91.6171875 c 5 + 101.953125 154.6875 l 5 + 123.2578125 128.7421875 146.7421875 109.125 172.3359375 95.90625 c 132 + 198 82.6875 227.25 76.0078125 260.0859375 76.0078125 c 4 + 298.6875 76.0078125 327.7265625 84.65625 347.34375 101.953125 c 132 + 366.890625 119.25 376.734375 142.59375 376.734375 171.9140625 c 4 + 376.734375 195.5390625 369.7734375 214.2421875 355.9921875 228.09375 c 132 + 342.140625 241.9453125 317.671875 252.28125 282.515625 259.171875 c 6 + 228.9375 268.734375 l 6 + 170.2265625 279.6328125 126.140625 298.96875 96.75 326.6015625 c 132 + 67.359375 354.234375 52.734375 392.2734375 52.734375 440.6484375 c 4 + 52.734375 467.15625 57.7265625 491.203125 67.8515625 512.7890625 c 132 + 77.90625 534.375 92.0390625 552.515625 110.1796875 567.2109375 c 132 + 128.3203125 581.90625 150.328125 593.296875 176.2734375 601.3125 c 132 + 202.1484375 609.3984375 231.2578125 613.40625 263.53125 613.40625 c 4 + 309.0234375 613.40625 348.46875 605.53125 381.8671875 589.7109375 c 132 + 415.265625 573.8203125 443.8125 550.96875 467.4375 521.015625 c 5 + 399.1640625 460.546875 l 5 + 383.625 480.65625 364.640625 496.828125 342.140625 508.921875 c 132 + 319.7109375 521.015625 291.7265625 527.0625 258.328125 527.0625 c 4 + 223.8046875 527.0625 197.015625 520.1015625 177.9609375 506.3203125 c 132 + 158.9765625 492.46875 149.484375 472.2890625 149.484375 445.8515625 c 4 + 149.484375 420.46875 157.21875 401.625 172.828125 389.25 c 132 + 188.3671875 376.875 212.5546875 367.453125 245.390625 361.125 c 6 + 298.96875 349.9453125 l 6 + 359.4375 338.4140625 403.6640625 318.796875 431.578125 291.1640625 c 132 + 459.4921875 263.53125 473.484375 225.4921875 473.484375 177.1171875 c 4 + 473.484375 148.921875 468.5625 123.2578125 458.7890625 100.1953125 c 132 + 449.015625 77.203125 434.7421875 57.4453125 416.0390625 41.0625 c 132 + 397.265625 24.609375 374.4140625 11.953125 347.34375 3.0234375 c 132 + 320.2734375 -5.90625 289.40625 -10.3359375 254.8828125 -10.3359375 c 4 +1039.7109375 461.390625 m 5 + 1035.3515625 461.390625 l 5 + 987.8203125 363.7265625 l 5 + 855.6328125 122.6953125 l 5 + 723.4453125 363.7265625 l 5 + 675.9140625 461.390625 l 5 + 671.625 461.390625 l 5 + 671.625 0 l 5 + 578.3203125 0 l 5 + 578.3203125 603.0703125 l 5 + 694.0546875 603.0703125 l 5 + 855.6328125 296.3671875 l 5 + 860.8359375 296.3671875 l 5 + 1022.4140625 603.0703125 l 5 + 1133.015625 603.0703125 l 5 + 1133.015625 0 l 5 + 1039.7109375 0 l 5 + 1039.7109375 461.390625 l 5 +1298.3203125 0 m 5 + 1298.3203125 603.0703125 l 5 + 1557.4921875 603.0703125 l 6 + 1613.390625 603.0703125 1656.5625 586.6875 1687.078125 553.8515625 c 132 + 1717.6640625 521.015625 1732.921875 476.9296875 1732.921875 421.6640625 c 260 + 1732.921875 366.328125 1717.6640625 322.2421875 1687.078125 289.40625 c 132 + 1656.5625 256.640625 1613.390625 240.1875 1557.4921875 240.1875 c 6 + 1395.9140625 240.1875 l 5 + 1395.9140625 0 l 5 + 1298.3203125 0 l 5 +1395.9140625 325.7578125 m 5 + 1551.4453125 325.7578125 l 6 + 1576.1953125 325.7578125 1595.53125 332.2265625 1609.3125 345.1640625 c 132 + 1623.1640625 358.1015625 1630.0546875 376.734375 1630.0546875 400.921875 c 6 + 1630.0546875 442.3359375 l 6 + 1630.0546875 466.59375 1623.1640625 485.15625 1609.3125 498.09375 c 132 + 1595.53125 511.03125 1576.1953125 517.5703125 1551.4453125 517.5703125 c 6 + 1395.9140625 517.5703125 l 5 + 1395.9140625 325.7578125 l 5 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 5 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 6 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 7 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +3.5400390625 -0.1435546875 m 4 + 2.8359375 -0.1435546875 2.23828125 -0.015625 1.74609375 0.240234375 c 132 + 1.25390625 0.49609375 0.83203125 0.83984375 0.48046875 1.2724609375 c 5 + 1.416015625 2.1484375 l 5 + 1.7119140625 1.7880859375 2.0380859375 1.515625 2.3935546875 1.33203125 c 132 + 2.75 1.1484375 3.15625 1.0556640625 3.6123046875 1.0556640625 c 4 + 4.1484375 1.0556640625 4.5517578125 1.17578125 4.82421875 1.416015625 c 132 + 5.095703125 1.65625 5.232421875 1.98046875 5.232421875 2.3876953125 c 4 + 5.232421875 2.7158203125 5.1357421875 2.9755859375 4.9443359375 3.16796875 c 132 + 4.751953125 3.3603515625 4.412109375 3.50390625 3.923828125 3.599609375 c 6 + 3.1796875 3.732421875 l 6 + 2.3642578125 3.8837890625 1.751953125 4.15234375 1.34375 4.5361328125 c 132 + 0.935546875 4.919921875 0.732421875 5.4482421875 0.732421875 6.1201171875 c 4 + 0.732421875 6.48828125 0.8017578125 6.822265625 0.9423828125 7.1220703125 c 132 + 1.08203125 7.421875 1.2783203125 7.673828125 1.5302734375 7.8779296875 c 132 + 1.7822265625 8.08203125 2.087890625 8.240234375 2.4482421875 8.3515625 c 132 + 2.8076171875 8.4638671875 3.2119140625 8.51953125 3.66015625 8.51953125 c 4 + 4.2919921875 8.51953125 4.83984375 8.41015625 5.3037109375 8.1904296875 c 132 + 5.767578125 7.9697265625 6.1640625 7.65234375 6.4921875 7.236328125 c 5 + 5.5439453125 6.396484375 l 5 + 5.328125 6.67578125 5.064453125 6.900390625 4.751953125 7.068359375 c 132 + 4.4404296875 7.236328125 4.0517578125 7.3203125 3.587890625 7.3203125 c 4 + 3.1083984375 7.3203125 2.736328125 7.2236328125 2.4716796875 7.0322265625 c 132 + 2.2080078125 6.83984375 2.076171875 6.5595703125 2.076171875 6.1923828125 c 4 + 2.076171875 5.83984375 2.18359375 5.578125 2.400390625 5.40625 c 132 + 2.6162109375 5.234375 2.9521484375 5.103515625 3.408203125 5.015625 c 6 + 4.15234375 4.8603515625 l 6 + 4.9921875 4.7001953125 5.6064453125 4.427734375 5.994140625 4.0439453125 c 132 + 6.3818359375 3.66015625 6.576171875 3.1318359375 6.576171875 2.4599609375 c 4 + 6.576171875 2.068359375 6.5078125 1.7119140625 6.3720703125 1.3916015625 c 132 + 6.236328125 1.072265625 6.0380859375 0.7978515625 5.7783203125 0.5703125 c 132 + 5.517578125 0.341796875 5.2001953125 0.166015625 4.82421875 0.0419921875 c 132 + 4.4482421875 -0.08203125 4.01953125 -0.1435546875 3.5400390625 -0.1435546875 c 4 +14.4404296875 6.408203125 m 5 + 14.3798828125 6.408203125 l 5 + 13.7197265625 5.0517578125 l 5 + 11.8837890625 1.7041015625 l 5 + 10.0478515625 5.0517578125 l 5 + 9.3876953125 6.408203125 l 5 + 9.328125 6.408203125 l 5 + 9.328125 0 l 5 + 8.0322265625 0 l 5 + 8.0322265625 8.3759765625 l 5 + 9.6396484375 8.3759765625 l 5 + 11.8837890625 4.1162109375 l 5 + 11.9560546875 4.1162109375 l 5 + 14.2001953125 8.3759765625 l 5 + 15.736328125 8.3759765625 l 5 + 15.736328125 0 l 5 + 14.4404296875 0 l 5 + 14.4404296875 6.408203125 l 5 +18.0322265625 0 m 5 + 18.0322265625 8.3759765625 l 5 + 21.6318359375 8.3759765625 l 6 + 22.408203125 8.3759765625 23.0078125 8.1484375 23.431640625 7.6923828125 c 132 + 23.8564453125 7.236328125 24.068359375 6.6240234375 24.068359375 5.8564453125 c 260 + 24.068359375 5.087890625 23.8564453125 4.4755859375 23.431640625 4.01953125 c 132 + 23.0078125 3.564453125 22.408203125 3.3359375 21.6318359375 3.3359375 c 6 + 19.3876953125 3.3359375 l 5 + 19.3876953125 0 l 5 + 18.0322265625 0 l 5 +19.3876953125 4.5244140625 m 5 + 21.5478515625 4.5244140625 l 6 + 21.8916015625 4.5244140625 22.16015625 4.6142578125 22.3515625 4.7939453125 c 132 + 22.5439453125 4.9736328125 22.6396484375 5.232421875 22.6396484375 5.568359375 c 6 + 22.6396484375 6.1435546875 l 6 + 22.6396484375 6.48046875 22.5439453125 6.73828125 22.3515625 6.91796875 c 132 + 22.16015625 7.09765625 21.8916015625 7.1884765625 21.5478515625 7.1884765625 c 6 + 19.3876953125 7.1884765625 l 5 + 19.3876953125 4.5244140625 l 5 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 8 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 9 +Type: 1 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +EndUndoOperation +EndUndoes +Redoes +EndRedoes +EndUndoRedoHistory +Fore +SplineSet +267.583007812 313.6640625 m 0 + 216.887695312 313.6640625 173.856445312 322.875 138.418945312 341.296875 c 128 + 102.981445312 359.71875 72.6064453125 384.46875 47.2939453125 415.6171875 c 1 + 114.653320312 478.6875 l 1 + 135.958007812 452.7421875 159.442382812 433.125 185.036132812 419.90625 c 128 + 210.700195312 406.6875 239.950195312 400.0078125 272.786132812 400.0078125 c 0 + 311.387695312 400.0078125 340.426757812 408.65625 360.043945312 425.953125 c 128 + 379.590820312 443.25 389.434570312 466.59375 389.434570312 495.9140625 c 0 + 389.434570312 519.5390625 382.473632812 538.2421875 368.692382812 552.09375 c 128 + 354.840820312 565.9453125 330.372070312 576.28125 295.215820312 583.171875 c 2 + 241.637695312 592.734375 l 2 + 182.926757812 603.6328125 138.840820312 622.96875 109.450195312 650.6015625 c 128 + 80.0595703125 678.234375 65.4345703125 716.2734375 65.4345703125 764.6484375 c 0 + 65.4345703125 791.15625 70.4267578125 815.203125 80.5517578125 836.7890625 c 128 + 90.6064453125 858.375 104.739257812 876.515625 122.879882812 891.2109375 c 128 + 141.020507812 905.90625 163.028320312 917.296875 188.973632812 925.3125 c 128 + 214.848632812 933.3984375 243.958007812 937.40625 276.231445312 937.40625 c 0 + 321.723632812 937.40625 361.168945312 929.53125 394.567382812 913.7109375 c 128 + 427.965820312 897.8203125 456.512695312 874.96875 480.137695312 845.015625 c 1 + 411.864257812 784.546875 l 1 + 396.325195312 804.65625 377.340820312 820.828125 354.840820312 832.921875 c 128 + 332.411132812 845.015625 304.426757812 851.0625 271.028320312 851.0625 c 0 + 236.504882812 851.0625 209.715820312 844.1015625 190.661132812 830.3203125 c 128 + 171.676757812 816.46875 162.184570312 796.2890625 162.184570312 769.8515625 c 0 + 162.184570312 744.46875 169.918945312 725.625 185.528320312 713.25 c 128 + 201.067382812 700.875 225.254882812 691.453125 258.090820312 685.125 c 2 + 311.668945312 673.9453125 l 2 + 372.137695312 662.4140625 416.364257812 642.796875 444.278320312 615.1640625 c 128 + 472.192382812 587.53125 486.184570312 549.4921875 486.184570312 501.1171875 c 0 + 486.184570312 472.921875 481.262695312 447.2578125 471.489257812 424.1953125 c 128 + 461.715820312 401.203125 447.442382812 381.4453125 428.739257812 365.0625 c 128 + 409.965820312 348.609375 387.114257812 335.953125 360.043945312 327.0234375 c 128 + 332.973632812 318.09375 302.106445312 313.6640625 267.583007812 313.6640625 c 0 +1052.41113281 785.390625 m 1 + 1048.05175781 785.390625 l 1 + 1000.52050781 687.7265625 l 1 + 868.333007812 446.6953125 l 1 + 736.145507812 687.7265625 l 1 + 688.614257812 785.390625 l 1 + 684.325195312 785.390625 l 1 + 684.325195312 324 l 1 + 591.020507812 324 l 1 + 591.020507812 927.0703125 l 1 + 706.754882812 927.0703125 l 1 + 868.333007812 620.3671875 l 1 + 873.536132812 620.3671875 l 1 + 1035.11425781 927.0703125 l 1 + 1145.71582031 927.0703125 l 1 + 1145.71582031 324 l 1 + 1052.41113281 324 l 1 + 1052.41113281 785.390625 l 1 +1311.02050781 324 m 1 + 1311.02050781 927.0703125 l 1 + 1570.19238281 927.0703125 l 2 + 1626.09082031 927.0703125 1669.26269531 910.6875 1699.77832031 877.8515625 c 128 + 1730.36425781 845.015625 1745.62207031 800.9296875 1745.62207031 745.6640625 c 256 + 1745.62207031 690.328125 1730.36425781 646.2421875 1699.77832031 613.40625 c 128 + 1669.26269531 580.640625 1626.09082031 564.1875 1570.19238281 564.1875 c 2 + 1408.61425781 564.1875 l 1 + 1408.61425781 324 l 1 + 1311.02050781 324 l 1 +1408.61425781 649.7578125 m 1 + 1564.14550781 649.7578125 l 2 + 1588.89550781 649.7578125 1608.23144531 656.2265625 1622.01269531 669.1640625 c 128 + 1635.86425781 682.1015625 1642.75488281 700.734375 1642.75488281 724.921875 c 2 + 1642.75488281 766.3359375 l 2 + 1642.75488281 790.59375 1635.86425781 809.15625 1622.01269531 822.09375 c 128 + 1608.23144531 835.03125 1588.89550781 841.5703125 1564.14550781 841.5703125 c 2 + 1408.61425781 841.5703125 l 1 + 1408.61425781 649.7578125 l 1 +EndSplineSet +EndChar + +StartChar: uniF01A +Encoding: 61466 61466 6 +Width: 1792 +Flags: H +LayerCount: 2 +UndoRedoHistory +Layer: 0 +Undoes +UndoOperation +Index: 0 +Type: 1 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +EndUndoOperation +EndUndoes +Redoes +EndRedoes +EndUndoRedoHistory +UndoRedoHistory +Layer: 1 +Undoes +UndoOperation +Index: 0 +Type: 3 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 1 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +260.9296875 -10.3359375 m 4 + 227.53125 -10.3359375 197.71875 -4.921875 171.4921875 6.046875 c 132 + 145.265625 17.015625 123.1171875 32.6953125 104.9765625 53.15625 c 132 + 86.8359375 73.6171875 72.84375 98.2265625 63.0703125 126.984375 c 132 + 53.296875 155.8125 48.375 188.3671875 48.375 224.6484375 c 4 + 48.375 268.3828125 54.984375 309.5859375 68.2734375 348.1875 c 132 + 81.4921875 386.7890625 98.5078125 422.2265625 119.25 454.4296875 c 132 + 139.9921875 486.703125 163.125 515.390625 188.7890625 540.421875 c 132 + 214.3828125 565.453125 239.625 586.3359375 264.375 603.0703125 c 5 + 393.9609375 603.0703125 l 5 + 360 578.3203125 329.484375 554.4140625 302.4140625 531.3515625 c 132 + 275.34375 508.2890625 251.71875 484.734375 231.5390625 460.546875 c 132 + 211.359375 436.2890625 194.5546875 410.6953125 180.984375 383.625 c 132 + 167.484375 356.5546875 156.9375 326.8828125 149.484375 294.609375 c 5 + 155.53125 292.921875 l 5 + 161.859375 305.015625 169.171875 316.3359375 177.5390625 327.0234375 c 132 + 185.90625 337.7109375 195.6796875 347.0625 206.9296875 355.078125 c 132 + 218.1796875 363.1640625 230.9765625 369.4921875 245.390625 374.1328125 c 132 + 259.8046875 378.703125 276.46875 381.0234375 295.453125 381.0234375 c 4 + 320.8359375 381.0234375 344.3203125 376.734375 365.90625 368.0859375 c 132 + 387.4921875 359.4375 406.1953125 346.921875 422.0859375 330.46875 c 132 + 437.90625 314.0859375 450.28125 294.328125 459.2109375 271.265625 c 132 + 468.140625 248.2734375 472.640625 222.609375 472.640625 194.4140625 c 4 + 472.640625 163.8984375 467.578125 136.0546875 457.453125 111.0234375 c 132 + 447.3984375 85.9921875 433.125 64.546875 414.703125 46.6875 c 132 + 396.28125 28.828125 373.9921875 14.8359375 347.765625 4.78125 c 132 + 321.5390625 -5.34375 292.640625 -10.3359375 260.9296875 -10.3359375 c 4 +260.9296875 69.1171875 m 260 + 296.0859375 69.1171875 323.4375 78.46875 342.984375 97.171875 c 132 + 362.6015625 115.9453125 372.375 143.4375 372.375 179.71875 c 6 + 372.375 191.8125 l 6 + 372.375 228.09375 362.6015625 255.5859375 342.984375 274.2890625 c 132 + 323.4375 293.0625 296.0859375 302.4140625 260.9296875 302.4140625 c 260 + 225.7734375 302.4140625 198.421875 293.0625 178.875 274.2890625 c 132 + 159.2578125 255.5859375 149.484375 228.09375 149.484375 191.8125 c 6 + 149.484375 179.71875 l 6 + 149.484375 143.4375 159.2578125 115.9453125 178.875 97.171875 c 132 + 198.421875 78.46875 225.7734375 69.1171875 260.9296875 69.1171875 c 260 +974.8828125 -10.3359375 m 4 + 924.1875 -10.3359375 881.15625 -1.125 845.71875 17.296875 c 132 + 810.28125 35.71875 779.90625 60.46875 754.59375 91.6171875 c 5 + 821.953125 154.6875 l 5 + 843.2578125 128.7421875 866.7421875 109.125 892.3359375 95.90625 c 132 + 918 82.6875 947.25 76.0078125 980.0859375 76.0078125 c 4 + 1018.6875 76.0078125 1047.7265625 84.65625 1067.34375 101.953125 c 132 + 1086.890625 119.25 1096.734375 142.59375 1096.734375 171.9140625 c 4 + 1096.734375 195.5390625 1089.7734375 214.2421875 1075.9921875 228.09375 c 132 + 1062.140625 241.9453125 1037.671875 252.28125 1002.515625 259.171875 c 6 + 948.9375 268.734375 l 6 + 890.2265625 279.6328125 846.140625 298.96875 816.75 326.6015625 c 132 + 787.359375 354.234375 772.734375 392.2734375 772.734375 440.6484375 c 4 + 772.734375 467.15625 777.7265625 491.203125 787.8515625 512.7890625 c 132 + 797.90625 534.375 812.0390625 552.515625 830.1796875 567.2109375 c 132 + 848.3203125 581.90625 870.328125 593.296875 896.2734375 601.3125 c 132 + 922.1484375 609.3984375 951.2578125 613.40625 983.53125 613.40625 c 4 + 1029.0234375 613.40625 1068.46875 605.53125 1101.8671875 589.7109375 c 132 + 1135.265625 573.8203125 1163.8125 550.96875 1187.4375 521.015625 c 5 + 1119.1640625 460.546875 l 5 + 1103.625 480.65625 1084.640625 496.828125 1062.140625 508.921875 c 132 + 1039.7109375 521.015625 1011.7265625 527.0625 978.328125 527.0625 c 4 + 943.8046875 527.0625 917.015625 520.1015625 897.9609375 506.3203125 c 132 + 878.9765625 492.46875 869.484375 472.2890625 869.484375 445.8515625 c 4 + 869.484375 420.46875 877.21875 401.625 892.828125 389.25 c 132 + 908.3671875 376.875 932.5546875 367.453125 965.390625 361.125 c 6 + 1018.96875 349.9453125 l 6 + 1079.4375 338.4140625 1123.6640625 318.796875 1151.578125 291.1640625 c 132 + 1179.4921875 263.53125 1193.484375 225.4921875 1193.484375 177.1171875 c 4 + 1193.484375 148.921875 1188.5625 123.2578125 1178.7890625 100.1953125 c 132 + 1169.015625 77.203125 1154.7421875 57.4453125 1136.0390625 41.0625 c 132 + 1117.265625 24.609375 1094.4140625 11.953125 1067.34375 3.0234375 c 132 + 1040.2734375 -5.90625 1009.40625 -10.3359375 974.8828125 -10.3359375 c 4 +268.12890625 878 m 1 + 70.26953125 1481.0703125 l 1 + 171.37890625 1481.0703125 l 1 + 267.28515625 1183.015625 l 1 + 325.15234375 973.0625 l 1 + 328.59765625 973.0625 l 1 + 387.37890625 1183.015625 l 1 + 483.28515625 1481.0703125 l 1 + 581.79296875 1481.0703125 l 1 + 381.33203125 878 l 1 + 268.12890625 878 l 1 +802.64453125 878 m 1 + 705.05078125 878 l 1 + 705.05078125 1481.0703125 l 1 + 965.06640625 1481.0703125 l 2 + 1019.27734375 1481.0703125 1061.88671875 1464.828125 1092.96484375 1432.2734375 c 128 + 1124.04296875 1399.71875 1139.65234375 1355.4921875 1139.65234375 1299.6640625 c 0 + 1139.65234375 1256.421875 1129.66796875 1220.5625 1109.83984375 1192.0859375 c 128 + 1089.94140625 1163.5390625 1060.69140625 1143.5703125 1022.08984375 1132.0390625 c 1 + 1152.58984375 878 l 1 + 1043.74609375 878 l 1 + 922.73828125 1121.6328125 l 1 + 802.64453125 1121.6328125 l 1 + 802.64453125 878 l 1 +958.17578125 1203.7578125 m 2 + 982.92578125 1203.7578125 1002.26171875 1210.2265625 1016.04296875 1223.1640625 c 128 + 1029.89453125 1236.1015625 1036.78515625 1254.734375 1036.78515625 1278.921875 c 2 + 1036.78515625 1320.3359375 l 2 + 1036.78515625 1344.59375 1029.89453125 1363.15625 1016.04296875 1376.09375 c 128 + 1002.26171875 1389.03125 982.92578125 1395.5703125 958.17578125 1395.5703125 c 2 + 802.64453125 1395.5703125 l 1 + 802.64453125 1203.7578125 l 1 + 958.17578125 1203.7578125 l 2 +1507.38671875 867.6640625 m 0 + 1428.49609375 867.6640625 1366.55078125 894.2421875 1321.62109375 947.5390625 c 128 + 1276.69140625 1000.8359375 1254.26171875 1078.1796875 1254.26171875 1179.5703125 c 0 + 1254.26171875 1230.1953125 1260.02734375 1274.84375 1271.55859375 1313.4453125 c 128 + 1283.01953125 1352.046875 1299.75390625 1384.6015625 1321.62109375 1411.109375 c 128 + 1343.55859375 1437.6171875 1370.13671875 1457.5859375 1401.56640625 1471.15625 c 128 + 1432.92578125 1484.65625 1468.22265625 1491.40625 1507.38671875 1491.40625 c 0 + 1559.83984375 1491.40625 1603.71484375 1479.9453125 1639.15234375 1456.8828125 c 128 + 1674.58984375 1433.8203125 1702.36328125 1399.859375 1722.54296875 1354.9296875 c 1 + 1640.48828125 1310 l 1 + 1630.08203125 1338.828125 1614.12109375 1361.6796875 1592.53515625 1378.6953125 c 128 + 1570.87890625 1395.7109375 1542.54296875 1404.1484375 1507.38671875 1404.1484375 c 0 + 1460.76953125 1404.1484375 1424.13671875 1388.328125 1397.69921875 1356.6875 c 128 + 1371.19140625 1324.9765625 1357.90234375 1281.171875 1357.90234375 1225.34375 c 2 + 1357.90234375 1133.7265625 l 2 + 1357.90234375 1077.8984375 1371.19140625 1034.09375 1397.69921875 1002.3828125 c 128 + 1424.13671875 970.7421875 1460.76953125 954.921875 1507.38671875 954.921875 c 0 + 1543.66796875 954.921875 1573.19921875 964.2734375 1595.98046875 982.9765625 c 128 + 1618.69140625 1001.6796875 1635.56640625 1025.7265625 1646.53515625 1055.1171875 c 1 + 1725.14453125 1007.5859375 l 1 + 1704.96484375 963.8515625 1676.76953125 929.5390625 1640.48828125 904.7890625 c 128 + 1604.13671875 880.0390625 1559.83984375 867.6640625 1507.38671875 867.6640625 c 0 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 2 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 3 +Type: 1 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +3.6240234375 -0.1435546875 m 4 + 3.16015625 -0.1435546875 2.74609375 -0.068359375 2.3818359375 0.083984375 c 132 + 2.017578125 0.236328125 1.7099609375 0.4541015625 1.4580078125 0.73828125 c 132 + 1.2060546875 1.0224609375 1.01171875 1.3642578125 0.8759765625 1.763671875 c 132 + 0.740234375 2.1640625 0.671875 2.6162109375 0.671875 3.1201171875 c 4 + 0.671875 3.7275390625 0.763671875 4.2998046875 0.9482421875 4.8359375 c 132 + 1.1318359375 5.3720703125 1.3681640625 5.8642578125 1.65625 6.3115234375 c 132 + 1.9443359375 6.759765625 2.265625 7.158203125 2.6220703125 7.505859375 c 132 + 2.9775390625 7.853515625 3.328125 8.1435546875 3.671875 8.3759765625 c 5 + 5.4716796875 8.3759765625 l 5 + 5 8.0322265625 4.576171875 7.7001953125 4.2001953125 7.3798828125 c 132 + 3.82421875 7.0595703125 3.49609375 6.732421875 3.2158203125 6.396484375 c 132 + 2.935546875 6.0595703125 2.7021484375 5.7041015625 2.513671875 5.328125 c 132 + 2.326171875 4.9521484375 2.1796875 4.5400390625 2.076171875 4.091796875 c 5 + 2.16015625 4.068359375 l 5 + 2.248046875 4.236328125 2.349609375 4.3935546875 2.4658203125 4.5419921875 c 132 + 2.58203125 4.6904296875 2.7177734375 4.8203125 2.8740234375 4.931640625 c 132 + 3.0302734375 5.0439453125 3.2080078125 5.1318359375 3.408203125 5.1962890625 c 132 + 3.6083984375 5.259765625 3.83984375 5.2919921875 4.103515625 5.2919921875 c 4 + 4.4560546875 5.2919921875 4.7822265625 5.232421875 5.08203125 5.1123046875 c 132 + 5.3818359375 4.9921875 5.6416015625 4.818359375 5.8623046875 4.58984375 c 132 + 6.08203125 4.3623046875 6.25390625 4.087890625 6.3779296875 3.767578125 c 132 + 6.501953125 3.4482421875 6.564453125 3.091796875 6.564453125 2.7001953125 c 4 + 6.564453125 2.2763671875 6.494140625 1.8896484375 6.353515625 1.5419921875 c 132 + 6.2138671875 1.1943359375 6.015625 0.896484375 5.759765625 0.6484375 c 132 + 5.50390625 0.400390625 5.1943359375 0.2060546875 4.830078125 0.06640625 c 132 + 4.4658203125 -0.07421875 4.064453125 -0.1435546875 3.6240234375 -0.1435546875 c 4 +3.6240234375 0.9599609375 m 260 + 4.1123046875 0.9599609375 4.4921875 1.08984375 4.763671875 1.349609375 c 132 + 5.0361328125 1.6103515625 5.171875 1.9921875 5.171875 2.49609375 c 6 + 5.171875 2.6640625 l 6 + 5.171875 3.16796875 5.0361328125 3.5498046875 4.763671875 3.8095703125 c 132 + 4.4921875 4.0703125 4.1123046875 4.2001953125 3.6240234375 4.2001953125 c 260 + 3.1357421875 4.2001953125 2.755859375 4.0703125 2.484375 3.8095703125 c 132 + 2.2119140625 3.5498046875 2.076171875 3.16796875 2.076171875 2.6640625 c 6 + 2.076171875 2.49609375 l 6 + 2.076171875 1.9921875 2.2119140625 1.6103515625 2.484375 1.349609375 c 132 + 2.755859375 1.08984375 3.1357421875 0.9599609375 3.6240234375 0.9599609375 c 260 +13.5400390625 -0.1435546875 m 4 + 12.8359375 -0.1435546875 12.23828125 -0.015625 11.74609375 0.240234375 c 132 + 11.25390625 0.49609375 10.83203125 0.83984375 10.48046875 1.2724609375 c 5 + 11.416015625 2.1484375 l 5 + 11.7119140625 1.7880859375 12.0380859375 1.515625 12.3935546875 1.33203125 c 132 + 12.75 1.1484375 13.15625 1.0556640625 13.6123046875 1.0556640625 c 4 + 14.1484375 1.0556640625 14.5517578125 1.17578125 14.82421875 1.416015625 c 132 + 15.095703125 1.65625 15.232421875 1.98046875 15.232421875 2.3876953125 c 4 + 15.232421875 2.7158203125 15.1357421875 2.9755859375 14.9443359375 3.16796875 c 132 + 14.751953125 3.3603515625 14.412109375 3.50390625 13.923828125 3.599609375 c 6 + 13.1796875 3.732421875 l 6 + 12.3642578125 3.8837890625 11.751953125 4.15234375 11.34375 4.5361328125 c 132 + 10.935546875 4.919921875 10.732421875 5.4482421875 10.732421875 6.1201171875 c 4 + 10.732421875 6.48828125 10.8017578125 6.822265625 10.9423828125 7.1220703125 c 132 + 11.08203125 7.421875 11.2783203125 7.673828125 11.5302734375 7.8779296875 c 132 + 11.7822265625 8.08203125 12.087890625 8.240234375 12.4482421875 8.3515625 c 132 + 12.8076171875 8.4638671875 13.2119140625 8.51953125 13.66015625 8.51953125 c 4 + 14.2919921875 8.51953125 14.83984375 8.41015625 15.3037109375 8.1904296875 c 132 + 15.767578125 7.9697265625 16.1640625 7.65234375 16.4921875 7.236328125 c 5 + 15.5439453125 6.396484375 l 5 + 15.328125 6.67578125 15.064453125 6.900390625 14.751953125 7.068359375 c 132 + 14.4404296875 7.236328125 14.0517578125 7.3203125 13.587890625 7.3203125 c 4 + 13.1083984375 7.3203125 12.736328125 7.2236328125 12.4716796875 7.0322265625 c 132 + 12.2080078125 6.83984375 12.076171875 6.5595703125 12.076171875 6.1923828125 c 4 + 12.076171875 5.83984375 12.18359375 5.578125 12.400390625 5.40625 c 132 + 12.6162109375 5.234375 12.9521484375 5.103515625 13.408203125 5.015625 c 6 + 14.15234375 4.8603515625 l 6 + 14.9921875 4.7001953125 15.6064453125 4.427734375 15.994140625 4.0439453125 c 132 + 16.3818359375 3.66015625 16.576171875 3.1318359375 16.576171875 2.4599609375 c 4 + 16.576171875 2.068359375 16.5078125 1.7119140625 16.3720703125 1.3916015625 c 132 + 16.236328125 1.072265625 16.0380859375 0.7978515625 15.7783203125 0.5703125 c 132 + 15.517578125 0.341796875 15.2001953125 0.166015625 14.82421875 0.0419921875 c 132 + 14.4482421875 -0.08203125 14.01953125 -0.1435546875 13.5400390625 -0.1435546875 c 4 +268.12890625 878 m 1 + 70.26953125 1481.0703125 l 1 + 171.37890625 1481.0703125 l 1 + 267.28515625 1183.015625 l 1 + 325.15234375 973.0625 l 1 + 328.59765625 973.0625 l 1 + 387.37890625 1183.015625 l 1 + 483.28515625 1481.0703125 l 1 + 581.79296875 1481.0703125 l 1 + 381.33203125 878 l 1 + 268.12890625 878 l 1 +802.64453125 878 m 1 + 705.05078125 878 l 1 + 705.05078125 1481.0703125 l 1 + 965.06640625 1481.0703125 l 2 + 1019.27734375 1481.0703125 1061.88671875 1464.828125 1092.96484375 1432.2734375 c 128 + 1124.04296875 1399.71875 1139.65234375 1355.4921875 1139.65234375 1299.6640625 c 0 + 1139.65234375 1256.421875 1129.66796875 1220.5625 1109.83984375 1192.0859375 c 128 + 1089.94140625 1163.5390625 1060.69140625 1143.5703125 1022.08984375 1132.0390625 c 1 + 1152.58984375 878 l 1 + 1043.74609375 878 l 1 + 922.73828125 1121.6328125 l 1 + 802.64453125 1121.6328125 l 1 + 802.64453125 878 l 1 +958.17578125 1203.7578125 m 2 + 982.92578125 1203.7578125 1002.26171875 1210.2265625 1016.04296875 1223.1640625 c 128 + 1029.89453125 1236.1015625 1036.78515625 1254.734375 1036.78515625 1278.921875 c 2 + 1036.78515625 1320.3359375 l 2 + 1036.78515625 1344.59375 1029.89453125 1363.15625 1016.04296875 1376.09375 c 128 + 1002.26171875 1389.03125 982.92578125 1395.5703125 958.17578125 1395.5703125 c 2 + 802.64453125 1395.5703125 l 1 + 802.64453125 1203.7578125 l 1 + 958.17578125 1203.7578125 l 2 +1507.38671875 867.6640625 m 0 + 1428.49609375 867.6640625 1366.55078125 894.2421875 1321.62109375 947.5390625 c 128 + 1276.69140625 1000.8359375 1254.26171875 1078.1796875 1254.26171875 1179.5703125 c 0 + 1254.26171875 1230.1953125 1260.02734375 1274.84375 1271.55859375 1313.4453125 c 128 + 1283.01953125 1352.046875 1299.75390625 1384.6015625 1321.62109375 1411.109375 c 128 + 1343.55859375 1437.6171875 1370.13671875 1457.5859375 1401.56640625 1471.15625 c 128 + 1432.92578125 1484.65625 1468.22265625 1491.40625 1507.38671875 1491.40625 c 0 + 1559.83984375 1491.40625 1603.71484375 1479.9453125 1639.15234375 1456.8828125 c 128 + 1674.58984375 1433.8203125 1702.36328125 1399.859375 1722.54296875 1354.9296875 c 1 + 1640.48828125 1310 l 1 + 1630.08203125 1338.828125 1614.12109375 1361.6796875 1592.53515625 1378.6953125 c 128 + 1570.87890625 1395.7109375 1542.54296875 1404.1484375 1507.38671875 1404.1484375 c 0 + 1460.76953125 1404.1484375 1424.13671875 1388.328125 1397.69921875 1356.6875 c 128 + 1371.19140625 1324.9765625 1357.90234375 1281.171875 1357.90234375 1225.34375 c 2 + 1357.90234375 1133.7265625 l 2 + 1357.90234375 1077.8984375 1371.19140625 1034.09375 1397.69921875 1002.3828125 c 128 + 1424.13671875 970.7421875 1460.76953125 954.921875 1507.38671875 954.921875 c 0 + 1543.66796875 954.921875 1573.19921875 964.2734375 1595.98046875 982.9765625 c 128 + 1618.69140625 1001.6796875 1635.56640625 1025.7265625 1646.53515625 1055.1171875 c 1 + 1725.14453125 1007.5859375 l 1 + 1704.96484375 963.8515625 1676.76953125 929.5390625 1640.48828125 904.7890625 c 128 + 1604.13671875 880.0390625 1559.83984375 867.6640625 1507.38671875 867.6640625 c 0 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 4 +Type: 3 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 5 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +268.12890625 878 m 1 + 70.26953125 1481.0703125 l 1 + 171.37890625 1481.0703125 l 1 + 267.28515625 1183.015625 l 1 + 325.15234375 973.0625 l 1 + 328.59765625 973.0625 l 1 + 387.37890625 1183.015625 l 1 + 483.28515625 1481.0703125 l 1 + 581.79296875 1481.0703125 l 1 + 381.33203125 878 l 1 + 268.12890625 878 l 1 +802.64453125 878 m 1 + 705.05078125 878 l 1 + 705.05078125 1481.0703125 l 1 + 965.06640625 1481.0703125 l 2 + 1019.27734375 1481.0703125 1061.88671875 1464.828125 1092.96484375 1432.2734375 c 128 + 1124.04296875 1399.71875 1139.65234375 1355.4921875 1139.65234375 1299.6640625 c 0 + 1139.65234375 1256.421875 1129.66796875 1220.5625 1109.83984375 1192.0859375 c 128 + 1089.94140625 1163.5390625 1060.69140625 1143.5703125 1022.08984375 1132.0390625 c 1 + 1152.58984375 878 l 1 + 1043.74609375 878 l 1 + 922.73828125 1121.6328125 l 1 + 802.64453125 1121.6328125 l 1 + 802.64453125 878 l 1 +958.17578125 1203.7578125 m 2 + 982.92578125 1203.7578125 1002.26171875 1210.2265625 1016.04296875 1223.1640625 c 128 + 1029.89453125 1236.1015625 1036.78515625 1254.734375 1036.78515625 1278.921875 c 2 + 1036.78515625 1320.3359375 l 2 + 1036.78515625 1344.59375 1029.89453125 1363.15625 1016.04296875 1376.09375 c 128 + 1002.26171875 1389.03125 982.92578125 1395.5703125 958.17578125 1395.5703125 c 2 + 802.64453125 1395.5703125 l 1 + 802.64453125 1203.7578125 l 1 + 958.17578125 1203.7578125 l 2 +1507.38671875 867.6640625 m 0 + 1428.49609375 867.6640625 1366.55078125 894.2421875 1321.62109375 947.5390625 c 128 + 1276.69140625 1000.8359375 1254.26171875 1078.1796875 1254.26171875 1179.5703125 c 0 + 1254.26171875 1230.1953125 1260.02734375 1274.84375 1271.55859375 1313.4453125 c 128 + 1283.01953125 1352.046875 1299.75390625 1384.6015625 1321.62109375 1411.109375 c 128 + 1343.55859375 1437.6171875 1370.13671875 1457.5859375 1401.56640625 1471.15625 c 128 + 1432.92578125 1484.65625 1468.22265625 1491.40625 1507.38671875 1491.40625 c 0 + 1559.83984375 1491.40625 1603.71484375 1479.9453125 1639.15234375 1456.8828125 c 128 + 1674.58984375 1433.8203125 1702.36328125 1399.859375 1722.54296875 1354.9296875 c 1 + 1640.48828125 1310 l 1 + 1630.08203125 1338.828125 1614.12109375 1361.6796875 1592.53515625 1378.6953125 c 128 + 1570.87890625 1395.7109375 1542.54296875 1404.1484375 1507.38671875 1404.1484375 c 0 + 1460.76953125 1404.1484375 1424.13671875 1388.328125 1397.69921875 1356.6875 c 128 + 1371.19140625 1324.9765625 1357.90234375 1281.171875 1357.90234375 1225.34375 c 2 + 1357.90234375 1133.7265625 l 2 + 1357.90234375 1077.8984375 1371.19140625 1034.09375 1397.69921875 1002.3828125 c 128 + 1424.13671875 970.7421875 1460.76953125 954.921875 1507.38671875 954.921875 c 0 + 1543.66796875 954.921875 1573.19921875 964.2734375 1595.98046875 982.9765625 c 128 + 1618.69140625 1001.6796875 1635.56640625 1025.7265625 1646.53515625 1055.1171875 c 1 + 1725.14453125 1007.5859375 l 1 + 1704.96484375 963.8515625 1676.76953125 929.5390625 1640.48828125 904.7890625 c 128 + 1604.13671875 880.0390625 1559.83984375 867.6640625 1507.38671875 867.6640625 c 0 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 6 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +213.3984375 0 m 5 + 15.5390625 603.0703125 l 5 + 116.6484375 603.0703125 l 5 + 212.5546875 305.015625 l 5 + 270.421875 95.0625 l 5 + 273.8671875 95.0625 l 5 + 332.6484375 305.015625 l 5 + 428.5546875 603.0703125 l 5 + 527.0625 603.0703125 l 5 + 326.6015625 0 l 5 + 213.3984375 0 l 5 +747.9140625 0 m 5 + 650.3203125 0 l 5 + 650.3203125 603.0703125 l 5 + 910.3359375 603.0703125 l 6 + 964.546875 603.0703125 1007.15625 586.828125 1038.234375 554.2734375 c 132 + 1069.3125 521.71875 1084.921875 477.4921875 1084.921875 421.6640625 c 4 + 1084.921875 378.421875 1074.9375 342.5625 1055.109375 314.0859375 c 132 + 1035.2109375 285.5390625 1005.9609375 265.5703125 967.359375 254.0390625 c 5 + 1097.859375 0 l 5 + 989.015625 0 l 5 + 868.0078125 243.6328125 l 5 + 747.9140625 243.6328125 l 5 + 747.9140625 0 l 5 +903.4453125 325.7578125 m 6 + 928.1953125 325.7578125 947.53125 332.2265625 961.3125 345.1640625 c 132 + 975.1640625 358.1015625 982.0546875 376.734375 982.0546875 400.921875 c 6 + 982.0546875 442.3359375 l 6 + 982.0546875 466.59375 975.1640625 485.15625 961.3125 498.09375 c 132 + 947.53125 511.03125 928.1953125 517.5703125 903.4453125 517.5703125 c 6 + 747.9140625 517.5703125 l 5 + 747.9140625 325.7578125 l 5 + 903.4453125 325.7578125 l 6 +1452.65625 -10.3359375 m 4 + 1373.765625 -10.3359375 1311.8203125 16.2421875 1266.890625 69.5390625 c 132 + 1221.9609375 122.8359375 1199.53125 200.1796875 1199.53125 301.5703125 c 4 + 1199.53125 352.1953125 1205.296875 396.84375 1216.828125 435.4453125 c 132 + 1228.2890625 474.046875 1245.0234375 506.6015625 1266.890625 533.109375 c 132 + 1288.828125 559.6171875 1315.40625 579.5859375 1346.8359375 593.15625 c 132 + 1378.1953125 606.65625 1413.4921875 613.40625 1452.65625 613.40625 c 4 + 1505.109375 613.40625 1548.984375 601.9453125 1584.421875 578.8828125 c 132 + 1619.859375 555.8203125 1647.6328125 521.859375 1667.8125 476.9296875 c 5 + 1585.7578125 432 l 5 + 1575.3515625 460.828125 1559.390625 483.6796875 1537.8046875 500.6953125 c 132 + 1516.1484375 517.7109375 1487.8125 526.1484375 1452.65625 526.1484375 c 4 + 1406.0390625 526.1484375 1369.40625 510.328125 1342.96875 478.6875 c 132 + 1316.4609375 446.9765625 1303.171875 403.171875 1303.171875 347.34375 c 6 + 1303.171875 255.7265625 l 6 + 1303.171875 199.8984375 1316.4609375 156.09375 1342.96875 124.3828125 c 132 + 1369.40625 92.7421875 1406.0390625 76.921875 1452.65625 76.921875 c 4 + 1488.9375 76.921875 1518.46875 86.2734375 1541.25 104.9765625 c 132 + 1563.9609375 123.6796875 1580.8359375 147.7265625 1591.8046875 177.1171875 c 5 + 1670.4140625 129.5859375 l 5 + 1650.234375 85.8515625 1622.0390625 51.5390625 1585.7578125 26.7890625 c 132 + 1549.40625 2.0390625 1505.109375 -10.3359375 1452.65625 -10.3359375 c 4 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 7 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 8 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +2.9638671875 0 m 5 + 0.2158203125 8.3759765625 l 5 + 1.6201171875 8.3759765625 l 5 + 2.9521484375 4.236328125 l 5 + 3.755859375 1.3203125 l 5 + 3.8037109375 1.3203125 l 5 + 4.6201171875 4.236328125 l 5 + 5.9521484375 8.3759765625 l 5 + 7.3203125 8.3759765625 l 5 + 4.5361328125 0 l 5 + 2.9638671875 0 l 5 +10.3876953125 0 m 5 + 9.0322265625 0 l 5 + 9.0322265625 8.3759765625 l 5 + 12.6435546875 8.3759765625 l 6 + 13.396484375 8.3759765625 13.98828125 8.150390625 14.419921875 7.6982421875 c 132 + 14.8515625 7.24609375 15.068359375 6.6318359375 15.068359375 5.8564453125 c 4 + 15.068359375 5.255859375 14.9296875 4.7578125 14.654296875 4.3623046875 c 132 + 14.3779296875 3.9658203125 13.9716796875 3.6884765625 13.435546875 3.5283203125 c 5 + 15.248046875 0 l 5 + 13.736328125 0 l 5 + 12.0556640625 3.3837890625 l 5 + 10.3876953125 3.3837890625 l 5 + 10.3876953125 0 l 5 +12.5478515625 4.5244140625 m 6 + 12.8916015625 4.5244140625 13.16015625 4.6142578125 13.3515625 4.7939453125 c 132 + 13.5439453125 4.9736328125 13.6396484375 5.232421875 13.6396484375 5.568359375 c 6 + 13.6396484375 6.1435546875 l 6 + 13.6396484375 6.48046875 13.5439453125 6.73828125 13.3515625 6.91796875 c 132 + 13.16015625 7.09765625 12.8916015625 7.1884765625 12.5478515625 7.1884765625 c 6 + 10.3876953125 7.1884765625 l 5 + 10.3876953125 4.5244140625 l 5 + 12.5478515625 4.5244140625 l 6 +20.17578125 -0.1435546875 m 4 + 19.080078125 -0.1435546875 18.2197265625 0.2255859375 17.595703125 0.9658203125 c 132 + 16.9716796875 1.7060546875 16.66015625 2.7802734375 16.66015625 4.1884765625 c 4 + 16.66015625 4.8916015625 16.740234375 5.51171875 16.900390625 6.0478515625 c 132 + 17.0595703125 6.583984375 17.2919921875 7.0361328125 17.595703125 7.404296875 c 132 + 17.900390625 7.7724609375 18.26953125 8.0498046875 18.7060546875 8.23828125 c 132 + 19.1416015625 8.42578125 19.6318359375 8.51953125 20.17578125 8.51953125 c 4 + 20.904296875 8.51953125 21.513671875 8.3603515625 22.005859375 8.0400390625 c 132 + 22.498046875 7.7197265625 22.8837890625 7.248046875 23.1640625 6.6240234375 c 5 + 22.0244140625 6 l 5 + 21.8798828125 6.400390625 21.658203125 6.7177734375 21.3583984375 6.9541015625 c 132 + 21.0576171875 7.1904296875 20.6640625 7.3076171875 20.17578125 7.3076171875 c 4 + 19.5283203125 7.3076171875 19.01953125 7.087890625 18.65234375 6.6484375 c 132 + 18.2841796875 6.2080078125 18.099609375 5.599609375 18.099609375 4.82421875 c 6 + 18.099609375 3.5517578125 l 6 + 18.099609375 2.7763671875 18.2841796875 2.16796875 18.65234375 1.7275390625 c 132 + 19.01953125 1.2880859375 19.5283203125 1.068359375 20.17578125 1.068359375 c 4 + 20.6796875 1.068359375 21.08984375 1.1982421875 21.40625 1.4580078125 c 132 + 21.7216796875 1.7177734375 21.9560546875 2.0517578125 22.1083984375 2.4599609375 c 5 + 23.2001953125 1.7998046875 l 5 + 22.919921875 1.1923828125 22.5283203125 0.7158203125 22.0244140625 0.3720703125 c 132 + 21.51953125 0.0283203125 20.904296875 -0.1435546875 20.17578125 -0.1435546875 c 4 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 9 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 10 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +2.9638671875 0 m 1 + 0.2158203125 8.3759765625 l 1 + 1.6201171875 8.3759765625 l 1 + 2.9521484375 4.236328125 l 1 + 3.755859375 1.3203125 l 1 + 3.8037109375 1.3203125 l 1 + 4.6201171875 4.236328125 l 1 + 5.9521484375 8.3759765625 l 1 + 7.3203125 8.3759765625 l 1 + 4.5361328125 0 l 1 + 2.9638671875 0 l 1 +10.3876953125 0 m 1 + 9.0322265625 0 l 1 + 9.0322265625 8.3759765625 l 1 + 12.6435546875 8.3759765625 l 2 + 13.396484375 8.3759765625 13.98828125 8.150390625 14.419921875 7.6982421875 c 128 + 14.8515625 7.24609375 15.068359375 6.6318359375 15.068359375 5.8564453125 c 0 + 15.068359375 5.255859375 14.9296875 4.7578125 14.654296875 4.3623046875 c 128 + 14.3779296875 3.9658203125 13.9716796875 3.6884765625 13.435546875 3.5283203125 c 1 + 15.248046875 0 l 1 + 13.736328125 0 l 1 + 12.0556640625 3.3837890625 l 1 + 10.3876953125 3.3837890625 l 1 + 10.3876953125 0 l 1 +12.5478515625 4.5244140625 m 2 + 12.8916015625 4.5244140625 13.16015625 4.6142578125 13.3515625 4.7939453125 c 128 + 13.5439453125 4.9736328125 13.6396484375 5.232421875 13.6396484375 5.568359375 c 2 + 13.6396484375 6.1435546875 l 2 + 13.6396484375 6.48046875 13.5439453125 6.73828125 13.3515625 6.91796875 c 128 + 13.16015625 7.09765625 12.8916015625 7.1884765625 12.5478515625 7.1884765625 c 2 + 10.3876953125 7.1884765625 l 1 + 10.3876953125 4.5244140625 l 1 + 12.5478515625 4.5244140625 l 2 +20.17578125 -0.1435546875 m 0 + 19.080078125 -0.1435546875 18.2197265625 0.2255859375 17.595703125 0.9658203125 c 128 + 16.9716796875 1.7060546875 16.66015625 2.7802734375 16.66015625 4.1884765625 c 0 + 16.66015625 4.8916015625 16.740234375 5.51171875 16.900390625 6.0478515625 c 128 + 17.0595703125 6.583984375 17.2919921875 7.0361328125 17.595703125 7.404296875 c 128 + 17.900390625 7.7724609375 18.26953125 8.0498046875 18.7060546875 8.23828125 c 128 + 19.1416015625 8.42578125 19.6318359375 8.51953125 20.17578125 8.51953125 c 0 + 20.904296875 8.51953125 21.513671875 8.3603515625 22.005859375 8.0400390625 c 128 + 22.498046875 7.7197265625 22.8837890625 7.248046875 23.1640625 6.6240234375 c 1 + 22.0244140625 6 l 1 + 21.8798828125 6.400390625 21.658203125 6.7177734375 21.3583984375 6.9541015625 c 128 + 21.0576171875 7.1904296875 20.6640625 7.3076171875 20.17578125 7.3076171875 c 0 + 19.5283203125 7.3076171875 19.01953125 7.087890625 18.65234375 6.6484375 c 128 + 18.2841796875 6.2080078125 18.099609375 5.599609375 18.099609375 4.82421875 c 2 + 18.099609375 3.5517578125 l 2 + 18.099609375 2.7763671875 18.2841796875 2.16796875 18.65234375 1.7275390625 c 128 + 19.01953125 1.2880859375 19.5283203125 1.068359375 20.17578125 1.068359375 c 0 + 20.6796875 1.068359375 21.08984375 1.1982421875 21.40625 1.4580078125 c 128 + 21.7216796875 1.7177734375 21.9560546875 2.0517578125 22.1083984375 2.4599609375 c 1 + 23.2001953125 1.7998046875 l 1 + 22.919921875 1.1923828125 22.5283203125 0.7158203125 22.0244140625 0.3720703125 c 128 + 21.51953125 0.0283203125 20.904296875 -0.1435546875 20.17578125 -0.1435546875 c 0 +3.6240234375 -14.1435546875 m 4 + 3.16015625 -14.1435546875 2.74609375 -14.068359375 2.3818359375 -13.916015625 c 132 + 2.017578125 -13.763671875 1.7099609375 -13.5458984375 1.4580078125 -13.26171875 c 132 + 1.2060546875 -12.9775390625 1.01171875 -12.6357421875 0.8759765625 -12.236328125 c 132 + 0.740234375 -11.8359375 0.671875 -11.3837890625 0.671875 -10.8798828125 c 4 + 0.671875 -10.2724609375 0.763671875 -9.7001953125 0.9482421875 -9.1640625 c 132 + 1.1318359375 -8.6279296875 1.3681640625 -8.1357421875 1.65625 -7.6884765625 c 132 + 1.9443359375 -7.240234375 2.265625 -6.841796875 2.6220703125 -6.494140625 c 132 + 2.9775390625 -6.146484375 3.328125 -5.8564453125 3.671875 -5.6240234375 c 5 + 5.4716796875 -5.6240234375 l 5 + 5 -5.9677734375 4.576171875 -6.2998046875 4.2001953125 -6.6201171875 c 132 + 3.82421875 -6.9404296875 3.49609375 -7.267578125 3.2158203125 -7.603515625 c 132 + 2.935546875 -7.9404296875 2.7021484375 -8.2958984375 2.513671875 -8.671875 c 132 + 2.326171875 -9.0478515625 2.1796875 -9.4599609375 2.076171875 -9.908203125 c 5 + 2.16015625 -9.931640625 l 5 + 2.248046875 -9.763671875 2.349609375 -9.6064453125 2.4658203125 -9.4580078125 c 132 + 2.58203125 -9.3095703125 2.7177734375 -9.1796875 2.8740234375 -9.068359375 c 132 + 3.0302734375 -8.9560546875 3.2080078125 -8.8681640625 3.408203125 -8.8037109375 c 132 + 3.6083984375 -8.740234375 3.83984375 -8.7080078125 4.103515625 -8.7080078125 c 4 + 4.4560546875 -8.7080078125 4.7822265625 -8.767578125 5.08203125 -8.8876953125 c 132 + 5.3818359375 -9.0078125 5.6416015625 -9.181640625 5.8623046875 -9.41015625 c 132 + 6.08203125 -9.6376953125 6.25390625 -9.912109375 6.3779296875 -10.232421875 c 132 + 6.501953125 -10.5517578125 6.564453125 -10.908203125 6.564453125 -11.2998046875 c 4 + 6.564453125 -11.7236328125 6.494140625 -12.1103515625 6.353515625 -12.4580078125 c 132 + 6.2138671875 -12.8056640625 6.015625 -13.103515625 5.759765625 -13.3515625 c 132 + 5.50390625 -13.599609375 5.1943359375 -13.7939453125 4.830078125 -13.93359375 c 132 + 4.4658203125 -14.07421875 4.064453125 -14.1435546875 3.6240234375 -14.1435546875 c 4 +3.6240234375 -13.0400390625 m 260 + 4.1123046875 -13.0400390625 4.4921875 -12.91015625 4.763671875 -12.650390625 c 132 + 5.0361328125 -12.3896484375 5.171875 -12.0078125 5.171875 -11.50390625 c 6 + 5.171875 -11.3359375 l 6 + 5.171875 -10.83203125 5.0361328125 -10.4501953125 4.763671875 -10.1904296875 c 132 + 4.4921875 -9.9296875 4.1123046875 -9.7998046875 3.6240234375 -9.7998046875 c 260 + 3.1357421875 -9.7998046875 2.755859375 -9.9296875 2.484375 -10.1904296875 c 132 + 2.2119140625 -10.4501953125 2.076171875 -10.83203125 2.076171875 -11.3359375 c 6 + 2.076171875 -11.50390625 l 6 + 2.076171875 -12.0078125 2.2119140625 -12.3896484375 2.484375 -12.650390625 c 132 + 2.755859375 -12.91015625 3.1357421875 -13.0400390625 3.6240234375 -13.0400390625 c 260 +13.5400390625 -14.1435546875 m 4 + 12.8359375 -14.1435546875 12.23828125 -14.015625 11.74609375 -13.759765625 c 132 + 11.25390625 -13.50390625 10.83203125 -13.16015625 10.48046875 -12.7275390625 c 5 + 11.416015625 -11.8515625 l 5 + 11.7119140625 -12.2119140625 12.0380859375 -12.484375 12.3935546875 -12.66796875 c 132 + 12.75 -12.8515625 13.15625 -12.9443359375 13.6123046875 -12.9443359375 c 4 + 14.1484375 -12.9443359375 14.5517578125 -12.82421875 14.82421875 -12.583984375 c 132 + 15.095703125 -12.34375 15.232421875 -12.01953125 15.232421875 -11.6123046875 c 4 + 15.232421875 -11.2841796875 15.1357421875 -11.0244140625 14.9443359375 -10.83203125 c 132 + 14.751953125 -10.6396484375 14.412109375 -10.49609375 13.923828125 -10.400390625 c 6 + 13.1796875 -10.267578125 l 6 + 12.3642578125 -10.1162109375 11.751953125 -9.84765625 11.34375 -9.4638671875 c 132 + 10.935546875 -9.080078125 10.732421875 -8.5517578125 10.732421875 -7.8798828125 c 4 + 10.732421875 -7.51171875 10.8017578125 -7.177734375 10.9423828125 -6.8779296875 c 132 + 11.08203125 -6.578125 11.2783203125 -6.326171875 11.5302734375 -6.1220703125 c 132 + 11.7822265625 -5.91796875 12.087890625 -5.759765625 12.4482421875 -5.6484375 c 132 + 12.8076171875 -5.5361328125 13.2119140625 -5.48046875 13.66015625 -5.48046875 c 4 + 14.2919921875 -5.48046875 14.83984375 -5.58984375 15.3037109375 -5.8095703125 c 132 + 15.767578125 -6.0302734375 16.1640625 -6.34765625 16.4921875 -6.763671875 c 5 + 15.5439453125 -7.603515625 l 5 + 15.328125 -7.32421875 15.064453125 -7.099609375 14.751953125 -6.931640625 c 132 + 14.4404296875 -6.763671875 14.0517578125 -6.6796875 13.587890625 -6.6796875 c 4 + 13.1083984375 -6.6796875 12.736328125 -6.7763671875 12.4716796875 -6.9677734375 c 132 + 12.2080078125 -7.16015625 12.076171875 -7.4404296875 12.076171875 -7.8076171875 c 4 + 12.076171875 -8.16015625 12.18359375 -8.421875 12.400390625 -8.59375 c 132 + 12.6162109375 -8.765625 12.9521484375 -8.896484375 13.408203125 -8.984375 c 6 + 14.15234375 -9.1396484375 l 6 + 14.9921875 -9.2998046875 15.6064453125 -9.572265625 15.994140625 -9.9560546875 c 132 + 16.3818359375 -10.33984375 16.576171875 -10.8681640625 16.576171875 -11.5400390625 c 4 + 16.576171875 -11.931640625 16.5078125 -12.2880859375 16.3720703125 -12.6083984375 c 132 + 16.236328125 -12.927734375 16.0380859375 -13.2021484375 15.7783203125 -13.4296875 c 132 + 15.517578125 -13.658203125 15.2001953125 -13.833984375 14.82421875 -13.9580078125 c 132 + 14.4482421875 -14.08203125 14.01953125 -14.1435546875 13.5400390625 -14.1435546875 c 4 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 11 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 12 +Type: 1 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +EndUndoOperation +EndUndoes +Redoes +EndRedoes +EndUndoRedoHistory +Fore +SplineSet +536.239257812 -97.8359375 m 0 + 502.840820312 -97.8359375 473.028320312 -92.421875 446.801757812 -81.453125 c 128 + 420.575195312 -70.484375 398.426757812 -54.8046875 380.286132812 -34.34375 c 128 + 362.145507812 -13.8828125 348.153320312 10.7265625 338.379882812 39.484375 c 128 + 328.606445312 68.3125 323.684570312 100.8671875 323.684570312 137.1484375 c 0 + 323.684570312 180.8828125 330.293945312 222.0859375 343.583007812 260.6875 c 128 + 356.801757812 299.2890625 373.817382812 334.7265625 394.559570312 366.9296875 c 128 + 415.301757812 399.203125 438.434570312 427.890625 464.098632812 452.921875 c 128 + 489.692382812 477.953125 514.934570312 498.8359375 539.684570312 515.5703125 c 1 + 669.270507812 515.5703125 l 1 + 635.309570312 490.8203125 604.793945312 466.9140625 577.723632812 443.8515625 c 128 + 550.653320312 420.7890625 527.028320312 397.234375 506.848632812 373.046875 c 128 + 486.668945312 348.7890625 469.864257812 323.1953125 456.293945312 296.125 c 128 + 442.793945312 269.0546875 432.247070312 239.3828125 424.793945312 207.109375 c 1 + 430.840820312 205.421875 l 1 + 437.168945312 217.515625 444.481445312 228.8359375 452.848632812 239.5234375 c 128 + 461.215820312 250.2109375 470.989257812 259.5625 482.239257812 267.578125 c 128 + 493.489257812 275.6640625 506.286132812 281.9921875 520.700195312 286.6328125 c 128 + 535.114257812 291.203125 551.778320312 293.5234375 570.762695312 293.5234375 c 0 + 596.145507812 293.5234375 619.629882812 289.234375 641.215820312 280.5859375 c 128 + 662.801757812 271.9375 681.504882812 259.421875 697.395507812 242.96875 c 128 + 713.215820312 226.5859375 725.590820312 206.828125 734.520507812 183.765625 c 128 + 743.450195312 160.7734375 747.950195312 135.109375 747.950195312 106.9140625 c 0 + 747.950195312 76.3984375 742.887695312 48.5546875 732.762695312 23.5234375 c 128 + 722.708007812 -1.5078125 708.434570312 -22.953125 690.012695312 -40.8125 c 128 + 671.590820312 -58.671875 649.301757812 -72.6640625 623.075195312 -82.71875 c 128 + 596.848632812 -92.84375 567.950195312 -97.8359375 536.239257812 -97.8359375 c 0 +536.239257812 -18.3828125 m 256 + 571.395507812 -18.3828125 598.747070312 -9.03125 618.293945312 9.671875 c 128 + 637.911132812 28.4453125 647.684570312 55.9375 647.684570312 92.21875 c 2 + 647.684570312 104.3125 l 2 + 647.684570312 140.59375 637.911132812 168.0859375 618.293945312 186.7890625 c 128 + 598.747070312 205.5625 571.395507812 214.9140625 536.239257812 214.9140625 c 256 + 501.083007812 214.9140625 473.731445312 205.5625 454.184570312 186.7890625 c 128 + 434.567382812 168.0859375 424.793945312 140.59375 424.793945312 104.3125 c 2 + 424.793945312 92.21875 l 2 + 424.793945312 55.9375 434.567382812 28.4453125 454.184570312 9.671875 c 128 + 473.731445312 -9.03125 501.083007812 -18.3828125 536.239257812 -18.3828125 c 256 +1250.19238281 -97.8359375 m 0 + 1199.49707031 -97.8359375 1156.46582031 -88.625 1121.02832031 -70.203125 c 128 + 1085.59082031 -51.78125 1055.21582031 -27.03125 1029.90332031 4.1171875 c 1 + 1097.26269531 67.1875 l 1 + 1118.56738281 41.2421875 1142.05175781 21.625 1167.64550781 8.40625 c 128 + 1193.30957031 -4.8125 1222.55957031 -11.4921875 1255.39550781 -11.4921875 c 0 + 1293.99707031 -11.4921875 1323.03613281 -2.84375 1342.65332031 14.453125 c 128 + 1362.20019531 31.75 1372.04394531 55.09375 1372.04394531 84.4140625 c 0 + 1372.04394531 108.0390625 1365.08300781 126.7421875 1351.30175781 140.59375 c 128 + 1337.45019531 154.4453125 1312.98144531 164.78125 1277.82519531 171.671875 c 2 + 1224.24707031 181.234375 l 2 + 1165.53613281 192.1328125 1121.45019531 211.46875 1092.05957031 239.1015625 c 128 + 1062.66894531 266.734375 1048.04394531 304.7734375 1048.04394531 353.1484375 c 0 + 1048.04394531 379.65625 1053.03613281 403.703125 1063.16113281 425.2890625 c 128 + 1073.21582031 446.875 1087.34863281 465.015625 1105.48925781 479.7109375 c 128 + 1123.62988281 494.40625 1145.63769531 505.796875 1171.58300781 513.8125 c 128 + 1197.45800781 521.8984375 1226.56738281 525.90625 1258.84082031 525.90625 c 0 + 1304.33300781 525.90625 1343.77832031 518.03125 1377.17675781 502.2109375 c 128 + 1410.57519531 486.3203125 1439.12207031 463.46875 1462.74707031 433.515625 c 1 + 1394.47363281 373.046875 l 1 + 1378.93457031 393.15625 1359.95019531 409.328125 1337.45019531 421.421875 c 128 + 1315.02050781 433.515625 1287.03613281 439.5625 1253.63769531 439.5625 c 0 + 1219.11425781 439.5625 1192.32519531 432.6015625 1173.27050781 418.8203125 c 128 + 1154.28613281 404.96875 1144.79394531 384.7890625 1144.79394531 358.3515625 c 0 + 1144.79394531 332.96875 1152.52832031 314.125 1168.13769531 301.75 c 128 + 1183.67675781 289.375 1207.86425781 279.953125 1240.70019531 273.625 c 2 + 1294.27832031 262.4453125 l 2 + 1354.74707031 250.9140625 1398.97363281 231.296875 1426.88769531 203.6640625 c 128 + 1454.80175781 176.03125 1468.79394531 137.9921875 1468.79394531 89.6171875 c 0 + 1468.79394531 61.421875 1463.87207031 35.7578125 1454.09863281 12.6953125 c 128 + 1444.32519531 -10.296875 1430.05175781 -30.0546875 1411.34863281 -46.4375 c 128 + 1392.57519531 -62.890625 1369.72363281 -75.546875 1342.65332031 -84.4765625 c 128 + 1315.58300781 -93.40625 1284.71582031 -97.8359375 1250.19238281 -97.8359375 c 0 +268.12890625 735.5 m 1 + 70.26953125 1338.5703125 l 1 + 171.37890625 1338.5703125 l 1 + 267.28515625 1040.515625 l 1 + 325.15234375 830.5625 l 1 + 328.59765625 830.5625 l 1 + 387.37890625 1040.515625 l 1 + 483.28515625 1338.5703125 l 1 + 581.79296875 1338.5703125 l 1 + 381.33203125 735.5 l 1 + 268.12890625 735.5 l 1 +802.64453125 735.5 m 1 + 705.05078125 735.5 l 1 + 705.05078125 1338.5703125 l 1 + 965.06640625 1338.5703125 l 2 + 1019.27734375 1338.5703125 1061.88671875 1322.328125 1092.96484375 1289.7734375 c 128 + 1124.04296875 1257.21875 1139.65234375 1212.9921875 1139.65234375 1157.1640625 c 0 + 1139.65234375 1113.921875 1129.66796875 1078.0625 1109.83984375 1049.5859375 c 128 + 1089.94140625 1021.0390625 1060.69140625 1001.0703125 1022.08984375 989.5390625 c 1 + 1152.58984375 735.5 l 1 + 1043.74609375 735.5 l 1 + 922.73828125 979.1328125 l 1 + 802.64453125 979.1328125 l 1 + 802.64453125 735.5 l 1 +958.17578125 1061.2578125 m 2 + 982.92578125 1061.2578125 1002.26171875 1067.7265625 1016.04296875 1080.6640625 c 128 + 1029.89453125 1093.6015625 1036.78515625 1112.234375 1036.78515625 1136.421875 c 2 + 1036.78515625 1177.8359375 l 2 + 1036.78515625 1202.09375 1029.89453125 1220.65625 1016.04296875 1233.59375 c 128 + 1002.26171875 1246.53125 982.92578125 1253.0703125 958.17578125 1253.0703125 c 2 + 802.64453125 1253.0703125 l 1 + 802.64453125 1061.2578125 l 1 + 958.17578125 1061.2578125 l 2 +1507.38671875 725.1640625 m 0 + 1428.49609375 725.1640625 1366.55078125 751.7421875 1321.62109375 805.0390625 c 128 + 1276.69140625 858.3359375 1254.26171875 935.6796875 1254.26171875 1037.0703125 c 0 + 1254.26171875 1087.6953125 1260.02734375 1132.34375 1271.55859375 1170.9453125 c 128 + 1283.01953125 1209.546875 1299.75390625 1242.1015625 1321.62109375 1268.609375 c 128 + 1343.55859375 1295.1171875 1370.13671875 1315.0859375 1401.56640625 1328.65625 c 128 + 1432.92578125 1342.15625 1468.22265625 1348.90625 1507.38671875 1348.90625 c 0 + 1559.83984375 1348.90625 1603.71484375 1337.4453125 1639.15234375 1314.3828125 c 128 + 1674.58984375 1291.3203125 1702.36328125 1257.359375 1722.54296875 1212.4296875 c 1 + 1640.48828125 1167.5 l 1 + 1630.08203125 1196.328125 1614.12109375 1219.1796875 1592.53515625 1236.1953125 c 128 + 1570.87890625 1253.2109375 1542.54296875 1261.6484375 1507.38671875 1261.6484375 c 0 + 1460.76953125 1261.6484375 1424.13671875 1245.828125 1397.69921875 1214.1875 c 128 + 1371.19140625 1182.4765625 1357.90234375 1138.671875 1357.90234375 1082.84375 c 2 + 1357.90234375 991.2265625 l 2 + 1357.90234375 935.3984375 1371.19140625 891.59375 1397.69921875 859.8828125 c 128 + 1424.13671875 828.2421875 1460.76953125 812.421875 1507.38671875 812.421875 c 0 + 1543.66796875 812.421875 1573.19921875 821.7734375 1595.98046875 840.4765625 c 128 + 1618.69140625 859.1796875 1635.56640625 883.2265625 1646.53515625 912.6171875 c 1 + 1725.14453125 865.0859375 l 1 + 1704.96484375 821.3515625 1676.76953125 787.0390625 1640.48828125 762.2890625 c 128 + 1604.13671875 737.5390625 1559.83984375 725.1640625 1507.38671875 725.1640625 c 0 +EndSplineSet +EndChar + +StartChar: uniF016 +Encoding: 61462 61462 7 +Width: 1792 +Flags: H +LayerCount: 2 +UndoRedoHistory +Layer: 0 +Undoes +UndoOperation +Index: 0 +Type: 1 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +EndUndoOperation +EndUndoes +Redoes +EndRedoes +EndUndoRedoHistory +UndoRedoHistory +Layer: 1 +Undoes +UndoOperation +Index: 0 +Type: 3 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 1 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +501.09375 0 m 5 + 440.625 181.40625 l 5 + 190.078125 181.40625 l 5 + 131.484375 0 l 5 + 21.09375 0 l 5 + 249.609375 670.078125 l 5 + 385.9375 670.078125 l 5 + 614.375 0 l 5 + 501.09375 0 l 5 +317.734375 570.234375 m 5 + 312.96875 570.234375 l 5 + 216.015625 274.53125 l 5 + 413.75 274.53125 l 5 + 317.734375 570.234375 l 5 +903.046875 370.546875 m 5 + 829.140625 512.65625 l 5 + 826.25 512.65625 l 5 + 826.25 0 l 5 + 722.578125 0 l 5 + 722.578125 670.078125 l 5 + 843.515625 670.078125 l 5 + 1062.421875 299.53125 l 5 + 1136.328125 157.421875 l 5 + 1139.21875 157.421875 l 5 + 1139.21875 670.078125 l 5 + 1242.890625 670.078125 l 5 + 1242.890625 0 l 5 + 1121.953125 0 l 5 + 903.046875 370.546875 l 5 +447.483398438 854.515625 m 0 + 391.155273438 854.515625 343.342773438 864.75 303.967773438 885.21875 c 128 + 264.592773438 905.6875 230.842773438 933.1875 202.717773438 967.796875 c 1 + 277.561523438 1037.875 l 1 + 301.233398438 1009.046875 327.327148438 987.25 355.764648438 972.5625 c 128 + 384.280273438 957.875 416.780273438 950.453125 453.264648438 950.453125 c 0 + 496.155273438 950.453125 528.420898438 960.0625 550.217773438 979.28125 c 128 + 571.936523438 998.5 582.874023438 1024.4375 582.874023438 1057.015625 c 0 + 582.874023438 1083.265625 575.139648438 1104.046875 559.827148438 1119.4375 c 128 + 544.436523438 1134.828125 517.249023438 1146.3125 478.186523438 1153.96875 c 2 + 418.655273438 1164.59375 l 2 + 353.420898438 1176.703125 304.436523438 1198.1875 271.780273438 1228.890625 c 128 + 239.124023438 1259.59375 222.874023438 1301.859375 222.874023438 1355.609375 c 0 + 222.874023438 1385.0625 228.420898438 1411.78125 239.670898438 1435.765625 c 128 + 250.842773438 1459.75 266.545898438 1479.90625 286.702148438 1496.234375 c 128 + 306.858398438 1512.5625 331.311523438 1525.21875 360.139648438 1534.125 c 128 + 388.889648438 1543.109375 421.233398438 1547.5625 457.092773438 1547.5625 c 0 + 507.639648438 1547.5625 551.467773438 1538.8125 588.577148438 1521.234375 c 128 + 625.686523438 1503.578125 657.405273438 1478.1875 683.655273438 1444.90625 c 1 + 607.795898438 1377.71875 l 1 + 590.530273438 1400.0625 569.436523438 1418.03125 544.436523438 1431.46875 c 128 + 519.514648438 1444.90625 488.420898438 1451.625 451.311523438 1451.625 c 0 + 412.952148438 1451.625 383.186523438 1443.890625 362.014648438 1428.578125 c 128 + 340.920898438 1413.1875 330.374023438 1390.765625 330.374023438 1361.390625 c 0 + 330.374023438 1333.1875 338.967773438 1312.25 356.311523438 1298.5 c 128 + 373.577148438 1284.75 400.452148438 1274.28125 436.936523438 1267.25 c 2 + 496.467773438 1254.828125 l 2 + 563.655273438 1242.015625 612.795898438 1220.21875 643.811523438 1189.515625 c 128 + 674.827148438 1158.8125 690.374023438 1116.546875 690.374023438 1062.796875 c 0 + 690.374023438 1031.46875 684.905273438 1002.953125 674.045898438 977.328125 c 128 + 663.186523438 951.78125 647.327148438 929.828125 626.545898438 911.625 c 128 + 605.686523438 893.34375 580.295898438 879.28125 550.217773438 869.359375 c 128 + 520.139648438 859.4375 485.842773438 854.515625 447.483398438 854.515625 c 0 +905.686523438 866 m 1 + 747.327148438 1536.078125 l 1 + 857.717773438 1536.078125 l 1 + 925.842773438 1213.5 l 1 + 972.952148438 990.765625 l 1 + 975.764648438 990.765625 l 1 + 1029.59277344 1213.5 l 1 + 1109.20214844 1536.078125 l 1 + 1230.21777344 1536.078125 l 1 + 1308.88964844 1213.5 l 1 + 1361.70214844 991.78125 l 1 + 1364.59277344 991.78125 l 1 + 1413.57714844 1213.5 l 1 + 1483.65527344 1536.078125 l 1 + 1590.21777344 1536.078125 l 1 + 1425.06152344 866 l 1 + 1303.18652344 866 l 1 + 1217.71777344 1212.5625 l 1 + 1167.79589844 1416.078125 l 1 + 1165.84277344 1416.078125 l 1 + 1114.98339844 1212.5625 l 1 + 1027.63964844 866 l 1 + 905.686523438 866 l 1 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 2 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 3 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +6.263671875 0 m 5 + 5.5078125 2.267578125 l 5 + 2.3759765625 2.267578125 l 5 + 1.6435546875 0 l 5 + 0.263671875 0 l 5 + 3.1201171875 8.3759765625 l 5 + 4.82421875 8.3759765625 l 5 + 7.6796875 0 l 5 + 6.263671875 0 l 5 +3.9716796875 7.1279296875 m 5 + 3.912109375 7.1279296875 l 5 + 2.7001953125 3.431640625 l 5 + 5.171875 3.431640625 l 5 + 3.9716796875 7.1279296875 l 5 +11.2880859375 4.6318359375 m 5 + 10.3642578125 6.408203125 l 5 + 10.328125 6.408203125 l 5 + 10.328125 0 l 5 + 9.0322265625 0 l 5 + 9.0322265625 8.3759765625 l 5 + 10.5439453125 8.3759765625 l 5 + 13.2802734375 3.744140625 l 5 + 14.2041015625 1.9677734375 l 5 + 14.240234375 1.9677734375 l 5 + 14.240234375 8.3759765625 l 5 + 15.5361328125 8.3759765625 l 5 + 15.5361328125 0 l 5 + 14.0244140625 0 l 5 + 11.2880859375 4.6318359375 l 5 +447.483398438 854.515625 m 0 + 391.155273438 854.515625 343.342773438 864.75 303.967773438 885.21875 c 128 + 264.592773438 905.6875 230.842773438 933.1875 202.717773438 967.796875 c 1 + 277.561523438 1037.875 l 1 + 301.233398438 1009.046875 327.327148438 987.25 355.764648438 972.5625 c 128 + 384.280273438 957.875 416.780273438 950.453125 453.264648438 950.453125 c 0 + 496.155273438 950.453125 528.420898438 960.0625 550.217773438 979.28125 c 128 + 571.936523438 998.5 582.874023438 1024.4375 582.874023438 1057.015625 c 0 + 582.874023438 1083.265625 575.139648438 1104.046875 559.827148438 1119.4375 c 128 + 544.436523438 1134.828125 517.249023438 1146.3125 478.186523438 1153.96875 c 2 + 418.655273438 1164.59375 l 2 + 353.420898438 1176.703125 304.436523438 1198.1875 271.780273438 1228.890625 c 128 + 239.124023438 1259.59375 222.874023438 1301.859375 222.874023438 1355.609375 c 0 + 222.874023438 1385.0625 228.420898438 1411.78125 239.670898438 1435.765625 c 128 + 250.842773438 1459.75 266.545898438 1479.90625 286.702148438 1496.234375 c 128 + 306.858398438 1512.5625 331.311523438 1525.21875 360.139648438 1534.125 c 128 + 388.889648438 1543.109375 421.233398438 1547.5625 457.092773438 1547.5625 c 0 + 507.639648438 1547.5625 551.467773438 1538.8125 588.577148438 1521.234375 c 128 + 625.686523438 1503.578125 657.405273438 1478.1875 683.655273438 1444.90625 c 1 + 607.795898438 1377.71875 l 1 + 590.530273438 1400.0625 569.436523438 1418.03125 544.436523438 1431.46875 c 128 + 519.514648438 1444.90625 488.420898438 1451.625 451.311523438 1451.625 c 0 + 412.952148438 1451.625 383.186523438 1443.890625 362.014648438 1428.578125 c 128 + 340.920898438 1413.1875 330.374023438 1390.765625 330.374023438 1361.390625 c 0 + 330.374023438 1333.1875 338.967773438 1312.25 356.311523438 1298.5 c 128 + 373.577148438 1284.75 400.452148438 1274.28125 436.936523438 1267.25 c 2 + 496.467773438 1254.828125 l 2 + 563.655273438 1242.015625 612.795898438 1220.21875 643.811523438 1189.515625 c 128 + 674.827148438 1158.8125 690.374023438 1116.546875 690.374023438 1062.796875 c 0 + 690.374023438 1031.46875 684.905273438 1002.953125 674.045898438 977.328125 c 128 + 663.186523438 951.78125 647.327148438 929.828125 626.545898438 911.625 c 128 + 605.686523438 893.34375 580.295898438 879.28125 550.217773438 869.359375 c 128 + 520.139648438 859.4375 485.842773438 854.515625 447.483398438 854.515625 c 0 +905.686523438 866 m 1 + 747.327148438 1536.078125 l 1 + 857.717773438 1536.078125 l 1 + 925.842773438 1213.5 l 1 + 972.952148438 990.765625 l 1 + 975.764648438 990.765625 l 1 + 1029.59277344 1213.5 l 1 + 1109.20214844 1536.078125 l 1 + 1230.21777344 1536.078125 l 1 + 1308.88964844 1213.5 l 1 + 1361.70214844 991.78125 l 1 + 1364.59277344 991.78125 l 1 + 1413.57714844 1213.5 l 1 + 1483.65527344 1536.078125 l 1 + 1590.21777344 1536.078125 l 1 + 1425.06152344 866 l 1 + 1303.18652344 866 l 1 + 1217.71777344 1212.5625 l 1 + 1167.79589844 1416.078125 l 1 + 1165.84277344 1416.078125 l 1 + 1114.98339844 1212.5625 l 1 + 1027.63964844 866 l 1 + 905.686523438 866 l 1 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 4 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 5 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 6 +Type: 2 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +6.263671875 0 m 5 + 5.5078125 2.267578125 l 5 + 2.3759765625 2.267578125 l 5 + 1.6435546875 0 l 5 + 0.263671875 0 l 5 + 3.1201171875 8.3759765625 l 5 + 4.82421875 8.3759765625 l 5 + 7.6796875 0 l 5 + 6.263671875 0 l 5 +3.9716796875 7.1279296875 m 5 + 3.912109375 7.1279296875 l 5 + 2.7001953125 3.431640625 l 5 + 5.171875 3.431640625 l 5 + 3.9716796875 7.1279296875 l 5 +11.2880859375 4.6318359375 m 5 + 10.3642578125 6.408203125 l 5 + 10.328125 6.408203125 l 5 + 10.328125 0 l 5 + 9.0322265625 0 l 5 + 9.0322265625 8.3759765625 l 5 + 10.5439453125 8.3759765625 l 5 + 13.2802734375 3.744140625 l 5 + 14.2041015625 1.9677734375 l 5 + 14.240234375 1.9677734375 l 5 + 14.240234375 8.3759765625 l 5 + 15.5361328125 8.3759765625 l 5 + 15.5361328125 0 l 5 + 14.0244140625 0 l 5 + 11.2880859375 4.6318359375 l 5 +447.483398438 854.515625 m 4 + 391.155273438 854.515625 343.342773438 864.75 303.967773438 885.21875 c 132 + 264.592773438 905.6875 230.842773438 933.1875 202.717773438 967.796875 c 5 + 277.561523438 1037.875 l 5 + 301.233398438 1009.046875 327.327148438 987.25 355.764648438 972.5625 c 132 + 384.280273438 957.875 416.780273438 950.453125 453.264648438 950.453125 c 4 + 496.155273438 950.453125 528.420898438 960.0625 550.217773438 979.28125 c 132 + 571.936523438 998.5 582.874023438 1024.4375 582.874023438 1057.015625 c 4 + 582.874023438 1083.265625 575.139648438 1104.046875 559.827148438 1119.4375 c 132 + 544.436523438 1134.828125 517.249023438 1146.3125 478.186523438 1153.96875 c 6 + 418.655273438 1164.59375 l 6 + 353.420898438 1176.703125 304.436523438 1198.1875 271.780273438 1228.890625 c 132 + 239.124023438 1259.59375 222.874023438 1301.859375 222.874023438 1355.609375 c 4 + 222.874023438 1385.0625 228.420898438 1411.78125 239.670898438 1435.765625 c 132 + 250.842773438 1459.75 266.545898438 1479.90625 286.702148438 1496.234375 c 132 + 306.858398438 1512.5625 331.311523438 1525.21875 360.139648438 1534.125 c 132 + 388.889648438 1543.109375 421.233398438 1547.5625 457.092773438 1547.5625 c 4 + 507.639648438 1547.5625 551.467773438 1538.8125 588.577148438 1521.234375 c 132 + 625.686523438 1503.578125 657.405273438 1478.1875 683.655273438 1444.90625 c 5 + 607.795898438 1377.71875 l 5 + 590.530273438 1400.0625 569.436523438 1418.03125 544.436523438 1431.46875 c 132 + 519.514648438 1444.90625 488.420898438 1451.625 451.311523438 1451.625 c 4 + 412.952148438 1451.625 383.186523438 1443.890625 362.014648438 1428.578125 c 132 + 340.920898438 1413.1875 330.374023438 1390.765625 330.374023438 1361.390625 c 4 + 330.374023438 1333.1875 338.967773438 1312.25 356.311523438 1298.5 c 132 + 373.577148438 1284.75 400.452148438 1274.28125 436.936523438 1267.25 c 6 + 496.467773438 1254.828125 l 6 + 563.655273438 1242.015625 612.795898438 1220.21875 643.811523438 1189.515625 c 132 + 674.827148438 1158.8125 690.374023438 1116.546875 690.374023438 1062.796875 c 4 + 690.374023438 1031.46875 684.905273438 1002.953125 674.045898438 977.328125 c 132 + 663.186523438 951.78125 647.327148438 929.828125 626.545898438 911.625 c 132 + 605.686523438 893.34375 580.295898438 879.28125 550.217773438 869.359375 c 132 + 520.139648438 859.4375 485.842773438 854.515625 447.483398438 854.515625 c 4 +905.686523438 866 m 5 + 747.327148438 1536.078125 l 5 + 857.717773438 1536.078125 l 5 + 925.842773438 1213.5 l 5 + 972.952148438 990.765625 l 5 + 975.764648438 990.765625 l 5 + 1029.59277344 1213.5 l 5 + 1109.20214844 1536.078125 l 5 + 1230.21777344 1536.078125 l 5 + 1308.88964844 1213.5 l 5 + 1361.70214844 991.78125 l 5 + 1364.59277344 991.78125 l 5 + 1413.57714844 1213.5 l 5 + 1483.65527344 1536.078125 l 5 + 1590.21777344 1536.078125 l 5 + 1425.06152344 866 l 5 + 1303.18652344 866 l 5 + 1217.71777344 1212.5625 l 5 + 1167.79589844 1416.078125 l 5 + 1165.84277344 1416.078125 l 5 + 1114.98339844 1212.5625 l 5 + 1027.63964844 866 l 5 + 905.686523438 866 l 5 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 7 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +447.483398438 854.515625 m 4 + 391.155273438 854.515625 343.342773438 864.75 303.967773438 885.21875 c 132 + 264.592773438 905.6875 230.842773438 933.1875 202.717773438 967.796875 c 5 + 277.561523438 1037.875 l 5 + 301.233398438 1009.046875 327.327148438 987.25 355.764648438 972.5625 c 132 + 384.280273438 957.875 416.780273438 950.453125 453.264648438 950.453125 c 4 + 496.155273438 950.453125 528.420898438 960.0625 550.217773438 979.28125 c 132 + 571.936523438 998.5 582.874023438 1024.4375 582.874023438 1057.015625 c 4 + 582.874023438 1083.265625 575.139648438 1104.046875 559.827148438 1119.4375 c 132 + 544.436523438 1134.828125 517.249023438 1146.3125 478.186523438 1153.96875 c 6 + 418.655273438 1164.59375 l 6 + 353.420898438 1176.703125 304.436523438 1198.1875 271.780273438 1228.890625 c 132 + 239.124023438 1259.59375 222.874023438 1301.859375 222.874023438 1355.609375 c 4 + 222.874023438 1385.0625 228.420898438 1411.78125 239.670898438 1435.765625 c 132 + 250.842773438 1459.75 266.545898438 1479.90625 286.702148438 1496.234375 c 132 + 306.858398438 1512.5625 331.311523438 1525.21875 360.139648438 1534.125 c 132 + 388.889648438 1543.109375 421.233398438 1547.5625 457.092773438 1547.5625 c 4 + 507.639648438 1547.5625 551.467773438 1538.8125 588.577148438 1521.234375 c 132 + 625.686523438 1503.578125 657.405273438 1478.1875 683.655273438 1444.90625 c 5 + 607.795898438 1377.71875 l 5 + 590.530273438 1400.0625 569.436523438 1418.03125 544.436523438 1431.46875 c 132 + 519.514648438 1444.90625 488.420898438 1451.625 451.311523438 1451.625 c 4 + 412.952148438 1451.625 383.186523438 1443.890625 362.014648438 1428.578125 c 132 + 340.920898438 1413.1875 330.374023438 1390.765625 330.374023438 1361.390625 c 4 + 330.374023438 1333.1875 338.967773438 1312.25 356.311523438 1298.5 c 132 + 373.577148438 1284.75 400.452148438 1274.28125 436.936523438 1267.25 c 6 + 496.467773438 1254.828125 l 6 + 563.655273438 1242.015625 612.795898438 1220.21875 643.811523438 1189.515625 c 132 + 674.827148438 1158.8125 690.374023438 1116.546875 690.374023438 1062.796875 c 4 + 690.374023438 1031.46875 684.905273438 1002.953125 674.045898438 977.328125 c 132 + 663.186523438 951.78125 647.327148438 929.828125 626.545898438 911.625 c 132 + 605.686523438 893.34375 580.295898438 879.28125 550.217773438 869.359375 c 132 + 520.139648438 859.4375 485.842773438 854.515625 447.483398438 854.515625 c 4 +905.686523438 866 m 5 + 747.327148438 1536.078125 l 5 + 857.717773438 1536.078125 l 5 + 925.842773438 1213.5 l 5 + 972.952148438 990.765625 l 5 + 975.764648438 990.765625 l 5 + 1029.59277344 1213.5 l 5 + 1109.20214844 1536.078125 l 5 + 1230.21777344 1536.078125 l 5 + 1308.88964844 1213.5 l 5 + 1361.70214844 991.78125 l 5 + 1364.59277344 991.78125 l 5 + 1413.57714844 1213.5 l 5 + 1483.65527344 1536.078125 l 5 + 1590.21777344 1536.078125 l 5 + 1425.06152344 866 l 5 + 1303.18652344 866 l 5 + 1217.71777344 1212.5625 l 5 + 1167.79589844 1416.078125 l 5 + 1165.84277344 1416.078125 l 5 + 1114.98339844 1212.5625 l 5 + 1027.63964844 866 l 5 + 905.686523438 866 l 5 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 8 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +283.203125 -11.484375 m 4 + 226.875 -11.484375 179.0625 -1.25 139.6875 19.21875 c 132 + 100.3125 39.6875 66.5625 67.1875 38.4375 101.796875 c 5 + 113.28125 171.875 l 5 + 136.953125 143.046875 163.046875 121.25 191.484375 106.5625 c 132 + 220 91.875 252.5 84.453125 288.984375 84.453125 c 4 + 331.875 84.453125 364.140625 94.0625 385.9375 113.28125 c 132 + 407.65625 132.5 418.59375 158.4375 418.59375 191.015625 c 4 + 418.59375 217.265625 410.859375 238.046875 395.546875 253.4375 c 132 + 380.15625 268.828125 352.96875 280.3125 313.90625 287.96875 c 6 + 254.375 298.59375 l 6 + 189.140625 310.703125 140.15625 332.1875 107.5 362.890625 c 132 + 74.84375 393.59375 58.59375 435.859375 58.59375 489.609375 c 4 + 58.59375 519.0625 64.140625 545.78125 75.390625 569.765625 c 132 + 86.5625 593.75 102.265625 613.90625 122.421875 630.234375 c 132 + 142.578125 646.5625 167.03125 659.21875 195.859375 668.125 c 132 + 224.609375 677.109375 256.953125 681.5625 292.8125 681.5625 c 4 + 343.359375 681.5625 387.1875 672.8125 424.296875 655.234375 c 132 + 461.40625 637.578125 493.125 612.1875 519.375 578.90625 c 5 + 443.515625 511.71875 l 5 + 426.25 534.0625 405.15625 552.03125 380.15625 565.46875 c 132 + 355.234375 578.90625 324.140625 585.625 287.03125 585.625 c 4 + 248.671875 585.625 218.90625 577.890625 197.734375 562.578125 c 132 + 176.640625 547.1875 166.09375 524.765625 166.09375 495.390625 c 4 + 166.09375 467.1875 174.6875 446.25 192.03125 432.5 c 132 + 209.296875 418.75 236.171875 408.28125 272.65625 401.25 c 6 + 332.1875 388.828125 l 6 + 399.375 376.015625 448.515625 354.21875 479.53125 323.515625 c 132 + 510.546875 292.8125 526.09375 250.546875 526.09375 196.796875 c 4 + 526.09375 165.46875 520.625 136.953125 509.765625 111.328125 c 132 + 498.90625 85.78125 483.046875 63.828125 462.265625 45.625 c 132 + 441.40625 27.34375 416.015625 13.28125 385.9375 3.359375 c 132 + 355.859375 -6.5625 321.5625 -11.484375 283.203125 -11.484375 c 4 +741.40625 0 m 5 + 583.046875 670.078125 l 5 + 693.4375 670.078125 l 5 + 761.5625 347.5 l 5 + 808.671875 124.765625 l 5 + 811.484375 124.765625 l 5 + 865.3125 347.5 l 5 + 944.921875 670.078125 l 5 + 1065.9375 670.078125 l 5 + 1144.609375 347.5 l 5 + 1197.421875 125.78125 l 5 + 1200.3125 125.78125 l 5 + 1249.296875 347.5 l 5 + 1319.375 670.078125 l 5 + 1425.9375 670.078125 l 5 + 1260.78125 0 l 5 + 1138.90625 0 l 5 + 1053.4375 346.5625 l 5 + 1003.515625 550.078125 l 5 + 1001.5625 550.078125 l 5 + 950.703125 346.5625 l 5 + 863.359375 0 l 5 + 741.40625 0 l 5 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 9 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 10 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +3.5400390625 -0.1435546875 m 4 + 2.8359375 -0.1435546875 2.23828125 -0.015625 1.74609375 0.240234375 c 132 + 1.25390625 0.49609375 0.83203125 0.83984375 0.48046875 1.2724609375 c 5 + 1.416015625 2.1484375 l 5 + 1.7119140625 1.7880859375 2.0380859375 1.515625 2.3935546875 1.33203125 c 132 + 2.75 1.1484375 3.15625 1.0556640625 3.6123046875 1.0556640625 c 4 + 4.1484375 1.0556640625 4.5517578125 1.17578125 4.82421875 1.416015625 c 132 + 5.095703125 1.65625 5.232421875 1.98046875 5.232421875 2.3876953125 c 4 + 5.232421875 2.7158203125 5.1357421875 2.9755859375 4.9443359375 3.16796875 c 132 + 4.751953125 3.3603515625 4.412109375 3.50390625 3.923828125 3.599609375 c 6 + 3.1796875 3.732421875 l 6 + 2.3642578125 3.8837890625 1.751953125 4.15234375 1.34375 4.5361328125 c 132 + 0.935546875 4.919921875 0.732421875 5.4482421875 0.732421875 6.1201171875 c 4 + 0.732421875 6.48828125 0.8017578125 6.822265625 0.9423828125 7.1220703125 c 132 + 1.08203125 7.421875 1.2783203125 7.673828125 1.5302734375 7.8779296875 c 132 + 1.7822265625 8.08203125 2.087890625 8.240234375 2.4482421875 8.3515625 c 132 + 2.8076171875 8.4638671875 3.2119140625 8.51953125 3.66015625 8.51953125 c 4 + 4.2919921875 8.51953125 4.83984375 8.41015625 5.3037109375 8.1904296875 c 132 + 5.767578125 7.9697265625 6.1640625 7.65234375 6.4921875 7.236328125 c 5 + 5.5439453125 6.396484375 l 5 + 5.328125 6.67578125 5.064453125 6.900390625 4.751953125 7.068359375 c 132 + 4.4404296875 7.236328125 4.0517578125 7.3203125 3.587890625 7.3203125 c 4 + 3.1083984375 7.3203125 2.736328125 7.2236328125 2.4716796875 7.0322265625 c 132 + 2.2080078125 6.83984375 2.076171875 6.5595703125 2.076171875 6.1923828125 c 4 + 2.076171875 5.83984375 2.18359375 5.578125 2.400390625 5.40625 c 132 + 2.6162109375 5.234375 2.9521484375 5.103515625 3.408203125 5.015625 c 6 + 4.15234375 4.8603515625 l 6 + 4.9921875 4.7001953125 5.6064453125 4.427734375 5.994140625 4.0439453125 c 132 + 6.3818359375 3.66015625 6.576171875 3.1318359375 6.576171875 2.4599609375 c 4 + 6.576171875 2.068359375 6.5078125 1.7119140625 6.3720703125 1.3916015625 c 132 + 6.236328125 1.072265625 6.0380859375 0.7978515625 5.7783203125 0.5703125 c 132 + 5.517578125 0.341796875 5.2001953125 0.166015625 4.82421875 0.0419921875 c 132 + 4.4482421875 -0.08203125 4.01953125 -0.1435546875 3.5400390625 -0.1435546875 c 4 +9.267578125 0 m 5 + 7.2880859375 8.3759765625 l 5 + 8.66796875 8.3759765625 l 5 + 9.51953125 4.34375 l 5 + 10.1083984375 1.5595703125 l 5 + 10.1435546875 1.5595703125 l 5 + 10.81640625 4.34375 l 5 + 11.8115234375 8.3759765625 l 5 + 13.32421875 8.3759765625 l 5 + 14.3076171875 4.34375 l 5 + 14.9677734375 1.572265625 l 5 + 15.00390625 1.572265625 l 5 + 15.6162109375 4.34375 l 5 + 16.4921875 8.3759765625 l 5 + 17.82421875 8.3759765625 l 5 + 15.759765625 0 l 5 + 14.236328125 0 l 5 + 13.16796875 4.33203125 l 5 + 12.5439453125 6.8759765625 l 5 + 12.51953125 6.8759765625 l 5 + 11.8837890625 4.33203125 l 5 + 10.7919921875 0 l 5 + 9.267578125 0 l 5 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 11 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 12 +Type: 1 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +EndUndoOperation +EndUndoes +Redoes +EndRedoes +EndUndoRedoHistory +Fore +SplineSet +765.548828125 -142.5 m 1 + 705.080078125 38.90625 l 1 + 454.533203125 38.90625 l 1 + 395.939453125 -142.5 l 1 + 285.548828125 -142.5 l 1 + 514.064453125 527.578125 l 1 + 650.392578125 527.578125 l 1 + 878.830078125 -142.5 l 1 + 765.548828125 -142.5 l 1 +582.189453125 427.734375 m 1 + 577.423828125 427.734375 l 1 + 480.470703125 132.03125 l 1 + 678.205078125 132.03125 l 1 + 582.189453125 427.734375 l 1 +1167.50195312 228.046875 m 1 + 1093.59570312 370.15625 l 1 + 1090.70507812 370.15625 l 1 + 1090.70507812 -142.5 l 1 + 987.033203125 -142.5 l 1 + 987.033203125 527.578125 l 1 + 1107.97070312 527.578125 l 1 + 1326.87695312 157.03125 l 1 + 1400.78320312 14.921875 l 1 + 1403.67382812 14.921875 l 1 + 1403.67382812 527.578125 l 1 + 1507.34570312 527.578125 l 1 + 1507.34570312 -142.5 l 1 + 1386.40820312 -142.5 l 1 + 1167.50195312 228.046875 l 1 +447.483398438 712.015625 m 0 + 391.155273438 712.015625 343.342773438 722.25 303.967773438 742.71875 c 128 + 264.592773438 763.1875 230.842773438 790.6875 202.717773438 825.296875 c 1 + 277.561523438 895.375 l 1 + 301.233398438 866.546875 327.327148438 844.75 355.764648438 830.0625 c 128 + 384.280273438 815.375 416.780273438 807.953125 453.264648438 807.953125 c 0 + 496.155273438 807.953125 528.420898438 817.5625 550.217773438 836.78125 c 128 + 571.936523438 856 582.874023438 881.9375 582.874023438 914.515625 c 0 + 582.874023438 940.765625 575.139648438 961.546875 559.827148438 976.9375 c 128 + 544.436523438 992.328125 517.249023438 1003.8125 478.186523438 1011.46875 c 2 + 418.655273438 1022.09375 l 2 + 353.420898438 1034.203125 304.436523438 1055.6875 271.780273438 1086.390625 c 128 + 239.124023438 1117.09375 222.874023438 1159.359375 222.874023438 1213.109375 c 0 + 222.874023438 1242.5625 228.420898438 1269.28125 239.670898438 1293.265625 c 128 + 250.842773438 1317.25 266.545898438 1337.40625 286.702148438 1353.734375 c 128 + 306.858398438 1370.0625 331.311523438 1382.71875 360.139648438 1391.625 c 128 + 388.889648438 1400.609375 421.233398438 1405.0625 457.092773438 1405.0625 c 0 + 507.639648438 1405.0625 551.467773438 1396.3125 588.577148438 1378.734375 c 128 + 625.686523438 1361.078125 657.405273438 1335.6875 683.655273438 1302.40625 c 1 + 607.795898438 1235.21875 l 1 + 590.530273438 1257.5625 569.436523438 1275.53125 544.436523438 1288.96875 c 128 + 519.514648438 1302.40625 488.420898438 1309.125 451.311523438 1309.125 c 0 + 412.952148438 1309.125 383.186523438 1301.390625 362.014648438 1286.078125 c 128 + 340.920898438 1270.6875 330.374023438 1248.265625 330.374023438 1218.890625 c 0 + 330.374023438 1190.6875 338.967773438 1169.75 356.311523438 1156 c 128 + 373.577148438 1142.25 400.452148438 1131.78125 436.936523438 1124.75 c 2 + 496.467773438 1112.328125 l 2 + 563.655273438 1099.515625 612.795898438 1077.71875 643.811523438 1047.015625 c 128 + 674.827148438 1016.3125 690.374023438 974.046875 690.374023438 920.296875 c 0 + 690.374023438 888.96875 684.905273438 860.453125 674.045898438 834.828125 c 128 + 663.186523438 809.28125 647.327148438 787.328125 626.545898438 769.125 c 128 + 605.686523438 750.84375 580.295898438 736.78125 550.217773438 726.859375 c 128 + 520.139648438 716.9375 485.842773438 712.015625 447.483398438 712.015625 c 0 +905.686523438 723.5 m 1 + 747.327148438 1393.578125 l 1 + 857.717773438 1393.578125 l 1 + 925.842773438 1071 l 1 + 972.952148438 848.265625 l 1 + 975.764648438 848.265625 l 1 + 1029.59277344 1071 l 1 + 1109.20214844 1393.578125 l 1 + 1230.21777344 1393.578125 l 1 + 1308.88964844 1071 l 1 + 1361.70214844 849.28125 l 1 + 1364.59277344 849.28125 l 1 + 1413.57714844 1071 l 1 + 1483.65527344 1393.578125 l 1 + 1590.21777344 1393.578125 l 1 + 1425.06152344 723.5 l 1 + 1303.18652344 723.5 l 1 + 1217.71777344 1070.0625 l 1 + 1167.79589844 1273.578125 l 1 + 1165.84277344 1273.578125 l 1 + 1114.98339844 1070.0625 l 1 + 1027.63964844 723.5 l 1 + 905.686523438 723.5 l 1 +EndSplineSet +EndChar + +StartChar: uniF01E +Encoding: 61470 61470 8 +Width: 1792 +Flags: H +LayerCount: 2 +UndoRedoHistory +Layer: 0 +Undoes +UndoOperation +Index: 0 +Type: 1 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +EndUndoOperation +EndUndoes +Redoes +EndRedoes +EndUndoRedoHistory +UndoRedoHistory +Layer: 1 +Undoes +UndoOperation +Index: 0 +Type: 3 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 1 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +283.203125 -11.484375 m 4 + 226.875 -11.484375 179.0625 -1.25 139.6875 19.21875 c 132 + 100.3125 39.6875 66.5625 67.1875 38.4375 101.796875 c 5 + 113.28125 171.875 l 5 + 136.953125 143.046875 163.046875 121.25 191.484375 106.5625 c 132 + 220 91.875 252.5 84.453125 288.984375 84.453125 c 4 + 331.875 84.453125 364.140625 94.0625 385.9375 113.28125 c 132 + 407.65625 132.5 418.59375 158.4375 418.59375 191.015625 c 4 + 418.59375 217.265625 410.859375 238.046875 395.546875 253.4375 c 132 + 380.15625 268.828125 352.96875 280.3125 313.90625 287.96875 c 6 + 254.375 298.59375 l 6 + 189.140625 310.703125 140.15625 332.1875 107.5 362.890625 c 132 + 74.84375 393.59375 58.59375 435.859375 58.59375 489.609375 c 4 + 58.59375 519.0625 64.140625 545.78125 75.390625 569.765625 c 132 + 86.5625 593.75 102.265625 613.90625 122.421875 630.234375 c 132 + 142.578125 646.5625 167.03125 659.21875 195.859375 668.125 c 132 + 224.609375 677.109375 256.953125 681.5625 292.8125 681.5625 c 4 + 343.359375 681.5625 387.1875 672.8125 424.296875 655.234375 c 132 + 461.40625 637.578125 493.125 612.1875 519.375 578.90625 c 5 + 443.515625 511.71875 l 5 + 426.25 534.0625 405.15625 552.03125 380.15625 565.46875 c 132 + 355.234375 578.90625 324.140625 585.625 287.03125 585.625 c 4 + 248.671875 585.625 218.90625 577.890625 197.734375 562.578125 c 132 + 176.640625 547.1875 166.09375 524.765625 166.09375 495.390625 c 4 + 166.09375 467.1875 174.6875 446.25 192.03125 432.5 c 132 + 209.296875 418.75 236.171875 408.28125 272.65625 401.25 c 6 + 332.1875 388.828125 l 6 + 399.375 376.015625 448.515625 354.21875 479.53125 323.515625 c 132 + 510.546875 292.8125 526.09375 250.546875 526.09375 196.796875 c 4 + 526.09375 165.46875 520.625 136.953125 509.765625 111.328125 c 132 + 498.90625 85.78125 483.046875 63.828125 462.265625 45.625 c 132 + 441.40625 27.34375 416.015625 13.28125 385.9375 3.359375 c 132 + 355.859375 -6.5625 321.5625 -11.484375 283.203125 -11.484375 c 4 +745.3125 670.078125 m 5 + 745.3125 257.265625 l 6 + 745.3125 200.3125 756.171875 157.421875 777.890625 128.671875 c 132 + 799.6875 99.84375 836.796875 85.46875 889.296875 85.46875 c 260 + 941.796875 85.46875 978.90625 99.84375 1000.625 128.671875 c 132 + 1022.421875 157.421875 1033.28125 200.3125 1033.28125 257.265625 c 6 + 1033.28125 670.078125 l 5 + 1139.84375 670.078125 l 5 + 1139.84375 274.53125 l 6 + 1139.84375 225.3125 1135.390625 182.734375 1126.40625 146.875 c 132 + 1117.421875 111.015625 1103.046875 81.40625 1083.203125 58.046875 c 132 + 1063.359375 34.6875 1037.578125 17.265625 1005.9375 5.78125 c 132 + 974.21875 -5.78125 935.390625 -11.484375 889.296875 -11.484375 c 260 + 843.203125 -11.484375 804.296875 -5.78125 772.65625 5.78125 c 132 + 740.9375 17.265625 715.234375 34.6875 695.390625 58.046875 c 132 + 675.546875 81.40625 661.09375 111.015625 652.1875 146.875 c 132 + 643.203125 182.734375 638.75 225.3125 638.75 274.53125 c 6 + 638.75 670.078125 l 5 + 745.3125 670.078125 l 5 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 2 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 3 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +3.5400390625 -0.1435546875 m 4 + 2.8359375 -0.1435546875 2.23828125 -0.015625 1.74609375 0.240234375 c 132 + 1.25390625 0.49609375 0.83203125 0.83984375 0.48046875 1.2724609375 c 5 + 1.416015625 2.1484375 l 5 + 1.7119140625 1.7880859375 2.0380859375 1.515625 2.3935546875 1.33203125 c 132 + 2.75 1.1484375 3.15625 1.0556640625 3.6123046875 1.0556640625 c 4 + 4.1484375 1.0556640625 4.5517578125 1.17578125 4.82421875 1.416015625 c 132 + 5.095703125 1.65625 5.232421875 1.98046875 5.232421875 2.3876953125 c 4 + 5.232421875 2.7158203125 5.1357421875 2.9755859375 4.9443359375 3.16796875 c 132 + 4.751953125 3.3603515625 4.412109375 3.50390625 3.923828125 3.599609375 c 6 + 3.1796875 3.732421875 l 6 + 2.3642578125 3.8837890625 1.751953125 4.15234375 1.34375 4.5361328125 c 132 + 0.935546875 4.919921875 0.732421875 5.4482421875 0.732421875 6.1201171875 c 4 + 0.732421875 6.48828125 0.8017578125 6.822265625 0.9423828125 7.1220703125 c 132 + 1.08203125 7.421875 1.2783203125 7.673828125 1.5302734375 7.8779296875 c 132 + 1.7822265625 8.08203125 2.087890625 8.240234375 2.4482421875 8.3515625 c 132 + 2.8076171875 8.4638671875 3.2119140625 8.51953125 3.66015625 8.51953125 c 4 + 4.2919921875 8.51953125 4.83984375 8.41015625 5.3037109375 8.1904296875 c 132 + 5.767578125 7.9697265625 6.1640625 7.65234375 6.4921875 7.236328125 c 5 + 5.5439453125 6.396484375 l 5 + 5.328125 6.67578125 5.064453125 6.900390625 4.751953125 7.068359375 c 132 + 4.4404296875 7.236328125 4.0517578125 7.3203125 3.587890625 7.3203125 c 4 + 3.1083984375 7.3203125 2.736328125 7.2236328125 2.4716796875 7.0322265625 c 132 + 2.2080078125 6.83984375 2.076171875 6.5595703125 2.076171875 6.1923828125 c 4 + 2.076171875 5.83984375 2.18359375 5.578125 2.400390625 5.40625 c 132 + 2.6162109375 5.234375 2.9521484375 5.103515625 3.408203125 5.015625 c 6 + 4.15234375 4.8603515625 l 6 + 4.9921875 4.7001953125 5.6064453125 4.427734375 5.994140625 4.0439453125 c 132 + 6.3818359375 3.66015625 6.576171875 3.1318359375 6.576171875 2.4599609375 c 4 + 6.576171875 2.068359375 6.5078125 1.7119140625 6.3720703125 1.3916015625 c 132 + 6.236328125 1.072265625 6.0380859375 0.7978515625 5.7783203125 0.5703125 c 132 + 5.517578125 0.341796875 5.2001953125 0.166015625 4.82421875 0.0419921875 c 132 + 4.4482421875 -0.08203125 4.01953125 -0.1435546875 3.5400390625 -0.1435546875 c 4 +9.31640625 8.3759765625 m 5 + 9.31640625 3.2158203125 l 6 + 9.31640625 2.50390625 9.4521484375 1.9677734375 9.7236328125 1.6083984375 c 132 + 9.99609375 1.248046875 10.4599609375 1.068359375 11.1162109375 1.068359375 c 260 + 11.7724609375 1.068359375 12.236328125 1.248046875 12.5078125 1.6083984375 c 132 + 12.7802734375 1.9677734375 12.916015625 2.50390625 12.916015625 3.2158203125 c 6 + 12.916015625 8.3759765625 l 5 + 14.248046875 8.3759765625 l 5 + 14.248046875 3.431640625 l 6 + 14.248046875 2.81640625 14.1923828125 2.2841796875 14.080078125 1.8359375 c 132 + 13.9677734375 1.3876953125 13.7880859375 1.017578125 13.5400390625 0.7255859375 c 132 + 13.2919921875 0.43359375 12.9697265625 0.2158203125 12.57421875 0.072265625 c 132 + 12.177734375 -0.072265625 11.6923828125 -0.1435546875 11.1162109375 -0.1435546875 c 260 + 10.5400390625 -0.1435546875 10.0537109375 -0.072265625 9.658203125 0.072265625 c 132 + 9.26171875 0.2158203125 8.9404296875 0.43359375 8.6923828125 0.7255859375 c 132 + 8.4443359375 1.017578125 8.263671875 1.3876953125 8.15234375 1.8359375 c 132 + 8.0400390625 2.2841796875 7.984375 2.81640625 7.984375 3.431640625 c 6 + 7.984375 8.3759765625 l 5 + 9.31640625 8.3759765625 l 5 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 4 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 5 +Type: 1 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +EndUndoOperation +EndUndoes +Redoes +EndRedoes +EndUndoRedoHistory +Fore +SplineSet +590.483398438 279.015625 m 0 + 534.155273438 279.015625 486.342773438 289.25 446.967773438 309.71875 c 128 + 407.592773438 330.1875 373.842773438 357.6875 345.717773438 392.296875 c 1 + 420.561523438 462.375 l 1 + 444.233398438 433.546875 470.327148438 411.75 498.764648438 397.0625 c 128 + 527.280273438 382.375 559.780273438 374.953125 596.264648438 374.953125 c 0 + 639.155273438 374.953125 671.420898438 384.5625 693.217773438 403.78125 c 128 + 714.936523438 423 725.874023438 448.9375 725.874023438 481.515625 c 0 + 725.874023438 507.765625 718.139648438 528.546875 702.827148438 543.9375 c 128 + 687.436523438 559.328125 660.249023438 570.8125 621.186523438 578.46875 c 2 + 561.655273438 589.09375 l 2 + 496.420898438 601.203125 447.436523438 622.6875 414.780273438 653.390625 c 128 + 382.124023438 684.09375 365.874023438 726.359375 365.874023438 780.109375 c 0 + 365.874023438 809.5625 371.420898438 836.28125 382.670898438 860.265625 c 128 + 393.842773438 884.25 409.545898438 904.40625 429.702148438 920.734375 c 128 + 449.858398438 937.0625 474.311523438 949.71875 503.139648438 958.625 c 128 + 531.889648438 967.609375 564.233398438 972.0625 600.092773438 972.0625 c 0 + 650.639648438 972.0625 694.467773438 963.3125 731.577148438 945.734375 c 128 + 768.686523438 928.078125 800.405273438 902.6875 826.655273438 869.40625 c 1 + 750.795898438 802.21875 l 1 + 733.530273438 824.5625 712.436523438 842.53125 687.436523438 855.96875 c 128 + 662.514648438 869.40625 631.420898438 876.125 594.311523438 876.125 c 0 + 555.952148438 876.125 526.186523438 868.390625 505.014648438 853.078125 c 128 + 483.920898438 837.6875 473.374023438 815.265625 473.374023438 785.890625 c 0 + 473.374023438 757.6875 481.967773438 736.75 499.311523438 723 c 128 + 516.577148438 709.25 543.452148438 698.78125 579.936523438 691.75 c 2 + 639.467773438 679.328125 l 2 + 706.655273438 666.515625 755.795898438 644.71875 786.811523438 614.015625 c 128 + 817.827148438 583.3125 833.374023438 541.046875 833.374023438 487.296875 c 0 + 833.374023438 455.96875 827.905273438 427.453125 817.045898438 401.828125 c 128 + 806.186523438 376.28125 790.327148438 354.328125 769.545898438 336.125 c 128 + 748.686523438 317.84375 723.295898438 303.78125 693.217773438 293.859375 c 128 + 663.139648438 283.9375 628.842773438 279.015625 590.483398438 279.015625 c 0 +1052.59277344 960.578125 m 1 + 1052.59277344 547.765625 l 2 + 1052.59277344 490.8125 1063.45214844 447.921875 1085.17089844 419.171875 c 128 + 1106.96777344 390.34375 1144.07714844 375.96875 1196.57714844 375.96875 c 256 + 1249.07714844 375.96875 1286.18652344 390.34375 1307.90527344 419.171875 c 128 + 1329.70214844 447.921875 1340.56152344 490.8125 1340.56152344 547.765625 c 2 + 1340.56152344 960.578125 l 1 + 1447.12402344 960.578125 l 1 + 1447.12402344 565.03125 l 2 + 1447.12402344 515.8125 1442.67089844 473.234375 1433.68652344 437.375 c 128 + 1424.70214844 401.515625 1410.32714844 371.90625 1390.48339844 348.546875 c 128 + 1370.63964844 325.1875 1344.85839844 307.765625 1313.21777344 296.28125 c 128 + 1281.49902344 284.71875 1242.67089844 279.015625 1196.57714844 279.015625 c 256 + 1150.48339844 279.015625 1111.57714844 284.71875 1079.93652344 296.28125 c 128 + 1048.21777344 307.765625 1022.51464844 325.1875 1002.67089844 348.546875 c 128 + 982.827148438 371.90625 968.374023438 401.515625 959.467773438 437.375 c 128 + 950.483398438 473.234375 946.030273438 515.8125 946.030273438 565.03125 c 2 + 946.030273438 960.578125 l 1 + 1052.59277344 960.578125 l 1 +EndSplineSet +EndChar + +StartChar: uniF028 +Encoding: 61480 61480 9 +Width: 1792 +Flags: H +LayerCount: 2 +UndoRedoHistory +Layer: 0 +Undoes +UndoOperation +Index: 0 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +EndUndoOperation +EndUndoes +Redoes +EndRedoes +EndUndoRedoHistory +UndoRedoHistory +Layer: 1 +Undoes +UndoOperation +Index: 0 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 1 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +791 -262 m 5 + 641 -262 l 6 + 582 -262 538 -246 510 -216 c 132 + 482 -186 469 -145 469 -94 c 6 + 469 -14 l 5 + 410 -7 355 11 308 38 c 132 + 261 65 221 102 188 147 c 132 + 155 192 128 247 110 311 c 132 + 92 375 83 447 83 528 c 4 + 83 617 94 695 116 763 c 132 + 138 831 168 888 208 934 c 132 + 248 980 296 1014 352 1038 c 132 + 408 1062 469 1073 538 1073 c 260 + 607 1073 669 1062 725 1038 c 132 + 781 1014 829 980 869 934 c 132 + 909 888 939 831 961 763 c 132 + 983 695 993 617 993 528 c 4 + 993 371 961 246 895 155 c 132 + 830 64 741 8 629 -11 c 5 + 629 -119 l 5 + 791 -119 l 5 + 791 -262 l 5 +538 135 m 4 + 578 135 615 142 649 156 c 132 + 683 170 712 190 736 217 c 132 + 760 244 778 277 791 315 c 132 + 804 353 810 397 810 445 c 6 + 810 611 l 6 + 810 659 804 703 791 741 c 132 + 778 779 760 811 736 838 c 132 + 712 865 683 886 649 900 c 132 + 615 914 578 921 538 921 c 4 + 497 921 459 914 426 900 c 132 + 393 886 365 865 341 838 c 132 + 317 811 299 779 286 741 c 132 + 273 703 266 659 266 611 c 6 + 266 445 l 6 + 266 397 273 353 286 315 c 132 + 299 277 317 244 341 217 c 132 + 365 190 393 170 426 156 c 132 + 459 142 497 135 538 135 c 4 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 2 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 3 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +6.2763671875 -2.076171875 m 5 + 5.087890625 -2.076171875 l 6 + 4.6162109375 -2.076171875 4.26953125 -1.9560546875 4.0498046875 -1.7158203125 c 132 + 3.830078125 -1.4755859375 3.7197265625 -1.15234375 3.7197265625 -0.744140625 c 6 + 3.7197265625 -0.1083984375 l 5 + 3.248046875 -0.0517578125 2.82421875 0.083984375 2.4482421875 0.2998046875 c 132 + 2.072265625 0.515625 1.751953125 0.8037109375 1.48828125 1.1640625 c 132 + 1.2236328125 1.5244140625 1.01953125 1.9580078125 0.8759765625 2.4658203125 c 132 + 0.732421875 2.9736328125 0.66015625 3.5478515625 0.66015625 4.1884765625 c 4 + 0.66015625 4.8916015625 0.74609375 5.513671875 0.91796875 6.0537109375 c 132 + 1.08984375 6.59375 1.333984375 7.0458984375 1.650390625 7.41015625 c 132 + 1.9658203125 7.7744140625 2.345703125 8.0498046875 2.7900390625 8.23828125 c 132 + 3.234375 8.42578125 3.7275390625 8.51953125 4.2724609375 8.51953125 c 260 + 4.81640625 8.51953125 5.3095703125 8.42578125 5.75390625 8.23828125 c 132 + 6.1982421875 8.0498046875 6.578125 7.7744140625 6.8935546875 7.41015625 c 132 + 7.2099609375 7.0458984375 7.4541015625 6.59375 7.6259765625 6.0537109375 c 132 + 7.7978515625 5.513671875 7.8837890625 4.8916015625 7.8837890625 4.1884765625 c 4 + 7.8837890625 2.9404296875 7.6240234375 1.9541015625 7.103515625 1.23046875 c 132 + 6.583984375 0.505859375 5.8798828125 0.068359375 4.9921875 -0.083984375 c 5 + 4.9921875 -0.9482421875 l 5 + 6.2763671875 -0.9482421875 l 5 + 6.2763671875 -2.076171875 l 5 +4.2724609375 1.068359375 m 4 + 4.591796875 1.068359375 4.8857421875 1.1240234375 5.154296875 1.236328125 c 132 + 5.421875 1.34765625 5.650390625 1.509765625 5.837890625 1.7216796875 c 132 + 6.0263671875 1.93359375 6.171875 2.1923828125 6.2763671875 2.49609375 c 132 + 6.3798828125 2.7998046875 6.431640625 3.1435546875 6.431640625 3.5283203125 c 6 + 6.431640625 4.84765625 l 6 + 6.431640625 5.232421875 6.3798828125 5.576171875 6.2763671875 5.8798828125 c 132 + 6.171875 6.18359375 6.0263671875 6.4423828125 5.837890625 6.654296875 c 132 + 5.650390625 6.8662109375 5.421875 7.0283203125 5.154296875 7.1396484375 c 132 + 4.8857421875 7.251953125 4.591796875 7.3076171875 4.2724609375 7.3076171875 c 4 + 3.9443359375 7.3076171875 3.6484375 7.251953125 3.3837890625 7.1396484375 c 132 + 3.1201171875 7.0283203125 2.8935546875 6.8662109375 2.7060546875 6.654296875 c 132 + 2.517578125 6.4423828125 2.3720703125 6.18359375 2.267578125 5.8798828125 c 132 + 2.1640625 5.576171875 2.1123046875 5.232421875 2.1123046875 4.84765625 c 6 + 2.1123046875 3.5283203125 l 6 + 2.1123046875 3.1435546875 2.1640625 2.7998046875 2.267578125 2.49609375 c 132 + 2.3720703125 2.1923828125 2.517578125 1.93359375 2.7060546875 1.7216796875 c 132 + 2.8935546875 1.509765625 3.1201171875 1.34765625 3.3837890625 1.236328125 c 132 + 3.6484375 1.1240234375 3.9443359375 1.068359375 4.2724609375 1.068359375 c 4 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 4 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 5 +Type: 1 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +EndUndoOperation +EndUndoes +Redoes +EndRedoes +EndUndoRedoHistory +Fore +SplineSet +1149 -164.5 m 5 + 999 -164.5 l 6 + 940 -164.5 896 -148.5 868 -118.5 c 132 + 840 -88.5 827 -47.5 827 3.5 c 6 + 827 83.5 l 5 + 768 90.5 713 108.5 666 135.5 c 132 + 619 162.5 579 200.5 546 245.5 c 132 + 513 290.5 486 345.5 468 409.5 c 132 + 450 473.5 441 544.5 441 625.5 c 4 + 441 714.5 452 793.5 474 861.5 c 132 + 496 929.5 526 985.5 566 1031.5 c 132 + 606 1077.5 654 1111.5 710 1135.5 c 132 + 766 1159.5 827 1171.5 896 1171.5 c 260 + 965 1171.5 1027 1159.5 1083 1135.5 c 132 + 1139 1111.5 1187 1077.5 1227 1031.5 c 132 + 1267 985.5 1297 929.5 1319 861.5 c 132 + 1341 793.5 1351 714.5 1351 625.5 c 4 + 1351 468.5 1319 344.5 1253 253.5 c 132 + 1188 162.5 1099 106.5 987 87.5 c 5 + 987 -20.5 l 5 + 1149 -20.5 l 5 + 1149 -164.5 l 5 +896 233.5 m 4 + 936 233.5 973 239.5 1007 253.5 c 132 + 1041 267.5 1070 288.5 1094 315.5 c 132 + 1118 342.5 1136 375.5 1149 413.5 c 132 + 1162 451.5 1168 495.5 1168 543.5 c 6 + 1168 709.5 l 6 + 1168 757.5 1162 801.5 1149 839.5 c 132 + 1136 877.5 1118 908.5 1094 935.5 c 132 + 1070 962.5 1041 983.5 1007 997.5 c 132 + 973 1011.5 936 1019.5 896 1019.5 c 4 + 855 1019.5 817 1011.5 784 997.5 c 132 + 751 983.5 723 962.5 699 935.5 c 132 + 675 908.5 657 877.5 644 839.5 c 132 + 631 801.5 624 757.5 624 709.5 c 6 + 624 543.5 l 6 + 624 495.5 631 451.5 644 413.5 c 132 + 657 375.5 675 342.5 699 315.5 c 132 + 723 288.5 751 267.5 784 253.5 c 132 + 817 239.5 855 233.5 896 233.5 c 4 +EndSplineSet +EndChar + +StartChar: uniF015 +Encoding: 61461 61461 10 +Width: 1792 +Flags: HO +LayerCount: 2 +UndoRedoHistory +Layer: 1 +Undoes +UndoOperation +Index: 0 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +14.755859375 1069.5703125 m 5 + 259.302734375 1069.5703125 l 6 + 305.919921875 1069.5703125 341.357421875 1056.3515625 365.544921875 1029.84375 c 132 + 389.732421875 1003.3359375 401.826171875 964.734375 401.826171875 914.0390625 c 4 + 401.826171875 875.4375 393.458984375 845.203125 376.794921875 823.3359375 c 132 + 360.060546875 801.46875 336.154296875 789.09375 305.076171875 786.2109375 c 5 + 305.076171875 775.8046875 l 5 + 322.373046875 775.8046875 338.052734375 772.5 352.185546875 765.890625 c 132 + 366.248046875 759.28125 378.482421875 749.859375 388.888671875 737.765625 c 132 + 399.224609375 725.671875 407.310546875 711.328125 413.076171875 694.59375 c 132 + 418.841796875 677.859375 421.724609375 659.71875 421.724609375 640.171875 c 4 + 421.724609375 614.2265625 418.419921875 590.6015625 411.810546875 569.296875 c 132 + 405.130859375 547.9921875 395.779296875 529.7109375 383.685546875 514.453125 c 132 + 371.591796875 499.1953125 357.037109375 487.3828125 340.091796875 479.015625 c 132 + 323.076171875 470.6484375 304.232421875 466.5 283.490234375 466.5 c 6 + 14.755859375 466.5 l 5 + 14.755859375 1069.5703125 l 5 +106.373046875 546.8671875 m 5 + 256.701171875 546.8671875 l 6 + 278.568359375 546.8671875 295.302734375 552.7734375 306.833984375 564.5859375 c 132 + 318.294921875 576.3984375 324.060546875 595.2421875 324.060546875 621.1875 c 6 + 324.060546875 660.9140625 l 6 + 324.060546875 686.7890625 318.294921875 705.703125 306.833984375 717.515625 c 132 + 295.302734375 729.328125 278.568359375 735.234375 256.701171875 735.234375 c 6 + 106.373046875 735.234375 l 5 + 106.373046875 546.8671875 l 5 +106.373046875 813.84375 m 5 + 242.005859375 813.84375 l 6 + 262.185546875 813.84375 277.724609375 819.1875 288.623046875 829.8046875 c 132 + 299.591796875 840.4921875 305.076171875 857.859375 305.076171875 882.1171875 c 6 + 305.076171875 920.9296875 l 6 + 305.076171875 945.1875 299.591796875 962.5546875 288.623046875 973.2421875 c 132 + 277.724609375 983.859375 262.185546875 989.203125 242.005859375 989.203125 c 6 + 106.373046875 989.203125 l 5 + 106.373046875 813.84375 l 5 +518.755859375 466.5 m 5 + 518.755859375 1069.5703125 l 5 + 868.701171875 1069.5703125 l 5 + 868.701171875 989.203125 l 5 + 610.373046875 989.203125 l 5 + 610.373046875 812.9296875 l 5 + 843.599609375 812.9296875 l 5 + 843.599609375 733.4765625 l 5 + 610.373046875 733.4765625 l 5 + 610.373046875 546.8671875 l 5 + 868.701171875 546.8671875 l 5 + 868.701171875 466.5 l 5 + 518.755859375 466.5 l 5 +950.755859375 466.5 m 5 + 950.755859375 1069.5703125 l 5 + 1300.70117188 1069.5703125 l 5 + 1300.70117188 989.203125 l 5 + 1042.37304688 989.203125 l 5 + 1042.37304688 812.9296875 l 5 + 1275.59960938 812.9296875 l 5 + 1275.59960938 733.4765625 l 5 + 1042.37304688 733.4765625 l 5 + 1042.37304688 546.8671875 l 5 + 1300.70117188 546.8671875 l 5 + 1300.70117188 466.5 l 5 + 950.755859375 466.5 l 5 +1382.75585938 466.5 m 5 + 1382.75585938 1069.5703125 l 5 + 1621.25585938 1069.5703125 l 6 + 1673.07617188 1069.5703125 1712.09960938 1054.171875 1738.32617188 1023.375 c 132 + 1764.48242188 992.5078125 1777.63085938 948.0703125 1777.63085938 889.8515625 c 260 + 1777.63085938 831.703125 1764.48242188 787.1953125 1738.32617188 756.3984375 c 132 + 1712.09960938 725.53125 1673.07617188 710.1328125 1621.25585938 710.1328125 c 6 + 1474.37304688 710.1328125 l 5 + 1474.37304688 466.5 l 5 + 1382.75585938 466.5 l 5 +1474.37304688 791.34375 m 5 + 1613.45117188 791.34375 l 6 + 1635.31835938 791.34375 1651.91210938 796.96875 1663.16210938 808.21875 c 132 + 1674.34179688 819.46875 1679.96679688 837.46875 1679.96679688 862.21875 c 6 + 1679.96679688 917.484375 l 6 + 1679.96679688 942.3046875 1674.34179688 960.3046875 1663.16210938 971.484375 c 132 + 1651.91210938 982.734375 1635.31835938 988.359375 1613.45117188 988.359375 c 6 + 1474.37304688 988.359375 l 5 + 1474.37304688 791.34375 l 5 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 1 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 2 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +14.755859375 603.0703125 m 5 + 259.302734375 603.0703125 l 6 + 305.919921875 603.0703125 341.357421875 589.8515625 365.544921875 563.34375 c 132 + 389.732421875 536.8359375 401.826171875 498.234375 401.826171875 447.5390625 c 4 + 401.826171875 408.9375 393.458984375 378.703125 376.794921875 356.8359375 c 132 + 360.060546875 334.96875 336.154296875 322.59375 305.076171875 319.7109375 c 5 + 305.076171875 309.3046875 l 5 + 322.373046875 309.3046875 338.052734375 306 352.185546875 299.390625 c 132 + 366.248046875 292.78125 378.482421875 283.359375 388.888671875 271.265625 c 132 + 399.224609375 259.171875 407.310546875 244.828125 413.076171875 228.09375 c 132 + 418.841796875 211.359375 421.724609375 193.21875 421.724609375 173.671875 c 4 + 421.724609375 147.7265625 418.419921875 124.1015625 411.810546875 102.796875 c 132 + 405.130859375 81.4921875 395.779296875 63.2109375 383.685546875 47.953125 c 132 + 371.591796875 32.6953125 357.037109375 20.8828125 340.091796875 12.515625 c 132 + 323.076171875 4.1484375 304.232421875 0 283.490234375 0 c 6 + 14.755859375 0 l 5 + 14.755859375 603.0703125 l 5 +106.373046875 80.3671875 m 5 + 256.701171875 80.3671875 l 6 + 278.568359375 80.3671875 295.302734375 86.2734375 306.833984375 98.0859375 c 132 + 318.294921875 109.8984375 324.060546875 128.7421875 324.060546875 154.6875 c 6 + 324.060546875 194.4140625 l 6 + 324.060546875 220.2890625 318.294921875 239.203125 306.833984375 251.015625 c 132 + 295.302734375 262.828125 278.568359375 268.734375 256.701171875 268.734375 c 6 + 106.373046875 268.734375 l 5 + 106.373046875 80.3671875 l 5 +106.373046875 347.34375 m 5 + 242.005859375 347.34375 l 6 + 262.185546875 347.34375 277.724609375 352.6875 288.623046875 363.3046875 c 132 + 299.591796875 373.9921875 305.076171875 391.359375 305.076171875 415.6171875 c 6 + 305.076171875 454.4296875 l 6 + 305.076171875 478.6875 299.591796875 496.0546875 288.623046875 506.7421875 c 132 + 277.724609375 517.359375 262.185546875 522.703125 242.005859375 522.703125 c 6 + 106.373046875 522.703125 l 5 + 106.373046875 347.34375 l 5 +518.755859375 0 m 5 + 518.755859375 603.0703125 l 5 + 868.701171875 603.0703125 l 5 + 868.701171875 522.703125 l 5 + 610.373046875 522.703125 l 5 + 610.373046875 346.4296875 l 5 + 843.599609375 346.4296875 l 5 + 843.599609375 266.9765625 l 5 + 610.373046875 266.9765625 l 5 + 610.373046875 80.3671875 l 5 + 868.701171875 80.3671875 l 5 + 868.701171875 0 l 5 + 518.755859375 0 l 5 +950.755859375 0 m 5 + 950.755859375 603.0703125 l 5 + 1300.70117188 603.0703125 l 5 + 1300.70117188 522.703125 l 5 + 1042.37304688 522.703125 l 5 + 1042.37304688 346.4296875 l 5 + 1275.59960938 346.4296875 l 5 + 1275.59960938 266.9765625 l 5 + 1042.37304688 266.9765625 l 5 + 1042.37304688 80.3671875 l 5 + 1300.70117188 80.3671875 l 5 + 1300.70117188 0 l 5 + 950.755859375 0 l 5 +1382.75585938 0 m 5 + 1382.75585938 603.0703125 l 5 + 1621.25585938 603.0703125 l 6 + 1673.07617188 603.0703125 1712.09960938 587.671875 1738.32617188 556.875 c 132 + 1764.48242188 526.0078125 1777.63085938 481.5703125 1777.63085938 423.3515625 c 260 + 1777.63085938 365.203125 1764.48242188 320.6953125 1738.32617188 289.8984375 c 132 + 1712.09960938 259.03125 1673.07617188 243.6328125 1621.25585938 243.6328125 c 6 + 1474.37304688 243.6328125 l 5 + 1474.37304688 0 l 5 + 1382.75585938 0 l 5 +1474.37304688 324.84375 m 5 + 1613.45117188 324.84375 l 6 + 1635.31835938 324.84375 1651.91210938 330.46875 1663.16210938 341.71875 c 132 + 1674.34179688 352.96875 1679.96679688 370.96875 1679.96679688 395.71875 c 6 + 1679.96679688 450.984375 l 6 + 1679.96679688 475.8046875 1674.34179688 493.8046875 1663.16210938 504.984375 c 132 + 1651.91210938 516.234375 1635.31835938 521.859375 1613.45117188 521.859375 c 6 + 1474.37304688 521.859375 l 5 + 1474.37304688 324.84375 l 5 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 3 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 4 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +66.515625 603.0703125 m 5 + 311.0625 603.0703125 l 6 + 357.6796875 603.0703125 393.1171875 589.8515625 417.3046875 563.34375 c 132 + 441.4921875 536.8359375 453.5859375 498.234375 453.5859375 447.5390625 c 4 + 453.5859375 408.9375 445.21875 378.703125 428.5546875 356.8359375 c 132 + 411.8203125 334.96875 387.9140625 322.59375 356.8359375 319.7109375 c 5 + 356.8359375 309.3046875 l 5 + 374.1328125 309.3046875 389.8125 306 403.9453125 299.390625 c 132 + 418.0078125 292.78125 430.2421875 283.359375 440.6484375 271.265625 c 132 + 450.984375 259.171875 459.0703125 244.828125 464.8359375 228.09375 c 132 + 470.6015625 211.359375 473.484375 193.21875 473.484375 173.671875 c 4 + 473.484375 147.7265625 470.1796875 124.1015625 463.5703125 102.796875 c 132 + 456.890625 81.4921875 447.5390625 63.2109375 435.4453125 47.953125 c 132 + 423.3515625 32.6953125 408.796875 20.8828125 391.8515625 12.515625 c 132 + 374.8359375 4.1484375 355.9921875 0 335.25 0 c 6 + 66.515625 0 l 5 + 66.515625 603.0703125 l 5 +158.1328125 80.3671875 m 5 + 308.4609375 80.3671875 l 6 + 330.328125 80.3671875 347.0625 86.2734375 358.59375 98.0859375 c 132 + 370.0546875 109.8984375 375.8203125 128.7421875 375.8203125 154.6875 c 6 + 375.8203125 194.4140625 l 6 + 375.8203125 220.2890625 370.0546875 239.203125 358.59375 251.015625 c 132 + 347.0625 262.828125 330.328125 268.734375 308.4609375 268.734375 c 6 + 158.1328125 268.734375 l 5 + 158.1328125 80.3671875 l 5 +158.1328125 347.34375 m 5 + 293.765625 347.34375 l 6 + 313.9453125 347.34375 329.484375 352.6875 340.3828125 363.3046875 c 132 + 351.3515625 373.9921875 356.8359375 391.359375 356.8359375 415.6171875 c 6 + 356.8359375 454.4296875 l 6 + 356.8359375 478.6875 351.3515625 496.0546875 340.3828125 506.7421875 c 132 + 329.484375 517.359375 313.9453125 522.703125 293.765625 522.703125 c 6 + 158.1328125 522.703125 l 5 + 158.1328125 347.34375 l 5 +570.515625 0 m 5 + 570.515625 603.0703125 l 5 + 920.4609375 603.0703125 l 5 + 920.4609375 522.703125 l 5 + 662.1328125 522.703125 l 5 + 662.1328125 346.4296875 l 5 + 895.359375 346.4296875 l 5 + 895.359375 266.9765625 l 5 + 662.1328125 266.9765625 l 5 + 662.1328125 80.3671875 l 5 + 920.4609375 80.3671875 l 5 + 920.4609375 0 l 5 + 570.515625 0 l 5 +1002.515625 0 m 5 + 1002.515625 603.0703125 l 5 + 1352.4609375 603.0703125 l 5 + 1352.4609375 522.703125 l 5 + 1094.1328125 522.703125 l 5 + 1094.1328125 346.4296875 l 5 + 1327.359375 346.4296875 l 5 + 1327.359375 266.9765625 l 5 + 1094.1328125 266.9765625 l 5 + 1094.1328125 80.3671875 l 5 + 1352.4609375 80.3671875 l 5 + 1352.4609375 0 l 5 + 1002.515625 0 l 5 +1434.515625 0 m 5 + 1434.515625 603.0703125 l 5 + 1673.015625 603.0703125 l 6 + 1724.8359375 603.0703125 1763.859375 587.671875 1790.0859375 556.875 c 132 + 1816.2421875 526.0078125 1829.390625 481.5703125 1829.390625 423.3515625 c 260 + 1829.390625 365.203125 1816.2421875 320.6953125 1790.0859375 289.8984375 c 132 + 1763.859375 259.03125 1724.8359375 243.6328125 1673.015625 243.6328125 c 6 + 1526.1328125 243.6328125 l 5 + 1526.1328125 0 l 5 + 1434.515625 0 l 5 +1526.1328125 324.84375 m 5 + 1665.2109375 324.84375 l 6 + 1687.078125 324.84375 1703.671875 330.46875 1714.921875 341.71875 c 132 + 1726.1015625 352.96875 1731.7265625 370.96875 1731.7265625 395.71875 c 6 + 1731.7265625 450.984375 l 6 + 1731.7265625 475.8046875 1726.1015625 493.8046875 1714.921875 504.984375 c 132 + 1703.671875 516.234375 1687.078125 521.859375 1665.2109375 521.859375 c 6 + 1526.1328125 521.859375 l 5 + 1526.1328125 324.84375 l 5 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 5 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 6 +Type: 1 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +SplineSet +0.923828125 8.3759765625 m 5 + 4.3203125 8.3759765625 l 6 + 4.9677734375 8.3759765625 5.4599609375 8.1923828125 5.7958984375 7.82421875 c 132 + 6.1318359375 7.4560546875 6.2998046875 6.919921875 6.2998046875 6.2158203125 c 4 + 6.2998046875 5.6796875 6.18359375 5.259765625 5.9521484375 4.9560546875 c 132 + 5.7197265625 4.65234375 5.3876953125 4.48046875 4.9560546875 4.4404296875 c 5 + 4.9560546875 4.2958984375 l 5 + 5.1962890625 4.2958984375 5.4140625 4.25 5.6103515625 4.158203125 c 132 + 5.8056640625 4.06640625 5.9755859375 3.935546875 6.1201171875 3.767578125 c 132 + 6.263671875 3.599609375 6.3759765625 3.400390625 6.4560546875 3.16796875 c 132 + 6.5361328125 2.935546875 6.576171875 2.68359375 6.576171875 2.412109375 c 4 + 6.576171875 2.0517578125 6.5302734375 1.7236328125 6.4384765625 1.427734375 c 132 + 6.345703125 1.1318359375 6.2158203125 0.8779296875 6.0478515625 0.666015625 c 132 + 5.8798828125 0.4541015625 5.677734375 0.2900390625 5.4423828125 0.173828125 c 132 + 5.2060546875 0.0576171875 4.9443359375 0 4.65625 0 c 6 + 0.923828125 0 l 5 + 0.923828125 8.3759765625 l 5 +2.1962890625 1.1162109375 m 5 + 4.2841796875 1.1162109375 l 6 + 4.587890625 1.1162109375 4.8203125 1.1982421875 4.98046875 1.3623046875 c 132 + 5.1396484375 1.5263671875 5.2197265625 1.7880859375 5.2197265625 2.1484375 c 6 + 5.2197265625 2.7001953125 l 6 + 5.2197265625 3.0595703125 5.1396484375 3.322265625 4.98046875 3.486328125 c 132 + 4.8203125 3.650390625 4.587890625 3.732421875 4.2841796875 3.732421875 c 6 + 2.1962890625 3.732421875 l 5 + 2.1962890625 1.1162109375 l 5 +2.1962890625 4.82421875 m 5 + 4.080078125 4.82421875 l 6 + 4.3603515625 4.82421875 4.576171875 4.8984375 4.7275390625 5.0458984375 c 132 + 4.8798828125 5.1943359375 4.9560546875 5.435546875 4.9560546875 5.7724609375 c 6 + 4.9560546875 6.3115234375 l 6 + 4.9560546875 6.6484375 4.8798828125 6.8896484375 4.7275390625 7.0380859375 c 132 + 4.576171875 7.185546875 4.3603515625 7.259765625 4.080078125 7.259765625 c 6 + 2.1962890625 7.259765625 l 5 + 2.1962890625 4.82421875 l 5 +7.923828125 0 m 5 + 7.923828125 8.3759765625 l 5 + 12.7841796875 8.3759765625 l 5 + 12.7841796875 7.259765625 l 5 + 9.1962890625 7.259765625 l 5 + 9.1962890625 4.8115234375 l 5 + 12.435546875 4.8115234375 l 5 + 12.435546875 3.7080078125 l 5 + 9.1962890625 3.7080078125 l 5 + 9.1962890625 1.1162109375 l 5 + 12.7841796875 1.1162109375 l 5 + 12.7841796875 0 l 5 + 7.923828125 0 l 5 +13.923828125 0 m 5 + 13.923828125 8.3759765625 l 5 + 18.7841796875 8.3759765625 l 5 + 18.7841796875 7.259765625 l 5 + 15.1962890625 7.259765625 l 5 + 15.1962890625 4.8115234375 l 5 + 18.435546875 4.8115234375 l 5 + 18.435546875 3.7080078125 l 5 + 15.1962890625 3.7080078125 l 5 + 15.1962890625 1.1162109375 l 5 + 18.7841796875 1.1162109375 l 5 + 18.7841796875 0 l 5 + 13.923828125 0 l 5 +19.923828125 0 m 5 + 19.923828125 8.3759765625 l 5 + 23.236328125 8.3759765625 l 6 + 23.9560546875 8.3759765625 24.498046875 8.162109375 24.8623046875 7.734375 c 132 + 25.2255859375 7.3056640625 25.408203125 6.6884765625 25.408203125 5.8798828125 c 260 + 25.408203125 5.072265625 25.2255859375 4.4541015625 24.8623046875 4.0263671875 c 132 + 24.498046875 3.59765625 23.9560546875 3.3837890625 23.236328125 3.3837890625 c 6 + 21.1962890625 3.3837890625 l 5 + 21.1962890625 0 l 5 + 19.923828125 0 l 5 +21.1962890625 4.51171875 m 5 + 23.1279296875 4.51171875 l 6 + 23.431640625 4.51171875 23.662109375 4.58984375 23.818359375 4.74609375 c 132 + 23.9736328125 4.90234375 24.0517578125 5.15234375 24.0517578125 5.49609375 c 6 + 24.0517578125 6.263671875 l 6 + 24.0517578125 6.6083984375 23.9736328125 6.8583984375 23.818359375 7.013671875 c 132 + 23.662109375 7.169921875 23.431640625 7.248046875 23.1279296875 7.248046875 c 6 + 21.1962890625 7.248046875 l 5 + 21.1962890625 4.51171875 l 5 +EndSplineSet +EndUndoOperation +UndoOperation +Index: 7 +Type: 3 +WasModified: 1 +WasOrder2: 0 +Layer: 2 +EndUndoOperation +UndoOperation +Index: 8 +Type: 1 +WasModified: 0 +WasOrder2: 0 +Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 +EndUndoOperation +EndUndoes +Redoes +EndRedoes +EndUndoRedoHistory +Fore +SplineSet +14.755859375 927.0703125 m 1 + 259.302734375 927.0703125 l 2 + 305.919921875 927.0703125 341.357421875 913.8515625 365.544921875 887.34375 c 128 + 389.732421875 860.8359375 401.826171875 822.234375 401.826171875 771.5390625 c 0 + 401.826171875 732.9375 393.458984375 702.703125 376.794921875 680.8359375 c 128 + 360.060546875 658.96875 336.154296875 646.59375 305.076171875 643.7109375 c 1 + 305.076171875 633.3046875 l 1 + 322.373046875 633.3046875 338.052734375 630 352.185546875 623.390625 c 128 + 366.248046875 616.78125 378.482421875 607.359375 388.888671875 595.265625 c 128 + 399.224609375 583.171875 407.310546875 568.828125 413.076171875 552.09375 c 128 + 418.841796875 535.359375 421.724609375 517.21875 421.724609375 497.671875 c 0 + 421.724609375 471.7265625 418.419921875 448.1015625 411.810546875 426.796875 c 128 + 405.130859375 405.4921875 395.779296875 387.2109375 383.685546875 371.953125 c 128 + 371.591796875 356.6953125 357.037109375 344.8828125 340.091796875 336.515625 c 128 + 323.076171875 328.1484375 304.232421875 324 283.490234375 324 c 2 + 14.755859375 324 l 1 + 14.755859375 927.0703125 l 1 +106.373046875 404.3671875 m 1 + 256.701171875 404.3671875 l 2 + 278.568359375 404.3671875 295.302734375 410.2734375 306.833984375 422.0859375 c 128 + 318.294921875 433.8984375 324.060546875 452.7421875 324.060546875 478.6875 c 2 + 324.060546875 518.4140625 l 2 + 324.060546875 544.2890625 318.294921875 563.203125 306.833984375 575.015625 c 128 + 295.302734375 586.828125 278.568359375 592.734375 256.701171875 592.734375 c 2 + 106.373046875 592.734375 l 1 + 106.373046875 404.3671875 l 1 +106.373046875 671.34375 m 1 + 242.005859375 671.34375 l 2 + 262.185546875 671.34375 277.724609375 676.6875 288.623046875 687.3046875 c 128 + 299.591796875 697.9921875 305.076171875 715.359375 305.076171875 739.6171875 c 2 + 305.076171875 778.4296875 l 2 + 305.076171875 802.6875 299.591796875 820.0546875 288.623046875 830.7421875 c 128 + 277.724609375 841.359375 262.185546875 846.703125 242.005859375 846.703125 c 2 + 106.373046875 846.703125 l 1 + 106.373046875 671.34375 l 1 +518.755859375 324 m 1 + 518.755859375 927.0703125 l 1 + 868.701171875 927.0703125 l 1 + 868.701171875 846.703125 l 1 + 610.373046875 846.703125 l 1 + 610.373046875 670.4296875 l 1 + 843.599609375 670.4296875 l 1 + 843.599609375 590.9765625 l 1 + 610.373046875 590.9765625 l 1 + 610.373046875 404.3671875 l 1 + 868.701171875 404.3671875 l 1 + 868.701171875 324 l 1 + 518.755859375 324 l 1 +950.755859375 324 m 1 + 950.755859375 927.0703125 l 1 + 1300.70117188 927.0703125 l 1 + 1300.70117188 846.703125 l 1 + 1042.37304688 846.703125 l 1 + 1042.37304688 670.4296875 l 1 + 1275.59960938 670.4296875 l 1 + 1275.59960938 590.9765625 l 1 + 1042.37304688 590.9765625 l 1 + 1042.37304688 404.3671875 l 1 + 1300.70117188 404.3671875 l 1 + 1300.70117188 324 l 1 + 950.755859375 324 l 1 +1382.75585938 324 m 1 + 1382.75585938 927.0703125 l 1 + 1621.25585938 927.0703125 l 2 + 1673.07617188 927.0703125 1712.09960938 911.671875 1738.32617188 880.875 c 128 + 1764.48242188 850.0078125 1777.63085938 805.5703125 1777.63085938 747.3515625 c 256 + 1777.63085938 689.203125 1764.48242188 644.6953125 1738.32617188 613.8984375 c 128 + 1712.09960938 583.03125 1673.07617188 567.6328125 1621.25585938 567.6328125 c 2 + 1474.37304688 567.6328125 l 1 + 1474.37304688 324 l 1 + 1382.75585938 324 l 1 +1474.37304688 648.84375 m 1 + 1613.45117188 648.84375 l 2 + 1635.31835938 648.84375 1651.91210938 654.46875 1663.16210938 665.71875 c 128 + 1674.34179688 676.96875 1679.96679688 694.96875 1679.96679688 719.71875 c 2 + 1679.96679688 774.984375 l 2 + 1679.96679688 799.8046875 1674.34179688 817.8046875 1663.16210938 828.984375 c 128 + 1651.91210938 840.234375 1635.31835938 845.859375 1613.45117188 845.859375 c 2 + 1474.37304688 845.859375 l 1 + 1474.37304688 648.84375 l 1 +EndSplineSet +EndChar +EndChars +EndSplineFont From 6c4f1281852b8ea8fd94b18b157d2499efbc66ba Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Wed, 9 Aug 2023 13:03:45 -0700 Subject: [PATCH 149/202] Renaming files. --- res/{FurnaceLetterIcons.sfd => icons.sfd} | 0 res/{FurnaceLetterIcons.ttf => icons.ttf} | Bin 2 files changed, 0 insertions(+), 0 deletions(-) rename res/{FurnaceLetterIcons.sfd => icons.sfd} (100%) rename res/{FurnaceLetterIcons.ttf => icons.ttf} (100%) diff --git a/res/FurnaceLetterIcons.sfd b/res/icons.sfd similarity index 100% rename from res/FurnaceLetterIcons.sfd rename to res/icons.sfd diff --git a/res/FurnaceLetterIcons.ttf b/res/icons.ttf similarity index 100% rename from res/FurnaceLetterIcons.ttf rename to res/icons.ttf From 2e585e0ca64cf57c10311524283abf7c71ee0d63 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Wed, 9 Aug 2023 14:03:02 -0700 Subject: [PATCH 150/202] Font rename. --- res/icons.sfd | 2248 +------------------------------------------------ res/icons.ttf | Bin 4604 -> 4524 bytes 2 files changed, 35 insertions(+), 2213 deletions(-) diff --git a/res/icons.sfd b/res/icons.sfd index e301a636d..aa8c80728 100644 --- a/res/icons.sfd +++ b/res/icons.sfd @@ -1,7 +1,7 @@ SplineFontDB: 3.2 -FontName: FurnaceLetterIcons -FullName: Furnace letter icons -FamilyName: Furnace letter icons +FontName: FurnaceIcons +FullName: Furnace Icons +FamilyName: Furnace Icons Weight: Regular Copyright: UComments: "2023-8-8: Created with FontForge (http://fontforge.org)" @@ -21,7 +21,7 @@ OS2Version: 0 OS2_WeightWidthSlopeOnly: 0 OS2_UseTypoMetrics: 0 CreationTime: 1691524879 -ModificationTime: 1691609499 +ModificationTime: 1691614885 PfmFamily: 81 TTFWeight: 400 TTFWidth: 5 @@ -564,332 +564,26 @@ Width: 1792 Flags: H LayerCount: 2 UndoRedoHistory -Layer: 0 -Undoes -UndoOperation -Index: 0 -Type: 1 -WasModified: 0 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -EndUndoOperation -EndUndoes -Redoes -EndRedoes -EndUndoRedoHistory -UndoRedoHistory Layer: 1 Undoes UndoOperation Index: 0 -Type: 3 +Type: 1 WasModified: 0 WasOrder2: 0 Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 EndUndoOperation UndoOperation Index: 1 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -254.8828125 456.1640625 m 4 - 204.1875 456.1640625 161.15625 465.375 125.71875 483.796875 c 132 - 90.28125 502.21875 59.90625 526.96875 34.59375 558.1171875 c 5 - 101.953125 621.1875 l 5 - 123.2578125 595.2421875 146.7421875 575.625 172.3359375 562.40625 c 132 - 198 549.1875 227.25 542.5078125 260.0859375 542.5078125 c 4 - 298.6875 542.5078125 327.7265625 551.15625 347.34375 568.453125 c 132 - 366.890625 585.75 376.734375 609.09375 376.734375 638.4140625 c 4 - 376.734375 662.0390625 369.7734375 680.7421875 355.9921875 694.59375 c 132 - 342.140625 708.4453125 317.671875 718.78125 282.515625 725.671875 c 6 - 228.9375 735.234375 l 6 - 170.2265625 746.1328125 126.140625 765.46875 96.75 793.1015625 c 132 - 67.359375 820.734375 52.734375 858.7734375 52.734375 907.1484375 c 4 - 52.734375 933.65625 57.7265625 957.703125 67.8515625 979.2890625 c 132 - 77.90625 1000.875 92.0390625 1019.015625 110.1796875 1033.7109375 c 132 - 128.3203125 1048.40625 150.328125 1059.796875 176.2734375 1067.8125 c 132 - 202.1484375 1075.8984375 231.2578125 1079.90625 263.53125 1079.90625 c 4 - 309.0234375 1079.90625 348.46875 1072.03125 381.8671875 1056.2109375 c 132 - 415.265625 1040.3203125 443.8125 1017.46875 467.4375 987.515625 c 5 - 399.1640625 927.046875 l 5 - 383.625 947.15625 364.640625 963.328125 342.140625 975.421875 c 132 - 319.7109375 987.515625 291.7265625 993.5625 258.328125 993.5625 c 4 - 223.8046875 993.5625 197.015625 986.6015625 177.9609375 972.8203125 c 132 - 158.9765625 958.96875 149.484375 938.7890625 149.484375 912.3515625 c 4 - 149.484375 886.96875 157.21875 868.125 172.828125 855.75 c 132 - 188.3671875 843.375 212.5546875 833.953125 245.390625 827.625 c 6 - 298.96875 816.4453125 l 6 - 359.4375 804.9140625 403.6640625 785.296875 431.578125 757.6640625 c 132 - 459.4921875 730.03125 473.484375 691.9921875 473.484375 643.6171875 c 4 - 473.484375 615.421875 468.5625 589.7578125 458.7890625 566.6953125 c 132 - 449.015625 543.703125 434.7421875 523.9453125 416.0390625 507.5625 c 132 - 397.265625 491.109375 374.4140625 478.453125 347.34375 469.5234375 c 132 - 320.2734375 460.59375 289.40625 456.1640625 254.8828125 456.1640625 c 4 -1039.7109375 927.890625 m 5 - 1035.3515625 927.890625 l 5 - 987.8203125 830.2265625 l 5 - 855.6328125 589.1953125 l 5 - 723.4453125 830.2265625 l 5 - 675.9140625 927.890625 l 5 - 671.625 927.890625 l 5 - 671.625 466.5 l 5 - 578.3203125 466.5 l 5 - 578.3203125 1069.5703125 l 5 - 694.0546875 1069.5703125 l 5 - 855.6328125 762.8671875 l 5 - 860.8359375 762.8671875 l 5 - 1022.4140625 1069.5703125 l 5 - 1133.015625 1069.5703125 l 5 - 1133.015625 466.5 l 5 - 1039.7109375 466.5 l 5 - 1039.7109375 927.890625 l 5 -1298.3203125 466.5 m 5 - 1298.3203125 1069.5703125 l 5 - 1557.4921875 1069.5703125 l 6 - 1613.390625 1069.5703125 1656.5625 1053.1875 1687.078125 1020.3515625 c 132 - 1717.6640625 987.515625 1732.921875 943.4296875 1732.921875 888.1640625 c 260 - 1732.921875 832.828125 1717.6640625 788.7421875 1687.078125 755.90625 c 132 - 1656.5625 723.140625 1613.390625 706.6875 1557.4921875 706.6875 c 6 - 1395.9140625 706.6875 l 5 - 1395.9140625 466.5 l 5 - 1298.3203125 466.5 l 5 -1395.9140625 792.2578125 m 5 - 1551.4453125 792.2578125 l 6 - 1576.1953125 792.2578125 1595.53125 798.7265625 1609.3125 811.6640625 c 132 - 1623.1640625 824.6015625 1630.0546875 843.234375 1630.0546875 867.421875 c 6 - 1630.0546875 908.8359375 l 6 - 1630.0546875 933.09375 1623.1640625 951.65625 1609.3125 964.59375 c 132 - 1595.53125 977.53125 1576.1953125 984.0703125 1551.4453125 984.0703125 c 6 - 1395.9140625 984.0703125 l 5 - 1395.9140625 792.2578125 l 5 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 2 Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 3 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 4 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -254.8828125 -10.3359375 m 4 - 204.1875 -10.3359375 161.15625 -1.125 125.71875 17.296875 c 132 - 90.28125 35.71875 59.90625 60.46875 34.59375 91.6171875 c 5 - 101.953125 154.6875 l 5 - 123.2578125 128.7421875 146.7421875 109.125 172.3359375 95.90625 c 132 - 198 82.6875 227.25 76.0078125 260.0859375 76.0078125 c 4 - 298.6875 76.0078125 327.7265625 84.65625 347.34375 101.953125 c 132 - 366.890625 119.25 376.734375 142.59375 376.734375 171.9140625 c 4 - 376.734375 195.5390625 369.7734375 214.2421875 355.9921875 228.09375 c 132 - 342.140625 241.9453125 317.671875 252.28125 282.515625 259.171875 c 6 - 228.9375 268.734375 l 6 - 170.2265625 279.6328125 126.140625 298.96875 96.75 326.6015625 c 132 - 67.359375 354.234375 52.734375 392.2734375 52.734375 440.6484375 c 4 - 52.734375 467.15625 57.7265625 491.203125 67.8515625 512.7890625 c 132 - 77.90625 534.375 92.0390625 552.515625 110.1796875 567.2109375 c 132 - 128.3203125 581.90625 150.328125 593.296875 176.2734375 601.3125 c 132 - 202.1484375 609.3984375 231.2578125 613.40625 263.53125 613.40625 c 4 - 309.0234375 613.40625 348.46875 605.53125 381.8671875 589.7109375 c 132 - 415.265625 573.8203125 443.8125 550.96875 467.4375 521.015625 c 5 - 399.1640625 460.546875 l 5 - 383.625 480.65625 364.640625 496.828125 342.140625 508.921875 c 132 - 319.7109375 521.015625 291.7265625 527.0625 258.328125 527.0625 c 4 - 223.8046875 527.0625 197.015625 520.1015625 177.9609375 506.3203125 c 132 - 158.9765625 492.46875 149.484375 472.2890625 149.484375 445.8515625 c 4 - 149.484375 420.46875 157.21875 401.625 172.828125 389.25 c 132 - 188.3671875 376.875 212.5546875 367.453125 245.390625 361.125 c 6 - 298.96875 349.9453125 l 6 - 359.4375 338.4140625 403.6640625 318.796875 431.578125 291.1640625 c 132 - 459.4921875 263.53125 473.484375 225.4921875 473.484375 177.1171875 c 4 - 473.484375 148.921875 468.5625 123.2578125 458.7890625 100.1953125 c 132 - 449.015625 77.203125 434.7421875 57.4453125 416.0390625 41.0625 c 132 - 397.265625 24.609375 374.4140625 11.953125 347.34375 3.0234375 c 132 - 320.2734375 -5.90625 289.40625 -10.3359375 254.8828125 -10.3359375 c 4 -1039.7109375 461.390625 m 5 - 1035.3515625 461.390625 l 5 - 987.8203125 363.7265625 l 5 - 855.6328125 122.6953125 l 5 - 723.4453125 363.7265625 l 5 - 675.9140625 461.390625 l 5 - 671.625 461.390625 l 5 - 671.625 0 l 5 - 578.3203125 0 l 5 - 578.3203125 603.0703125 l 5 - 694.0546875 603.0703125 l 5 - 855.6328125 296.3671875 l 5 - 860.8359375 296.3671875 l 5 - 1022.4140625 603.0703125 l 5 - 1133.015625 603.0703125 l 5 - 1133.015625 0 l 5 - 1039.7109375 0 l 5 - 1039.7109375 461.390625 l 5 -1298.3203125 0 m 5 - 1298.3203125 603.0703125 l 5 - 1557.4921875 603.0703125 l 6 - 1613.390625 603.0703125 1656.5625 586.6875 1687.078125 553.8515625 c 132 - 1717.6640625 521.015625 1732.921875 476.9296875 1732.921875 421.6640625 c 260 - 1732.921875 366.328125 1717.6640625 322.2421875 1687.078125 289.40625 c 132 - 1656.5625 256.640625 1613.390625 240.1875 1557.4921875 240.1875 c 6 - 1395.9140625 240.1875 l 5 - 1395.9140625 0 l 5 - 1298.3203125 0 l 5 -1395.9140625 325.7578125 m 5 - 1551.4453125 325.7578125 l 6 - 1576.1953125 325.7578125 1595.53125 332.2265625 1609.3125 345.1640625 c 132 - 1623.1640625 358.1015625 1630.0546875 376.734375 1630.0546875 400.921875 c 6 - 1630.0546875 442.3359375 l 6 - 1630.0546875 466.59375 1623.1640625 485.15625 1609.3125 498.09375 c 132 - 1595.53125 511.03125 1576.1953125 517.5703125 1551.4453125 517.5703125 c 6 - 1395.9140625 517.5703125 l 5 - 1395.9140625 325.7578125 l 5 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 5 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 6 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 7 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -3.5400390625 -0.1435546875 m 4 - 2.8359375 -0.1435546875 2.23828125 -0.015625 1.74609375 0.240234375 c 132 - 1.25390625 0.49609375 0.83203125 0.83984375 0.48046875 1.2724609375 c 5 - 1.416015625 2.1484375 l 5 - 1.7119140625 1.7880859375 2.0380859375 1.515625 2.3935546875 1.33203125 c 132 - 2.75 1.1484375 3.15625 1.0556640625 3.6123046875 1.0556640625 c 4 - 4.1484375 1.0556640625 4.5517578125 1.17578125 4.82421875 1.416015625 c 132 - 5.095703125 1.65625 5.232421875 1.98046875 5.232421875 2.3876953125 c 4 - 5.232421875 2.7158203125 5.1357421875 2.9755859375 4.9443359375 3.16796875 c 132 - 4.751953125 3.3603515625 4.412109375 3.50390625 3.923828125 3.599609375 c 6 - 3.1796875 3.732421875 l 6 - 2.3642578125 3.8837890625 1.751953125 4.15234375 1.34375 4.5361328125 c 132 - 0.935546875 4.919921875 0.732421875 5.4482421875 0.732421875 6.1201171875 c 4 - 0.732421875 6.48828125 0.8017578125 6.822265625 0.9423828125 7.1220703125 c 132 - 1.08203125 7.421875 1.2783203125 7.673828125 1.5302734375 7.8779296875 c 132 - 1.7822265625 8.08203125 2.087890625 8.240234375 2.4482421875 8.3515625 c 132 - 2.8076171875 8.4638671875 3.2119140625 8.51953125 3.66015625 8.51953125 c 4 - 4.2919921875 8.51953125 4.83984375 8.41015625 5.3037109375 8.1904296875 c 132 - 5.767578125 7.9697265625 6.1640625 7.65234375 6.4921875 7.236328125 c 5 - 5.5439453125 6.396484375 l 5 - 5.328125 6.67578125 5.064453125 6.900390625 4.751953125 7.068359375 c 132 - 4.4404296875 7.236328125 4.0517578125 7.3203125 3.587890625 7.3203125 c 4 - 3.1083984375 7.3203125 2.736328125 7.2236328125 2.4716796875 7.0322265625 c 132 - 2.2080078125 6.83984375 2.076171875 6.5595703125 2.076171875 6.1923828125 c 4 - 2.076171875 5.83984375 2.18359375 5.578125 2.400390625 5.40625 c 132 - 2.6162109375 5.234375 2.9521484375 5.103515625 3.408203125 5.015625 c 6 - 4.15234375 4.8603515625 l 6 - 4.9921875 4.7001953125 5.6064453125 4.427734375 5.994140625 4.0439453125 c 132 - 6.3818359375 3.66015625 6.576171875 3.1318359375 6.576171875 2.4599609375 c 4 - 6.576171875 2.068359375 6.5078125 1.7119140625 6.3720703125 1.3916015625 c 132 - 6.236328125 1.072265625 6.0380859375 0.7978515625 5.7783203125 0.5703125 c 132 - 5.517578125 0.341796875 5.2001953125 0.166015625 4.82421875 0.0419921875 c 132 - 4.4482421875 -0.08203125 4.01953125 -0.1435546875 3.5400390625 -0.1435546875 c 4 -14.4404296875 6.408203125 m 5 - 14.3798828125 6.408203125 l 5 - 13.7197265625 5.0517578125 l 5 - 11.8837890625 1.7041015625 l 5 - 10.0478515625 5.0517578125 l 5 - 9.3876953125 6.408203125 l 5 - 9.328125 6.408203125 l 5 - 9.328125 0 l 5 - 8.0322265625 0 l 5 - 8.0322265625 8.3759765625 l 5 - 9.6396484375 8.3759765625 l 5 - 11.8837890625 4.1162109375 l 5 - 11.9560546875 4.1162109375 l 5 - 14.2001953125 8.3759765625 l 5 - 15.736328125 8.3759765625 l 5 - 15.736328125 0 l 5 - 14.4404296875 0 l 5 - 14.4404296875 6.408203125 l 5 -18.0322265625 0 m 5 - 18.0322265625 8.3759765625 l 5 - 21.6318359375 8.3759765625 l 6 - 22.408203125 8.3759765625 23.0078125 8.1484375 23.431640625 7.6923828125 c 132 - 23.8564453125 7.236328125 24.068359375 6.6240234375 24.068359375 5.8564453125 c 260 - 24.068359375 5.087890625 23.8564453125 4.4755859375 23.431640625 4.01953125 c 132 - 23.0078125 3.564453125 22.408203125 3.3359375 21.6318359375 3.3359375 c 6 - 19.3876953125 3.3359375 l 5 - 19.3876953125 0 l 5 - 18.0322265625 0 l 5 -19.3876953125 4.5244140625 m 5 - 21.5478515625 4.5244140625 l 6 - 21.8916015625 4.5244140625 22.16015625 4.6142578125 22.3515625 4.7939453125 c 132 - 22.5439453125 4.9736328125 22.6396484375 5.232421875 22.6396484375 5.568359375 c 6 - 22.6396484375 6.1435546875 l 6 - 22.6396484375 6.48046875 22.5439453125 6.73828125 22.3515625 6.91796875 c 132 - 22.16015625 7.09765625 21.8916015625 7.1884765625 21.5478515625 7.1884765625 c 6 - 19.3876953125 7.1884765625 l 5 - 19.3876953125 4.5244140625 l 5 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 8 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 9 -Type: 1 WasModified: 0 WasOrder2: 0 Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 EndUndoOperation EndUndoes Redoes @@ -976,708 +670,27 @@ Width: 1792 Flags: H LayerCount: 2 UndoRedoHistory -Layer: 0 -Undoes -UndoOperation -Index: 0 -Type: 1 -WasModified: 0 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -EndUndoOperation -EndUndoes -Redoes -EndRedoes -EndUndoRedoHistory -UndoRedoHistory Layer: 1 Undoes UndoOperation Index: 0 -Type: 3 +Type: 1 WasModified: 0 WasOrder2: 0 Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 EndUndoOperation UndoOperation Index: 1 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -260.9296875 -10.3359375 m 4 - 227.53125 -10.3359375 197.71875 -4.921875 171.4921875 6.046875 c 132 - 145.265625 17.015625 123.1171875 32.6953125 104.9765625 53.15625 c 132 - 86.8359375 73.6171875 72.84375 98.2265625 63.0703125 126.984375 c 132 - 53.296875 155.8125 48.375 188.3671875 48.375 224.6484375 c 4 - 48.375 268.3828125 54.984375 309.5859375 68.2734375 348.1875 c 132 - 81.4921875 386.7890625 98.5078125 422.2265625 119.25 454.4296875 c 132 - 139.9921875 486.703125 163.125 515.390625 188.7890625 540.421875 c 132 - 214.3828125 565.453125 239.625 586.3359375 264.375 603.0703125 c 5 - 393.9609375 603.0703125 l 5 - 360 578.3203125 329.484375 554.4140625 302.4140625 531.3515625 c 132 - 275.34375 508.2890625 251.71875 484.734375 231.5390625 460.546875 c 132 - 211.359375 436.2890625 194.5546875 410.6953125 180.984375 383.625 c 132 - 167.484375 356.5546875 156.9375 326.8828125 149.484375 294.609375 c 5 - 155.53125 292.921875 l 5 - 161.859375 305.015625 169.171875 316.3359375 177.5390625 327.0234375 c 132 - 185.90625 337.7109375 195.6796875 347.0625 206.9296875 355.078125 c 132 - 218.1796875 363.1640625 230.9765625 369.4921875 245.390625 374.1328125 c 132 - 259.8046875 378.703125 276.46875 381.0234375 295.453125 381.0234375 c 4 - 320.8359375 381.0234375 344.3203125 376.734375 365.90625 368.0859375 c 132 - 387.4921875 359.4375 406.1953125 346.921875 422.0859375 330.46875 c 132 - 437.90625 314.0859375 450.28125 294.328125 459.2109375 271.265625 c 132 - 468.140625 248.2734375 472.640625 222.609375 472.640625 194.4140625 c 4 - 472.640625 163.8984375 467.578125 136.0546875 457.453125 111.0234375 c 132 - 447.3984375 85.9921875 433.125 64.546875 414.703125 46.6875 c 132 - 396.28125 28.828125 373.9921875 14.8359375 347.765625 4.78125 c 132 - 321.5390625 -5.34375 292.640625 -10.3359375 260.9296875 -10.3359375 c 4 -260.9296875 69.1171875 m 260 - 296.0859375 69.1171875 323.4375 78.46875 342.984375 97.171875 c 132 - 362.6015625 115.9453125 372.375 143.4375 372.375 179.71875 c 6 - 372.375 191.8125 l 6 - 372.375 228.09375 362.6015625 255.5859375 342.984375 274.2890625 c 132 - 323.4375 293.0625 296.0859375 302.4140625 260.9296875 302.4140625 c 260 - 225.7734375 302.4140625 198.421875 293.0625 178.875 274.2890625 c 132 - 159.2578125 255.5859375 149.484375 228.09375 149.484375 191.8125 c 6 - 149.484375 179.71875 l 6 - 149.484375 143.4375 159.2578125 115.9453125 178.875 97.171875 c 132 - 198.421875 78.46875 225.7734375 69.1171875 260.9296875 69.1171875 c 260 -974.8828125 -10.3359375 m 4 - 924.1875 -10.3359375 881.15625 -1.125 845.71875 17.296875 c 132 - 810.28125 35.71875 779.90625 60.46875 754.59375 91.6171875 c 5 - 821.953125 154.6875 l 5 - 843.2578125 128.7421875 866.7421875 109.125 892.3359375 95.90625 c 132 - 918 82.6875 947.25 76.0078125 980.0859375 76.0078125 c 4 - 1018.6875 76.0078125 1047.7265625 84.65625 1067.34375 101.953125 c 132 - 1086.890625 119.25 1096.734375 142.59375 1096.734375 171.9140625 c 4 - 1096.734375 195.5390625 1089.7734375 214.2421875 1075.9921875 228.09375 c 132 - 1062.140625 241.9453125 1037.671875 252.28125 1002.515625 259.171875 c 6 - 948.9375 268.734375 l 6 - 890.2265625 279.6328125 846.140625 298.96875 816.75 326.6015625 c 132 - 787.359375 354.234375 772.734375 392.2734375 772.734375 440.6484375 c 4 - 772.734375 467.15625 777.7265625 491.203125 787.8515625 512.7890625 c 132 - 797.90625 534.375 812.0390625 552.515625 830.1796875 567.2109375 c 132 - 848.3203125 581.90625 870.328125 593.296875 896.2734375 601.3125 c 132 - 922.1484375 609.3984375 951.2578125 613.40625 983.53125 613.40625 c 4 - 1029.0234375 613.40625 1068.46875 605.53125 1101.8671875 589.7109375 c 132 - 1135.265625 573.8203125 1163.8125 550.96875 1187.4375 521.015625 c 5 - 1119.1640625 460.546875 l 5 - 1103.625 480.65625 1084.640625 496.828125 1062.140625 508.921875 c 132 - 1039.7109375 521.015625 1011.7265625 527.0625 978.328125 527.0625 c 4 - 943.8046875 527.0625 917.015625 520.1015625 897.9609375 506.3203125 c 132 - 878.9765625 492.46875 869.484375 472.2890625 869.484375 445.8515625 c 4 - 869.484375 420.46875 877.21875 401.625 892.828125 389.25 c 132 - 908.3671875 376.875 932.5546875 367.453125 965.390625 361.125 c 6 - 1018.96875 349.9453125 l 6 - 1079.4375 338.4140625 1123.6640625 318.796875 1151.578125 291.1640625 c 132 - 1179.4921875 263.53125 1193.484375 225.4921875 1193.484375 177.1171875 c 4 - 1193.484375 148.921875 1188.5625 123.2578125 1178.7890625 100.1953125 c 132 - 1169.015625 77.203125 1154.7421875 57.4453125 1136.0390625 41.0625 c 132 - 1117.265625 24.609375 1094.4140625 11.953125 1067.34375 3.0234375 c 132 - 1040.2734375 -5.90625 1009.40625 -10.3359375 974.8828125 -10.3359375 c 4 -268.12890625 878 m 1 - 70.26953125 1481.0703125 l 1 - 171.37890625 1481.0703125 l 1 - 267.28515625 1183.015625 l 1 - 325.15234375 973.0625 l 1 - 328.59765625 973.0625 l 1 - 387.37890625 1183.015625 l 1 - 483.28515625 1481.0703125 l 1 - 581.79296875 1481.0703125 l 1 - 381.33203125 878 l 1 - 268.12890625 878 l 1 -802.64453125 878 m 1 - 705.05078125 878 l 1 - 705.05078125 1481.0703125 l 1 - 965.06640625 1481.0703125 l 2 - 1019.27734375 1481.0703125 1061.88671875 1464.828125 1092.96484375 1432.2734375 c 128 - 1124.04296875 1399.71875 1139.65234375 1355.4921875 1139.65234375 1299.6640625 c 0 - 1139.65234375 1256.421875 1129.66796875 1220.5625 1109.83984375 1192.0859375 c 128 - 1089.94140625 1163.5390625 1060.69140625 1143.5703125 1022.08984375 1132.0390625 c 1 - 1152.58984375 878 l 1 - 1043.74609375 878 l 1 - 922.73828125 1121.6328125 l 1 - 802.64453125 1121.6328125 l 1 - 802.64453125 878 l 1 -958.17578125 1203.7578125 m 2 - 982.92578125 1203.7578125 1002.26171875 1210.2265625 1016.04296875 1223.1640625 c 128 - 1029.89453125 1236.1015625 1036.78515625 1254.734375 1036.78515625 1278.921875 c 2 - 1036.78515625 1320.3359375 l 2 - 1036.78515625 1344.59375 1029.89453125 1363.15625 1016.04296875 1376.09375 c 128 - 1002.26171875 1389.03125 982.92578125 1395.5703125 958.17578125 1395.5703125 c 2 - 802.64453125 1395.5703125 l 1 - 802.64453125 1203.7578125 l 1 - 958.17578125 1203.7578125 l 2 -1507.38671875 867.6640625 m 0 - 1428.49609375 867.6640625 1366.55078125 894.2421875 1321.62109375 947.5390625 c 128 - 1276.69140625 1000.8359375 1254.26171875 1078.1796875 1254.26171875 1179.5703125 c 0 - 1254.26171875 1230.1953125 1260.02734375 1274.84375 1271.55859375 1313.4453125 c 128 - 1283.01953125 1352.046875 1299.75390625 1384.6015625 1321.62109375 1411.109375 c 128 - 1343.55859375 1437.6171875 1370.13671875 1457.5859375 1401.56640625 1471.15625 c 128 - 1432.92578125 1484.65625 1468.22265625 1491.40625 1507.38671875 1491.40625 c 0 - 1559.83984375 1491.40625 1603.71484375 1479.9453125 1639.15234375 1456.8828125 c 128 - 1674.58984375 1433.8203125 1702.36328125 1399.859375 1722.54296875 1354.9296875 c 1 - 1640.48828125 1310 l 1 - 1630.08203125 1338.828125 1614.12109375 1361.6796875 1592.53515625 1378.6953125 c 128 - 1570.87890625 1395.7109375 1542.54296875 1404.1484375 1507.38671875 1404.1484375 c 0 - 1460.76953125 1404.1484375 1424.13671875 1388.328125 1397.69921875 1356.6875 c 128 - 1371.19140625 1324.9765625 1357.90234375 1281.171875 1357.90234375 1225.34375 c 2 - 1357.90234375 1133.7265625 l 2 - 1357.90234375 1077.8984375 1371.19140625 1034.09375 1397.69921875 1002.3828125 c 128 - 1424.13671875 970.7421875 1460.76953125 954.921875 1507.38671875 954.921875 c 0 - 1543.66796875 954.921875 1573.19921875 964.2734375 1595.98046875 982.9765625 c 128 - 1618.69140625 1001.6796875 1635.56640625 1025.7265625 1646.53515625 1055.1171875 c 1 - 1725.14453125 1007.5859375 l 1 - 1704.96484375 963.8515625 1676.76953125 929.5390625 1640.48828125 904.7890625 c 128 - 1604.13671875 880.0390625 1559.83984375 867.6640625 1507.38671875 867.6640625 c 0 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 2 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 3 -Type: 1 -WasModified: 0 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -3.6240234375 -0.1435546875 m 4 - 3.16015625 -0.1435546875 2.74609375 -0.068359375 2.3818359375 0.083984375 c 132 - 2.017578125 0.236328125 1.7099609375 0.4541015625 1.4580078125 0.73828125 c 132 - 1.2060546875 1.0224609375 1.01171875 1.3642578125 0.8759765625 1.763671875 c 132 - 0.740234375 2.1640625 0.671875 2.6162109375 0.671875 3.1201171875 c 4 - 0.671875 3.7275390625 0.763671875 4.2998046875 0.9482421875 4.8359375 c 132 - 1.1318359375 5.3720703125 1.3681640625 5.8642578125 1.65625 6.3115234375 c 132 - 1.9443359375 6.759765625 2.265625 7.158203125 2.6220703125 7.505859375 c 132 - 2.9775390625 7.853515625 3.328125 8.1435546875 3.671875 8.3759765625 c 5 - 5.4716796875 8.3759765625 l 5 - 5 8.0322265625 4.576171875 7.7001953125 4.2001953125 7.3798828125 c 132 - 3.82421875 7.0595703125 3.49609375 6.732421875 3.2158203125 6.396484375 c 132 - 2.935546875 6.0595703125 2.7021484375 5.7041015625 2.513671875 5.328125 c 132 - 2.326171875 4.9521484375 2.1796875 4.5400390625 2.076171875 4.091796875 c 5 - 2.16015625 4.068359375 l 5 - 2.248046875 4.236328125 2.349609375 4.3935546875 2.4658203125 4.5419921875 c 132 - 2.58203125 4.6904296875 2.7177734375 4.8203125 2.8740234375 4.931640625 c 132 - 3.0302734375 5.0439453125 3.2080078125 5.1318359375 3.408203125 5.1962890625 c 132 - 3.6083984375 5.259765625 3.83984375 5.2919921875 4.103515625 5.2919921875 c 4 - 4.4560546875 5.2919921875 4.7822265625 5.232421875 5.08203125 5.1123046875 c 132 - 5.3818359375 4.9921875 5.6416015625 4.818359375 5.8623046875 4.58984375 c 132 - 6.08203125 4.3623046875 6.25390625 4.087890625 6.3779296875 3.767578125 c 132 - 6.501953125 3.4482421875 6.564453125 3.091796875 6.564453125 2.7001953125 c 4 - 6.564453125 2.2763671875 6.494140625 1.8896484375 6.353515625 1.5419921875 c 132 - 6.2138671875 1.1943359375 6.015625 0.896484375 5.759765625 0.6484375 c 132 - 5.50390625 0.400390625 5.1943359375 0.2060546875 4.830078125 0.06640625 c 132 - 4.4658203125 -0.07421875 4.064453125 -0.1435546875 3.6240234375 -0.1435546875 c 4 -3.6240234375 0.9599609375 m 260 - 4.1123046875 0.9599609375 4.4921875 1.08984375 4.763671875 1.349609375 c 132 - 5.0361328125 1.6103515625 5.171875 1.9921875 5.171875 2.49609375 c 6 - 5.171875 2.6640625 l 6 - 5.171875 3.16796875 5.0361328125 3.5498046875 4.763671875 3.8095703125 c 132 - 4.4921875 4.0703125 4.1123046875 4.2001953125 3.6240234375 4.2001953125 c 260 - 3.1357421875 4.2001953125 2.755859375 4.0703125 2.484375 3.8095703125 c 132 - 2.2119140625 3.5498046875 2.076171875 3.16796875 2.076171875 2.6640625 c 6 - 2.076171875 2.49609375 l 6 - 2.076171875 1.9921875 2.2119140625 1.6103515625 2.484375 1.349609375 c 132 - 2.755859375 1.08984375 3.1357421875 0.9599609375 3.6240234375 0.9599609375 c 260 -13.5400390625 -0.1435546875 m 4 - 12.8359375 -0.1435546875 12.23828125 -0.015625 11.74609375 0.240234375 c 132 - 11.25390625 0.49609375 10.83203125 0.83984375 10.48046875 1.2724609375 c 5 - 11.416015625 2.1484375 l 5 - 11.7119140625 1.7880859375 12.0380859375 1.515625 12.3935546875 1.33203125 c 132 - 12.75 1.1484375 13.15625 1.0556640625 13.6123046875 1.0556640625 c 4 - 14.1484375 1.0556640625 14.5517578125 1.17578125 14.82421875 1.416015625 c 132 - 15.095703125 1.65625 15.232421875 1.98046875 15.232421875 2.3876953125 c 4 - 15.232421875 2.7158203125 15.1357421875 2.9755859375 14.9443359375 3.16796875 c 132 - 14.751953125 3.3603515625 14.412109375 3.50390625 13.923828125 3.599609375 c 6 - 13.1796875 3.732421875 l 6 - 12.3642578125 3.8837890625 11.751953125 4.15234375 11.34375 4.5361328125 c 132 - 10.935546875 4.919921875 10.732421875 5.4482421875 10.732421875 6.1201171875 c 4 - 10.732421875 6.48828125 10.8017578125 6.822265625 10.9423828125 7.1220703125 c 132 - 11.08203125 7.421875 11.2783203125 7.673828125 11.5302734375 7.8779296875 c 132 - 11.7822265625 8.08203125 12.087890625 8.240234375 12.4482421875 8.3515625 c 132 - 12.8076171875 8.4638671875 13.2119140625 8.51953125 13.66015625 8.51953125 c 4 - 14.2919921875 8.51953125 14.83984375 8.41015625 15.3037109375 8.1904296875 c 132 - 15.767578125 7.9697265625 16.1640625 7.65234375 16.4921875 7.236328125 c 5 - 15.5439453125 6.396484375 l 5 - 15.328125 6.67578125 15.064453125 6.900390625 14.751953125 7.068359375 c 132 - 14.4404296875 7.236328125 14.0517578125 7.3203125 13.587890625 7.3203125 c 4 - 13.1083984375 7.3203125 12.736328125 7.2236328125 12.4716796875 7.0322265625 c 132 - 12.2080078125 6.83984375 12.076171875 6.5595703125 12.076171875 6.1923828125 c 4 - 12.076171875 5.83984375 12.18359375 5.578125 12.400390625 5.40625 c 132 - 12.6162109375 5.234375 12.9521484375 5.103515625 13.408203125 5.015625 c 6 - 14.15234375 4.8603515625 l 6 - 14.9921875 4.7001953125 15.6064453125 4.427734375 15.994140625 4.0439453125 c 132 - 16.3818359375 3.66015625 16.576171875 3.1318359375 16.576171875 2.4599609375 c 4 - 16.576171875 2.068359375 16.5078125 1.7119140625 16.3720703125 1.3916015625 c 132 - 16.236328125 1.072265625 16.0380859375 0.7978515625 15.7783203125 0.5703125 c 132 - 15.517578125 0.341796875 15.2001953125 0.166015625 14.82421875 0.0419921875 c 132 - 14.4482421875 -0.08203125 14.01953125 -0.1435546875 13.5400390625 -0.1435546875 c 4 -268.12890625 878 m 1 - 70.26953125 1481.0703125 l 1 - 171.37890625 1481.0703125 l 1 - 267.28515625 1183.015625 l 1 - 325.15234375 973.0625 l 1 - 328.59765625 973.0625 l 1 - 387.37890625 1183.015625 l 1 - 483.28515625 1481.0703125 l 1 - 581.79296875 1481.0703125 l 1 - 381.33203125 878 l 1 - 268.12890625 878 l 1 -802.64453125 878 m 1 - 705.05078125 878 l 1 - 705.05078125 1481.0703125 l 1 - 965.06640625 1481.0703125 l 2 - 1019.27734375 1481.0703125 1061.88671875 1464.828125 1092.96484375 1432.2734375 c 128 - 1124.04296875 1399.71875 1139.65234375 1355.4921875 1139.65234375 1299.6640625 c 0 - 1139.65234375 1256.421875 1129.66796875 1220.5625 1109.83984375 1192.0859375 c 128 - 1089.94140625 1163.5390625 1060.69140625 1143.5703125 1022.08984375 1132.0390625 c 1 - 1152.58984375 878 l 1 - 1043.74609375 878 l 1 - 922.73828125 1121.6328125 l 1 - 802.64453125 1121.6328125 l 1 - 802.64453125 878 l 1 -958.17578125 1203.7578125 m 2 - 982.92578125 1203.7578125 1002.26171875 1210.2265625 1016.04296875 1223.1640625 c 128 - 1029.89453125 1236.1015625 1036.78515625 1254.734375 1036.78515625 1278.921875 c 2 - 1036.78515625 1320.3359375 l 2 - 1036.78515625 1344.59375 1029.89453125 1363.15625 1016.04296875 1376.09375 c 128 - 1002.26171875 1389.03125 982.92578125 1395.5703125 958.17578125 1395.5703125 c 2 - 802.64453125 1395.5703125 l 1 - 802.64453125 1203.7578125 l 1 - 958.17578125 1203.7578125 l 2 -1507.38671875 867.6640625 m 0 - 1428.49609375 867.6640625 1366.55078125 894.2421875 1321.62109375 947.5390625 c 128 - 1276.69140625 1000.8359375 1254.26171875 1078.1796875 1254.26171875 1179.5703125 c 0 - 1254.26171875 1230.1953125 1260.02734375 1274.84375 1271.55859375 1313.4453125 c 128 - 1283.01953125 1352.046875 1299.75390625 1384.6015625 1321.62109375 1411.109375 c 128 - 1343.55859375 1437.6171875 1370.13671875 1457.5859375 1401.56640625 1471.15625 c 128 - 1432.92578125 1484.65625 1468.22265625 1491.40625 1507.38671875 1491.40625 c 0 - 1559.83984375 1491.40625 1603.71484375 1479.9453125 1639.15234375 1456.8828125 c 128 - 1674.58984375 1433.8203125 1702.36328125 1399.859375 1722.54296875 1354.9296875 c 1 - 1640.48828125 1310 l 1 - 1630.08203125 1338.828125 1614.12109375 1361.6796875 1592.53515625 1378.6953125 c 128 - 1570.87890625 1395.7109375 1542.54296875 1404.1484375 1507.38671875 1404.1484375 c 0 - 1460.76953125 1404.1484375 1424.13671875 1388.328125 1397.69921875 1356.6875 c 128 - 1371.19140625 1324.9765625 1357.90234375 1281.171875 1357.90234375 1225.34375 c 2 - 1357.90234375 1133.7265625 l 2 - 1357.90234375 1077.8984375 1371.19140625 1034.09375 1397.69921875 1002.3828125 c 128 - 1424.13671875 970.7421875 1460.76953125 954.921875 1507.38671875 954.921875 c 0 - 1543.66796875 954.921875 1573.19921875 964.2734375 1595.98046875 982.9765625 c 128 - 1618.69140625 1001.6796875 1635.56640625 1025.7265625 1646.53515625 1055.1171875 c 1 - 1725.14453125 1007.5859375 l 1 - 1704.96484375 963.8515625 1676.76953125 929.5390625 1640.48828125 904.7890625 c 128 - 1604.13671875 880.0390625 1559.83984375 867.6640625 1507.38671875 867.6640625 c 0 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 4 Type: 3 WasModified: 0 WasOrder2: 0 Layer: 2 EndUndoOperation -UndoOperation -Index: 5 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -268.12890625 878 m 1 - 70.26953125 1481.0703125 l 1 - 171.37890625 1481.0703125 l 1 - 267.28515625 1183.015625 l 1 - 325.15234375 973.0625 l 1 - 328.59765625 973.0625 l 1 - 387.37890625 1183.015625 l 1 - 483.28515625 1481.0703125 l 1 - 581.79296875 1481.0703125 l 1 - 381.33203125 878 l 1 - 268.12890625 878 l 1 -802.64453125 878 m 1 - 705.05078125 878 l 1 - 705.05078125 1481.0703125 l 1 - 965.06640625 1481.0703125 l 2 - 1019.27734375 1481.0703125 1061.88671875 1464.828125 1092.96484375 1432.2734375 c 128 - 1124.04296875 1399.71875 1139.65234375 1355.4921875 1139.65234375 1299.6640625 c 0 - 1139.65234375 1256.421875 1129.66796875 1220.5625 1109.83984375 1192.0859375 c 128 - 1089.94140625 1163.5390625 1060.69140625 1143.5703125 1022.08984375 1132.0390625 c 1 - 1152.58984375 878 l 1 - 1043.74609375 878 l 1 - 922.73828125 1121.6328125 l 1 - 802.64453125 1121.6328125 l 1 - 802.64453125 878 l 1 -958.17578125 1203.7578125 m 2 - 982.92578125 1203.7578125 1002.26171875 1210.2265625 1016.04296875 1223.1640625 c 128 - 1029.89453125 1236.1015625 1036.78515625 1254.734375 1036.78515625 1278.921875 c 2 - 1036.78515625 1320.3359375 l 2 - 1036.78515625 1344.59375 1029.89453125 1363.15625 1016.04296875 1376.09375 c 128 - 1002.26171875 1389.03125 982.92578125 1395.5703125 958.17578125 1395.5703125 c 2 - 802.64453125 1395.5703125 l 1 - 802.64453125 1203.7578125 l 1 - 958.17578125 1203.7578125 l 2 -1507.38671875 867.6640625 m 0 - 1428.49609375 867.6640625 1366.55078125 894.2421875 1321.62109375 947.5390625 c 128 - 1276.69140625 1000.8359375 1254.26171875 1078.1796875 1254.26171875 1179.5703125 c 0 - 1254.26171875 1230.1953125 1260.02734375 1274.84375 1271.55859375 1313.4453125 c 128 - 1283.01953125 1352.046875 1299.75390625 1384.6015625 1321.62109375 1411.109375 c 128 - 1343.55859375 1437.6171875 1370.13671875 1457.5859375 1401.56640625 1471.15625 c 128 - 1432.92578125 1484.65625 1468.22265625 1491.40625 1507.38671875 1491.40625 c 0 - 1559.83984375 1491.40625 1603.71484375 1479.9453125 1639.15234375 1456.8828125 c 128 - 1674.58984375 1433.8203125 1702.36328125 1399.859375 1722.54296875 1354.9296875 c 1 - 1640.48828125 1310 l 1 - 1630.08203125 1338.828125 1614.12109375 1361.6796875 1592.53515625 1378.6953125 c 128 - 1570.87890625 1395.7109375 1542.54296875 1404.1484375 1507.38671875 1404.1484375 c 0 - 1460.76953125 1404.1484375 1424.13671875 1388.328125 1397.69921875 1356.6875 c 128 - 1371.19140625 1324.9765625 1357.90234375 1281.171875 1357.90234375 1225.34375 c 2 - 1357.90234375 1133.7265625 l 2 - 1357.90234375 1077.8984375 1371.19140625 1034.09375 1397.69921875 1002.3828125 c 128 - 1424.13671875 970.7421875 1460.76953125 954.921875 1507.38671875 954.921875 c 0 - 1543.66796875 954.921875 1573.19921875 964.2734375 1595.98046875 982.9765625 c 128 - 1618.69140625 1001.6796875 1635.56640625 1025.7265625 1646.53515625 1055.1171875 c 1 - 1725.14453125 1007.5859375 l 1 - 1704.96484375 963.8515625 1676.76953125 929.5390625 1640.48828125 904.7890625 c 128 - 1604.13671875 880.0390625 1559.83984375 867.6640625 1507.38671875 867.6640625 c 0 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 6 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -213.3984375 0 m 5 - 15.5390625 603.0703125 l 5 - 116.6484375 603.0703125 l 5 - 212.5546875 305.015625 l 5 - 270.421875 95.0625 l 5 - 273.8671875 95.0625 l 5 - 332.6484375 305.015625 l 5 - 428.5546875 603.0703125 l 5 - 527.0625 603.0703125 l 5 - 326.6015625 0 l 5 - 213.3984375 0 l 5 -747.9140625 0 m 5 - 650.3203125 0 l 5 - 650.3203125 603.0703125 l 5 - 910.3359375 603.0703125 l 6 - 964.546875 603.0703125 1007.15625 586.828125 1038.234375 554.2734375 c 132 - 1069.3125 521.71875 1084.921875 477.4921875 1084.921875 421.6640625 c 4 - 1084.921875 378.421875 1074.9375 342.5625 1055.109375 314.0859375 c 132 - 1035.2109375 285.5390625 1005.9609375 265.5703125 967.359375 254.0390625 c 5 - 1097.859375 0 l 5 - 989.015625 0 l 5 - 868.0078125 243.6328125 l 5 - 747.9140625 243.6328125 l 5 - 747.9140625 0 l 5 -903.4453125 325.7578125 m 6 - 928.1953125 325.7578125 947.53125 332.2265625 961.3125 345.1640625 c 132 - 975.1640625 358.1015625 982.0546875 376.734375 982.0546875 400.921875 c 6 - 982.0546875 442.3359375 l 6 - 982.0546875 466.59375 975.1640625 485.15625 961.3125 498.09375 c 132 - 947.53125 511.03125 928.1953125 517.5703125 903.4453125 517.5703125 c 6 - 747.9140625 517.5703125 l 5 - 747.9140625 325.7578125 l 5 - 903.4453125 325.7578125 l 6 -1452.65625 -10.3359375 m 4 - 1373.765625 -10.3359375 1311.8203125 16.2421875 1266.890625 69.5390625 c 132 - 1221.9609375 122.8359375 1199.53125 200.1796875 1199.53125 301.5703125 c 4 - 1199.53125 352.1953125 1205.296875 396.84375 1216.828125 435.4453125 c 132 - 1228.2890625 474.046875 1245.0234375 506.6015625 1266.890625 533.109375 c 132 - 1288.828125 559.6171875 1315.40625 579.5859375 1346.8359375 593.15625 c 132 - 1378.1953125 606.65625 1413.4921875 613.40625 1452.65625 613.40625 c 4 - 1505.109375 613.40625 1548.984375 601.9453125 1584.421875 578.8828125 c 132 - 1619.859375 555.8203125 1647.6328125 521.859375 1667.8125 476.9296875 c 5 - 1585.7578125 432 l 5 - 1575.3515625 460.828125 1559.390625 483.6796875 1537.8046875 500.6953125 c 132 - 1516.1484375 517.7109375 1487.8125 526.1484375 1452.65625 526.1484375 c 4 - 1406.0390625 526.1484375 1369.40625 510.328125 1342.96875 478.6875 c 132 - 1316.4609375 446.9765625 1303.171875 403.171875 1303.171875 347.34375 c 6 - 1303.171875 255.7265625 l 6 - 1303.171875 199.8984375 1316.4609375 156.09375 1342.96875 124.3828125 c 132 - 1369.40625 92.7421875 1406.0390625 76.921875 1452.65625 76.921875 c 4 - 1488.9375 76.921875 1518.46875 86.2734375 1541.25 104.9765625 c 132 - 1563.9609375 123.6796875 1580.8359375 147.7265625 1591.8046875 177.1171875 c 5 - 1670.4140625 129.5859375 l 5 - 1650.234375 85.8515625 1622.0390625 51.5390625 1585.7578125 26.7890625 c 132 - 1549.40625 2.0390625 1505.109375 -10.3359375 1452.65625 -10.3359375 c 4 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 7 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 8 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -2.9638671875 0 m 5 - 0.2158203125 8.3759765625 l 5 - 1.6201171875 8.3759765625 l 5 - 2.9521484375 4.236328125 l 5 - 3.755859375 1.3203125 l 5 - 3.8037109375 1.3203125 l 5 - 4.6201171875 4.236328125 l 5 - 5.9521484375 8.3759765625 l 5 - 7.3203125 8.3759765625 l 5 - 4.5361328125 0 l 5 - 2.9638671875 0 l 5 -10.3876953125 0 m 5 - 9.0322265625 0 l 5 - 9.0322265625 8.3759765625 l 5 - 12.6435546875 8.3759765625 l 6 - 13.396484375 8.3759765625 13.98828125 8.150390625 14.419921875 7.6982421875 c 132 - 14.8515625 7.24609375 15.068359375 6.6318359375 15.068359375 5.8564453125 c 4 - 15.068359375 5.255859375 14.9296875 4.7578125 14.654296875 4.3623046875 c 132 - 14.3779296875 3.9658203125 13.9716796875 3.6884765625 13.435546875 3.5283203125 c 5 - 15.248046875 0 l 5 - 13.736328125 0 l 5 - 12.0556640625 3.3837890625 l 5 - 10.3876953125 3.3837890625 l 5 - 10.3876953125 0 l 5 -12.5478515625 4.5244140625 m 6 - 12.8916015625 4.5244140625 13.16015625 4.6142578125 13.3515625 4.7939453125 c 132 - 13.5439453125 4.9736328125 13.6396484375 5.232421875 13.6396484375 5.568359375 c 6 - 13.6396484375 6.1435546875 l 6 - 13.6396484375 6.48046875 13.5439453125 6.73828125 13.3515625 6.91796875 c 132 - 13.16015625 7.09765625 12.8916015625 7.1884765625 12.5478515625 7.1884765625 c 6 - 10.3876953125 7.1884765625 l 5 - 10.3876953125 4.5244140625 l 5 - 12.5478515625 4.5244140625 l 6 -20.17578125 -0.1435546875 m 4 - 19.080078125 -0.1435546875 18.2197265625 0.2255859375 17.595703125 0.9658203125 c 132 - 16.9716796875 1.7060546875 16.66015625 2.7802734375 16.66015625 4.1884765625 c 4 - 16.66015625 4.8916015625 16.740234375 5.51171875 16.900390625 6.0478515625 c 132 - 17.0595703125 6.583984375 17.2919921875 7.0361328125 17.595703125 7.404296875 c 132 - 17.900390625 7.7724609375 18.26953125 8.0498046875 18.7060546875 8.23828125 c 132 - 19.1416015625 8.42578125 19.6318359375 8.51953125 20.17578125 8.51953125 c 4 - 20.904296875 8.51953125 21.513671875 8.3603515625 22.005859375 8.0400390625 c 132 - 22.498046875 7.7197265625 22.8837890625 7.248046875 23.1640625 6.6240234375 c 5 - 22.0244140625 6 l 5 - 21.8798828125 6.400390625 21.658203125 6.7177734375 21.3583984375 6.9541015625 c 132 - 21.0576171875 7.1904296875 20.6640625 7.3076171875 20.17578125 7.3076171875 c 4 - 19.5283203125 7.3076171875 19.01953125 7.087890625 18.65234375 6.6484375 c 132 - 18.2841796875 6.2080078125 18.099609375 5.599609375 18.099609375 4.82421875 c 6 - 18.099609375 3.5517578125 l 6 - 18.099609375 2.7763671875 18.2841796875 2.16796875 18.65234375 1.7275390625 c 132 - 19.01953125 1.2880859375 19.5283203125 1.068359375 20.17578125 1.068359375 c 4 - 20.6796875 1.068359375 21.08984375 1.1982421875 21.40625 1.4580078125 c 132 - 21.7216796875 1.7177734375 21.9560546875 2.0517578125 22.1083984375 2.4599609375 c 5 - 23.2001953125 1.7998046875 l 5 - 22.919921875 1.1923828125 22.5283203125 0.7158203125 22.0244140625 0.3720703125 c 132 - 21.51953125 0.0283203125 20.904296875 -0.1435546875 20.17578125 -0.1435546875 c 4 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 9 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 10 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -2.9638671875 0 m 1 - 0.2158203125 8.3759765625 l 1 - 1.6201171875 8.3759765625 l 1 - 2.9521484375 4.236328125 l 1 - 3.755859375 1.3203125 l 1 - 3.8037109375 1.3203125 l 1 - 4.6201171875 4.236328125 l 1 - 5.9521484375 8.3759765625 l 1 - 7.3203125 8.3759765625 l 1 - 4.5361328125 0 l 1 - 2.9638671875 0 l 1 -10.3876953125 0 m 1 - 9.0322265625 0 l 1 - 9.0322265625 8.3759765625 l 1 - 12.6435546875 8.3759765625 l 2 - 13.396484375 8.3759765625 13.98828125 8.150390625 14.419921875 7.6982421875 c 128 - 14.8515625 7.24609375 15.068359375 6.6318359375 15.068359375 5.8564453125 c 0 - 15.068359375 5.255859375 14.9296875 4.7578125 14.654296875 4.3623046875 c 128 - 14.3779296875 3.9658203125 13.9716796875 3.6884765625 13.435546875 3.5283203125 c 1 - 15.248046875 0 l 1 - 13.736328125 0 l 1 - 12.0556640625 3.3837890625 l 1 - 10.3876953125 3.3837890625 l 1 - 10.3876953125 0 l 1 -12.5478515625 4.5244140625 m 2 - 12.8916015625 4.5244140625 13.16015625 4.6142578125 13.3515625 4.7939453125 c 128 - 13.5439453125 4.9736328125 13.6396484375 5.232421875 13.6396484375 5.568359375 c 2 - 13.6396484375 6.1435546875 l 2 - 13.6396484375 6.48046875 13.5439453125 6.73828125 13.3515625 6.91796875 c 128 - 13.16015625 7.09765625 12.8916015625 7.1884765625 12.5478515625 7.1884765625 c 2 - 10.3876953125 7.1884765625 l 1 - 10.3876953125 4.5244140625 l 1 - 12.5478515625 4.5244140625 l 2 -20.17578125 -0.1435546875 m 0 - 19.080078125 -0.1435546875 18.2197265625 0.2255859375 17.595703125 0.9658203125 c 128 - 16.9716796875 1.7060546875 16.66015625 2.7802734375 16.66015625 4.1884765625 c 0 - 16.66015625 4.8916015625 16.740234375 5.51171875 16.900390625 6.0478515625 c 128 - 17.0595703125 6.583984375 17.2919921875 7.0361328125 17.595703125 7.404296875 c 128 - 17.900390625 7.7724609375 18.26953125 8.0498046875 18.7060546875 8.23828125 c 128 - 19.1416015625 8.42578125 19.6318359375 8.51953125 20.17578125 8.51953125 c 0 - 20.904296875 8.51953125 21.513671875 8.3603515625 22.005859375 8.0400390625 c 128 - 22.498046875 7.7197265625 22.8837890625 7.248046875 23.1640625 6.6240234375 c 1 - 22.0244140625 6 l 1 - 21.8798828125 6.400390625 21.658203125 6.7177734375 21.3583984375 6.9541015625 c 128 - 21.0576171875 7.1904296875 20.6640625 7.3076171875 20.17578125 7.3076171875 c 0 - 19.5283203125 7.3076171875 19.01953125 7.087890625 18.65234375 6.6484375 c 128 - 18.2841796875 6.2080078125 18.099609375 5.599609375 18.099609375 4.82421875 c 2 - 18.099609375 3.5517578125 l 2 - 18.099609375 2.7763671875 18.2841796875 2.16796875 18.65234375 1.7275390625 c 128 - 19.01953125 1.2880859375 19.5283203125 1.068359375 20.17578125 1.068359375 c 0 - 20.6796875 1.068359375 21.08984375 1.1982421875 21.40625 1.4580078125 c 128 - 21.7216796875 1.7177734375 21.9560546875 2.0517578125 22.1083984375 2.4599609375 c 1 - 23.2001953125 1.7998046875 l 1 - 22.919921875 1.1923828125 22.5283203125 0.7158203125 22.0244140625 0.3720703125 c 128 - 21.51953125 0.0283203125 20.904296875 -0.1435546875 20.17578125 -0.1435546875 c 0 -3.6240234375 -14.1435546875 m 4 - 3.16015625 -14.1435546875 2.74609375 -14.068359375 2.3818359375 -13.916015625 c 132 - 2.017578125 -13.763671875 1.7099609375 -13.5458984375 1.4580078125 -13.26171875 c 132 - 1.2060546875 -12.9775390625 1.01171875 -12.6357421875 0.8759765625 -12.236328125 c 132 - 0.740234375 -11.8359375 0.671875 -11.3837890625 0.671875 -10.8798828125 c 4 - 0.671875 -10.2724609375 0.763671875 -9.7001953125 0.9482421875 -9.1640625 c 132 - 1.1318359375 -8.6279296875 1.3681640625 -8.1357421875 1.65625 -7.6884765625 c 132 - 1.9443359375 -7.240234375 2.265625 -6.841796875 2.6220703125 -6.494140625 c 132 - 2.9775390625 -6.146484375 3.328125 -5.8564453125 3.671875 -5.6240234375 c 5 - 5.4716796875 -5.6240234375 l 5 - 5 -5.9677734375 4.576171875 -6.2998046875 4.2001953125 -6.6201171875 c 132 - 3.82421875 -6.9404296875 3.49609375 -7.267578125 3.2158203125 -7.603515625 c 132 - 2.935546875 -7.9404296875 2.7021484375 -8.2958984375 2.513671875 -8.671875 c 132 - 2.326171875 -9.0478515625 2.1796875 -9.4599609375 2.076171875 -9.908203125 c 5 - 2.16015625 -9.931640625 l 5 - 2.248046875 -9.763671875 2.349609375 -9.6064453125 2.4658203125 -9.4580078125 c 132 - 2.58203125 -9.3095703125 2.7177734375 -9.1796875 2.8740234375 -9.068359375 c 132 - 3.0302734375 -8.9560546875 3.2080078125 -8.8681640625 3.408203125 -8.8037109375 c 132 - 3.6083984375 -8.740234375 3.83984375 -8.7080078125 4.103515625 -8.7080078125 c 4 - 4.4560546875 -8.7080078125 4.7822265625 -8.767578125 5.08203125 -8.8876953125 c 132 - 5.3818359375 -9.0078125 5.6416015625 -9.181640625 5.8623046875 -9.41015625 c 132 - 6.08203125 -9.6376953125 6.25390625 -9.912109375 6.3779296875 -10.232421875 c 132 - 6.501953125 -10.5517578125 6.564453125 -10.908203125 6.564453125 -11.2998046875 c 4 - 6.564453125 -11.7236328125 6.494140625 -12.1103515625 6.353515625 -12.4580078125 c 132 - 6.2138671875 -12.8056640625 6.015625 -13.103515625 5.759765625 -13.3515625 c 132 - 5.50390625 -13.599609375 5.1943359375 -13.7939453125 4.830078125 -13.93359375 c 132 - 4.4658203125 -14.07421875 4.064453125 -14.1435546875 3.6240234375 -14.1435546875 c 4 -3.6240234375 -13.0400390625 m 260 - 4.1123046875 -13.0400390625 4.4921875 -12.91015625 4.763671875 -12.650390625 c 132 - 5.0361328125 -12.3896484375 5.171875 -12.0078125 5.171875 -11.50390625 c 6 - 5.171875 -11.3359375 l 6 - 5.171875 -10.83203125 5.0361328125 -10.4501953125 4.763671875 -10.1904296875 c 132 - 4.4921875 -9.9296875 4.1123046875 -9.7998046875 3.6240234375 -9.7998046875 c 260 - 3.1357421875 -9.7998046875 2.755859375 -9.9296875 2.484375 -10.1904296875 c 132 - 2.2119140625 -10.4501953125 2.076171875 -10.83203125 2.076171875 -11.3359375 c 6 - 2.076171875 -11.50390625 l 6 - 2.076171875 -12.0078125 2.2119140625 -12.3896484375 2.484375 -12.650390625 c 132 - 2.755859375 -12.91015625 3.1357421875 -13.0400390625 3.6240234375 -13.0400390625 c 260 -13.5400390625 -14.1435546875 m 4 - 12.8359375 -14.1435546875 12.23828125 -14.015625 11.74609375 -13.759765625 c 132 - 11.25390625 -13.50390625 10.83203125 -13.16015625 10.48046875 -12.7275390625 c 5 - 11.416015625 -11.8515625 l 5 - 11.7119140625 -12.2119140625 12.0380859375 -12.484375 12.3935546875 -12.66796875 c 132 - 12.75 -12.8515625 13.15625 -12.9443359375 13.6123046875 -12.9443359375 c 4 - 14.1484375 -12.9443359375 14.5517578125 -12.82421875 14.82421875 -12.583984375 c 132 - 15.095703125 -12.34375 15.232421875 -12.01953125 15.232421875 -11.6123046875 c 4 - 15.232421875 -11.2841796875 15.1357421875 -11.0244140625 14.9443359375 -10.83203125 c 132 - 14.751953125 -10.6396484375 14.412109375 -10.49609375 13.923828125 -10.400390625 c 6 - 13.1796875 -10.267578125 l 6 - 12.3642578125 -10.1162109375 11.751953125 -9.84765625 11.34375 -9.4638671875 c 132 - 10.935546875 -9.080078125 10.732421875 -8.5517578125 10.732421875 -7.8798828125 c 4 - 10.732421875 -7.51171875 10.8017578125 -7.177734375 10.9423828125 -6.8779296875 c 132 - 11.08203125 -6.578125 11.2783203125 -6.326171875 11.5302734375 -6.1220703125 c 132 - 11.7822265625 -5.91796875 12.087890625 -5.759765625 12.4482421875 -5.6484375 c 132 - 12.8076171875 -5.5361328125 13.2119140625 -5.48046875 13.66015625 -5.48046875 c 4 - 14.2919921875 -5.48046875 14.83984375 -5.58984375 15.3037109375 -5.8095703125 c 132 - 15.767578125 -6.0302734375 16.1640625 -6.34765625 16.4921875 -6.763671875 c 5 - 15.5439453125 -7.603515625 l 5 - 15.328125 -7.32421875 15.064453125 -7.099609375 14.751953125 -6.931640625 c 132 - 14.4404296875 -6.763671875 14.0517578125 -6.6796875 13.587890625 -6.6796875 c 4 - 13.1083984375 -6.6796875 12.736328125 -6.7763671875 12.4716796875 -6.9677734375 c 132 - 12.2080078125 -7.16015625 12.076171875 -7.4404296875 12.076171875 -7.8076171875 c 4 - 12.076171875 -8.16015625 12.18359375 -8.421875 12.400390625 -8.59375 c 132 - 12.6162109375 -8.765625 12.9521484375 -8.896484375 13.408203125 -8.984375 c 6 - 14.15234375 -9.1396484375 l 6 - 14.9921875 -9.2998046875 15.6064453125 -9.572265625 15.994140625 -9.9560546875 c 132 - 16.3818359375 -10.33984375 16.576171875 -10.8681640625 16.576171875 -11.5400390625 c 4 - 16.576171875 -11.931640625 16.5078125 -12.2880859375 16.3720703125 -12.6083984375 c 132 - 16.236328125 -12.927734375 16.0380859375 -13.2021484375 15.7783203125 -13.4296875 c 132 - 15.517578125 -13.658203125 15.2001953125 -13.833984375 14.82421875 -13.9580078125 c 132 - 14.4482421875 -14.08203125 14.01953125 -14.1435546875 13.5400390625 -14.1435546875 c 4 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 11 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 12 -Type: 1 -WasModified: 0 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -EndUndoOperation EndUndoes Redoes EndRedoes @@ -1819,587 +832,26 @@ Width: 1792 Flags: H LayerCount: 2 UndoRedoHistory -Layer: 0 -Undoes -UndoOperation -Index: 0 -Type: 1 -WasModified: 0 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -EndUndoOperation -EndUndoes -Redoes -EndRedoes -EndUndoRedoHistory -UndoRedoHistory Layer: 1 Undoes UndoOperation Index: 0 -Type: 3 +Type: 1 WasModified: 0 WasOrder2: 0 Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 EndUndoOperation UndoOperation Index: 1 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -501.09375 0 m 5 - 440.625 181.40625 l 5 - 190.078125 181.40625 l 5 - 131.484375 0 l 5 - 21.09375 0 l 5 - 249.609375 670.078125 l 5 - 385.9375 670.078125 l 5 - 614.375 0 l 5 - 501.09375 0 l 5 -317.734375 570.234375 m 5 - 312.96875 570.234375 l 5 - 216.015625 274.53125 l 5 - 413.75 274.53125 l 5 - 317.734375 570.234375 l 5 -903.046875 370.546875 m 5 - 829.140625 512.65625 l 5 - 826.25 512.65625 l 5 - 826.25 0 l 5 - 722.578125 0 l 5 - 722.578125 670.078125 l 5 - 843.515625 670.078125 l 5 - 1062.421875 299.53125 l 5 - 1136.328125 157.421875 l 5 - 1139.21875 157.421875 l 5 - 1139.21875 670.078125 l 5 - 1242.890625 670.078125 l 5 - 1242.890625 0 l 5 - 1121.953125 0 l 5 - 903.046875 370.546875 l 5 -447.483398438 854.515625 m 0 - 391.155273438 854.515625 343.342773438 864.75 303.967773438 885.21875 c 128 - 264.592773438 905.6875 230.842773438 933.1875 202.717773438 967.796875 c 1 - 277.561523438 1037.875 l 1 - 301.233398438 1009.046875 327.327148438 987.25 355.764648438 972.5625 c 128 - 384.280273438 957.875 416.780273438 950.453125 453.264648438 950.453125 c 0 - 496.155273438 950.453125 528.420898438 960.0625 550.217773438 979.28125 c 128 - 571.936523438 998.5 582.874023438 1024.4375 582.874023438 1057.015625 c 0 - 582.874023438 1083.265625 575.139648438 1104.046875 559.827148438 1119.4375 c 128 - 544.436523438 1134.828125 517.249023438 1146.3125 478.186523438 1153.96875 c 2 - 418.655273438 1164.59375 l 2 - 353.420898438 1176.703125 304.436523438 1198.1875 271.780273438 1228.890625 c 128 - 239.124023438 1259.59375 222.874023438 1301.859375 222.874023438 1355.609375 c 0 - 222.874023438 1385.0625 228.420898438 1411.78125 239.670898438 1435.765625 c 128 - 250.842773438 1459.75 266.545898438 1479.90625 286.702148438 1496.234375 c 128 - 306.858398438 1512.5625 331.311523438 1525.21875 360.139648438 1534.125 c 128 - 388.889648438 1543.109375 421.233398438 1547.5625 457.092773438 1547.5625 c 0 - 507.639648438 1547.5625 551.467773438 1538.8125 588.577148438 1521.234375 c 128 - 625.686523438 1503.578125 657.405273438 1478.1875 683.655273438 1444.90625 c 1 - 607.795898438 1377.71875 l 1 - 590.530273438 1400.0625 569.436523438 1418.03125 544.436523438 1431.46875 c 128 - 519.514648438 1444.90625 488.420898438 1451.625 451.311523438 1451.625 c 0 - 412.952148438 1451.625 383.186523438 1443.890625 362.014648438 1428.578125 c 128 - 340.920898438 1413.1875 330.374023438 1390.765625 330.374023438 1361.390625 c 0 - 330.374023438 1333.1875 338.967773438 1312.25 356.311523438 1298.5 c 128 - 373.577148438 1284.75 400.452148438 1274.28125 436.936523438 1267.25 c 2 - 496.467773438 1254.828125 l 2 - 563.655273438 1242.015625 612.795898438 1220.21875 643.811523438 1189.515625 c 128 - 674.827148438 1158.8125 690.374023438 1116.546875 690.374023438 1062.796875 c 0 - 690.374023438 1031.46875 684.905273438 1002.953125 674.045898438 977.328125 c 128 - 663.186523438 951.78125 647.327148438 929.828125 626.545898438 911.625 c 128 - 605.686523438 893.34375 580.295898438 879.28125 550.217773438 869.359375 c 128 - 520.139648438 859.4375 485.842773438 854.515625 447.483398438 854.515625 c 0 -905.686523438 866 m 1 - 747.327148438 1536.078125 l 1 - 857.717773438 1536.078125 l 1 - 925.842773438 1213.5 l 1 - 972.952148438 990.765625 l 1 - 975.764648438 990.765625 l 1 - 1029.59277344 1213.5 l 1 - 1109.20214844 1536.078125 l 1 - 1230.21777344 1536.078125 l 1 - 1308.88964844 1213.5 l 1 - 1361.70214844 991.78125 l 1 - 1364.59277344 991.78125 l 1 - 1413.57714844 1213.5 l 1 - 1483.65527344 1536.078125 l 1 - 1590.21777344 1536.078125 l 1 - 1425.06152344 866 l 1 - 1303.18652344 866 l 1 - 1217.71777344 1212.5625 l 1 - 1167.79589844 1416.078125 l 1 - 1165.84277344 1416.078125 l 1 - 1114.98339844 1212.5625 l 1 - 1027.63964844 866 l 1 - 905.686523438 866 l 1 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 2 Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 3 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -6.263671875 0 m 5 - 5.5078125 2.267578125 l 5 - 2.3759765625 2.267578125 l 5 - 1.6435546875 0 l 5 - 0.263671875 0 l 5 - 3.1201171875 8.3759765625 l 5 - 4.82421875 8.3759765625 l 5 - 7.6796875 0 l 5 - 6.263671875 0 l 5 -3.9716796875 7.1279296875 m 5 - 3.912109375 7.1279296875 l 5 - 2.7001953125 3.431640625 l 5 - 5.171875 3.431640625 l 5 - 3.9716796875 7.1279296875 l 5 -11.2880859375 4.6318359375 m 5 - 10.3642578125 6.408203125 l 5 - 10.328125 6.408203125 l 5 - 10.328125 0 l 5 - 9.0322265625 0 l 5 - 9.0322265625 8.3759765625 l 5 - 10.5439453125 8.3759765625 l 5 - 13.2802734375 3.744140625 l 5 - 14.2041015625 1.9677734375 l 5 - 14.240234375 1.9677734375 l 5 - 14.240234375 8.3759765625 l 5 - 15.5361328125 8.3759765625 l 5 - 15.5361328125 0 l 5 - 14.0244140625 0 l 5 - 11.2880859375 4.6318359375 l 5 -447.483398438 854.515625 m 0 - 391.155273438 854.515625 343.342773438 864.75 303.967773438 885.21875 c 128 - 264.592773438 905.6875 230.842773438 933.1875 202.717773438 967.796875 c 1 - 277.561523438 1037.875 l 1 - 301.233398438 1009.046875 327.327148438 987.25 355.764648438 972.5625 c 128 - 384.280273438 957.875 416.780273438 950.453125 453.264648438 950.453125 c 0 - 496.155273438 950.453125 528.420898438 960.0625 550.217773438 979.28125 c 128 - 571.936523438 998.5 582.874023438 1024.4375 582.874023438 1057.015625 c 0 - 582.874023438 1083.265625 575.139648438 1104.046875 559.827148438 1119.4375 c 128 - 544.436523438 1134.828125 517.249023438 1146.3125 478.186523438 1153.96875 c 2 - 418.655273438 1164.59375 l 2 - 353.420898438 1176.703125 304.436523438 1198.1875 271.780273438 1228.890625 c 128 - 239.124023438 1259.59375 222.874023438 1301.859375 222.874023438 1355.609375 c 0 - 222.874023438 1385.0625 228.420898438 1411.78125 239.670898438 1435.765625 c 128 - 250.842773438 1459.75 266.545898438 1479.90625 286.702148438 1496.234375 c 128 - 306.858398438 1512.5625 331.311523438 1525.21875 360.139648438 1534.125 c 128 - 388.889648438 1543.109375 421.233398438 1547.5625 457.092773438 1547.5625 c 0 - 507.639648438 1547.5625 551.467773438 1538.8125 588.577148438 1521.234375 c 128 - 625.686523438 1503.578125 657.405273438 1478.1875 683.655273438 1444.90625 c 1 - 607.795898438 1377.71875 l 1 - 590.530273438 1400.0625 569.436523438 1418.03125 544.436523438 1431.46875 c 128 - 519.514648438 1444.90625 488.420898438 1451.625 451.311523438 1451.625 c 0 - 412.952148438 1451.625 383.186523438 1443.890625 362.014648438 1428.578125 c 128 - 340.920898438 1413.1875 330.374023438 1390.765625 330.374023438 1361.390625 c 0 - 330.374023438 1333.1875 338.967773438 1312.25 356.311523438 1298.5 c 128 - 373.577148438 1284.75 400.452148438 1274.28125 436.936523438 1267.25 c 2 - 496.467773438 1254.828125 l 2 - 563.655273438 1242.015625 612.795898438 1220.21875 643.811523438 1189.515625 c 128 - 674.827148438 1158.8125 690.374023438 1116.546875 690.374023438 1062.796875 c 0 - 690.374023438 1031.46875 684.905273438 1002.953125 674.045898438 977.328125 c 128 - 663.186523438 951.78125 647.327148438 929.828125 626.545898438 911.625 c 128 - 605.686523438 893.34375 580.295898438 879.28125 550.217773438 869.359375 c 128 - 520.139648438 859.4375 485.842773438 854.515625 447.483398438 854.515625 c 0 -905.686523438 866 m 1 - 747.327148438 1536.078125 l 1 - 857.717773438 1536.078125 l 1 - 925.842773438 1213.5 l 1 - 972.952148438 990.765625 l 1 - 975.764648438 990.765625 l 1 - 1029.59277344 1213.5 l 1 - 1109.20214844 1536.078125 l 1 - 1230.21777344 1536.078125 l 1 - 1308.88964844 1213.5 l 1 - 1361.70214844 991.78125 l 1 - 1364.59277344 991.78125 l 1 - 1413.57714844 1213.5 l 1 - 1483.65527344 1536.078125 l 1 - 1590.21777344 1536.078125 l 1 - 1425.06152344 866 l 1 - 1303.18652344 866 l 1 - 1217.71777344 1212.5625 l 1 - 1167.79589844 1416.078125 l 1 - 1165.84277344 1416.078125 l 1 - 1114.98339844 1212.5625 l 1 - 1027.63964844 866 l 1 - 905.686523438 866 l 1 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 4 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 5 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 6 -Type: 2 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -6.263671875 0 m 5 - 5.5078125 2.267578125 l 5 - 2.3759765625 2.267578125 l 5 - 1.6435546875 0 l 5 - 0.263671875 0 l 5 - 3.1201171875 8.3759765625 l 5 - 4.82421875 8.3759765625 l 5 - 7.6796875 0 l 5 - 6.263671875 0 l 5 -3.9716796875 7.1279296875 m 5 - 3.912109375 7.1279296875 l 5 - 2.7001953125 3.431640625 l 5 - 5.171875 3.431640625 l 5 - 3.9716796875 7.1279296875 l 5 -11.2880859375 4.6318359375 m 5 - 10.3642578125 6.408203125 l 5 - 10.328125 6.408203125 l 5 - 10.328125 0 l 5 - 9.0322265625 0 l 5 - 9.0322265625 8.3759765625 l 5 - 10.5439453125 8.3759765625 l 5 - 13.2802734375 3.744140625 l 5 - 14.2041015625 1.9677734375 l 5 - 14.240234375 1.9677734375 l 5 - 14.240234375 8.3759765625 l 5 - 15.5361328125 8.3759765625 l 5 - 15.5361328125 0 l 5 - 14.0244140625 0 l 5 - 11.2880859375 4.6318359375 l 5 -447.483398438 854.515625 m 4 - 391.155273438 854.515625 343.342773438 864.75 303.967773438 885.21875 c 132 - 264.592773438 905.6875 230.842773438 933.1875 202.717773438 967.796875 c 5 - 277.561523438 1037.875 l 5 - 301.233398438 1009.046875 327.327148438 987.25 355.764648438 972.5625 c 132 - 384.280273438 957.875 416.780273438 950.453125 453.264648438 950.453125 c 4 - 496.155273438 950.453125 528.420898438 960.0625 550.217773438 979.28125 c 132 - 571.936523438 998.5 582.874023438 1024.4375 582.874023438 1057.015625 c 4 - 582.874023438 1083.265625 575.139648438 1104.046875 559.827148438 1119.4375 c 132 - 544.436523438 1134.828125 517.249023438 1146.3125 478.186523438 1153.96875 c 6 - 418.655273438 1164.59375 l 6 - 353.420898438 1176.703125 304.436523438 1198.1875 271.780273438 1228.890625 c 132 - 239.124023438 1259.59375 222.874023438 1301.859375 222.874023438 1355.609375 c 4 - 222.874023438 1385.0625 228.420898438 1411.78125 239.670898438 1435.765625 c 132 - 250.842773438 1459.75 266.545898438 1479.90625 286.702148438 1496.234375 c 132 - 306.858398438 1512.5625 331.311523438 1525.21875 360.139648438 1534.125 c 132 - 388.889648438 1543.109375 421.233398438 1547.5625 457.092773438 1547.5625 c 4 - 507.639648438 1547.5625 551.467773438 1538.8125 588.577148438 1521.234375 c 132 - 625.686523438 1503.578125 657.405273438 1478.1875 683.655273438 1444.90625 c 5 - 607.795898438 1377.71875 l 5 - 590.530273438 1400.0625 569.436523438 1418.03125 544.436523438 1431.46875 c 132 - 519.514648438 1444.90625 488.420898438 1451.625 451.311523438 1451.625 c 4 - 412.952148438 1451.625 383.186523438 1443.890625 362.014648438 1428.578125 c 132 - 340.920898438 1413.1875 330.374023438 1390.765625 330.374023438 1361.390625 c 4 - 330.374023438 1333.1875 338.967773438 1312.25 356.311523438 1298.5 c 132 - 373.577148438 1284.75 400.452148438 1274.28125 436.936523438 1267.25 c 6 - 496.467773438 1254.828125 l 6 - 563.655273438 1242.015625 612.795898438 1220.21875 643.811523438 1189.515625 c 132 - 674.827148438 1158.8125 690.374023438 1116.546875 690.374023438 1062.796875 c 4 - 690.374023438 1031.46875 684.905273438 1002.953125 674.045898438 977.328125 c 132 - 663.186523438 951.78125 647.327148438 929.828125 626.545898438 911.625 c 132 - 605.686523438 893.34375 580.295898438 879.28125 550.217773438 869.359375 c 132 - 520.139648438 859.4375 485.842773438 854.515625 447.483398438 854.515625 c 4 -905.686523438 866 m 5 - 747.327148438 1536.078125 l 5 - 857.717773438 1536.078125 l 5 - 925.842773438 1213.5 l 5 - 972.952148438 990.765625 l 5 - 975.764648438 990.765625 l 5 - 1029.59277344 1213.5 l 5 - 1109.20214844 1536.078125 l 5 - 1230.21777344 1536.078125 l 5 - 1308.88964844 1213.5 l 5 - 1361.70214844 991.78125 l 5 - 1364.59277344 991.78125 l 5 - 1413.57714844 1213.5 l 5 - 1483.65527344 1536.078125 l 5 - 1590.21777344 1536.078125 l 5 - 1425.06152344 866 l 5 - 1303.18652344 866 l 5 - 1217.71777344 1212.5625 l 5 - 1167.79589844 1416.078125 l 5 - 1165.84277344 1416.078125 l 5 - 1114.98339844 1212.5625 l 5 - 1027.63964844 866 l 5 - 905.686523438 866 l 5 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 7 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -447.483398438 854.515625 m 4 - 391.155273438 854.515625 343.342773438 864.75 303.967773438 885.21875 c 132 - 264.592773438 905.6875 230.842773438 933.1875 202.717773438 967.796875 c 5 - 277.561523438 1037.875 l 5 - 301.233398438 1009.046875 327.327148438 987.25 355.764648438 972.5625 c 132 - 384.280273438 957.875 416.780273438 950.453125 453.264648438 950.453125 c 4 - 496.155273438 950.453125 528.420898438 960.0625 550.217773438 979.28125 c 132 - 571.936523438 998.5 582.874023438 1024.4375 582.874023438 1057.015625 c 4 - 582.874023438 1083.265625 575.139648438 1104.046875 559.827148438 1119.4375 c 132 - 544.436523438 1134.828125 517.249023438 1146.3125 478.186523438 1153.96875 c 6 - 418.655273438 1164.59375 l 6 - 353.420898438 1176.703125 304.436523438 1198.1875 271.780273438 1228.890625 c 132 - 239.124023438 1259.59375 222.874023438 1301.859375 222.874023438 1355.609375 c 4 - 222.874023438 1385.0625 228.420898438 1411.78125 239.670898438 1435.765625 c 132 - 250.842773438 1459.75 266.545898438 1479.90625 286.702148438 1496.234375 c 132 - 306.858398438 1512.5625 331.311523438 1525.21875 360.139648438 1534.125 c 132 - 388.889648438 1543.109375 421.233398438 1547.5625 457.092773438 1547.5625 c 4 - 507.639648438 1547.5625 551.467773438 1538.8125 588.577148438 1521.234375 c 132 - 625.686523438 1503.578125 657.405273438 1478.1875 683.655273438 1444.90625 c 5 - 607.795898438 1377.71875 l 5 - 590.530273438 1400.0625 569.436523438 1418.03125 544.436523438 1431.46875 c 132 - 519.514648438 1444.90625 488.420898438 1451.625 451.311523438 1451.625 c 4 - 412.952148438 1451.625 383.186523438 1443.890625 362.014648438 1428.578125 c 132 - 340.920898438 1413.1875 330.374023438 1390.765625 330.374023438 1361.390625 c 4 - 330.374023438 1333.1875 338.967773438 1312.25 356.311523438 1298.5 c 132 - 373.577148438 1284.75 400.452148438 1274.28125 436.936523438 1267.25 c 6 - 496.467773438 1254.828125 l 6 - 563.655273438 1242.015625 612.795898438 1220.21875 643.811523438 1189.515625 c 132 - 674.827148438 1158.8125 690.374023438 1116.546875 690.374023438 1062.796875 c 4 - 690.374023438 1031.46875 684.905273438 1002.953125 674.045898438 977.328125 c 132 - 663.186523438 951.78125 647.327148438 929.828125 626.545898438 911.625 c 132 - 605.686523438 893.34375 580.295898438 879.28125 550.217773438 869.359375 c 132 - 520.139648438 859.4375 485.842773438 854.515625 447.483398438 854.515625 c 4 -905.686523438 866 m 5 - 747.327148438 1536.078125 l 5 - 857.717773438 1536.078125 l 5 - 925.842773438 1213.5 l 5 - 972.952148438 990.765625 l 5 - 975.764648438 990.765625 l 5 - 1029.59277344 1213.5 l 5 - 1109.20214844 1536.078125 l 5 - 1230.21777344 1536.078125 l 5 - 1308.88964844 1213.5 l 5 - 1361.70214844 991.78125 l 5 - 1364.59277344 991.78125 l 5 - 1413.57714844 1213.5 l 5 - 1483.65527344 1536.078125 l 5 - 1590.21777344 1536.078125 l 5 - 1425.06152344 866 l 5 - 1303.18652344 866 l 5 - 1217.71777344 1212.5625 l 5 - 1167.79589844 1416.078125 l 5 - 1165.84277344 1416.078125 l 5 - 1114.98339844 1212.5625 l 5 - 1027.63964844 866 l 5 - 905.686523438 866 l 5 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 8 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -283.203125 -11.484375 m 4 - 226.875 -11.484375 179.0625 -1.25 139.6875 19.21875 c 132 - 100.3125 39.6875 66.5625 67.1875 38.4375 101.796875 c 5 - 113.28125 171.875 l 5 - 136.953125 143.046875 163.046875 121.25 191.484375 106.5625 c 132 - 220 91.875 252.5 84.453125 288.984375 84.453125 c 4 - 331.875 84.453125 364.140625 94.0625 385.9375 113.28125 c 132 - 407.65625 132.5 418.59375 158.4375 418.59375 191.015625 c 4 - 418.59375 217.265625 410.859375 238.046875 395.546875 253.4375 c 132 - 380.15625 268.828125 352.96875 280.3125 313.90625 287.96875 c 6 - 254.375 298.59375 l 6 - 189.140625 310.703125 140.15625 332.1875 107.5 362.890625 c 132 - 74.84375 393.59375 58.59375 435.859375 58.59375 489.609375 c 4 - 58.59375 519.0625 64.140625 545.78125 75.390625 569.765625 c 132 - 86.5625 593.75 102.265625 613.90625 122.421875 630.234375 c 132 - 142.578125 646.5625 167.03125 659.21875 195.859375 668.125 c 132 - 224.609375 677.109375 256.953125 681.5625 292.8125 681.5625 c 4 - 343.359375 681.5625 387.1875 672.8125 424.296875 655.234375 c 132 - 461.40625 637.578125 493.125 612.1875 519.375 578.90625 c 5 - 443.515625 511.71875 l 5 - 426.25 534.0625 405.15625 552.03125 380.15625 565.46875 c 132 - 355.234375 578.90625 324.140625 585.625 287.03125 585.625 c 4 - 248.671875 585.625 218.90625 577.890625 197.734375 562.578125 c 132 - 176.640625 547.1875 166.09375 524.765625 166.09375 495.390625 c 4 - 166.09375 467.1875 174.6875 446.25 192.03125 432.5 c 132 - 209.296875 418.75 236.171875 408.28125 272.65625 401.25 c 6 - 332.1875 388.828125 l 6 - 399.375 376.015625 448.515625 354.21875 479.53125 323.515625 c 132 - 510.546875 292.8125 526.09375 250.546875 526.09375 196.796875 c 4 - 526.09375 165.46875 520.625 136.953125 509.765625 111.328125 c 132 - 498.90625 85.78125 483.046875 63.828125 462.265625 45.625 c 132 - 441.40625 27.34375 416.015625 13.28125 385.9375 3.359375 c 132 - 355.859375 -6.5625 321.5625 -11.484375 283.203125 -11.484375 c 4 -741.40625 0 m 5 - 583.046875 670.078125 l 5 - 693.4375 670.078125 l 5 - 761.5625 347.5 l 5 - 808.671875 124.765625 l 5 - 811.484375 124.765625 l 5 - 865.3125 347.5 l 5 - 944.921875 670.078125 l 5 - 1065.9375 670.078125 l 5 - 1144.609375 347.5 l 5 - 1197.421875 125.78125 l 5 - 1200.3125 125.78125 l 5 - 1249.296875 347.5 l 5 - 1319.375 670.078125 l 5 - 1425.9375 670.078125 l 5 - 1260.78125 0 l 5 - 1138.90625 0 l 5 - 1053.4375 346.5625 l 5 - 1003.515625 550.078125 l 5 - 1001.5625 550.078125 l 5 - 950.703125 346.5625 l 5 - 863.359375 0 l 5 - 741.40625 0 l 5 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 9 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 10 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -3.5400390625 -0.1435546875 m 4 - 2.8359375 -0.1435546875 2.23828125 -0.015625 1.74609375 0.240234375 c 132 - 1.25390625 0.49609375 0.83203125 0.83984375 0.48046875 1.2724609375 c 5 - 1.416015625 2.1484375 l 5 - 1.7119140625 1.7880859375 2.0380859375 1.515625 2.3935546875 1.33203125 c 132 - 2.75 1.1484375 3.15625 1.0556640625 3.6123046875 1.0556640625 c 4 - 4.1484375 1.0556640625 4.5517578125 1.17578125 4.82421875 1.416015625 c 132 - 5.095703125 1.65625 5.232421875 1.98046875 5.232421875 2.3876953125 c 4 - 5.232421875 2.7158203125 5.1357421875 2.9755859375 4.9443359375 3.16796875 c 132 - 4.751953125 3.3603515625 4.412109375 3.50390625 3.923828125 3.599609375 c 6 - 3.1796875 3.732421875 l 6 - 2.3642578125 3.8837890625 1.751953125 4.15234375 1.34375 4.5361328125 c 132 - 0.935546875 4.919921875 0.732421875 5.4482421875 0.732421875 6.1201171875 c 4 - 0.732421875 6.48828125 0.8017578125 6.822265625 0.9423828125 7.1220703125 c 132 - 1.08203125 7.421875 1.2783203125 7.673828125 1.5302734375 7.8779296875 c 132 - 1.7822265625 8.08203125 2.087890625 8.240234375 2.4482421875 8.3515625 c 132 - 2.8076171875 8.4638671875 3.2119140625 8.51953125 3.66015625 8.51953125 c 4 - 4.2919921875 8.51953125 4.83984375 8.41015625 5.3037109375 8.1904296875 c 132 - 5.767578125 7.9697265625 6.1640625 7.65234375 6.4921875 7.236328125 c 5 - 5.5439453125 6.396484375 l 5 - 5.328125 6.67578125 5.064453125 6.900390625 4.751953125 7.068359375 c 132 - 4.4404296875 7.236328125 4.0517578125 7.3203125 3.587890625 7.3203125 c 4 - 3.1083984375 7.3203125 2.736328125 7.2236328125 2.4716796875 7.0322265625 c 132 - 2.2080078125 6.83984375 2.076171875 6.5595703125 2.076171875 6.1923828125 c 4 - 2.076171875 5.83984375 2.18359375 5.578125 2.400390625 5.40625 c 132 - 2.6162109375 5.234375 2.9521484375 5.103515625 3.408203125 5.015625 c 6 - 4.15234375 4.8603515625 l 6 - 4.9921875 4.7001953125 5.6064453125 4.427734375 5.994140625 4.0439453125 c 132 - 6.3818359375 3.66015625 6.576171875 3.1318359375 6.576171875 2.4599609375 c 4 - 6.576171875 2.068359375 6.5078125 1.7119140625 6.3720703125 1.3916015625 c 132 - 6.236328125 1.072265625 6.0380859375 0.7978515625 5.7783203125 0.5703125 c 132 - 5.517578125 0.341796875 5.2001953125 0.166015625 4.82421875 0.0419921875 c 132 - 4.4482421875 -0.08203125 4.01953125 -0.1435546875 3.5400390625 -0.1435546875 c 4 -9.267578125 0 m 5 - 7.2880859375 8.3759765625 l 5 - 8.66796875 8.3759765625 l 5 - 9.51953125 4.34375 l 5 - 10.1083984375 1.5595703125 l 5 - 10.1435546875 1.5595703125 l 5 - 10.81640625 4.34375 l 5 - 11.8115234375 8.3759765625 l 5 - 13.32421875 8.3759765625 l 5 - 14.3076171875 4.34375 l 5 - 14.9677734375 1.572265625 l 5 - 15.00390625 1.572265625 l 5 - 15.6162109375 4.34375 l 5 - 16.4921875 8.3759765625 l 5 - 17.82421875 8.3759765625 l 5 - 15.759765625 0 l 5 - 14.236328125 0 l 5 - 13.16796875 4.33203125 l 5 - 12.5439453125 6.8759765625 l 5 - 12.51953125 6.8759765625 l 5 - 11.8837890625 4.33203125 l 5 - 10.7919921875 0 l 5 - 9.267578125 0 l 5 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 11 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 12 -Type: 1 WasModified: 0 WasOrder2: 0 Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 EndUndoOperation EndUndoes Redoes @@ -2501,191 +953,26 @@ Width: 1792 Flags: H LayerCount: 2 UndoRedoHistory -Layer: 0 -Undoes -UndoOperation -Index: 0 -Type: 1 -WasModified: 0 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -EndUndoOperation -EndUndoes -Redoes -EndRedoes -EndUndoRedoHistory -UndoRedoHistory Layer: 1 Undoes UndoOperation Index: 0 -Type: 3 +Type: 1 WasModified: 0 WasOrder2: 0 Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 EndUndoOperation UndoOperation Index: 1 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -283.203125 -11.484375 m 4 - 226.875 -11.484375 179.0625 -1.25 139.6875 19.21875 c 132 - 100.3125 39.6875 66.5625 67.1875 38.4375 101.796875 c 5 - 113.28125 171.875 l 5 - 136.953125 143.046875 163.046875 121.25 191.484375 106.5625 c 132 - 220 91.875 252.5 84.453125 288.984375 84.453125 c 4 - 331.875 84.453125 364.140625 94.0625 385.9375 113.28125 c 132 - 407.65625 132.5 418.59375 158.4375 418.59375 191.015625 c 4 - 418.59375 217.265625 410.859375 238.046875 395.546875 253.4375 c 132 - 380.15625 268.828125 352.96875 280.3125 313.90625 287.96875 c 6 - 254.375 298.59375 l 6 - 189.140625 310.703125 140.15625 332.1875 107.5 362.890625 c 132 - 74.84375 393.59375 58.59375 435.859375 58.59375 489.609375 c 4 - 58.59375 519.0625 64.140625 545.78125 75.390625 569.765625 c 132 - 86.5625 593.75 102.265625 613.90625 122.421875 630.234375 c 132 - 142.578125 646.5625 167.03125 659.21875 195.859375 668.125 c 132 - 224.609375 677.109375 256.953125 681.5625 292.8125 681.5625 c 4 - 343.359375 681.5625 387.1875 672.8125 424.296875 655.234375 c 132 - 461.40625 637.578125 493.125 612.1875 519.375 578.90625 c 5 - 443.515625 511.71875 l 5 - 426.25 534.0625 405.15625 552.03125 380.15625 565.46875 c 132 - 355.234375 578.90625 324.140625 585.625 287.03125 585.625 c 4 - 248.671875 585.625 218.90625 577.890625 197.734375 562.578125 c 132 - 176.640625 547.1875 166.09375 524.765625 166.09375 495.390625 c 4 - 166.09375 467.1875 174.6875 446.25 192.03125 432.5 c 132 - 209.296875 418.75 236.171875 408.28125 272.65625 401.25 c 6 - 332.1875 388.828125 l 6 - 399.375 376.015625 448.515625 354.21875 479.53125 323.515625 c 132 - 510.546875 292.8125 526.09375 250.546875 526.09375 196.796875 c 4 - 526.09375 165.46875 520.625 136.953125 509.765625 111.328125 c 132 - 498.90625 85.78125 483.046875 63.828125 462.265625 45.625 c 132 - 441.40625 27.34375 416.015625 13.28125 385.9375 3.359375 c 132 - 355.859375 -6.5625 321.5625 -11.484375 283.203125 -11.484375 c 4 -745.3125 670.078125 m 5 - 745.3125 257.265625 l 6 - 745.3125 200.3125 756.171875 157.421875 777.890625 128.671875 c 132 - 799.6875 99.84375 836.796875 85.46875 889.296875 85.46875 c 260 - 941.796875 85.46875 978.90625 99.84375 1000.625 128.671875 c 132 - 1022.421875 157.421875 1033.28125 200.3125 1033.28125 257.265625 c 6 - 1033.28125 670.078125 l 5 - 1139.84375 670.078125 l 5 - 1139.84375 274.53125 l 6 - 1139.84375 225.3125 1135.390625 182.734375 1126.40625 146.875 c 132 - 1117.421875 111.015625 1103.046875 81.40625 1083.203125 58.046875 c 132 - 1063.359375 34.6875 1037.578125 17.265625 1005.9375 5.78125 c 132 - 974.21875 -5.78125 935.390625 -11.484375 889.296875 -11.484375 c 260 - 843.203125 -11.484375 804.296875 -5.78125 772.65625 5.78125 c 132 - 740.9375 17.265625 715.234375 34.6875 695.390625 58.046875 c 132 - 675.546875 81.40625 661.09375 111.015625 652.1875 146.875 c 132 - 643.203125 182.734375 638.75 225.3125 638.75 274.53125 c 6 - 638.75 670.078125 l 5 - 745.3125 670.078125 l 5 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 2 Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 3 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -3.5400390625 -0.1435546875 m 4 - 2.8359375 -0.1435546875 2.23828125 -0.015625 1.74609375 0.240234375 c 132 - 1.25390625 0.49609375 0.83203125 0.83984375 0.48046875 1.2724609375 c 5 - 1.416015625 2.1484375 l 5 - 1.7119140625 1.7880859375 2.0380859375 1.515625 2.3935546875 1.33203125 c 132 - 2.75 1.1484375 3.15625 1.0556640625 3.6123046875 1.0556640625 c 4 - 4.1484375 1.0556640625 4.5517578125 1.17578125 4.82421875 1.416015625 c 132 - 5.095703125 1.65625 5.232421875 1.98046875 5.232421875 2.3876953125 c 4 - 5.232421875 2.7158203125 5.1357421875 2.9755859375 4.9443359375 3.16796875 c 132 - 4.751953125 3.3603515625 4.412109375 3.50390625 3.923828125 3.599609375 c 6 - 3.1796875 3.732421875 l 6 - 2.3642578125 3.8837890625 1.751953125 4.15234375 1.34375 4.5361328125 c 132 - 0.935546875 4.919921875 0.732421875 5.4482421875 0.732421875 6.1201171875 c 4 - 0.732421875 6.48828125 0.8017578125 6.822265625 0.9423828125 7.1220703125 c 132 - 1.08203125 7.421875 1.2783203125 7.673828125 1.5302734375 7.8779296875 c 132 - 1.7822265625 8.08203125 2.087890625 8.240234375 2.4482421875 8.3515625 c 132 - 2.8076171875 8.4638671875 3.2119140625 8.51953125 3.66015625 8.51953125 c 4 - 4.2919921875 8.51953125 4.83984375 8.41015625 5.3037109375 8.1904296875 c 132 - 5.767578125 7.9697265625 6.1640625 7.65234375 6.4921875 7.236328125 c 5 - 5.5439453125 6.396484375 l 5 - 5.328125 6.67578125 5.064453125 6.900390625 4.751953125 7.068359375 c 132 - 4.4404296875 7.236328125 4.0517578125 7.3203125 3.587890625 7.3203125 c 4 - 3.1083984375 7.3203125 2.736328125 7.2236328125 2.4716796875 7.0322265625 c 132 - 2.2080078125 6.83984375 2.076171875 6.5595703125 2.076171875 6.1923828125 c 4 - 2.076171875 5.83984375 2.18359375 5.578125 2.400390625 5.40625 c 132 - 2.6162109375 5.234375 2.9521484375 5.103515625 3.408203125 5.015625 c 6 - 4.15234375 4.8603515625 l 6 - 4.9921875 4.7001953125 5.6064453125 4.427734375 5.994140625 4.0439453125 c 132 - 6.3818359375 3.66015625 6.576171875 3.1318359375 6.576171875 2.4599609375 c 4 - 6.576171875 2.068359375 6.5078125 1.7119140625 6.3720703125 1.3916015625 c 132 - 6.236328125 1.072265625 6.0380859375 0.7978515625 5.7783203125 0.5703125 c 132 - 5.517578125 0.341796875 5.2001953125 0.166015625 4.82421875 0.0419921875 c 132 - 4.4482421875 -0.08203125 4.01953125 -0.1435546875 3.5400390625 -0.1435546875 c 4 -9.31640625 8.3759765625 m 5 - 9.31640625 3.2158203125 l 6 - 9.31640625 2.50390625 9.4521484375 1.9677734375 9.7236328125 1.6083984375 c 132 - 9.99609375 1.248046875 10.4599609375 1.068359375 11.1162109375 1.068359375 c 260 - 11.7724609375 1.068359375 12.236328125 1.248046875 12.5078125 1.6083984375 c 132 - 12.7802734375 1.9677734375 12.916015625 2.50390625 12.916015625 3.2158203125 c 6 - 12.916015625 8.3759765625 l 5 - 14.248046875 8.3759765625 l 5 - 14.248046875 3.431640625 l 6 - 14.248046875 2.81640625 14.1923828125 2.2841796875 14.080078125 1.8359375 c 132 - 13.9677734375 1.3876953125 13.7880859375 1.017578125 13.5400390625 0.7255859375 c 132 - 13.2919921875 0.43359375 12.9697265625 0.2158203125 12.57421875 0.072265625 c 132 - 12.177734375 -0.072265625 11.6923828125 -0.1435546875 11.1162109375 -0.1435546875 c 260 - 10.5400390625 -0.1435546875 10.0537109375 -0.072265625 9.658203125 0.072265625 c 132 - 9.26171875 0.2158203125 8.9404296875 0.43359375 8.6923828125 0.7255859375 c 132 - 8.4443359375 1.017578125 8.263671875 1.3876953125 8.15234375 1.8359375 c 132 - 8.0400390625 2.2841796875 7.984375 2.81640625 7.984375 3.431640625 c 6 - 7.984375 8.3759765625 l 5 - 9.31640625 8.3759765625 l 5 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 4 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 5 -Type: 1 WasModified: 0 WasOrder2: 0 Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 EndUndoOperation EndUndoes Redoes @@ -2754,170 +1041,27 @@ Width: 1792 Flags: H LayerCount: 2 UndoRedoHistory -Layer: 0 -Undoes -UndoOperation -Index: 0 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -EndUndoOperation -EndUndoes -Redoes -EndRedoes -EndUndoRedoHistory -UndoRedoHistory Layer: 1 Undoes UndoOperation Index: 0 -Type: 3 +Type: 1 WasModified: 1 WasOrder2: 0 Layer: 2 +Width: 1792 +VWidth: 1792 +LBearingChange: 0 +UnicodeEnc: 0 +InstructionsLength: 0 EndUndoOperation UndoOperation Index: 1 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -791 -262 m 5 - 641 -262 l 6 - 582 -262 538 -246 510 -216 c 132 - 482 -186 469 -145 469 -94 c 6 - 469 -14 l 5 - 410 -7 355 11 308 38 c 132 - 261 65 221 102 188 147 c 132 - 155 192 128 247 110 311 c 132 - 92 375 83 447 83 528 c 4 - 83 617 94 695 116 763 c 132 - 138 831 168 888 208 934 c 132 - 248 980 296 1014 352 1038 c 132 - 408 1062 469 1073 538 1073 c 260 - 607 1073 669 1062 725 1038 c 132 - 781 1014 829 980 869 934 c 132 - 909 888 939 831 961 763 c 132 - 983 695 993 617 993 528 c 4 - 993 371 961 246 895 155 c 132 - 830 64 741 8 629 -11 c 5 - 629 -119 l 5 - 791 -119 l 5 - 791 -262 l 5 -538 135 m 4 - 578 135 615 142 649 156 c 132 - 683 170 712 190 736 217 c 132 - 760 244 778 277 791 315 c 132 - 804 353 810 397 810 445 c 6 - 810 611 l 6 - 810 659 804 703 791 741 c 132 - 778 779 760 811 736 838 c 132 - 712 865 683 886 649 900 c 132 - 615 914 578 921 538 921 c 4 - 497 921 459 914 426 900 c 132 - 393 886 365 865 341 838 c 132 - 317 811 299 779 286 741 c 132 - 273 703 266 659 266 611 c 6 - 266 445 l 6 - 266 397 273 353 286 315 c 132 - 299 277 317 244 341 217 c 132 - 365 190 393 170 426 156 c 132 - 459 142 497 135 538 135 c 4 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 2 Type: 3 WasModified: 1 WasOrder2: 0 Layer: 2 EndUndoOperation -UndoOperation -Index: 3 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -6.2763671875 -2.076171875 m 5 - 5.087890625 -2.076171875 l 6 - 4.6162109375 -2.076171875 4.26953125 -1.9560546875 4.0498046875 -1.7158203125 c 132 - 3.830078125 -1.4755859375 3.7197265625 -1.15234375 3.7197265625 -0.744140625 c 6 - 3.7197265625 -0.1083984375 l 5 - 3.248046875 -0.0517578125 2.82421875 0.083984375 2.4482421875 0.2998046875 c 132 - 2.072265625 0.515625 1.751953125 0.8037109375 1.48828125 1.1640625 c 132 - 1.2236328125 1.5244140625 1.01953125 1.9580078125 0.8759765625 2.4658203125 c 132 - 0.732421875 2.9736328125 0.66015625 3.5478515625 0.66015625 4.1884765625 c 4 - 0.66015625 4.8916015625 0.74609375 5.513671875 0.91796875 6.0537109375 c 132 - 1.08984375 6.59375 1.333984375 7.0458984375 1.650390625 7.41015625 c 132 - 1.9658203125 7.7744140625 2.345703125 8.0498046875 2.7900390625 8.23828125 c 132 - 3.234375 8.42578125 3.7275390625 8.51953125 4.2724609375 8.51953125 c 260 - 4.81640625 8.51953125 5.3095703125 8.42578125 5.75390625 8.23828125 c 132 - 6.1982421875 8.0498046875 6.578125 7.7744140625 6.8935546875 7.41015625 c 132 - 7.2099609375 7.0458984375 7.4541015625 6.59375 7.6259765625 6.0537109375 c 132 - 7.7978515625 5.513671875 7.8837890625 4.8916015625 7.8837890625 4.1884765625 c 4 - 7.8837890625 2.9404296875 7.6240234375 1.9541015625 7.103515625 1.23046875 c 132 - 6.583984375 0.505859375 5.8798828125 0.068359375 4.9921875 -0.083984375 c 5 - 4.9921875 -0.9482421875 l 5 - 6.2763671875 -0.9482421875 l 5 - 6.2763671875 -2.076171875 l 5 -4.2724609375 1.068359375 m 4 - 4.591796875 1.068359375 4.8857421875 1.1240234375 5.154296875 1.236328125 c 132 - 5.421875 1.34765625 5.650390625 1.509765625 5.837890625 1.7216796875 c 132 - 6.0263671875 1.93359375 6.171875 2.1923828125 6.2763671875 2.49609375 c 132 - 6.3798828125 2.7998046875 6.431640625 3.1435546875 6.431640625 3.5283203125 c 6 - 6.431640625 4.84765625 l 6 - 6.431640625 5.232421875 6.3798828125 5.576171875 6.2763671875 5.8798828125 c 132 - 6.171875 6.18359375 6.0263671875 6.4423828125 5.837890625 6.654296875 c 132 - 5.650390625 6.8662109375 5.421875 7.0283203125 5.154296875 7.1396484375 c 132 - 4.8857421875 7.251953125 4.591796875 7.3076171875 4.2724609375 7.3076171875 c 4 - 3.9443359375 7.3076171875 3.6484375 7.251953125 3.3837890625 7.1396484375 c 132 - 3.1201171875 7.0283203125 2.8935546875 6.8662109375 2.7060546875 6.654296875 c 132 - 2.517578125 6.4423828125 2.3720703125 6.18359375 2.267578125 5.8798828125 c 132 - 2.1640625 5.576171875 2.1123046875 5.232421875 2.1123046875 4.84765625 c 6 - 2.1123046875 3.5283203125 l 6 - 2.1123046875 3.1435546875 2.1640625 2.7998046875 2.267578125 2.49609375 c 132 - 2.3720703125 2.1923828125 2.517578125 1.93359375 2.7060546875 1.7216796875 c 132 - 2.8935546875 1.509765625 3.1201171875 1.34765625 3.3837890625 1.236328125 c 132 - 3.6484375 1.1240234375 3.9443359375 1.068359375 4.2724609375 1.068359375 c 4 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 4 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 5 -Type: 1 -WasModified: 0 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -EndUndoOperation EndUndoes Redoes EndRedoes @@ -2971,7 +1115,7 @@ EndChar StartChar: uniF015 Encoding: 61461 61461 10 Width: 1792 -Flags: HO +Flags: H LayerCount: 2 UndoRedoHistory Layer: 1 @@ -3070,328 +1214,6 @@ SplineSet 1474.37304688 791.34375 l 5 EndSplineSet EndUndoOperation -UndoOperation -Index: 1 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 2 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -14.755859375 603.0703125 m 5 - 259.302734375 603.0703125 l 6 - 305.919921875 603.0703125 341.357421875 589.8515625 365.544921875 563.34375 c 132 - 389.732421875 536.8359375 401.826171875 498.234375 401.826171875 447.5390625 c 4 - 401.826171875 408.9375 393.458984375 378.703125 376.794921875 356.8359375 c 132 - 360.060546875 334.96875 336.154296875 322.59375 305.076171875 319.7109375 c 5 - 305.076171875 309.3046875 l 5 - 322.373046875 309.3046875 338.052734375 306 352.185546875 299.390625 c 132 - 366.248046875 292.78125 378.482421875 283.359375 388.888671875 271.265625 c 132 - 399.224609375 259.171875 407.310546875 244.828125 413.076171875 228.09375 c 132 - 418.841796875 211.359375 421.724609375 193.21875 421.724609375 173.671875 c 4 - 421.724609375 147.7265625 418.419921875 124.1015625 411.810546875 102.796875 c 132 - 405.130859375 81.4921875 395.779296875 63.2109375 383.685546875 47.953125 c 132 - 371.591796875 32.6953125 357.037109375 20.8828125 340.091796875 12.515625 c 132 - 323.076171875 4.1484375 304.232421875 0 283.490234375 0 c 6 - 14.755859375 0 l 5 - 14.755859375 603.0703125 l 5 -106.373046875 80.3671875 m 5 - 256.701171875 80.3671875 l 6 - 278.568359375 80.3671875 295.302734375 86.2734375 306.833984375 98.0859375 c 132 - 318.294921875 109.8984375 324.060546875 128.7421875 324.060546875 154.6875 c 6 - 324.060546875 194.4140625 l 6 - 324.060546875 220.2890625 318.294921875 239.203125 306.833984375 251.015625 c 132 - 295.302734375 262.828125 278.568359375 268.734375 256.701171875 268.734375 c 6 - 106.373046875 268.734375 l 5 - 106.373046875 80.3671875 l 5 -106.373046875 347.34375 m 5 - 242.005859375 347.34375 l 6 - 262.185546875 347.34375 277.724609375 352.6875 288.623046875 363.3046875 c 132 - 299.591796875 373.9921875 305.076171875 391.359375 305.076171875 415.6171875 c 6 - 305.076171875 454.4296875 l 6 - 305.076171875 478.6875 299.591796875 496.0546875 288.623046875 506.7421875 c 132 - 277.724609375 517.359375 262.185546875 522.703125 242.005859375 522.703125 c 6 - 106.373046875 522.703125 l 5 - 106.373046875 347.34375 l 5 -518.755859375 0 m 5 - 518.755859375 603.0703125 l 5 - 868.701171875 603.0703125 l 5 - 868.701171875 522.703125 l 5 - 610.373046875 522.703125 l 5 - 610.373046875 346.4296875 l 5 - 843.599609375 346.4296875 l 5 - 843.599609375 266.9765625 l 5 - 610.373046875 266.9765625 l 5 - 610.373046875 80.3671875 l 5 - 868.701171875 80.3671875 l 5 - 868.701171875 0 l 5 - 518.755859375 0 l 5 -950.755859375 0 m 5 - 950.755859375 603.0703125 l 5 - 1300.70117188 603.0703125 l 5 - 1300.70117188 522.703125 l 5 - 1042.37304688 522.703125 l 5 - 1042.37304688 346.4296875 l 5 - 1275.59960938 346.4296875 l 5 - 1275.59960938 266.9765625 l 5 - 1042.37304688 266.9765625 l 5 - 1042.37304688 80.3671875 l 5 - 1300.70117188 80.3671875 l 5 - 1300.70117188 0 l 5 - 950.755859375 0 l 5 -1382.75585938 0 m 5 - 1382.75585938 603.0703125 l 5 - 1621.25585938 603.0703125 l 6 - 1673.07617188 603.0703125 1712.09960938 587.671875 1738.32617188 556.875 c 132 - 1764.48242188 526.0078125 1777.63085938 481.5703125 1777.63085938 423.3515625 c 260 - 1777.63085938 365.203125 1764.48242188 320.6953125 1738.32617188 289.8984375 c 132 - 1712.09960938 259.03125 1673.07617188 243.6328125 1621.25585938 243.6328125 c 6 - 1474.37304688 243.6328125 l 5 - 1474.37304688 0 l 5 - 1382.75585938 0 l 5 -1474.37304688 324.84375 m 5 - 1613.45117188 324.84375 l 6 - 1635.31835938 324.84375 1651.91210938 330.46875 1663.16210938 341.71875 c 132 - 1674.34179688 352.96875 1679.96679688 370.96875 1679.96679688 395.71875 c 6 - 1679.96679688 450.984375 l 6 - 1679.96679688 475.8046875 1674.34179688 493.8046875 1663.16210938 504.984375 c 132 - 1651.91210938 516.234375 1635.31835938 521.859375 1613.45117188 521.859375 c 6 - 1474.37304688 521.859375 l 5 - 1474.37304688 324.84375 l 5 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 3 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 4 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -66.515625 603.0703125 m 5 - 311.0625 603.0703125 l 6 - 357.6796875 603.0703125 393.1171875 589.8515625 417.3046875 563.34375 c 132 - 441.4921875 536.8359375 453.5859375 498.234375 453.5859375 447.5390625 c 4 - 453.5859375 408.9375 445.21875 378.703125 428.5546875 356.8359375 c 132 - 411.8203125 334.96875 387.9140625 322.59375 356.8359375 319.7109375 c 5 - 356.8359375 309.3046875 l 5 - 374.1328125 309.3046875 389.8125 306 403.9453125 299.390625 c 132 - 418.0078125 292.78125 430.2421875 283.359375 440.6484375 271.265625 c 132 - 450.984375 259.171875 459.0703125 244.828125 464.8359375 228.09375 c 132 - 470.6015625 211.359375 473.484375 193.21875 473.484375 173.671875 c 4 - 473.484375 147.7265625 470.1796875 124.1015625 463.5703125 102.796875 c 132 - 456.890625 81.4921875 447.5390625 63.2109375 435.4453125 47.953125 c 132 - 423.3515625 32.6953125 408.796875 20.8828125 391.8515625 12.515625 c 132 - 374.8359375 4.1484375 355.9921875 0 335.25 0 c 6 - 66.515625 0 l 5 - 66.515625 603.0703125 l 5 -158.1328125 80.3671875 m 5 - 308.4609375 80.3671875 l 6 - 330.328125 80.3671875 347.0625 86.2734375 358.59375 98.0859375 c 132 - 370.0546875 109.8984375 375.8203125 128.7421875 375.8203125 154.6875 c 6 - 375.8203125 194.4140625 l 6 - 375.8203125 220.2890625 370.0546875 239.203125 358.59375 251.015625 c 132 - 347.0625 262.828125 330.328125 268.734375 308.4609375 268.734375 c 6 - 158.1328125 268.734375 l 5 - 158.1328125 80.3671875 l 5 -158.1328125 347.34375 m 5 - 293.765625 347.34375 l 6 - 313.9453125 347.34375 329.484375 352.6875 340.3828125 363.3046875 c 132 - 351.3515625 373.9921875 356.8359375 391.359375 356.8359375 415.6171875 c 6 - 356.8359375 454.4296875 l 6 - 356.8359375 478.6875 351.3515625 496.0546875 340.3828125 506.7421875 c 132 - 329.484375 517.359375 313.9453125 522.703125 293.765625 522.703125 c 6 - 158.1328125 522.703125 l 5 - 158.1328125 347.34375 l 5 -570.515625 0 m 5 - 570.515625 603.0703125 l 5 - 920.4609375 603.0703125 l 5 - 920.4609375 522.703125 l 5 - 662.1328125 522.703125 l 5 - 662.1328125 346.4296875 l 5 - 895.359375 346.4296875 l 5 - 895.359375 266.9765625 l 5 - 662.1328125 266.9765625 l 5 - 662.1328125 80.3671875 l 5 - 920.4609375 80.3671875 l 5 - 920.4609375 0 l 5 - 570.515625 0 l 5 -1002.515625 0 m 5 - 1002.515625 603.0703125 l 5 - 1352.4609375 603.0703125 l 5 - 1352.4609375 522.703125 l 5 - 1094.1328125 522.703125 l 5 - 1094.1328125 346.4296875 l 5 - 1327.359375 346.4296875 l 5 - 1327.359375 266.9765625 l 5 - 1094.1328125 266.9765625 l 5 - 1094.1328125 80.3671875 l 5 - 1352.4609375 80.3671875 l 5 - 1352.4609375 0 l 5 - 1002.515625 0 l 5 -1434.515625 0 m 5 - 1434.515625 603.0703125 l 5 - 1673.015625 603.0703125 l 6 - 1724.8359375 603.0703125 1763.859375 587.671875 1790.0859375 556.875 c 132 - 1816.2421875 526.0078125 1829.390625 481.5703125 1829.390625 423.3515625 c 260 - 1829.390625 365.203125 1816.2421875 320.6953125 1790.0859375 289.8984375 c 132 - 1763.859375 259.03125 1724.8359375 243.6328125 1673.015625 243.6328125 c 6 - 1526.1328125 243.6328125 l 5 - 1526.1328125 0 l 5 - 1434.515625 0 l 5 -1526.1328125 324.84375 m 5 - 1665.2109375 324.84375 l 6 - 1687.078125 324.84375 1703.671875 330.46875 1714.921875 341.71875 c 132 - 1726.1015625 352.96875 1731.7265625 370.96875 1731.7265625 395.71875 c 6 - 1731.7265625 450.984375 l 6 - 1731.7265625 475.8046875 1726.1015625 493.8046875 1714.921875 504.984375 c 132 - 1703.671875 516.234375 1687.078125 521.859375 1665.2109375 521.859375 c 6 - 1526.1328125 521.859375 l 5 - 1526.1328125 324.84375 l 5 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 5 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 6 -Type: 1 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -SplineSet -0.923828125 8.3759765625 m 5 - 4.3203125 8.3759765625 l 6 - 4.9677734375 8.3759765625 5.4599609375 8.1923828125 5.7958984375 7.82421875 c 132 - 6.1318359375 7.4560546875 6.2998046875 6.919921875 6.2998046875 6.2158203125 c 4 - 6.2998046875 5.6796875 6.18359375 5.259765625 5.9521484375 4.9560546875 c 132 - 5.7197265625 4.65234375 5.3876953125 4.48046875 4.9560546875 4.4404296875 c 5 - 4.9560546875 4.2958984375 l 5 - 5.1962890625 4.2958984375 5.4140625 4.25 5.6103515625 4.158203125 c 132 - 5.8056640625 4.06640625 5.9755859375 3.935546875 6.1201171875 3.767578125 c 132 - 6.263671875 3.599609375 6.3759765625 3.400390625 6.4560546875 3.16796875 c 132 - 6.5361328125 2.935546875 6.576171875 2.68359375 6.576171875 2.412109375 c 4 - 6.576171875 2.0517578125 6.5302734375 1.7236328125 6.4384765625 1.427734375 c 132 - 6.345703125 1.1318359375 6.2158203125 0.8779296875 6.0478515625 0.666015625 c 132 - 5.8798828125 0.4541015625 5.677734375 0.2900390625 5.4423828125 0.173828125 c 132 - 5.2060546875 0.0576171875 4.9443359375 0 4.65625 0 c 6 - 0.923828125 0 l 5 - 0.923828125 8.3759765625 l 5 -2.1962890625 1.1162109375 m 5 - 4.2841796875 1.1162109375 l 6 - 4.587890625 1.1162109375 4.8203125 1.1982421875 4.98046875 1.3623046875 c 132 - 5.1396484375 1.5263671875 5.2197265625 1.7880859375 5.2197265625 2.1484375 c 6 - 5.2197265625 2.7001953125 l 6 - 5.2197265625 3.0595703125 5.1396484375 3.322265625 4.98046875 3.486328125 c 132 - 4.8203125 3.650390625 4.587890625 3.732421875 4.2841796875 3.732421875 c 6 - 2.1962890625 3.732421875 l 5 - 2.1962890625 1.1162109375 l 5 -2.1962890625 4.82421875 m 5 - 4.080078125 4.82421875 l 6 - 4.3603515625 4.82421875 4.576171875 4.8984375 4.7275390625 5.0458984375 c 132 - 4.8798828125 5.1943359375 4.9560546875 5.435546875 4.9560546875 5.7724609375 c 6 - 4.9560546875 6.3115234375 l 6 - 4.9560546875 6.6484375 4.8798828125 6.8896484375 4.7275390625 7.0380859375 c 132 - 4.576171875 7.185546875 4.3603515625 7.259765625 4.080078125 7.259765625 c 6 - 2.1962890625 7.259765625 l 5 - 2.1962890625 4.82421875 l 5 -7.923828125 0 m 5 - 7.923828125 8.3759765625 l 5 - 12.7841796875 8.3759765625 l 5 - 12.7841796875 7.259765625 l 5 - 9.1962890625 7.259765625 l 5 - 9.1962890625 4.8115234375 l 5 - 12.435546875 4.8115234375 l 5 - 12.435546875 3.7080078125 l 5 - 9.1962890625 3.7080078125 l 5 - 9.1962890625 1.1162109375 l 5 - 12.7841796875 1.1162109375 l 5 - 12.7841796875 0 l 5 - 7.923828125 0 l 5 -13.923828125 0 m 5 - 13.923828125 8.3759765625 l 5 - 18.7841796875 8.3759765625 l 5 - 18.7841796875 7.259765625 l 5 - 15.1962890625 7.259765625 l 5 - 15.1962890625 4.8115234375 l 5 - 18.435546875 4.8115234375 l 5 - 18.435546875 3.7080078125 l 5 - 15.1962890625 3.7080078125 l 5 - 15.1962890625 1.1162109375 l 5 - 18.7841796875 1.1162109375 l 5 - 18.7841796875 0 l 5 - 13.923828125 0 l 5 -19.923828125 0 m 5 - 19.923828125 8.3759765625 l 5 - 23.236328125 8.3759765625 l 6 - 23.9560546875 8.3759765625 24.498046875 8.162109375 24.8623046875 7.734375 c 132 - 25.2255859375 7.3056640625 25.408203125 6.6884765625 25.408203125 5.8798828125 c 260 - 25.408203125 5.072265625 25.2255859375 4.4541015625 24.8623046875 4.0263671875 c 132 - 24.498046875 3.59765625 23.9560546875 3.3837890625 23.236328125 3.3837890625 c 6 - 21.1962890625 3.3837890625 l 5 - 21.1962890625 0 l 5 - 19.923828125 0 l 5 -21.1962890625 4.51171875 m 5 - 23.1279296875 4.51171875 l 6 - 23.431640625 4.51171875 23.662109375 4.58984375 23.818359375 4.74609375 c 132 - 23.9736328125 4.90234375 24.0517578125 5.15234375 24.0517578125 5.49609375 c 6 - 24.0517578125 6.263671875 l 6 - 24.0517578125 6.6083984375 23.9736328125 6.8583984375 23.818359375 7.013671875 c 132 - 23.662109375 7.169921875 23.431640625 7.248046875 23.1279296875 7.248046875 c 6 - 21.1962890625 7.248046875 l 5 - 21.1962890625 4.51171875 l 5 -EndSplineSet -EndUndoOperation -UndoOperation -Index: 7 -Type: 3 -WasModified: 1 -WasOrder2: 0 -Layer: 2 -EndUndoOperation -UndoOperation -Index: 8 -Type: 1 -WasModified: 0 -WasOrder2: 0 -Layer: 2 -Width: 1792 -VWidth: 1792 -LBearingChange: 0 -UnicodeEnc: 0 -InstructionsLength: 0 -EndUndoOperation EndUndoes Redoes EndRedoes diff --git a/res/icons.ttf b/res/icons.ttf index 07581909e618e57e8e175768d139d4c461c6bc75..ee215107a62258f28b6254ff45998fcbe06a946b 100644 GIT binary patch delta 420 zcmeyPyhd4rfsuiMfsdhqftew}%`L=t;fa&a7#IX607YfoU0mH5L>WYY{E~?p_OdxZ zL5}pC%Cy2m8f**<%qpziSU3Sqd&0oL_`V>&xWrpNY&8Re zz!jjrX<&3&&lWc{TMwb>j+o?$s7Si5v+=~3AjjON_Zyc=K;-PV49rABtO|za4XY# FRRB(4OQ8S& delta 528 zcmZ3Z{6|@XfsuiMfsdhqftew}%`L=t;fXDG7#IW}07YfoU0mH5L>WYY{38=J>}B@= z1v%1lD$@!NX|ORcFt;!;a3^G>CZ=cz88u97@o_L|nA#0A?Fj<|lS4s%af!El*lM6= z6`;OpV2gm3y;1z}FP`7#D+4z>P?&+?!4Lm_F#U6u^kxCZ_q_EY47y;&KvNjl8G@i} zW(IwRT~Ia)g9xJtl+DV(&*%wdvoQ!U)&qUQ$ifLW8|X$bn~^~S$bzt$fWCEtvY8p; z7^0wT7ND9}Aa)>7Gb@7}qb5{>jX{Mm5@ehkLn%WMLmopSLo!1ug91YikSqbhRG_E= zLncr(A1GT4R9IS+mzbQYkds|T oM#hv_RW9J7lk=G5Cw~>#$}~$F0J_#^ssI20 From 7d3b8239968da16a6ce2c903369def80a293ba2b Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 9 Aug 2023 16:06:38 -0500 Subject: [PATCH 151/202] GUI: fix blank ins issue #1343 --- src/gui/gui.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 4e30823ba..74c1d2a71 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -5628,6 +5628,19 @@ bool FurnaceGUI::loop() { wavePreviewInit=true; updateFMPreview=true; } + + if (settings.blankIns) { + e->song.ins[curIns]->fm.fb=0; + for (int i=0; i<4; i++) { + e->song.ins[curIns]->fm.op[i]=DivInstrumentFM::Operator(); + e->song.ins[curIns]->fm.op[i].ar=31; + e->song.ins[curIns]->fm.op[i].dr=31; + e->song.ins[curIns]->fm.op[i].rr=15; + e->song.ins[curIns]->fm.op[i].tl=127; + e->song.ins[curIns]->fm.op[i].dt=3; + } + } + MARK_MODIFIED; } } From 3de0ee4e250363fa32cb6df4740d3173ad41ef45 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 9 Aug 2023 17:29:42 -0500 Subject: [PATCH 152/202] OPLL: drums mode work --- src/engine/platform/opll.cpp | 61 ++++++++++++++++++------------------ src/engine/platform/opll.h | 2 +- 2 files changed, 32 insertions(+), 31 deletions(-) diff --git a/src/engine/platform/opll.cpp b/src/engine/platform/opll.cpp index 1d72760a6..66fc0622a 100644 --- a/src/engine/platform/opll.cpp +++ b/src/engine/platform/opll.cpp @@ -107,7 +107,7 @@ void DivPlatformOPLL::tick(bool sysTick) { rWrite(0x36,drumVol[0]); rWrite(0x37,drumVol[1]|(drumVol[4]<<4)); rWrite(0x38,drumVol[3]|(drumVol[2]<<4)); - } else if (i<6 || !drums) { + } else if (i<6 || !crapDrums) { if (i<9) { rWrite(0x30+i,((15-VOL_SCALE_LOG_BROKEN(chan[i].outVol,15-chan[i].state.op[1].tl,15))&15)|(chan[i].state.opllPreset<<4)); } @@ -231,7 +231,7 @@ void DivPlatformOPLL::tick(bool sysTick) { drumState&=~(0x10>>(i-6)); immWrite(0x0e,0x20|drumState); logV("properDrums %d",i); - } else if (i>=6 && drums) { + } else if (i>=6 && crapDrums) { drumState&=~(0x10>>(chan[i].note%12)); immWrite(0x0e,0x20|drumState); logV("drums %d",i); @@ -265,7 +265,7 @@ void DivPlatformOPLL::tick(bool sysTick) { if (i>=6 && properDrums && (i<9 || !noTopHatFreq)) { immWrite(0x10+drumSlot[i],freqt&0xff); immWrite(0x20+drumSlot[i],freqt>>8); - } else if (i<6 || !drums) { + } else if (i<6 || !crapDrums) { if (i<9) { immWrite(0x10+i,freqt&0xff); } @@ -278,7 +278,7 @@ void DivPlatformOPLL::tick(bool sysTick) { immWrite(0x0e,0x20|drumState); } chan[i].keyOn=false; - } else if (chan[i].keyOn && i>=6 && drums) { + } else if (chan[i].keyOn && i>=6 && crapDrums) { //printf("%d\n",chan[i].note%12); drumState|=(0x10>>(chan[i].note%12)); immWrite(0x0e,0x20|drumState); @@ -365,22 +365,24 @@ void DivPlatformOPLL::commitState(int ch, DivInstrument* ins) { } if (chan[ch].state.opllPreset==16) { // compatible drums mode if (ch>=6) { - drums=true; - immWrite(0x16,0x20); - immWrite(0x26,0x05); - immWrite(0x16,0x20); - immWrite(0x26,0x05); - immWrite(0x17,0x50); - immWrite(0x27,0x05); - immWrite(0x17,0x50); - immWrite(0x27,0x05); - immWrite(0x18,0xC0); - immWrite(0x28,0x01); + if (!properDrumsSys) { + crapDrums=true; + immWrite(0x16,0x20); + immWrite(0x26,0x05); + immWrite(0x16,0x20); + immWrite(0x26,0x05); + immWrite(0x17,0x50); + immWrite(0x27,0x05); + immWrite(0x17,0x50); + immWrite(0x27,0x05); + immWrite(0x18,0xC0); + immWrite(0x28,0x01); + } } } else { if (ch>=6) { - if (drums) { - drums=false; + if (crapDrums) { + crapDrums=false; immWrite(0x0e,0); drumState=0; } @@ -395,10 +397,14 @@ void DivPlatformOPLL::commitState(int ch, DivInstrument* ins) { void DivPlatformOPLL::switchMode(bool mode) { if (mode==properDrums) return; if (mode) { - + logV("mode switch to DRUMS"); + immWrite(0x0e,0x20); } else { - + logV("mode switch to NORMAL"); + immWrite(0x0e,0x00); } + properDrums=mode; + drumState=0; } int DivPlatformOPLL::dispatch(DivCommand c) { @@ -448,7 +454,7 @@ int DivPlatformOPLL::dispatch(DivCommand c) { chan[c.chan].baseFreq=NOTE_FREQUENCY(c.value); chan[c.chan].note=c.value; - if (c.chan>=6 && drums) { + if (c.chan>=6 && crapDrums) { switch (chan[c.chan].note%12) { case 0: // kick drumVol[0]=(15-(chan[c.chan].outVol*(15-chan[c.chan].state.op[1].tl))/15); @@ -507,7 +513,7 @@ int DivPlatformOPLL::dispatch(DivCommand c) { rWrite(0x37,drumVol[1]|(drumVol[4]<<4)); rWrite(0x38,drumVol[3]|(drumVol[2]<<4)); break; - } else if (c.chan<6 || !drums) { + } else if (c.chan<6 || !crapDrums) { if (c.chan<9) { rWrite(0x30+c.chan,((15-VOL_SCALE_LOG_BROKEN(chan[c.chan].outVol,15-chan[c.chan].state.op[1].tl,15))&15)|(chan[c.chan].state.opllPreset<<4)); } @@ -565,7 +571,7 @@ int DivPlatformOPLL::dispatch(DivCommand c) { } case DIV_CMD_LEGATO: { if (c.chan>=9 && !properDrums) return 0; - if (c.chan<6 || (!drums && !properDrums)) { + if (c.chan<6 || (!crapDrums && !properDrums)) { if (chan[c.chan].insChanged) { DivInstrument* ins=parent->getIns(chan[c.chan].ins,DIV_INS_OPLL); commitState(c.chan,ins); @@ -780,12 +786,7 @@ int DivPlatformOPLL::dispatch(DivCommand c) { case DIV_CMD_FM_EXTCH: if (!properDrumsSys) break; if ((int)properDrums==c.value) break; - if (c.value) { - properDrums=true; - } else { - properDrums=false; - } - switchMode(properDrums); + switchMode(c.value); break; case DIV_CMD_MACRO_OFF: chan[c.chan].std.mask(c.value,true); @@ -840,7 +841,7 @@ void DivPlatformOPLL::forceIns() { } } } - if (drums) { // WHAT?! FIX THIS! + if (crapDrums) { // WHAT?! FIX THIS! immWrite(0x16,0x20); immWrite(0x26,0x05); immWrite(0x16,0x20); @@ -944,7 +945,7 @@ void DivPlatformOPLL::reset() { drumVol[4]=0; delay=0; - drums=false; + crapDrums=false; properDrums=properDrumsSys; if (properDrums) { diff --git a/src/engine/platform/opll.h b/src/engine/platform/opll.h index f5d79b39c..6dd96337d 100644 --- a/src/engine/platform/opll.h +++ b/src/engine/platform/opll.h @@ -63,7 +63,7 @@ class DivPlatformOPLL: public DivDispatch { unsigned char regPool[256]; bool useYMFM; - bool drums; + bool crapDrums; bool properDrums, properDrumsSys, noTopHatFreq; bool vrc7; From d5324e8897a5894e21e70f82c59867f63b9ca8a6 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 9 Aug 2023 17:53:48 -0500 Subject: [PATCH 153/202] OPLL: drums mode work 2 --- src/engine/platform/opll.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/engine/platform/opll.cpp b/src/engine/platform/opll.cpp index 66fc0622a..70bda999d 100644 --- a/src/engine/platform/opll.cpp +++ b/src/engine/platform/opll.cpp @@ -398,9 +398,16 @@ void DivPlatformOPLL::switchMode(bool mode) { if (mode==properDrums) return; if (mode) { logV("mode switch to DRUMS"); + immWrite(0x26,0); + immWrite(0x27,0); + immWrite(0x28,0); immWrite(0x0e,0x20); + immWrite(0x36,drumVol[0]); + immWrite(0x37,drumVol[1]|(drumVol[4]<<4)); + immWrite(0x38,drumVol[3]|(drumVol[2]<<4)); } else { logV("mode switch to NORMAL"); + immWrite(0x0e,0x20); immWrite(0x0e,0x00); } properDrums=mode; From 7bb59e77cc13996fc16236505cee42b0195817f5 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 9 Aug 2023 18:02:51 -0500 Subject: [PATCH 154/202] OPLL: drums mode work 3 --- src/engine/platform/opll.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/engine/platform/opll.cpp b/src/engine/platform/opll.cpp index 70bda999d..e2aed1e70 100644 --- a/src/engine/platform/opll.cpp +++ b/src/engine/platform/opll.cpp @@ -52,7 +52,7 @@ void DivPlatformOPLL::acquire_nuked(short** buf, size_t len) { QueuedWrite& w=writes.front(); if (w.addrOrVal) { OPLL_Write(&fm,1,w.val); - //printf("write: %x = %.2x\n",w.addr,w.val); + logV("write: %x = %.2x",w.addr,w.val); regPool[w.addr&0xff]=w.val; writes.pop(); delay=21; @@ -401,6 +401,9 @@ void DivPlatformOPLL::switchMode(bool mode) { immWrite(0x26,0); immWrite(0x27,0); immWrite(0x28,0); + immWrite(0x16,0); + immWrite(0x17,0); + immWrite(0x18,0); immWrite(0x0e,0x20); immWrite(0x36,drumVol[0]); immWrite(0x37,drumVol[1]|(drumVol[4]<<4)); @@ -409,6 +412,9 @@ void DivPlatformOPLL::switchMode(bool mode) { logV("mode switch to NORMAL"); immWrite(0x0e,0x20); immWrite(0x0e,0x00); + if (chan[6].active) chan[6].freqChanged=true; + if (chan[7].active) chan[7].freqChanged=true; + if (chan[8].active) chan[8].freqChanged=true; } properDrums=mode; drumState=0; From 21d1dfefa1bc28ddca87c445fdb7f764fc2c6af1 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 9 Aug 2023 22:00:03 -0500 Subject: [PATCH 155/202] many changes --- src/engine/platform/c140.cpp | 67 ++++++++++++-------------------- src/engine/platform/c140.h | 19 ++------- src/engine/platform/sound/c140.c | 12 ++++-- src/engine/platform/sound/c140.h | 7 +++- src/gui/debug.cpp | 2 - 5 files changed, 43 insertions(+), 64 deletions(-) diff --git a/src/engine/platform/c140.cpp b/src/engine/platform/c140.cpp index 5330443ac..95b9dc021 100644 --- a/src/engine/platform/c140.cpp +++ b/src/engine/platform/c140.cpp @@ -80,9 +80,8 @@ void DivPlatformC140::tick(bool sysTick) { chan[i].std.next(); if (chan[i].std.vol.had) { chan[i].outVol=(chan[i].vol*MIN(chan[i].macroVolMul,chan[i].std.vol.val))/chan[i].macroVolMul; - if (!isMuted[i]) { - chan[i].volumeChanged.changed=0xff; - } + chan[i].volChangedL=true; + chan[i].volChangedR=true; } if (NEW_ARP_STRAT) { chan[i].handleArp(); @@ -103,16 +102,12 @@ void DivPlatformC140::tick(bool sysTick) { } if (chan[i].std.panL.had) { chan[i].chPanL=chan[i].std.panL.val&255; - if (!isMuted[i]) { - chan[i].volumeChanged.left=1; - } + chan[i].volChangedL=true; } if (chan[i].std.panR.had) { chan[i].chPanR=chan[i].std.panR.val&255; - if (!isMuted[i]) { - chan[i].volumeChanged.right=1; - } + chan[i].volChangedR=true; } if (chan[i].std.phaseReset.had) { @@ -121,24 +116,15 @@ void DivPlatformC140::tick(bool sysTick) { chan[i].setPos=true; } } - if (chan[i].volumeChanged.changed) { - if (chan[i].volumeChanged.left) { - if (isMuted[i]) { - chan[i].chVolL=0; - } else { - chan[i].chVolL=(chan[i].outVol*chan[i].chPanL)/255; - } - rWrite(1+(i<<4),chan[i].chVolL); - } - if (chan[i].volumeChanged.right) { - if (isMuted[i]) { - chan[i].chVolR=0; - } else { - chan[i].chVolR=(chan[i].outVol*chan[i].chPanR)/255; - } - rWrite(0+(i<<4),chan[i].chVolR); - } - chan[i].volumeChanged.changed=0; + if (chan[i].volChangedL) { + chan[i].chVolL=(chan[i].outVol*chan[i].chPanL)/255; + rWrite(1+(i<<4),chan[i].chVolL); + chan[i].volChangedL=false; + } + if (chan[i].volChangedR) { + chan[i].chVolR=(chan[i].outVol*chan[i].chPanR)/255; + rWrite(0+(i<<4),chan[i].chVolR); + chan[i].volChangedR=false; } if (chan[i].setPos) { // force keyon @@ -178,9 +164,8 @@ void DivPlatformC140::tick(bool sysTick) { rWrite(0x0b+(i<<4),loop&0xff); if (!chan[i].std.vol.had) { chan[i].outVol=chan[i].vol; - if (!isMuted[i]) { - chan[i].volumeChanged.changed=0xff; - } + chan[i].volChangedL=true; + chan[i].volChangedR=true; } chan[i].keyOn=false; } @@ -221,9 +206,8 @@ int DivPlatformC140::dispatch(DivCommand c) { chan[c.chan].macroInit(ins); if (!parent->song.brokenOutVol && !chan[c.chan].std.vol.will) { chan[c.chan].outVol=chan[c.chan].vol; - if (!isMuted[c.chan]) { - chan[c.chan].volumeChanged.changed=0xff; - } + chan[c.chan].volChangedL=true; + chan[c.chan].volChangedR=true; } break; } @@ -247,9 +231,8 @@ int DivPlatformC140::dispatch(DivCommand c) { if (!chan[c.chan].std.vol.has) { chan[c.chan].outVol=c.value; } - if (!isMuted[c.chan]) { - chan[c.chan].volumeChanged.changed=0xff; - } + chan[c.chan].volChangedL=true; + chan[c.chan].volChangedR=true; break; case DIV_CMD_GET_VOLUME: if (chan[c.chan].std.vol.has) { @@ -260,9 +243,8 @@ int DivPlatformC140::dispatch(DivCommand c) { case DIV_CMD_PANNING: chan[c.chan].chPanL=c.value; chan[c.chan].chPanR=c.value2; - if (!isMuted[c.chan]) { - chan[c.chan].volumeChanged.changed=0xff; - } + chan[c.chan].volChangedL=true; + chan[c.chan].volChangedR=true; break; case DIV_CMD_PITCH: chan[c.chan].pitch=c.value; @@ -328,14 +310,15 @@ int DivPlatformC140::dispatch(DivCommand c) { void DivPlatformC140::muteChannel(int ch, bool mute) { isMuted[ch]=mute; - chan[ch].volumeChanged.changed=0xff; + c140.voice[ch].muted=mute; } void DivPlatformC140::forceIns() { for (int i=0; i<24; i++) { chan[i].insChanged=true; chan[i].freqChanged=true; - chan[i].volumeChanged.changed=0xff; + chan[i].volChangedL=true; + chan[i].volChangedR=true; chan[i].sample=-1; } } @@ -480,7 +463,7 @@ int DivPlatformC140::init(DivEngine* p, int channels, int sugRate, const DivConf isMuted[i]=false; oscBuf[i]=new DivDispatchOscBuffer; } - sampleMem=new signed short[getSampleMemCapacity()/sizeof(short)]; + sampleMem=new short[getSampleMemCapacity()>>1]; sampleMemLen=0; c140_init(&c140); c140.sample_mem=sampleMem; diff --git a/src/engine/platform/c140.h b/src/engine/platform/c140.h index 5604a794e..fa221eec2 100644 --- a/src/engine/platform/c140.h +++ b/src/engine/platform/c140.h @@ -26,33 +26,20 @@ class DivPlatformC140: public DivDispatch { struct Channel: public SharedChannel { - struct VolumeUpdate { - union { // pack flag bits in single byte - struct { // flag bits - unsigned char left : 1; // left volume - unsigned char right : 1; // right volume - unsigned char reserved : 6; - }; - unsigned char changed = 0; // Packed flags are stored here - }; - - VolumeUpdate(): - changed(0) {} - } volumeChanged; - unsigned int audPos; int sample, wave; - bool setPos; + bool setPos, volChangedL, volChangedR; int chPanL, chPanR; int chVolL, chVolR; int macroVolMul; Channel(): SharedChannel(255), - volumeChanged(VolumeUpdate()), audPos(0), sample(-1), wave(-1), setPos(false), + volChangedL(false), + volChangedR(false), chPanL(255), chPanR(255), chVolL(255), diff --git a/src/engine/platform/sound/c140.c b/src/engine/platform/sound/c140.c index 948b2f074..d22677b24 100644 --- a/src/engine/platform/sound/c140.c +++ b/src/engine/platform/sound/c140.c @@ -52,8 +52,10 @@ void c140_tick(struct c140_t *c140, const int cycle) for (int i = 0; i < 24; i++) { c140_voice_tick(c140, i, cycle); - c140->lout += c140->voice[i].lout; - c140->rout += c140->voice[i].rout; + if (!c140->voice[i].muted) { + c140->lout += c140->voice[i].lout; + c140->rout += c140->voice[i].rout; + } } // scale as 16bit c140->lout >>= 10; @@ -131,6 +133,10 @@ void c140_init(struct c140_t *c140) << (exponent ? exponent - 1 : 0)); } } + for (int i = 0; i < 24; i++) + { + c140->voice[i].muted = false; + } } void c140_reset(struct c140_t *c140) @@ -186,4 +192,4 @@ void c140_write(struct c140_t *c140, const unsigned short addr, const unsigned c } } // Timer -} \ No newline at end of file +} diff --git a/src/engine/platform/sound/c140.h b/src/engine/platform/sound/c140.h index defe3f87d..6fe2c4930 100644 --- a/src/engine/platform/sound/c140.h +++ b/src/engine/platform/sound/c140.h @@ -2,9 +2,13 @@ ============================================================================ -Namco C140 sound emulator +MODIFIED Namco C140 sound emulator - MODIFIED VERSION by cam900 +MODIFICATION by tildearrow - adds muting function +THIS IS NOT THE ORIGINAL VERSION - you can find the original one in +commit 72d04777c013988ed8cf6da27c62a9d784a59dff + This file is licensed under zlib license. ============================================================================ @@ -49,6 +53,7 @@ extern "C" struct c140_voice_t { + bool muted; // muted - can be set by user bool busy; // busy flag bool keyon; // key on flag unsigned short freq; // sample frequency diff --git a/src/gui/debug.cpp b/src/gui/debug.cpp index a2089f47f..6e4a091da 100644 --- a/src/gui/debug.cpp +++ b/src/gui/debug.cpp @@ -1106,8 +1106,6 @@ void putDispatchChan(void* data, int chanNum, int type) { ImGui::Text("- chVolR: %.2x",ch->chVolR); ImGui::Text("- macroVolMul: %.2x",ch->macroVolMul); COMMON_CHAN_DEBUG_BOOL; - ImGui::TextColored(ch->volumeChanged.left?colorOn:colorOff,">> VolumeChangedLeft"); - ImGui::TextColored(ch->volumeChanged.right?colorOn:colorOff,">> VolumeChangedRight"); ImGui::TextColored(ch->setPos?colorOn:colorOff,">> SetPos"); break; } From acc74df293bab6304a1feb1df411d5cf0710907c Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 9 Aug 2023 22:47:06 -0500 Subject: [PATCH 156/202] GUI: add option to capitalize menu bar --- src/gui/gui.cpp | 10 +++++----- src/gui/gui.h | 2 ++ src/gui/settings.cpp | 8 ++++++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 74c1d2a71..a8ae3a5c2 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -3918,7 +3918,7 @@ bool FurnaceGUI::loop() { if (!mobileUI) { ImGui::BeginMainMenuBar(); - if (ImGui::BeginMenu("file")) { + if (ImGui::BeginMenu(settings.capitalMenuBar?"File":"file")) { if (ImGui::MenuItem("new...",BIND_FOR(GUI_ACTION_NEW))) { if (modified) { showWarning("Unsaved changes! Save changes before creating a new song?",GUI_WARN_NEW); @@ -4243,7 +4243,7 @@ bool FurnaceGUI::loop() { } else { exitDisabledTimer=0; } - if (ImGui::BeginMenu("edit")) { + if (ImGui::BeginMenu(settings.capitalMenuBar?"Edit":"edit")) { ImGui::Text("..."); ImGui::Separator(); if (ImGui::MenuItem("undo",BIND_FOR(GUI_ACTION_UNDO))) doUndo(); @@ -4256,7 +4256,7 @@ bool FurnaceGUI::loop() { } ImGui::EndMenu(); } - if (ImGui::BeginMenu("settings")) { + if (ImGui::BeginMenu(settings.capitalMenuBar?"Settings":"settings")) { #ifndef IS_MOBILE if (ImGui::MenuItem("full screen",BIND_FOR(GUI_ACTION_FULLSCREEN),fullScreen)) { doAction(GUI_ACTION_FULLSCREEN); @@ -4292,7 +4292,7 @@ bool FurnaceGUI::loop() { } ImGui::EndMenu(); } - if (ImGui::BeginMenu("window")) { + if (ImGui::BeginMenu(settings.capitalMenuBar?"Window":"window")) { if (ImGui::MenuItem("song information",BIND_FOR(GUI_ACTION_WINDOW_SONG_INFO),songInfoOpen)) songInfoOpen=!songInfoOpen; if (ImGui::MenuItem("subsongs",BIND_FOR(GUI_ACTION_WINDOW_SUBSONGS),subSongsOpen)) subSongsOpen=!subSongsOpen; if (ImGui::MenuItem("speed",BIND_FOR(GUI_ACTION_WINDOW_SPEED),speedOpen)) speedOpen=!speedOpen; @@ -4334,7 +4334,7 @@ bool FurnaceGUI::loop() { ImGui::EndMenu(); } - if (ImGui::BeginMenu("help")) { + if (ImGui::BeginMenu(settings.capitalMenuBar?"Help":"help")) { if (ImGui::MenuItem("effect list",BIND_FOR(GUI_ACTION_WINDOW_EFFECT_LIST),effectListOpen)) effectListOpen=!effectListOpen; if (ImGui::MenuItem("debug menu",BIND_FOR(GUI_ACTION_WINDOW_DEBUG))) debugOpen=!debugOpen; if (ImGui::MenuItem("inspector",BIND_FOR(GUI_ACTION_WINDOW_DEBUG))) inspectorOpen=!inspectorOpen; diff --git a/src/gui/gui.h b/src/gui/gui.h index 0a14965c9..78ea64dc5 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1549,6 +1549,7 @@ class FurnaceGUI { int removeVolOff; int playOnLoad; int insTypeMenu; + int capitalMenuBar; unsigned int maxUndoSteps; String mainFontPath; String headFontPath; @@ -1712,6 +1713,7 @@ class FurnaceGUI { removeVolOff(0), playOnLoad(0), insTypeMenu(1), + capitalMenuBar(0), maxUndoSteps(100), mainFontPath(""), headFontPath(""), diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index f663a9e40..2d5d7614f 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -2060,6 +2060,11 @@ void FurnaceGUI::drawSettings() { } ImGui::Unindent(); + bool capitalMenuBarB=settings.capitalMenuBar; + if (ImGui::Checkbox("Capitalize menu bar",&capitalMenuBarB)) { + settings.capitalMenuBar=capitalMenuBarB; + } + // SUBSECTION ORDERS CONFIG_SUBSECTION("Orders"); // sorry. temporarily disabled until ImGui has a way to add separators in tables arbitrarily. @@ -3024,6 +3029,7 @@ void FurnaceGUI::syncSettings() { settings.removeVolOff=e->getConfInt("removeVolOff",0); settings.playOnLoad=e->getConfInt("playOnLoad",0); settings.insTypeMenu=e->getConfInt("insTypeMenu",1); + settings.capitalMenuBar=e->getConfInt("capitalMenuBar",0); clampSetting(settings.mainFontSize,2,96); clampSetting(settings.headFontSize,2,96); @@ -3159,6 +3165,7 @@ void FurnaceGUI::syncSettings() { clampSetting(settings.removeVolOff,0,1); clampSetting(settings.playOnLoad,0,2); clampSetting(settings.insTypeMenu,0,1); + clampSetting(settings.capitalMenuBar,0,1); if (settings.exportLoops<0.0) settings.exportLoops=0.0; if (settings.exportFadeOut<0.0) settings.exportFadeOut=0.0; @@ -3394,6 +3401,7 @@ void FurnaceGUI::commitSettings() { e->setConf("removeVolOff",settings.removeVolOff); e->setConf("playOnLoad",settings.playOnLoad); e->setConf("insTypeMenu",settings.insTypeMenu); + e->setConf("capitalMenuBar",settings.capitalMenuBar); // colors for (int i=0; i Date: Wed, 9 Aug 2023 23:16:53 -0500 Subject: [PATCH 157/202] OPLL: drums mode work 4 --- src/engine/platform/opll.cpp | 65 +++++++++++++++++++++++------------- src/engine/platform/opll.h | 1 + 2 files changed, 43 insertions(+), 23 deletions(-) diff --git a/src/engine/platform/opll.cpp b/src/engine/platform/opll.cpp index e2aed1e70..a4185004e 100644 --- a/src/engine/platform/opll.cpp +++ b/src/engine/platform/opll.cpp @@ -28,6 +28,8 @@ #define CHIP_FREQBASE 1180068 +#define DRUM_VOL(_x) (drumActivated[_x]?drumVol[_x]:15) + const unsigned char cycleMapOPLL[18]={ 8, 7, 6, 7, 8, 7, 8, 6, 0, 1, 2, 7, 8, 9, 3, 4, 5, 9 }; @@ -104,9 +106,9 @@ void DivPlatformOPLL::tick(bool sysTick) { if (i>=6 && properDrums) { drumVol[i-6]=15-chan[i].outVol; - rWrite(0x36,drumVol[0]); - rWrite(0x37,drumVol[1]|(drumVol[4]<<4)); - rWrite(0x38,drumVol[3]|(drumVol[2]<<4)); + rWrite(0x36,DRUM_VOL(0)); + rWrite(0x37,DRUM_VOL(1)|(DRUM_VOL(4)<<4)); + rWrite(0x38,DRUM_VOL(3)|(DRUM_VOL(2)<<4)); } else if (i<6 || !crapDrums) { if (i<9) { rWrite(0x30+i,((15-VOL_SCALE_LOG_BROKEN(chan[i].outVol,15-chan[i].state.op[1].tl,15))&15)|(chan[i].state.opllPreset<<4)); @@ -398,6 +400,10 @@ void DivPlatformOPLL::switchMode(bool mode) { if (mode==properDrums) return; if (mode) { logV("mode switch to DRUMS"); + for (int i=0; i<5; i++) { + drumActivated[i]=chan[6+i].keyOn; + } + immWrite(0x26,0); immWrite(0x27,0); immWrite(0x28,0); @@ -405,16 +411,25 @@ void DivPlatformOPLL::switchMode(bool mode) { immWrite(0x17,0); immWrite(0x18,0); immWrite(0x0e,0x20); - immWrite(0x36,drumVol[0]); - immWrite(0x37,drumVol[1]|(drumVol[4]<<4)); - immWrite(0x38,drumVol[3]|(drumVol[2]<<4)); + rWrite(0x36,DRUM_VOL(0)); + rWrite(0x37,DRUM_VOL(1)|(DRUM_VOL(4)<<4)); + rWrite(0x38,DRUM_VOL(3)|(DRUM_VOL(2)<<4)); + oldWrites[0x36]=-1; + oldWrites[0x37]=-1; + oldWrites[0x38]=-1; } else { logV("mode switch to NORMAL"); immWrite(0x0e,0x20); immWrite(0x0e,0x00); - if (chan[6].active) chan[6].freqChanged=true; - if (chan[7].active) chan[7].freqChanged=true; - if (chan[8].active) chan[8].freqChanged=true; + for (int i=6; i<9; i++) { + if (chan[i].active) { + chan[i].freqChanged=true; + chan[i].keyOff=false; + chan[i].keyOn=true; + oldWrites[0x30+i]=-1; + } + chan[i].insChanged=true; + } } properDrums=mode; drumState=0; @@ -436,6 +451,7 @@ int DivPlatformOPLL::dispatch(DivCommand c) { if (c.chan>=6 && properDrums) { // drums mode chan[c.chan].insChanged=false; + drumActivated[c.chan-6]=true; if (c.value!=DIV_NOTE_NULL) { if (chan[c.chan].state.opllPreset==16 && chan[c.chan].state.fixedDrums) { switch (c.chan) { @@ -457,6 +473,10 @@ int DivPlatformOPLL::dispatch(DivCommand c) { } chan[c.chan].keyOn=true; chan[c.chan].active=true; + + rWrite(0x36,DRUM_VOL(0)); + rWrite(0x37,DRUM_VOL(1)|(DRUM_VOL(4)<<4)); + rWrite(0x38,DRUM_VOL(3)|(DRUM_VOL(2)<<4)); break; } @@ -485,9 +505,9 @@ int DivPlatformOPLL::dispatch(DivCommand c) { drumVol[4]=(15-(chan[c.chan].outVol*(15-chan[c.chan].state.op[1].tl))/15); break; } - rWrite(0x36,drumVol[0]); - rWrite(0x37,drumVol[1]|(drumVol[4]<<4)); - rWrite(0x38,drumVol[3]|(drumVol[2]<<4)); + rWrite(0x36,DRUM_VOL(0)); + rWrite(0x37,DRUM_VOL(1)|(DRUM_VOL(4)<<4)); + rWrite(0x38,DRUM_VOL(3)|(DRUM_VOL(2)<<4)); } chan[c.chan].freqChanged=true; } @@ -522,9 +542,9 @@ int DivPlatformOPLL::dispatch(DivCommand c) { } if (c.chan>=6 && properDrums) { drumVol[c.chan-6]=15-chan[c.chan].outVol; - rWrite(0x36,drumVol[0]); - rWrite(0x37,drumVol[1]|(drumVol[4]<<4)); - rWrite(0x38,drumVol[3]|(drumVol[2]<<4)); + rWrite(0x36,DRUM_VOL(0)); + rWrite(0x37,DRUM_VOL(1)|(DRUM_VOL(4)<<4)); + rWrite(0x38,DRUM_VOL(3)|(DRUM_VOL(2)<<4)); break; } else if (c.chan<6 || !crapDrums) { if (c.chan<9) { @@ -868,9 +888,9 @@ void DivPlatformOPLL::forceIns() { } // restore drum volumes if (properDrums) { - rWrite(0x36,drumVol[0]); - rWrite(0x37,drumVol[1]|(drumVol[4]<<4)); - rWrite(0x38,drumVol[3]|(drumVol[2]<<4)); + rWrite(0x36,DRUM_VOL(0)); + rWrite(0x37,DRUM_VOL(1)|(DRUM_VOL(4)<<4)); + rWrite(0x38,DRUM_VOL(3)|(DRUM_VOL(2)<<4)); } drumState=0; } @@ -951,11 +971,10 @@ void DivPlatformOPLL::reset() { drumState=0; lastCustomMemory=-1; - drumVol[0]=0; - drumVol[1]=0; - drumVol[2]=0; - drumVol[3]=0; - drumVol[4]=0; + for (int i=0; i<5; i++) { + drumVol[i]=0; + drumActivated[i]=true; + } delay=0; crapDrums=false; diff --git a/src/engine/platform/opll.h b/src/engine/platform/opll.h index 6dd96337d..ef691dd15 100644 --- a/src/engine/platform/opll.h +++ b/src/engine/platform/opll.h @@ -59,6 +59,7 @@ class DivPlatformOPLL: public DivDispatch { unsigned char lastBusy; unsigned char drumState; unsigned char drumVol[5]; + bool drumActivated[5]; unsigned char regPool[256]; From c6857b56f27c968947bd6a2e66d68edf735b9fd5 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 9 Aug 2023 23:22:08 -0500 Subject: [PATCH 158/202] OPLL: now add a partial fix to issue #289 does not fulfill "apply pitch to all channels" suggestion yet though --- src/engine/platform/opll.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/engine/platform/opll.cpp b/src/engine/platform/opll.cpp index a4185004e..de436739f 100644 --- a/src/engine/platform/opll.cpp +++ b/src/engine/platform/opll.cpp @@ -886,11 +886,17 @@ void DivPlatformOPLL::forceIns() { immWrite(0x18,0xC0); immWrite(0x28,0x01); } - // restore drum volumes + // restore drum volumes and state if (properDrums) { rWrite(0x36,DRUM_VOL(0)); rWrite(0x37,DRUM_VOL(1)|(DRUM_VOL(4)<<4)); rWrite(0x38,DRUM_VOL(3)|(DRUM_VOL(2)<<4)); + + chan[6].freqChanged=true; + chan[7].freqChanged=true; + chan[8].freqChanged=true; + chan[9].freqChanged=true; + chan[10].freqChanged=true; } drumState=0; } From e46fa7d88ea9fcf8a96592401e9ca55d752129b4 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 9 Aug 2023 23:22:43 -0500 Subject: [PATCH 159/202] OPLL: remove some debug messages --- src/engine/platform/opll.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/engine/platform/opll.cpp b/src/engine/platform/opll.cpp index de436739f..d4e1bde72 100644 --- a/src/engine/platform/opll.cpp +++ b/src/engine/platform/opll.cpp @@ -54,7 +54,7 @@ void DivPlatformOPLL::acquire_nuked(short** buf, size_t len) { QueuedWrite& w=writes.front(); if (w.addrOrVal) { OPLL_Write(&fm,1,w.val); - logV("write: %x = %.2x",w.addr,w.val); + //logV("write: %x = %.2x",w.addr,w.val); regPool[w.addr&0xff]=w.val; writes.pop(); delay=21; @@ -232,16 +232,16 @@ void DivPlatformOPLL::tick(bool sysTick) { if (i>=6 && properDrums) { drumState&=~(0x10>>(i-6)); immWrite(0x0e,0x20|drumState); - logV("properDrums %d",i); + //logV("properDrums %d",i); } else if (i>=6 && crapDrums) { drumState&=~(0x10>>(chan[i].note%12)); immWrite(0x0e,0x20|drumState); - logV("drums %d",i); + //logV("drums %d",i); } else { if (i<9) { immWrite(0x20+i,(chan[i].freqH)|(chan[i].state.alg?0x20:0)); } - logV("normal %d",i); + //logV("normal %d",i); } //chan[i].keyOn=false; chan[i].keyOff=false; @@ -399,7 +399,7 @@ void DivPlatformOPLL::commitState(int ch, DivInstrument* ins) { void DivPlatformOPLL::switchMode(bool mode) { if (mode==properDrums) return; if (mode) { - logV("mode switch to DRUMS"); + //logV("mode switch to DRUMS"); for (int i=0; i<5; i++) { drumActivated[i]=chan[6+i].keyOn; } @@ -418,7 +418,7 @@ void DivPlatformOPLL::switchMode(bool mode) { oldWrites[0x37]=-1; oldWrites[0x38]=-1; } else { - logV("mode switch to NORMAL"); + //logV("mode switch to NORMAL"); immWrite(0x0e,0x20); immWrite(0x0e,0x00); for (int i=6; i<9; i++) { From 805c3ba7ac4f6296008b7d1524fd814036a70316 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 9 Aug 2023 23:32:29 -0500 Subject: [PATCH 160/202] OPLL: more fixes issue #289 --- src/engine/platform/opll.cpp | 33 +++++++++++++++++++++++++++++---- src/engine/platform/opll.h | 5 +++++ 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/engine/platform/opll.cpp b/src/engine/platform/opll.cpp index d4e1bde72..db2f4ecd8 100644 --- a/src/engine/platform/opll.cpp +++ b/src/engine/platform/opll.cpp @@ -267,6 +267,20 @@ void DivPlatformOPLL::tick(bool sysTick) { if (i>=6 && properDrums && (i<9 || !noTopHatFreq)) { immWrite(0x10+drumSlot[i],freqt&0xff); immWrite(0x20+drumSlot[i],freqt>>8); + switch (i) { + case 7: + lastFreqSH=0; + break; + case 8: + lastFreqTT=0; + break; + case 9: + lastFreqTT=1; + break; + case 19: + lastFreqSH=1; + break; + } } else if (i<6 || !crapDrums) { if (i<9) { immWrite(0x10+i,freqt&0xff); @@ -892,11 +906,19 @@ void DivPlatformOPLL::forceIns() { rWrite(0x37,DRUM_VOL(1)|(DRUM_VOL(4)<<4)); rWrite(0x38,DRUM_VOL(3)|(DRUM_VOL(2)<<4)); + if (lastFreqSH==0) { + chan[7].freqChanged=true; + } else if (lastFreqSH==1) { + chan[10].freqChanged=true; + } + + if (lastFreqTT==0) { + chan[8].freqChanged=true; + } else if (lastFreqTT==1) { + chan[9].freqChanged=true; + } + chan[6].freqChanged=true; - chan[7].freqChanged=true; - chan[8].freqChanged=true; - chan[9].freqChanged=true; - chan[10].freqChanged=true; } drumState=0; } @@ -986,6 +1008,9 @@ void DivPlatformOPLL::reset() { crapDrums=false; properDrums=properDrumsSys; + lastFreqSH=-1; + lastFreqTT=-1; + if (properDrums) { immWrite(0x0e,0x20); } diff --git a/src/engine/platform/opll.h b/src/engine/platform/opll.h index ef691dd15..cabd2608f 100644 --- a/src/engine/platform/opll.h +++ b/src/engine/platform/opll.h @@ -60,6 +60,11 @@ class DivPlatformOPLL: public DivDispatch { unsigned char drumState; unsigned char drumVol[5]; bool drumActivated[5]; + + // -1: undefined + // 0: snare/tom + // 1: hi-hat/top + signed char lastFreqSH, lastFreqTT; unsigned char regPool[256]; From d5776e02bbcc675acf8aa4001b0383a2a31665ff Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 10 Aug 2023 00:15:44 -0500 Subject: [PATCH 161/202] OPLL: add option to apply fixed frequency to all d issue #289 --- src/engine/platform/opll.cpp | 33 +++++++++++++++++++++++---------- src/engine/platform/opll.h | 2 +- src/gui/sysConf.cpp | 5 +++++ 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/src/engine/platform/opll.cpp b/src/engine/platform/opll.cpp index db2f4ecd8..2d283d9a6 100644 --- a/src/engine/platform/opll.cpp +++ b/src/engine/platform/opll.cpp @@ -468,16 +468,28 @@ int DivPlatformOPLL::dispatch(DivCommand c) { drumActivated[c.chan-6]=true; if (c.value!=DIV_NOTE_NULL) { if (chan[c.chan].state.opllPreset==16 && chan[c.chan].state.fixedDrums) { - switch (c.chan) { - case 6: - chan[c.chan].fixedFreq=(chan[c.chan].state.kickFreq&511)<<(chan[c.chan].state.kickFreq>>9); - break; - case 7: case 10: - chan[c.chan].fixedFreq=(chan[c.chan].state.snareHatFreq&511)<<(chan[c.chan].state.snareHatFreq>>9); - break; - case 8: case 9: - chan[c.chan].fixedFreq=(chan[c.chan].state.tomTopFreq&511)<<(chan[c.chan].state.tomTopFreq>>9); - break; + if (fixedAll) { + chan[6].fixedFreq=(chan[c.chan].state.kickFreq&511)<<(chan[c.chan].state.kickFreq>>9); + chan[7].fixedFreq=(chan[c.chan].state.snareHatFreq&511)<<(chan[c.chan].state.snareHatFreq>>9); + chan[8].fixedFreq=(chan[c.chan].state.tomTopFreq&511)<<(chan[c.chan].state.tomTopFreq>>9); + chan[9].fixedFreq=(chan[c.chan].state.tomTopFreq&511)<<(chan[c.chan].state.tomTopFreq>>9); + chan[10].fixedFreq=(chan[c.chan].state.snareHatFreq&511)<<(chan[c.chan].state.snareHatFreq>>9); + + chan[7].freqChanged=true; + chan[8].freqChanged=true; + chan[9].freqChanged=true; + } else { + switch (c.chan) { + case 6: + chan[c.chan].fixedFreq=(chan[c.chan].state.kickFreq&511)<<(chan[c.chan].state.kickFreq>>9); + break; + case 7: case 10: + chan[c.chan].fixedFreq=(chan[c.chan].state.snareHatFreq&511)<<(chan[c.chan].state.snareHatFreq>>9); + break; + case 8: case 9: + chan[c.chan].fixedFreq=(chan[c.chan].state.tomTopFreq&511)<<(chan[c.chan].state.tomTopFreq>>9); + break; + } } } else { chan[c.chan].baseFreq=NOTE_FREQUENCY(c.value); @@ -1076,6 +1088,7 @@ void DivPlatformOPLL::setFlags(const DivConfig& flags) { oscBuf[i]->rate=rate/2; } noTopHatFreq=flags.getBool("noTopHatFreq",false); + fixedAll=flags.getBool("fixedAll",false); } int DivPlatformOPLL::init(DivEngine* p, int channels, int sugRate, const DivConfig& flags) { diff --git a/src/engine/platform/opll.h b/src/engine/platform/opll.h index cabd2608f..8bb6baa2c 100644 --- a/src/engine/platform/opll.h +++ b/src/engine/platform/opll.h @@ -70,7 +70,7 @@ class DivPlatformOPLL: public DivDispatch { bool useYMFM; bool crapDrums; - bool properDrums, properDrumsSys, noTopHatFreq; + bool properDrums, properDrumsSys, noTopHatFreq, fixedAll; bool vrc7; unsigned char patchSet; diff --git a/src/gui/sysConf.cpp b/src/gui/sysConf.cpp index 9e54ae7fd..cc95e4099 100644 --- a/src/gui/sysConf.cpp +++ b/src/gui/sysConf.cpp @@ -395,6 +395,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo int clockSel=flags.getInt("clockSel",0); int patchSet=flags.getInt("patchSet",0); bool noTopHatFreq=flags.getBool("noTopHatFreq",false); + bool fixedAll=flags.getBool("fixedAll",false); ImGui::Text("Clock rate:"); ImGui::Indent(); @@ -441,6 +442,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo if (ImGui::Checkbox("Ignore top/hi-hat frequency changes",&noTopHatFreq)) { altered=true; } + if (ImGui::Checkbox("Apply fixed frequency to all drums at once",&fixedAll)) { + altered=true; + } } if (altered) { @@ -450,6 +454,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo flags.set("patchSet",patchSet); } flags.set("noTopHatFreq",noTopHatFreq); + flags.set("fixedAll",fixedAll); }); } break; From 2a0d76563d66ce08107ff8e589cc0212b1827da9 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 10 Aug 2023 00:30:35 -0500 Subject: [PATCH 162/202] GUI: fix oversight in sample invert --- src/gui/doAction.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/doAction.cpp b/src/gui/doAction.cpp index aca82821a..d26a1b310 100644 --- a/src/gui/doAction.cpp +++ b/src/gui/doAction.cpp @@ -1285,7 +1285,7 @@ void FurnaceGUI::doAction(int what) { } else if (sample->depth==DIV_SAMPLE_DEPTH_8BIT) { for (unsigned int i=start; idata8[i]=-sample->data8[i]; - if (sample->data16[i]==-128) sample->data16[i]=127; + if (sample->data8[i]==-128) sample->data8[i]=127; } } From be06fe2400030713dd59ab717a719dbb24ed14d7 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 10 Aug 2023 00:31:29 -0500 Subject: [PATCH 163/202] GUI: why is the range wrong --- src/gui/sampleEdit.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/sampleEdit.cpp b/src/gui/sampleEdit.cpp index bd7529383..5cea58f03 100644 --- a/src/gui/sampleEdit.cpp +++ b/src/gui/sampleEdit.cpp @@ -1609,7 +1609,7 @@ void FurnaceGUI::drawSampleEdit() { posX=samplePos+pos.x*sampleZoom; if (posX>(int)sample->samples) posX=-1; } - posY=(0.5-pos.y/rectSize.y)*((sample->depth==DIV_SAMPLE_DEPTH_8BIT)?255:32767); + posY=(0.5-pos.y/rectSize.y)*((sample->depth==DIV_SAMPLE_DEPTH_8BIT)?255:65535); if (posX>=0) { statusBar2=fmt::sprintf("(%d, %d)",posX,posY); } From cc60dcf5342657d6c49fa1e13b5858aa601b2d22 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 10 Aug 2023 01:06:23 -0500 Subject: [PATCH 164/202] GUI: enable 32-bit ImDrawIdx --- extern/imgui_patched/imconfig.h | 4 +++- extern/imgui_patched/imconfig_fur.h | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/extern/imgui_patched/imconfig.h b/extern/imgui_patched/imconfig.h index 876cf32f7..860c0b427 100644 --- a/extern/imgui_patched/imconfig.h +++ b/extern/imgui_patched/imconfig.h @@ -97,7 +97,9 @@ // Your renderer backend will need to support it (most example renderer backends support both 16/32-bit indices). // Another way to allow large meshes while keeping 16-bit indices is to handle ImDrawCmd::VtxOffset in your renderer. // Read about ImGuiBackendFlags_RendererHasVtxOffset for details. -//#define ImDrawIdx unsigned int +#ifndef IS_MOBILE +#define ImDrawIdx unsigned int +#endif //---- Override ImDrawCallback signature (will need to modify renderer backends accordingly) //struct ImDrawList; diff --git a/extern/imgui_patched/imconfig_fur.h b/extern/imgui_patched/imconfig_fur.h index 9c62b3966..30ca74732 100644 --- a/extern/imgui_patched/imconfig_fur.h +++ b/extern/imgui_patched/imconfig_fur.h @@ -96,7 +96,9 @@ // Your renderer backend will need to support it (most example renderer backends support both 16/32-bit indices). // Another way to allow large meshes while keeping 16-bit indices is to handle ImDrawCmd::VtxOffset in your renderer. // Read about ImGuiBackendFlags_RendererHasVtxOffset for details. -//#define ImDrawIdx unsigned int +#ifndef IS_MOBILE +#define ImDrawIdx unsigned int +#endif //---- Override ImDrawCallback signature (will need to modify renderer backends accordingly) //struct ImDrawList; From a59b5753bb396d73e6ad98ea9373c9d73ad2116d Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 10 Aug 2023 02:42:42 -0500 Subject: [PATCH 165/202] GUI: add center pop-up setting --- src/gui/gui.cpp | 19 +++++++++++-------- src/gui/gui.h | 4 ++++ src/gui/settings.cpp | 8 ++++++++ 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 4954d0bbb..6950c72f4 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -77,8 +77,12 @@ bool Particle::update(float frameTime) { return (life>0); } -void centerNextWindow(float w, float h) { - ImGui::SetNextWindowPos(ImVec2(w*0.5,h*0.5),ImGuiCond_Always,ImVec2(0.5,0.5)); +void FurnaceGUI::centerNextWindow(const char* name, float w, float h) { + if (ImGui::IsPopupOpen(name)) { + if (settings.centerPopup) { + ImGui::SetNextWindowPos(ImVec2(w*0.5,h*0.5),ImGuiCond_Always,ImVec2(0.5,0.5)); + } + } } void FurnaceGUI::bindEngine(DivEngine* eng) { @@ -4577,7 +4581,6 @@ bool FurnaceGUI::loop() { ImGui::OpenPopup("System File Dialog Pending"); } - centerNextWindow(canvasW,canvasH); if (ImGui::BeginPopupModal("System File Dialog Pending",NULL,ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoBackground|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoMove)) { if (!fileDialog->isOpen()) { ImGui::CloseCurrentPopup(); @@ -5242,7 +5245,7 @@ bool FurnaceGUI::loop() { MEASURE_BEGIN(popup); - centerNextWindow(canvasW,canvasH); + centerNextWindow("Rendering...",canvasW,canvasH); if (ImGui::BeginPopupModal("Rendering...",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { ImGui::Text("Please wait..."); if (ImGui::Button("Abort")) { @@ -5270,7 +5273,7 @@ bool FurnaceGUI::loop() { ImGui::EndPopup(); } - centerNextWindow(canvasW,canvasH); + centerNextWindow("Error",canvasW,canvasH); if (ImGui::BeginPopupModal("Error",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { ImGui::Text("%s",errorString.c_str()); if (ImGui::Button("OK")) { @@ -5279,7 +5282,7 @@ bool FurnaceGUI::loop() { ImGui::EndPopup(); } - centerNextWindow(canvasW,canvasH); + centerNextWindow("Warning",canvasW,canvasH); if (ImGui::BeginPopupModal("Warning",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { ImGui::Text("%s",warnString.c_str()); switch (warnAction) { @@ -5661,7 +5664,7 @@ bool FurnaceGUI::loop() { // TODO: // - multiple selection // - replace instrument - centerNextWindow(canvasW,canvasH); + centerNextWindow("Select Instrument",canvasW,canvasH); if (ImGui::BeginPopupModal("Select Instrument",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { bool quitPlease=false; if (pendingInsSingle) { @@ -5740,7 +5743,7 @@ bool FurnaceGUI::loop() { ImGui::EndPopup(); } - centerNextWindow(canvasW,canvasH); + centerNextWindow("Import Raw Sample",canvasW,canvasH); if (ImGui::BeginPopupModal("Import Raw Sample",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { ImGui::Text("Data type:"); for (int i=0; igetConfInt("playOnLoad",0); settings.insTypeMenu=e->getConfInt("insTypeMenu",1); settings.capitalMenuBar=e->getConfInt("capitalMenuBar",0); + settings.centerPopup=e->getConfInt("centerPopup",1); clampSetting(settings.mainFontSize,2,96); clampSetting(settings.headFontSize,2,96); @@ -3196,6 +3202,7 @@ void FurnaceGUI::syncSettings() { clampSetting(settings.playOnLoad,0,2); clampSetting(settings.insTypeMenu,0,1); clampSetting(settings.capitalMenuBar,0,1); + clampSetting(settings.centerPopup,0,1); if (settings.exportLoops<0.0) settings.exportLoops=0.0; if (settings.exportFadeOut<0.0) settings.exportFadeOut=0.0; @@ -3432,6 +3439,7 @@ void FurnaceGUI::commitSettings() { e->setConf("playOnLoad",settings.playOnLoad); e->setConf("insTypeMenu",settings.insTypeMenu); e->setConf("capitalMenuBar",settings.capitalMenuBar); + e->setConf("centerPopup",settings.centerPopup); // colors for (int i=0; i Date: Thu, 10 Aug 2023 20:24:10 +0900 Subject: [PATCH 166/202] C140 fixes and optimizations Minor optimization Move output shift function to dispatch Fix loop Fix pan scaling if using INS_AMIGA correct about --- src/engine/platform/c140.cpp | 13 +++++-- src/engine/platform/c140.h | 4 +- src/engine/platform/sound/c140.c | 64 ++++++++++++++++++-------------- src/engine/platform/sound/c140.h | 2 +- src/gui/about.cpp | 2 +- src/gui/debug.cpp | 3 ++ src/main.cpp | 2 +- 7 files changed, 55 insertions(+), 35 deletions(-) diff --git a/src/engine/platform/c140.cpp b/src/engine/platform/c140.cpp index 95b9dc021..7685ebefb 100644 --- a/src/engine/platform/c140.cpp +++ b/src/engine/platform/c140.cpp @@ -59,6 +59,9 @@ void DivPlatformC140::acquire(short** buf, size_t len) { } c140_tick(&c140, 1); + // scale as 16bit + c140.lout >>= 10; + c140.rout >>= 10; if (c140.lout<-32768) c140.lout=-32768; if (c140.lout>32767) c140.lout=32767; @@ -101,12 +104,12 @@ void DivPlatformC140::tick(bool sysTick) { chan[i].freqChanged=true; } if (chan[i].std.panL.had) { - chan[i].chPanL=chan[i].std.panL.val&255; + chan[i].chPanL=(255*(chan[i].std.panL.val&255))/chan[i].macroPanMul; chan[i].volChangedL=true; } if (chan[i].std.panR.had) { - chan[i].chPanR=chan[i].std.panR.val&255; + chan[i].chPanR=(255*(chan[i].std.panR.val&255))/chan[i].macroPanMul; chan[i].volChangedR=true; } @@ -147,13 +150,14 @@ void DivPlatformC140::tick(bool sysTick) { unsigned int end=0; if (chan[i].sample>=0 && chan[i].samplesong.sampleLen) { start=sampleOff[chan[i].sample]; - end=MIN(start+s->length8,getSampleMemCapacity()-1); + end=MIN(start+s->length8-1,65535); } if (chan[i].audPos>0) { start=start+MIN(chan[i].audPos,s->length8); } if (s->isLoopable()) { - loop=start+s->loopStart; + loop=MIN(start+s->loopStart,65535); + end=MIN(start+s->loopEnd-1,65535); } rWrite(0x05+(i<<4),0); // force keyoff first rWrite(0x06+(i<<4),(start>>8)&0xff); @@ -187,6 +191,7 @@ int DivPlatformC140::dispatch(DivCommand c) { case DIV_CMD_NOTE_ON: { DivInstrument* ins=parent->getIns(chan[c.chan].ins,DIV_INS_AMIGA); chan[c.chan].macroVolMul=ins->type==DIV_INS_AMIGA?64:255; + chan[c.chan].macroPanMul=ins->type==DIV_INS_AMIGA?127:255; if (c.value!=DIV_NOTE_NULL) { chan[c.chan].sample=ins->amiga.getSample(c.value); c.value=ins->amiga.getFreq(c.value); diff --git a/src/engine/platform/c140.h b/src/engine/platform/c140.h index fa221eec2..8d3176300 100644 --- a/src/engine/platform/c140.h +++ b/src/engine/platform/c140.h @@ -32,6 +32,7 @@ class DivPlatformC140: public DivDispatch { int chPanL, chPanR; int chVolL, chVolR; int macroVolMul; + int macroPanMul; Channel(): SharedChannel(255), audPos(0), @@ -44,7 +45,8 @@ class DivPlatformC140: public DivDispatch { chPanR(255), chVolL(255), chVolR(255), - macroVolMul(64) {} + macroVolMul(64), + macroPanMul(127) {} }; Channel chan[24]; DivDispatchOscBuffer* oscBuf[24]; diff --git a/src/engine/platform/sound/c140.c b/src/engine/platform/sound/c140.c index d22677b24..3d48c1300 100644 --- a/src/engine/platform/sound/c140.c +++ b/src/engine/platform/sound/c140.c @@ -2,9 +2,13 @@ ============================================================================ -Namco C140 sound emulator +MODIFIED Namco C140 sound emulator - MODIFIED VERSION by cam900 +MODIFICATION by tildearrow - adds muting function +THIS IS NOT THE ORIGINAL VERSION - you can find the original one in +commit 72d04777c013988ed8cf6da27c62a9d784a59dff + This file is licensed under zlib license. ============================================================================ @@ -52,58 +56,64 @@ void c140_tick(struct c140_t *c140, const int cycle) for (int i = 0; i < 24; i++) { c140_voice_tick(c140, i, cycle); - if (!c140->voice[i].muted) { - c140->lout += c140->voice[i].lout; - c140->rout += c140->voice[i].rout; - } + c140->lout += c140->voice[i].lout; + c140->rout += c140->voice[i].rout; } - // scale as 16bit - c140->lout >>= 10; - c140->rout >>= 10; } -void c140_voice_tick(struct c140_t *c140, const unsigned char voice, const int cycle) +void c140_voice_tick(struct c140_t *c140, const unsigned char v, const int cycle) { - struct c140_voice_t *c140_voice = &c140->voice[voice]; - if (c140_voice->busy && c140_voice->keyon) + struct c140_voice_t *voice = &c140->voice[v]; + if (voice->busy && voice->keyon) { for (int c = 0; c < cycle; c++) { - c140_voice->frac += c140_voice->freq; - if (c140_voice->frac > 0xffff) + voice->frac += voice->freq; + if (voice->frac > 0xffff) { - c140_voice->addr += c140_voice->frac >> 16; - if (c140_voice->addr > c140_voice->end_addr) + voice->addr += voice->frac >> 16; + if (voice->addr > voice->end_addr) { - if (c140_voice->loop) + if (voice->loop) { - c140_voice->addr = (c140_voice->addr + c140_voice->end_addr) - c140_voice->loop_addr; + voice->addr = (voice->addr + voice->loop_addr) - voice->end_addr; } else { - c140_voice->keyon = false; + voice->keyon = false; + voice->lout = 0; + voice->rout = 0; + return; } } - c140_voice->frac &= 0xffff; + voice->frac &= 0xffff; } + } + if (!voice->muted) + { // fetch 12 bit sample - signed short s1 = c140->sample_mem[((unsigned int)(c140_voice->bank) << 16) | c140_voice->addr] & ~0xf; - signed short s2 = c140->sample_mem[((unsigned int)(c140_voice->bank) << 16) | ((c140_voice->addr + 1) & 0xffff)] & ~0xf; - if (c140_voice->compressed) + signed short s1 = c140->sample_mem[((unsigned int)(voice->bank) << 16) | voice->addr] & ~0xf; + signed short s2 = c140->sample_mem[((unsigned int)(voice->bank) << 16) | ((voice->addr + 1) & 0xffff)] & ~0xf; + if (voice->compressed) { s1 = c140->mulaw[(s1 >> 8) & 0xff]; s2 = c140->mulaw[(s2 >> 8) & 0xff]; } // interpolate - signed int sample = s1 + (((c140_voice->frac) * (s2 - s1)) >> 16); - c140_voice->lout = sample * c140_voice->lvol; - c140_voice->rout = sample * c140_voice->rvol; + signed int sample = s1 + (((voice->frac) * (s2 - s1)) >> 16); + voice->lout = sample * voice->lvol; + voice->rout = sample * voice->rvol; + } + else + { + voice->lout = 0; + voice->rout = 0; } } else { - c140_voice->lout = 0; - c140_voice->rout = 0; + voice->lout = 0; + voice->rout = 0; } } diff --git a/src/engine/platform/sound/c140.h b/src/engine/platform/sound/c140.h index 6fe2c4930..21a8b8a47 100644 --- a/src/engine/platform/sound/c140.h +++ b/src/engine/platform/sound/c140.h @@ -79,7 +79,7 @@ struct c140_t void c140_tick(struct c140_t *c140, const int cycle); -void c140_voice_tick(struct c140_t *c140, const unsigned char voice, const int cycle); +void c140_voice_tick(struct c140_t *c140, const unsigned char v, const int cycle); void c140_keyon(struct c140_voice_t *c140_voice); diff --git a/src/gui/about.cpp b/src/gui/about.cpp index ea983787e..48fdc2582 100644 --- a/src/gui/about.cpp +++ b/src/gui/about.cpp @@ -195,7 +195,7 @@ const char* aboutLine[]={ "vgsound_emu (second version, modified version) by cam900", "SM8521 emulator (modified version) by cam900", "D65010G031 emulator (modified version) by cam900", - "Namco C140 emulator by cam900", + "Namco C140 (modified version) emulator by cam900", "", "greetings to:", "NEOART Costa Rica", diff --git a/src/gui/debug.cpp b/src/gui/debug.cpp index 6e4a091da..508ad50fe 100644 --- a/src/gui/debug.cpp +++ b/src/gui/debug.cpp @@ -1105,7 +1105,10 @@ void putDispatchChan(void* data, int chanNum, int type) { ImGui::Text("- chVolL: %.2x",ch->chVolL); ImGui::Text("- chVolR: %.2x",ch->chVolR); ImGui::Text("- macroVolMul: %.2x",ch->macroVolMul); + ImGui::Text("- macroPanMul: %.2x",ch->macroPanMul); COMMON_CHAN_DEBUG_BOOL; + ImGui::TextColored(ch->volChangedL?colorOn:colorOff,">> VolChangedL"); + ImGui::TextColored(ch->volChangedR?colorOn:colorOff,">> VolChangedR"); ImGui::TextColored(ch->setPos?colorOn:colorOff,">> SetPos"); break; } diff --git a/src/main.cpp b/src/main.cpp index d1fb2dc12..2c12678a9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -210,7 +210,7 @@ TAParamResult pVersion(String) { printf("- ASAP POKEY emulator by Piotr Fusik ported to C++ by laoo (GPLv2)\n"); printf("- SM8521 emulator (modified version) by cam900 (zlib license)\n"); printf("- D65010G031 emulator (modified version) by cam900 (zlib license)\n"); - printf("- C140 emulator by cam900 (zlib license)\n"); + printf("- C140 emulator (modified version) by cam900 (zlib license)\n"); return TA_PARAM_QUIT; } From 882b1c0aae531f233a3ece2007794229501dbba6 Mon Sep 17 00:00:00 2001 From: cam900 Date: Thu, 10 Aug 2023 20:27:30 +0900 Subject: [PATCH 167/202] Add C140 status debug window --- src/gui/debug.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gui/debug.cpp b/src/gui/debug.cpp index 508ad50fe..c578d3a30 100644 --- a/src/gui/debug.cpp +++ b/src/gui/debug.cpp @@ -547,6 +547,13 @@ void putDispatchChip(void* data, int type) { COMMON_CHIP_DEBUG_BOOL; break; } + case DIV_SYSTEM_C140: { + DivPlatformC140* ch=(DivPlatformC140*)data; + ImGui::Text("> C140"); + COMMON_CHIP_DEBUG; + COMMON_CHIP_DEBUG_BOOL; + break; + } default: ImGui::Text("Unimplemented chip! Help!"); break; From 139ef4be29d05bf4764eccd00a62153349b7bbe1 Mon Sep 17 00:00:00 2001 From: cam900 Date: Thu, 10 Aug 2023 20:42:57 +0900 Subject: [PATCH 168/202] Remove unused variable --- src/engine/platform/c140.cpp | 4 ---- src/engine/platform/c140.h | 2 -- 2 files changed, 6 deletions(-) diff --git a/src/engine/platform/c140.cpp b/src/engine/platform/c140.cpp index 7685ebefb..b2404eab8 100644 --- a/src/engine/platform/c140.cpp +++ b/src/engine/platform/c140.cpp @@ -446,10 +446,6 @@ void DivPlatformC140::renderSamples(int sysID) { sampleMemLen=memPos+256; } -void DivPlatformC140::setChipModel(int type) { - chipType=type; -} - void DivPlatformC140::setFlags(const DivConfig& flags) { chipClock=32000*256; // 8.192MHz and 12.288MHz input, verified from Assault Schematics CHECK_CUSTOM_CLOCK; diff --git a/src/engine/platform/c140.h b/src/engine/platform/c140.h index 8d3176300..98ab77b63 100644 --- a/src/engine/platform/c140.h +++ b/src/engine/platform/c140.h @@ -51,7 +51,6 @@ class DivPlatformC140: public DivDispatch { Channel chan[24]; DivDispatchOscBuffer* oscBuf[24]; bool isMuted[24]; - int chipType; unsigned int sampleOff[256]; bool sampleLoaded[256]; @@ -83,7 +82,6 @@ class DivPlatformC140: public DivDispatch { void tick(bool sysTick=true); void muteChannel(int ch, bool mute); int getOutputCount(); - void setChipModel(int type); void notifyInsChange(int ins); void notifyWaveChange(int wave); void notifyInsDeletion(void* ins); From e0ca653462fdf4b75fa45826ef18aded0b808c03 Mon Sep 17 00:00:00 2001 From: cam900 Date: Thu, 10 Aug 2023 22:13:13 +0900 Subject: [PATCH 169/202] I forgot --- src/engine/platform/c140.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/engine/platform/c140.cpp b/src/engine/platform/c140.cpp index b2404eab8..165ec92ca 100644 --- a/src/engine/platform/c140.cpp +++ b/src/engine/platform/c140.cpp @@ -159,6 +159,7 @@ void DivPlatformC140::tick(bool sysTick) { loop=MIN(start+s->loopStart,65535); end=MIN(start+s->loopEnd-1,65535); } + rWrite(0x04+(i<<4),(start>>16)&0xff); rWrite(0x05+(i<<4),0); // force keyoff first rWrite(0x06+(i<<4),(start>>8)&0xff); rWrite(0x07+(i<<4),start&0xff); From 0311d712b12cef646b22910ba6da77dd46f0d3d1 Mon Sep 17 00:00:00 2001 From: cam900 Date: Thu, 10 Aug 2023 22:16:19 +0900 Subject: [PATCH 170/202] Fix audPos --- src/engine/platform/c140.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/engine/platform/c140.cpp b/src/engine/platform/c140.cpp index 165ec92ca..a7a3b162b 100644 --- a/src/engine/platform/c140.cpp +++ b/src/engine/platform/c140.cpp @@ -145,22 +145,24 @@ void DivPlatformC140::tick(bool sysTick) { if (chan[i].freq>65535) chan[i].freq=65535; ctrl|=(chan[i].active?0x80:0)|((s->isLoopable())?0x10:0); if (chan[i].keyOn) { + unsigned int bank=0; unsigned int start=0; unsigned int loop=0; unsigned int end=0; if (chan[i].sample>=0 && chan[i].samplesong.sampleLen) { - start=sampleOff[chan[i].sample]; + bank=(sampleOff[chan[i].sample]>>16)&0xff; + start=sampleOff[chan[i].sample]&0xffff; end=MIN(start+s->length8-1,65535); } if (chan[i].audPos>0) { - start=start+MIN(chan[i].audPos,s->length8); + start=MIN(start+MIN(chan[i].audPos,s->length8),65535); } if (s->isLoopable()) { loop=MIN(start+s->loopStart,65535); end=MIN(start+s->loopEnd-1,65535); } - rWrite(0x04+(i<<4),(start>>16)&0xff); rWrite(0x05+(i<<4),0); // force keyoff first + rWrite(0x04+(i<<4),bank); rWrite(0x06+(i<<4),(start>>8)&0xff); rWrite(0x07+(i<<4),start&0xff); rWrite(0x08+(i<<4),(end>>8)&0xff); From 73f8744a0133f862df02f4b26ab666e157ef2105 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Thu, 10 Aug 2023 16:37:09 -0700 Subject: [PATCH 171/202] Slight update and tweaks to effects doc. Trying to clarify portamento a little. --- doc/3-pattern/effects.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/doc/3-pattern/effects.md b/doc/3-pattern/effects.md index 5b1e6397a..b0c86fa56 100644 --- a/doc/3-pattern/effects.md +++ b/doc/3-pattern/effects.md @@ -27,12 +27,13 @@ however, effects are continuous, which means you only need to type it once and t - `F1xx`: **Single tick pitch slide up.** - `F2xx`: **Single tick pitch slide down.** -- `03xx`: **Portamento.** slides the current note's pitch to the specified note. `x` is the slide speed. - - A note _must_ be present for this effect to work. +- `03xx`: **Portamento.** slides the currently playing note's pitch toward the new note. `x` is the slide speed. + - a note _must_ be present with this effect for it to work. + - the effect stops automatically when it reaches the new note. - `E1xy`: **Note slide up.** `x` is the speed, while `y` is how many semitones to slide up. - `E2xy`: **Note slide down.** `x` is the speed, while `y` is how many semitones to slide down. -- `EAxx`: **Toggle legato.** while on, notes instantly change the pitch of the currrently playing sound instead of starting it over. +- `EAxx`: **Toggle legato.** while on, new notes instantly change the pitch of the currently playing sound instead of starting it over. - `00xy`: **Arpeggio.** after using this effect the channel will rapidly switch between semitone values of `note`, `note + x` and `note + y`. - `E0xx`: **Set arpeggio speed.** this sets the number of ticks between arpeggio values. default is 1. @@ -86,12 +87,12 @@ not all chips support these effects. - `9xxx`: **Set sample position.** jumps current sample to position `xxx * 0x100`. - Not all chips support this effect. -- `EBxx`: **Set sample bank.** - - Does not apply on Amiga. +- `EBxx`: **Set LEGACY sample mode bank.** selects sample bank. used only for compatibility. + - does not apply on Amiga. - `EExx`: **Send external command.** - - This effect is currently incomplete. -- `F5xx`: **Disable macro.** see macro table at the end of this document for possible values. -- `F6xx`: **Enable macro.** + - this effect is currently incomplete. +- `F5xx`: **Disable macro.**\ + `F6xx`: **Enable macro.** see macro table at the end of this document for possible values. additionally, [each chip has its own effects](../7-systems/README.md). From 760ffee16f6b42a2f73577364cc973e8f063e560 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Thu, 10 Aug 2023 16:47:03 -0700 Subject: [PATCH 172/202] Groupings in effects page. Smaller groupings of similar effects may help with comprehension. Horizontal rules are used because the only ways to get plain vertical space between lists are: - an empty HTML comment tag (ugly); - two line-break tags (uglier); - an unusual Unicode space character (not happening). Say the word and we can use one of those instead. --- doc/3-pattern/effects.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/3-pattern/effects.md b/doc/3-pattern/effects.md index b0c86fa56..6a9515d6c 100644 --- a/doc/3-pattern/effects.md +++ b/doc/3-pattern/effects.md @@ -14,7 +14,7 @@ however, effects are continuous, which means you only need to type it once and t - `F4xx`: **Fine volume slide down.** same as `0A0x` but 64× slower. - `F8xx`: **Single tick volume slide up.** adds `x` to volume on first tick only. - `F9xx`: **Single tick volume slide down.** subtracts `x` from volume on first tick only. - + - --- - `07xy`: **Tremolo.** changes volume to be "wavy" with a sine LFO. `x` is the speed. `y` is the depth. - Tremolo is downward only. - Maximum tremolo depth is -60 volume steps. @@ -26,17 +26,17 @@ however, effects are continuous, which means you only need to type it once and t - `02xx`: **Pitch slide down.** - `F1xx`: **Single tick pitch slide up.** - `F2xx`: **Single tick pitch slide down.** - + - --- - `03xx`: **Portamento.** slides the currently playing note's pitch toward the new note. `x` is the slide speed. - a note _must_ be present with this effect for it to work. - the effect stops automatically when it reaches the new note. - `E1xy`: **Note slide up.** `x` is the speed, while `y` is how many semitones to slide up. - `E2xy`: **Note slide down.** `x` is the speed, while `y` is how many semitones to slide down. - + - --- - `EAxx`: **Toggle legato.** while on, new notes instantly change the pitch of the currently playing sound instead of starting it over. - `00xy`: **Arpeggio.** after using this effect the channel will rapidly switch between semitone values of `note`, `note + x` and `note + y`. - `E0xx`: **Set arpeggio speed.** this sets the number of ticks between arpeggio values. default is 1. - + - --- - `04xy`: **Vibrato.** changes pitch to be "wavy" with a sine LFO. `x` is the speed, while `y` is the depth. - Maximum vibrato depth is ±1 semitone. - `E3xx`: **Set vibrato direction.** `xx` may be one of the following: @@ -55,7 +55,7 @@ not all chips support these effects. - `82xx`: **Set volume of right channel** (from `00` to `FF`). - `89xx`: **Set volume of rear left channel** (from `00` to `FF`). - `8Axx`: **Set volume of rear right channel** (from `00` to `FF`). - + - --- - `80xx`: **Set panning (linear).** this effect behaves more like other trackers: - `00` is left. - `80` is center. @@ -65,11 +65,11 @@ not all chips support these effects. - `09xx`: **Set speed/groove.** if no grooves are defined, this sets speed. If alternating speeds are active, this sets the first speed. - `0Fxx`: **Set speed 2.** during alternating speeds or a groove, this sets the second speed. - + - --- - `Cxxx`: **Set tick rate.** changes tick rate to `xxx` Hz (ticks per second). - `xxx` may be from `000` to `3FF`. - `F0xx`: **Set BPM.** changes tick rate according to beats per minute. range is `01` to `FF`. - + - --- - `0Bxx`: **Jump to order.** `x` is the order to play after the current row. - this marks the end of a loop with order `x` as the loop start. - `0Dxx`: **Jump to next pattern.** skips the current row and remainder of current order. `x` is the row at which to start playing the next pattern. From e6bfc9e4db68df55e58f352c2d75ac3026e7012b Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Thu, 10 Aug 2023 17:33:35 -0700 Subject: [PATCH 173/202] Dunno why this is in here. Finally getting rid of it. I hope? --- doc/2-interface/effect-list.md | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 doc/2-interface/effect-list.md diff --git a/doc/2-interface/effect-list.md b/doc/2-interface/effect-list.md deleted file mode 100644 index 1f76f5051..000000000 --- a/doc/2-interface/effect-list.md +++ /dev/null @@ -1,10 +0,0 @@ -# effect list - -![effect list window](effect-list.png) - -this window provides a list of the effects that are available. - -for more details about these effects, see [the effects page](../3-pattern/effects.md). - -- **Chip at cursor**: the currently selected chip. the list only shows available effects for this chip. -- menu button: opens a small list of effect categories. toggle each to change whether they're shown in the list. From d65c9f93459089f8e8d7c36e21e2a8b2f049e650 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Thu, 10 Aug 2023 23:28:20 -0700 Subject: [PATCH 174/202] Updating settings doc. --- doc/2-interface/settings.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/doc/2-interface/settings.md b/doc/2-interface/settings.md index dfb5121a6..4cfbc8544 100644 --- a/doc/2-interface/settings.md +++ b/doc/2-interface/settings.md @@ -391,9 +391,14 @@ settings are saved when clicking the **OK** button at the bottom of the dialog. ### Assets -- **Unified instrument/wavetable/sample list** -- **Horizontal instrument list** +- **Unified instrument/wavetable/sample list**: combines all three types of assets into one list. + - the buttons act as appropriate to the currently selected asset or header. +- **Horizontal instrument list**: when there are more instruments than there is room to display them... + - if on, scroll horizontally through multiple columns. + - if off, scroll vertically in one long column. - **Colorize instrument editor using instrument type** +- **Display instrument type menu when adding instrument** + - if turned off, the menu can still be opened by right-clicking the add button. ### Macro Editor From 8006e40e26abead1d5c1e0836e729d4464308958 Mon Sep 17 00:00:00 2001 From: MooingLemur Date: Fri, 11 Aug 2023 01:02:18 -0700 Subject: [PATCH 175/202] ZSM: include song tuning in export --- papers/zsm-format.md | 3 ++- src/engine/zsm.cpp | 25 ++++++++++++++++--------- src/engine/zsm.h | 3 ++- src/engine/zsmOps.cpp | 10 ++++++++++ 4 files changed, 30 insertions(+), 11 deletions(-) diff --git a/papers/zsm-format.md b/papers/zsm-format.md index e0fd2c02d..682e63b46 100644 --- a/papers/zsm-format.md +++ b/papers/zsm-format.md @@ -162,11 +162,12 @@ There are currently no supported expansion HW IDs assigned. The purpose of this channel is to provide for music synchronization cues that applications may use to perform operations in sync with the music (such as when the Goombas jump in New Super Mario Bros in time with the BOP! BOP! notes in the music). It is intended for the reference player to provide a sync channel callback, passing the data bytes to the callback function, and then to proceed with playback. -The synchronization format currently defines this one event type: +The synchronization format currently defines these event types: Event Type|Description|Message Format --|--|-- `0x00`|Generic sync message|`xx` (any value from `0x00`-`0xff`) +`0x01`|Song tuning|a signed byte indicating an offset from A-440 tuning represented in 256ths of a semitone An example of an EXTCMD containing one sync event might look as follows: `0x40 0x82 0x00 0x05` diff --git a/src/engine/zsm.cpp b/src/engine/zsm.cpp index 04bf68b91..660ccd14e 100644 --- a/src/engine/zsm.cpp +++ b/src/engine/zsm.cpp @@ -116,6 +116,10 @@ void DivZSM::writeYM(unsigned char a, unsigned char v) { } } +void DivZSM::writeSync(unsigned char a, unsigned char v) { + return syncCache.push_back(DivRegWrite(a,v)); +} + void DivZSM::writePSG(unsigned char a, unsigned char v) { // TODO: suppress writes to PSG voice that is not audible (volume=0) // ^ Let's leave these alone, ZSMKit has a feature that can benefit @@ -126,7 +130,7 @@ void DivZSM::writePSG(unsigned char a, unsigned char v) { } else if (a==68) { // Sync event numWrites++; - return syncCache.push_back(v); + return writeSync(0x00,v); } else if (a>=64) { return writePCM(a-64,v); } @@ -390,15 +394,18 @@ void DivZSM::flushWrites() { } } n=0; - while (n<(long)syncCache.size()) { // we have one or more sync events to write - int writes=syncCache.size()-n; - w->writeC(ZSM_EXT); - if (writes>ZSM_SYNC_MAX_WRITES) writes=ZSM_SYNC_MAX_WRITES; - w->writeC(ZSM_EXT_SYNC|(writes<<1)); - for (; writes>0; writes--) { - w->writeC(0x00); // 0x00 = Arbitrary sync message - w->writeC(syncCache[n++]); + for (DivRegWrite& write: syncCache) { + if (n%ZSM_SYNC_MAX_WRITES==0) { + w->writeC(ZSM_EXT); + if (syncCache.size()-n>ZSM_SYNC_MAX_WRITES) { + w->writeC((unsigned char)ZSM_EXT_SYNC|(ZSM_SYNC_MAX_WRITES<<1)); + } else { + w->writeC((unsigned char)ZSM_EXT_SYNC|((syncCache.size()-n)<<1)); + } } + n++; + w->writeC(write.addr); + w->writeC(write.val); } syncCache.clear(); numWrites=0; diff --git a/src/engine/zsm.h b/src/engine/zsm.h index ff497693f..d9d4f2620 100644 --- a/src/engine/zsm.h +++ b/src/engine/zsm.h @@ -63,7 +63,7 @@ class DivZSM { std::vector pcmData; std::vector pcmCache; std::vector pcmInsts; - std::vector syncCache; + std::vector syncCache; int loopOffset; int numWrites; int ticks; @@ -78,6 +78,7 @@ class DivZSM { void writeYM(unsigned char a, unsigned char v); void writePSG(unsigned char a, unsigned char v); void writePCM(unsigned char a, unsigned char v); + void writeSync(unsigned char a, unsigned char v); void tick(int numticks = 1); void setLoopPoint(); SafeWriter* finish(); diff --git a/src/engine/zsmOps.cpp b/src/engine/zsmOps.cpp index 92b8aecb8..124847446 100644 --- a/src/engine/zsmOps.cpp +++ b/src/engine/zsmOps.cpp @@ -107,6 +107,16 @@ SafeWriter* DivEngine::saveZSM(unsigned int zsmrate, bool loop) { // TODO: incorporate the Furnace meta-command for init data and filter // out writes to otherwise-unused channels. } + // Indicate the song's tuning as a sync meta-event + // specified in terms of how many 1/256th semitones + // the song is offset from standard A-440 tuning. + // This is mainly to benefit visualizations in players + // for non-standard tunings so that they can avoid + // displaying the entire song held in pitch bend. + // Tunings offsets that exceed a half semitone + // will simply be represented in a different key + signed char tuningoffset=(signed char)round(3072*(log(song.tuning/440.0)/log(2))); + zsm.writeSync(0x01,tuningoffset); while (!done) { if (loopPos==-1) { From 245fe1c092d94d56c31b408373543c887a3b6d9e Mon Sep 17 00:00:00 2001 From: MooingLemur Date: Fri, 11 Aug 2023 01:19:25 -0700 Subject: [PATCH 176/202] fix cast --- src/engine/zsm.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engine/zsm.cpp b/src/engine/zsm.cpp index 660ccd14e..96d39a4a0 100644 --- a/src/engine/zsm.cpp +++ b/src/engine/zsm.cpp @@ -398,9 +398,9 @@ void DivZSM::flushWrites() { if (n%ZSM_SYNC_MAX_WRITES==0) { w->writeC(ZSM_EXT); if (syncCache.size()-n>ZSM_SYNC_MAX_WRITES) { - w->writeC((unsigned char)ZSM_EXT_SYNC|(ZSM_SYNC_MAX_WRITES<<1)); + w->writeC((unsigned char)(ZSM_EXT_SYNC|(ZSM_SYNC_MAX_WRITES<<1))); } else { - w->writeC((unsigned char)ZSM_EXT_SYNC|((syncCache.size()-n)<<1)); + w->writeC((unsigned char)(ZSM_EXT_SYNC|((syncCache.size()-n)<<1))); } } n++; From 2365321d46540dd9ec2a4307b1a38b33304368fe Mon Sep 17 00:00:00 2001 From: MooingLemur Date: Fri, 11 Aug 2023 01:30:45 -0700 Subject: [PATCH 177/202] make clear the tuningoffset is okay to overflow --- src/engine/zsmOps.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/zsmOps.cpp b/src/engine/zsmOps.cpp index 124847446..c85186253 100644 --- a/src/engine/zsmOps.cpp +++ b/src/engine/zsmOps.cpp @@ -115,7 +115,7 @@ SafeWriter* DivEngine::saveZSM(unsigned int zsmrate, bool loop) { // displaying the entire song held in pitch bend. // Tunings offsets that exceed a half semitone // will simply be represented in a different key - signed char tuningoffset=(signed char)round(3072*(log(song.tuning/440.0)/log(2))); + signed char tuningoffset=(signed char)(round(3072*(log(song.tuning/440.0)/log(2))))&0xff; zsm.writeSync(0x01,tuningoffset); while (!done) { From 94383fae631ff533154ebc7207343d8bcb6fdacb Mon Sep 17 00:00:00 2001 From: MooingLemur Date: Fri, 11 Aug 2023 01:31:53 -0700 Subject: [PATCH 178/202] clarify comment --- src/engine/zsmOps.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/engine/zsmOps.cpp b/src/engine/zsmOps.cpp index c85186253..6b360976b 100644 --- a/src/engine/zsmOps.cpp +++ b/src/engine/zsmOps.cpp @@ -115,6 +115,7 @@ SafeWriter* DivEngine::saveZSM(unsigned int zsmrate, bool loop) { // displaying the entire song held in pitch bend. // Tunings offsets that exceed a half semitone // will simply be represented in a different key + // by nature of overflowing the signed char value signed char tuningoffset=(signed char)(round(3072*(log(song.tuning/440.0)/log(2))))&0xff; zsm.writeSync(0x01,tuningoffset); From 6324a2a9523a8760c3b12b5e055eeb002962149f Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 11 Aug 2023 16:14:06 -0500 Subject: [PATCH 179/202] OPN/2/A/B: fix ExtCh instrument issue #1053 --- src/engine/platform/genesis.cpp | 1 + src/engine/platform/genesisext.cpp | 8 ++++++++ src/engine/platform/ym2203.cpp | 1 + src/engine/platform/ym2203ext.cpp | 8 ++++++++ src/engine/platform/ym2608.cpp | 1 + src/engine/platform/ym2608ext.cpp | 8 ++++++++ src/engine/platform/ym2610.cpp | 1 + src/engine/platform/ym2610b.cpp | 1 + src/engine/platform/ym2610bext.cpp | 8 ++++++++ src/engine/platform/ym2610ext.cpp | 8 ++++++++ 10 files changed, 45 insertions(+) diff --git a/src/engine/platform/genesis.cpp b/src/engine/platform/genesis.cpp index 9a8bafc94..3ce422991 100644 --- a/src/engine/platform/genesis.cpp +++ b/src/engine/platform/genesis.cpp @@ -972,6 +972,7 @@ int DivPlatformGenesis::dispatch(DivCommand c) { } case DIV_CMD_FM_EXTCH: { if (extSys) { + if (extMode==(bool)c.value) break; extMode=c.value; immWrite(0x27,extMode?0x40:0); } diff --git a/src/engine/platform/genesisext.cpp b/src/engine/platform/genesisext.cpp index 56ae1ceaf..b901e2518 100644 --- a/src/engine/platform/genesisext.cpp +++ b/src/engine/platform/genesisext.cpp @@ -144,6 +144,7 @@ int DivPlatformGenesisExt::dispatch(DivCommand c) { opChan[ch].insChanged=true; } opChan[ch].ins=c.value; + chan[extChanOffs].ins=opChan[ch].ins; break; case DIV_CMD_PANNING: { if (c.value==0 && c.value2==0) { @@ -219,8 +220,15 @@ int DivPlatformGenesisExt::dispatch(DivCommand c) { break; } case DIV_CMD_FM_EXTCH: { + if (extMode==(bool)c.value) break; extMode=c.value; immWrite(0x27,extMode?0x40:0); + if (!extMode) { + for (int i=0; i<4; i++) { + opChan[i].insChanged=true; + } + chan[extChanOffs].insChanged=true; + } break; } case DIV_CMD_FM_LFO: { diff --git a/src/engine/platform/ym2203.cpp b/src/engine/platform/ym2203.cpp index 68cccca45..02e92e191 100644 --- a/src/engine/platform/ym2203.cpp +++ b/src/engine/platform/ym2203.cpp @@ -670,6 +670,7 @@ int DivPlatformYM2203::dispatch(DivCommand c) { } case DIV_CMD_FM_EXTCH: { if (extSys) { + if (extMode==(bool)c.value) break; extMode=c.value; immWrite(0x27,extMode?0x40:0); } diff --git a/src/engine/platform/ym2203ext.cpp b/src/engine/platform/ym2203ext.cpp index 8bad13d48..675e85500 100644 --- a/src/engine/platform/ym2203ext.cpp +++ b/src/engine/platform/ym2203ext.cpp @@ -138,6 +138,7 @@ int DivPlatformYM2203Ext::dispatch(DivCommand c) { opChan[ch].insChanged=true; } opChan[ch].ins=c.value; + chan[extChanOffs].ins=opChan[ch].ins; break; case DIV_CMD_PITCH: { opChan[ch].pitch=c.value; @@ -182,8 +183,15 @@ int DivPlatformYM2203Ext::dispatch(DivCommand c) { break; } case DIV_CMD_FM_EXTCH: { + if (extMode==(bool)c.value) break; extMode=c.value; immWrite(0x27,extMode?0x40:0); + if (!extMode) { + for (int i=0; i<4; i++) { + opChan[i].insChanged=true; + } + chan[extChanOffs].insChanged=true; + } break; } case DIV_CMD_FM_FB: { diff --git a/src/engine/platform/ym2608.cpp b/src/engine/platform/ym2608.cpp index 02a5ffa08..183533f81 100644 --- a/src/engine/platform/ym2608.cpp +++ b/src/engine/platform/ym2608.cpp @@ -1153,6 +1153,7 @@ int DivPlatformYM2608::dispatch(DivCommand c) { } case DIV_CMD_FM_EXTCH: { if (extSys) { + if (extMode==(bool)c.value) break; extMode=c.value; immWrite(0x27,extMode?0x40:0); } diff --git a/src/engine/platform/ym2608ext.cpp b/src/engine/platform/ym2608ext.cpp index 0801f0885..fae3a9157 100644 --- a/src/engine/platform/ym2608ext.cpp +++ b/src/engine/platform/ym2608ext.cpp @@ -141,6 +141,7 @@ int DivPlatformYM2608Ext::dispatch(DivCommand c) { opChan[ch].insChanged=true; } opChan[ch].ins=c.value; + chan[extChanOffs].ins=opChan[ch].ins; break; case DIV_CMD_PANNING: { if (c.value==0 && c.value2==0) { @@ -200,8 +201,15 @@ int DivPlatformYM2608Ext::dispatch(DivCommand c) { break; } case DIV_CMD_FM_EXTCH: { + if (extMode==(bool)c.value) break; extMode=c.value; immWrite(0x27,extMode?0x40:0); + if (!extMode) { + for (int i=0; i<4; i++) { + opChan[i].insChanged=true; + } + chan[extChanOffs].insChanged=true; + } break; } case DIV_CMD_FM_LFO: { diff --git a/src/engine/platform/ym2610.cpp b/src/engine/platform/ym2610.cpp index 4fbf78595..5a1d80b58 100644 --- a/src/engine/platform/ym2610.cpp +++ b/src/engine/platform/ym2610.cpp @@ -1125,6 +1125,7 @@ int DivPlatformYM2610::dispatch(DivCommand c) { } case DIV_CMD_FM_EXTCH: { if (extSys) { + if (extMode==(bool)c.value) break; extMode=c.value; immWrite(0x27,extMode?0x40:0); } diff --git a/src/engine/platform/ym2610b.cpp b/src/engine/platform/ym2610b.cpp index 4fff47279..d65e50140 100644 --- a/src/engine/platform/ym2610b.cpp +++ b/src/engine/platform/ym2610b.cpp @@ -1192,6 +1192,7 @@ int DivPlatformYM2610B::dispatch(DivCommand c) { } case DIV_CMD_FM_EXTCH: { if (extSys) { + if (extMode==(bool)c.value) break; extMode=c.value; immWrite(0x27,extMode?0x40:0); } diff --git a/src/engine/platform/ym2610bext.cpp b/src/engine/platform/ym2610bext.cpp index 99727b734..98584f803 100644 --- a/src/engine/platform/ym2610bext.cpp +++ b/src/engine/platform/ym2610bext.cpp @@ -137,6 +137,7 @@ int DivPlatformYM2610BExt::dispatch(DivCommand c) { opChan[ch].insChanged=true; } opChan[ch].ins=c.value; + chan[extChanOffs].ins=opChan[ch].ins; break; case DIV_CMD_PANNING: { if (c.value==0 && c.value2==0) { @@ -196,8 +197,15 @@ int DivPlatformYM2610BExt::dispatch(DivCommand c) { break; } case DIV_CMD_FM_EXTCH: { + if (extMode==(bool)c.value) break; extMode=c.value; immWrite(0x27,extMode?0x40:0); + if (!extMode) { + for (int i=0; i<4; i++) { + opChan[i].insChanged=true; + } + chan[extChanOffs].insChanged=true; + } break; } case DIV_CMD_FM_LFO: { diff --git a/src/engine/platform/ym2610ext.cpp b/src/engine/platform/ym2610ext.cpp index c35599fdd..979431d6b 100644 --- a/src/engine/platform/ym2610ext.cpp +++ b/src/engine/platform/ym2610ext.cpp @@ -137,6 +137,7 @@ int DivPlatformYM2610Ext::dispatch(DivCommand c) { opChan[ch].insChanged=true; } opChan[ch].ins=c.value; + chan[extChanOffs].ins=opChan[ch].ins; break; case DIV_CMD_PANNING: { if (c.value==0 && c.value2==0) { @@ -196,8 +197,15 @@ int DivPlatformYM2610Ext::dispatch(DivCommand c) { break; } case DIV_CMD_FM_EXTCH: { + if (extMode==(bool)c.value) break; extMode=c.value; immWrite(0x27,extMode?0x40:0); + if (!extMode) { + for (int i=0; i<4; i++) { + opChan[i].insChanged=true; + } + chan[extChanOffs].insChanged=true; + } break; } case DIV_CMD_FM_LFO: { From fe8f94b2b2db682bdebbf42e58d9bdbc5b32dfa6 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 11 Aug 2023 16:35:18 -0500 Subject: [PATCH 180/202] OPN/2/A/B: fix ExtCh muting on 18xx --- src/engine/platform/genesisext.cpp | 24 ++++++++++++++---------- src/engine/platform/ym2203ext.cpp | 18 +++++++++++------- src/engine/platform/ym2608ext.cpp | 22 +++++++++++++--------- src/engine/platform/ym2610bext.cpp | 22 +++++++++++++--------- src/engine/platform/ym2610ext.cpp | 22 +++++++++++++--------- 5 files changed, 64 insertions(+), 44 deletions(-) diff --git a/src/engine/platform/genesisext.cpp b/src/engine/platform/genesisext.cpp index b901e2518..d8760be9a 100644 --- a/src/engine/platform/genesisext.cpp +++ b/src/engine/platform/genesisext.cpp @@ -439,17 +439,21 @@ void DivPlatformGenesisExt::muteChannel(int ch, bool mute) { return; } isOpMuted[ch-2]=mute; - - int ordch=orderedOps[ch-2]; - unsigned short baseAddr=chanOffs[2]|opOffs[ordch]; - DivInstrumentFM::Operator op=chan[2].state.op[ordch]; - if (isOpMuted[ch-2] || !op.enable) { - rWrite(baseAddr+0x40,127); - } else { - rWrite(baseAddr+0x40,127-VOL_SCALE_LOG_BROKEN(127-op.tl,opChan[ch-2].outVol&0x7f,127)); - } - rWrite(chanOffs[2]+0xb4,(IS_EXTCH_MUTED?0:(opChan[ch-2].pan<<6))|(chan[2].state.fms&7)|((chan[2].state.ams&3)<<4)); + DivPlatformGenesis::muteChannel(extChanOffs,IS_EXTCH_MUTED); + + if (extMode) { + int ordch=orderedOps[ch-2]; + unsigned short baseAddr=chanOffs[2]|opOffs[ordch]; + DivInstrumentFM::Operator op=chan[2].state.op[ordch]; + if (isOpMuted[ch-2] || !op.enable) { + rWrite(baseAddr+0x40,127); + } else { + rWrite(baseAddr+0x40,127-VOL_SCALE_LOG_BROKEN(127-op.tl,opChan[ch-2].outVol&0x7f,127)); + } + + rWrite(chanOffs[2]+0xb4,(IS_EXTCH_MUTED?0:(opChan[ch-2].pan<<6))|(chan[2].state.fms&7)|((chan[2].state.ams&3)<<4)); + } } static int opChanOffsL[4]={ diff --git a/src/engine/platform/ym2203ext.cpp b/src/engine/platform/ym2203ext.cpp index 675e85500..31294bd4f 100644 --- a/src/engine/platform/ym2203ext.cpp +++ b/src/engine/platform/ym2203ext.cpp @@ -603,13 +603,17 @@ void DivPlatformYM2203Ext::muteChannel(int ch, bool mute) { } isOpMuted[ch-2]=mute; - int ordch=orderedOps[ch-2]; - unsigned short baseAddr=chanOffs[2]|opOffs[ordch]; - DivInstrumentFM::Operator op=chan[2].state.op[ordch]; - if (isOpMuted[ch-2] || !op.enable) { - rWrite(baseAddr+0x40,127); - } else { - rWrite(baseAddr+0x40,127-VOL_SCALE_LOG_BROKEN(127-op.tl,opChan[ch-2].outVol&0x7f,127)); + DivPlatformYM2203::muteChannel(extChanOffs,IS_EXTCH_MUTED); + + if (extMode) { + int ordch=orderedOps[ch-2]; + unsigned short baseAddr=chanOffs[2]|opOffs[ordch]; + DivInstrumentFM::Operator op=chan[2].state.op[ordch]; + if (isOpMuted[ch-2] || !op.enable) { + rWrite(baseAddr+0x40,127); + } else { + rWrite(baseAddr+0x40,127-VOL_SCALE_LOG_BROKEN(127-op.tl,opChan[ch-2].outVol&0x7f,127)); + } } } diff --git a/src/engine/platform/ym2608ext.cpp b/src/engine/platform/ym2608ext.cpp index fae3a9157..860c370fe 100644 --- a/src/engine/platform/ym2608ext.cpp +++ b/src/engine/platform/ym2608ext.cpp @@ -638,16 +638,20 @@ void DivPlatformYM2608Ext::muteChannel(int ch, bool mute) { } isOpMuted[ch-2]=mute; - int ordch=orderedOps[ch-2]; - unsigned short baseAddr=chanOffs[2]|opOffs[ordch]; - DivInstrumentFM::Operator op=chan[2].state.op[ordch]; - if (isOpMuted[ch-2] || !op.enable) { - rWrite(baseAddr+0x40,127); - } else { - rWrite(baseAddr+0x40,127-VOL_SCALE_LOG_BROKEN(127-op.tl,opChan[ch-2].outVol&0x7f,127)); - } + DivPlatformYM2608::muteChannel(extChanOffs,IS_EXTCH_MUTED); + + if (extMode) { + int ordch=orderedOps[ch-2]; + unsigned short baseAddr=chanOffs[2]|opOffs[ordch]; + DivInstrumentFM::Operator op=chan[2].state.op[ordch]; + if (isOpMuted[ch-2] || !op.enable) { + rWrite(baseAddr+0x40,127); + } else { + rWrite(baseAddr+0x40,127-VOL_SCALE_LOG_BROKEN(127-op.tl,opChan[ch-2].outVol&0x7f,127)); + } - rWrite(chanOffs[2]+0xb4,(IS_EXTCH_MUTED?0:(opChan[ch-2].pan<<6))|(chan[2].state.fms&7)|((chan[2].state.ams&3)<<4)); + rWrite(chanOffs[2]+0xb4,(IS_EXTCH_MUTED?0:(opChan[ch-2].pan<<6))|(chan[2].state.fms&7)|((chan[2].state.ams&3)<<4)); + } } void DivPlatformYM2608Ext::forceIns() { diff --git a/src/engine/platform/ym2610bext.cpp b/src/engine/platform/ym2610bext.cpp index 98584f803..ff2a398fd 100644 --- a/src/engine/platform/ym2610bext.cpp +++ b/src/engine/platform/ym2610bext.cpp @@ -633,16 +633,20 @@ void DivPlatformYM2610BExt::muteChannel(int ch, bool mute) { } isOpMuted[ch-extChanOffs]=mute; - int ordch=orderedOps[ch-extChanOffs]; - unsigned short baseAddr=chanOffs[extChanOffs]|opOffs[ordch]; - DivInstrumentFM::Operator op=chan[extChanOffs].state.op[ordch]; - if (isOpMuted[ch-extChanOffs] || !op.enable) { - rWrite(baseAddr+0x40,127); - } else { - rWrite(baseAddr+0x40,127-VOL_SCALE_LOG_BROKEN(127-op.tl,opChan[ch-extChanOffs].outVol&0x7f,127)); - } + DivPlatformYM2610B::muteChannel(extChanOffs,IS_EXTCH_MUTED); + + if (extMode) { + int ordch=orderedOps[ch-extChanOffs]; + unsigned short baseAddr=chanOffs[extChanOffs]|opOffs[ordch]; + DivInstrumentFM::Operator op=chan[extChanOffs].state.op[ordch]; + if (isOpMuted[ch-extChanOffs] || !op.enable) { + rWrite(baseAddr+0x40,127); + } else { + rWrite(baseAddr+0x40,127-VOL_SCALE_LOG_BROKEN(127-op.tl,opChan[ch-extChanOffs].outVol&0x7f,127)); + } - rWrite(chanOffs[extChanOffs]+0xb4,(IS_EXTCH_MUTED?0:(opChan[ch-extChanOffs].pan<<6))|(chan[extChanOffs].state.fms&7)|((chan[extChanOffs].state.ams&3)<<4)); + rWrite(chanOffs[extChanOffs]+0xb4,(IS_EXTCH_MUTED?0:(opChan[ch-extChanOffs].pan<<6))|(chan[extChanOffs].state.fms&7)|((chan[extChanOffs].state.ams&3)<<4)); + } } void DivPlatformYM2610BExt::forceIns() { diff --git a/src/engine/platform/ym2610ext.cpp b/src/engine/platform/ym2610ext.cpp index 979431d6b..65124f474 100644 --- a/src/engine/platform/ym2610ext.cpp +++ b/src/engine/platform/ym2610ext.cpp @@ -633,16 +633,20 @@ void DivPlatformYM2610Ext::muteChannel(int ch, bool mute) { } isOpMuted[ch-extChanOffs]=mute; - int ordch=orderedOps[ch-extChanOffs]; - unsigned short baseAddr=chanOffs[extChanOffs]|opOffs[ordch]; - DivInstrumentFM::Operator op=chan[extChanOffs].state.op[ordch]; - if (isOpMuted[ch-extChanOffs] || !op.enable) { - rWrite(baseAddr+0x40,127); - } else { - rWrite(baseAddr+0x40,127-VOL_SCALE_LOG_BROKEN(127-op.tl,opChan[ch-extChanOffs].outVol&0x7f,127)); - } + DivPlatformYM2610::muteChannel(extChanOffs,IS_EXTCH_MUTED); + + if (extMode) { + int ordch=orderedOps[ch-extChanOffs]; + unsigned short baseAddr=chanOffs[extChanOffs]|opOffs[ordch]; + DivInstrumentFM::Operator op=chan[extChanOffs].state.op[ordch]; + if (isOpMuted[ch-extChanOffs] || !op.enable) { + rWrite(baseAddr+0x40,127); + } else { + rWrite(baseAddr+0x40,127-VOL_SCALE_LOG_BROKEN(127-op.tl,opChan[ch-extChanOffs].outVol&0x7f,127)); + } - rWrite(chanOffs[extChanOffs]+0xb4,(IS_EXTCH_MUTED?0:(opChan[ch-extChanOffs].pan<<6))|(chan[extChanOffs].state.fms&7)|((chan[extChanOffs].state.ams&3)<<4)); + rWrite(chanOffs[extChanOffs]+0xb4,(IS_EXTCH_MUTED?0:(opChan[ch-extChanOffs].pan<<6))|(chan[extChanOffs].state.fms&7)|((chan[extChanOffs].state.ams&3)<<4)); + } } void DivPlatformYM2610Ext::forceIns() { From a1d74e7dc16c7a2e44bc3cee423050a00df79ebc Mon Sep 17 00:00:00 2001 From: MooingLemur Date: Fri, 11 Aug 2023 13:03:37 -0700 Subject: [PATCH 181/202] ZSM: add optimize for size toggle --- src/engine/engine.h | 2 +- src/engine/zsm.cpp | 14 +++++++++++--- src/engine/zsm.h | 2 ++ src/engine/zsmOps.cpp | 5 ++++- src/gui/gui.cpp | 5 ++++- src/gui/gui.h | 2 +- 6 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/engine/engine.h b/src/engine/engine.h index 0f13659b8..effa0273f 100644 --- a/src/engine/engine.h +++ b/src/engine/engine.h @@ -605,7 +605,7 @@ class DivEngine { // - -2 to add a whole loop of trailing SafeWriter* saveVGM(bool* sysToExport=NULL, bool loop=true, int version=0x171, bool patternHints=false, bool directStream=false, int trailingTicks=-1); // dump to ZSM. - SafeWriter* saveZSM(unsigned int zsmrate=60, bool loop=true); + SafeWriter* saveZSM(unsigned int zsmrate=60, bool loop=true, bool optimize=true); // dump command stream. SafeWriter* saveCommand(bool binary=false); // export to an audio file diff --git a/src/engine/zsm.cpp b/src/engine/zsm.cpp index 96d39a4a0..14e823040 100644 --- a/src/engine/zsm.cpp +++ b/src/engine/zsm.cpp @@ -66,6 +66,8 @@ void DivZSM::init(unsigned int rate) { // Channel masks ymMask=0; psgMask=0; + // Optimize writes + optimize=false; } int DivZSM::getoffset() { @@ -121,9 +123,6 @@ void DivZSM::writeSync(unsigned char a, unsigned char v) { } void DivZSM::writePSG(unsigned char a, unsigned char v) { - // TODO: suppress writes to PSG voice that is not audible (volume=0) - // ^ Let's leave these alone, ZSMKit has a feature that can benefit - // from silent channels. if (a>=69) { logD("ZSM: ignoring VERA PSG write a=%02x v=%02x",a,v); return; @@ -213,6 +212,10 @@ void DivZSM::setLoopPoint() { } } +void DivZSM::setOptimize(bool o) { + optimize = o; +} + SafeWriter* DivZSM::finish() { tick(0); // flush any pending writes / ticks flushTicks(); // flush ticks in case there were no writes pending @@ -278,6 +281,11 @@ void DivZSM::flushWrites() { flushTicks(); // only flush ticks if there are writes pending. for (unsigned char i=0; i<64; i++) { if (psgState[psg_NEW][i]==psgState[psg_PREV][i]) continue; + // if optimize=true, suppress writes to PSG voices that are not audible (volume=0 or R+L=0) + // ZSMKit has a feature that can benefit from having silent channels + // updated, so this is something that can be toggled off or on for export + if (optimize && i%4!=2 && (psgState[psg_NEW][(i&0x3c)+2]&0x3f)==0) continue; // vol + if (optimize && i%4!=2 && (psgState[psg_NEW][(i&0x3c)+2]&0xc0)==0) continue; // R+L psgState[psg_PREV][i]=psgState[psg_NEW][i]; w->writeC(i); w->writeC(psgState[psg_NEW][i]); diff --git a/src/engine/zsm.h b/src/engine/zsm.h index d9d4f2620..79b8b116c 100644 --- a/src/engine/zsm.h +++ b/src/engine/zsm.h @@ -70,6 +70,7 @@ class DivZSM { int tickRate; int ymMask; int psgMask; + bool optimize; public: DivZSM(); ~DivZSM(); @@ -79,6 +80,7 @@ class DivZSM { void writePSG(unsigned char a, unsigned char v); void writePCM(unsigned char a, unsigned char v); void writeSync(unsigned char a, unsigned char v); + void setOptimize(bool o); void tick(int numticks = 1); void setLoopPoint(); SafeWriter* finish(); diff --git a/src/engine/zsmOps.cpp b/src/engine/zsmOps.cpp index 6b360976b..3c72da663 100644 --- a/src/engine/zsmOps.cpp +++ b/src/engine/zsmOps.cpp @@ -26,7 +26,7 @@ constexpr int MASTER_CLOCK_PREC=(sizeof(void*)==8)?8:0; constexpr int MASTER_CLOCK_MASK=(sizeof(void*)==8)?0xff:0; -SafeWriter* DivEngine::saveZSM(unsigned int zsmrate, bool loop) { +SafeWriter* DivEngine::saveZSM(unsigned int zsmrate, bool loop, bool optimize) { int VERA=-1; int YM=-1; int IGNORED=0; @@ -118,6 +118,9 @@ SafeWriter* DivEngine::saveZSM(unsigned int zsmrate, bool loop) { // by nature of overflowing the signed char value signed char tuningoffset=(signed char)(round(3072*(log(song.tuning/440.0)/log(2))))&0xff; zsm.writeSync(0x01,tuningoffset); + // Set optimize flag, which mainly buffers PSG writes + // whenever the channel is silent + zsm.setOptimize(optimize); while (!done) { if (loopPos==-1) { diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 6950c72f4..b2abd3401 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -4108,6 +4108,8 @@ bool FurnaceGUI::loop() { } ImGui::Checkbox("loop",&zsmExportLoop); ImGui::SameLine(); + ImGui::Checkbox("optimize size",&zsmExportOptimize); + ImGui::SameLine(); if (ImGui::Button("Begin Export")) { openFileDialog(GUI_FILE_EXPORT_ZSM); ImGui::CloseCurrentPopup(); @@ -5067,7 +5069,7 @@ bool FurnaceGUI::loop() { break; } case GUI_FILE_EXPORT_ZSM: { - SafeWriter* w=e->saveZSM(zsmExportTickRate,zsmExportLoop); + SafeWriter* w=e->saveZSM(zsmExportTickRate,zsmExportLoop,zsmExportOptimize); if (w!=NULL) { FILE* f=ps_fopen(copyOfName.c_str(),"wb"); if (f!=NULL) { @@ -6799,6 +6801,7 @@ FurnaceGUI::FurnaceGUI(): displayExporting(false), vgmExportLoop(true), zsmExportLoop(true), + zsmExportOptimize(true), vgmExportPatternHints(false), vgmExportDirectStream(false), displayInsTypeList(false), diff --git a/src/gui/gui.h b/src/gui/gui.h index 2858b72f1..b26fcc6eb 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1324,7 +1324,7 @@ class FurnaceGUI { std::vector availRenderDrivers; std::vector availAudioDrivers; - bool quit, warnQuit, willCommit, edit, modified, displayError, displayExporting, vgmExportLoop, zsmExportLoop, vgmExportPatternHints; + bool quit, warnQuit, willCommit, edit, modified, displayError, displayExporting, vgmExportLoop, zsmExportLoop, zsmExportOptimize, vgmExportPatternHints; bool vgmExportDirectStream, displayInsTypeList; bool portrait, injectBackUp, mobileMenuOpen, warnColorPushed; bool wantCaptureKeyboard, oldWantCaptureKeyboard, displayMacroMenu; From 681c1d9fd7e6bf50ce93b1770d43503b40527c04 Mon Sep 17 00:00:00 2001 From: MooingLemur Date: Fri, 11 Aug 2023 14:55:52 -0700 Subject: [PATCH 182/202] implement requested changes --- src/engine/zsm.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/engine/zsm.cpp b/src/engine/zsm.cpp index 14e823040..2776379a0 100644 --- a/src/engine/zsm.cpp +++ b/src/engine/zsm.cpp @@ -67,7 +67,7 @@ void DivZSM::init(unsigned int rate) { ymMask=0; psgMask=0; // Optimize writes - optimize=false; + optimize=true; } int DivZSM::getoffset() { @@ -213,7 +213,7 @@ void DivZSM::setLoopPoint() { } void DivZSM::setOptimize(bool o) { - optimize = o; + optimize=o; } SafeWriter* DivZSM::finish() { @@ -284,8 +284,8 @@ void DivZSM::flushWrites() { // if optimize=true, suppress writes to PSG voices that are not audible (volume=0 or R+L=0) // ZSMKit has a feature that can benefit from having silent channels // updated, so this is something that can be toggled off or on for export - if (optimize && i%4!=2 && (psgState[psg_NEW][(i&0x3c)+2]&0x3f)==0) continue; // vol - if (optimize && i%4!=2 && (psgState[psg_NEW][(i&0x3c)+2]&0xc0)==0) continue; // R+L + if (optimize && (i&3)!=2 && (psgState[psg_NEW][(i&0x3c)+2]&0x3f)==0) continue; // vol + if (optimize && (i&3)!=2 && (psgState[psg_NEW][(i&0x3c)+2]&0xc0)==0) continue; // R+L psgState[psg_PREV][i]=psgState[psg_NEW][i]; w->writeC(i); w->writeC(psgState[psg_NEW][i]); From d531b714a9b96a2c82479485336ea42fe4c59630 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 11 Aug 2023 19:26:42 -0500 Subject: [PATCH 183/202] GUI: fix curOrder when pat view is not visible --- src/gui/gui.cpp | 4 ++++ src/gui/pattern.cpp | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 6950c72f4..b919fd255 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -4440,6 +4440,10 @@ bool FurnaceGUI::loop() { MEASURE(calcChanOsc,calcChanOsc()); + if (followPattern) { + curOrder=e->getOrder(); + } + if (mobileUI) { globalWinFlags=ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoBringToFrontOnFocus; //globalWinFlags=ImGuiWindowFlags_NoTitleBar; diff --git a/src/gui/pattern.cpp b/src/gui/pattern.cpp index c21372466..2805af02a 100644 --- a/src/gui/pattern.cpp +++ b/src/gui/pattern.cpp @@ -420,9 +420,6 @@ void FurnaceGUI::drawPattern() { //char id[32]; ImGui::PushFont(patFont); int ord=oldOrder; - if (followPattern) { - curOrder=e->getOrder(); - } oldOrder=curOrder; int chans=e->getTotalChannelCount(); int displayChans=0; From 3317866a000586838613a39813826ccd29cc8af0 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 11 Aug 2023 19:32:08 -0500 Subject: [PATCH 184/202] update wave/sample dirs when adding ins --- src/engine/engine.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/engine/engine.cpp b/src/engine/engine.cpp index 8c6c8a386..6421de73b 100644 --- a/src/engine/engine.cpp +++ b/src/engine/engine.cpp @@ -3113,6 +3113,8 @@ int DivEngine::addInstrumentPtr(DivInstrument* which) { song.ins.push_back(which); song.insLen=song.ins.size(); checkAssetDir(song.insDir,song.ins.size()); + checkAssetDir(song.waveDir,song.wave.size()); + checkAssetDir(song.sampleDir,song.sample.size()); saveLock.unlock(); BUSY_END; return song.insLen; From 5f2cfd4854f0ecd7308360ca79e0e88977afd720 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 11 Aug 2023 23:58:44 -0500 Subject: [PATCH 185/202] AY: don't use bit arrays issue #649 --- src/engine/platform/ay.cpp | 44 ++++++++++++++++++-------------- src/engine/platform/ay.h | 26 ++++++++----------- src/engine/platform/ay8930.cpp | 46 ++++++++++++++++++++-------------- src/engine/platform/ay8930.h | 26 ++++++++----------- src/gui/debug.cpp | 27 -------------------- 5 files changed, 74 insertions(+), 95 deletions(-) diff --git a/src/engine/platform/ay.cpp b/src/engine/platform/ay.cpp index 5d9a55932..9a1711763 100644 --- a/src/engine/platform/ay.cpp +++ b/src/engine/platform/ay.cpp @@ -115,7 +115,7 @@ const unsigned char dacLogTableAY[256]={ void DivPlatformAY8910::runDAC() { for (int i=0; i<3; i++) { - if (chan[i].active && chan[i].curPSGMode.dac && chan[i].dac.sample!=-1) { + if (chan[i].active && (chan[i].curPSGMode.val&8) && chan[i].dac.sample!=-1) { chan[i].dac.period+=chan[i].dac.rate; bool end=false; bool changed=false; @@ -243,7 +243,7 @@ void DivPlatformAY8910::tick(bool sysTick) { if (chan[i].std.vol.had) { chan[i].outVol=MIN(15,chan[i].std.vol.val)-(15-(chan[i].vol&15)); if (chan[i].outVol<0) chan[i].outVol=0; - if (!chan[i].nextPSGMode.dac) { + if (!(chan[i].nextPSGMode.val&8)) { if (isMuted[i]) { rWrite(0x08+i,0); } else if (intellivision && (chan[i].nextPSGMode.getEnvelope())) { @@ -265,7 +265,7 @@ void DivPlatformAY8910::tick(bool sysTick) { rWrite(0x06,31-chan[i].std.duty.val); } if (chan[i].std.wave.had) { - if (!chan[i].nextPSGMode.dac) { + if (!(chan[i].nextPSGMode.val&8)) { chan[i].nextPSGMode.val=(chan[i].std.wave.val+1)&7; if (chan[i].active) { chan[i].curPSGMode.val=chan[i].nextPSGMode.val; @@ -290,7 +290,7 @@ void DivPlatformAY8910::tick(bool sysTick) { } if (chan[i].std.phaseReset.had) { if (chan[i].std.phaseReset.val==1) { - if (chan[i].nextPSGMode.dac) { + if (chan[i].nextPSGMode.val&8) { if (dumpWrites) addWrite(0xffff0002+(i<<8),0); if (chan[i].dac.sample<0 || chan[i].dac.sample>=parent->song.sampleLen) { if (dumpWrites) { @@ -340,7 +340,7 @@ void DivPlatformAY8910::tick(bool sysTick) { if (chan[i].keyOn) { //rWrite(16+i*5+1,((chan[i].duty&3)<<6)|(63-(ins->gb.soundLen&63))); //rWrite(16+i*5+2,((chan[i].vol<<4))|(ins->gb.envLen&7)|((ins->gb.envDir&1)<<3)); - if (!chan[i].nextPSGMode.dac) { + if (!(chan[i].nextPSGMode.val&8)) { chan[i].curPSGMode.val=chan[i].nextPSGMode.val; } } @@ -396,11 +396,11 @@ int DivPlatformAY8910::dispatch(DivCommand c) { case DIV_CMD_NOTE_ON: { DivInstrument* ins=parent->getIns(chan[c.chan].ins,DIV_INS_AY); if (!parent->song.disableSampleMacro && (ins->type==DIV_INS_AMIGA || ins->amiga.useSample)) { - chan[c.chan].nextPSGMode.dac=true; + chan[c.chan].nextPSGMode.val|=8; } else if (chan[c.chan].dac.furnaceDAC) { - chan[c.chan].nextPSGMode.dac=false; + chan[c.chan].nextPSGMode.val&=~8; } - if (chan[c.chan].nextPSGMode.dac) { + if (chan[c.chan].nextPSGMode.val&8) { if (skipRegisterWrites) break; if (!parent->song.disableSampleMacro && (ins->type==DIV_INS_AMIGA || ins->amiga.useSample)) { if (c.value!=DIV_NOTE_NULL) { @@ -452,7 +452,8 @@ int DivPlatformAY8910::dispatch(DivCommand c) { } chan[c.chan].dac.furnaceDAC=false; } - chan[c.chan].curPSGMode.dac=chan[c.chan].nextPSGMode.dac; + chan[c.chan].curPSGMode.val&=~8; + chan[c.chan].curPSGMode.val|=chan[c.chan].nextPSGMode.val&8; break; } if (c.value!=DIV_NOTE_NULL) { @@ -466,7 +467,7 @@ int DivPlatformAY8910::dispatch(DivCommand c) { if (!parent->song.brokenOutVol && !chan[c.chan].std.vol.will) { chan[c.chan].outVol=chan[c.chan].vol; } - if (!chan[c.chan].nextPSGMode.dac) { + if (!(chan[c.chan].nextPSGMode.val&8)) { if (isMuted[c.chan]) { rWrite(0x08+c.chan,0); } else if (intellivision && (chan[c.chan].nextPSGMode.getEnvelope())) { @@ -480,7 +481,7 @@ int DivPlatformAY8910::dispatch(DivCommand c) { case DIV_CMD_NOTE_OFF: chan[c.chan].dac.sample=-1; if (dumpWrites) addWrite(0xffff0002+(c.chan<<8),0); - chan[c.chan].nextPSGMode.dac=false; + chan[c.chan].nextPSGMode.val&=~8; chan[c.chan].keyOff=true; chan[c.chan].active=false; chan[c.chan].macroInit(NULL); @@ -494,7 +495,7 @@ int DivPlatformAY8910::dispatch(DivCommand c) { if (!chan[c.chan].std.vol.has) { chan[c.chan].outVol=c.value; } - if (!chan[c.chan].nextPSGMode.dac) { + if (!(chan[c.chan].nextPSGMode.val&8)) { if (isMuted[c.chan]) { rWrite(0x08+c.chan,0); } else { @@ -553,7 +554,7 @@ int DivPlatformAY8910::dispatch(DivCommand c) { break; } case DIV_CMD_STD_NOISE_MODE: - if (!chan[c.chan].nextPSGMode.dac) { + if (!(chan[c.chan].nextPSGMode.val&8)) { if (c.value<16) { chan[c.chan].nextPSGMode.val=(c.value+1)&7; if (chan[c.chan].active) { @@ -578,11 +579,11 @@ int DivPlatformAY8910::dispatch(DivCommand c) { ayEnvMode=c.value>>4; rWrite(0x0d,ayEnvMode); if (c.value&15) { - chan[c.chan].nextPSGMode.envelope|=1; + chan[c.chan].nextPSGMode.val|=4; } else { - chan[c.chan].nextPSGMode.envelope&=~1; + chan[c.chan].nextPSGMode.val&=~4; } - if (!chan[c.chan].nextPSGMode.dac && chan[c.chan].active) { + if (!(chan[c.chan].nextPSGMode.val&8) && chan[c.chan].active) { chan[c.chan].curPSGMode.val=chan[c.chan].nextPSGMode.val; } if (isMuted[c.chan]) { @@ -628,9 +629,14 @@ int DivPlatformAY8910::dispatch(DivCommand c) { immWrite(14+(c.value?1:0),(c.value?portBVal:portAVal)); break; case DIV_CMD_SAMPLE_MODE: - chan[c.chan].nextPSGMode.dac=(c.value>0)?1:0; + if (c.value>0) { + chan[c.chan].nextPSGMode.val|=8; + } else { + chan[c.chan].nextPSGMode.val&=~8; + } if (chan[c.chan].active) { - chan[c.chan].curPSGMode.dac=chan[c.chan].nextPSGMode.dac; + chan[c.chan].curPSGMode.val&=~8; + chan[c.chan].curPSGMode.val|=chan[c.chan].nextPSGMode.val&8; } break; case DIV_CMD_SAMPLE_BANK: @@ -673,7 +679,7 @@ void DivPlatformAY8910::muteChannel(int ch, bool mute) { isMuted[ch]=mute; if (isMuted[ch]) { rWrite(0x08+ch,0); - } else if (chan[ch].active && chan[ch].nextPSGMode.dac) { + } else if (chan[ch].active && (chan[ch].nextPSGMode.val&8)) { rWrite(0x08+ch,chan[ch].dac.out); } else { if (intellivision && (chan[ch].nextPSGMode.getEnvelope()) && chan[ch].active) { diff --git a/src/engine/platform/ay.h b/src/engine/platform/ay.h index 999db1e57..2948f3b85 100644 --- a/src/engine/platform/ay.h +++ b/src/engine/platform/ay.h @@ -31,29 +31,25 @@ class DivPlatformAY8910: public DivDispatch { inline unsigned char regRemap(unsigned char reg) { return intellivision?AY8914RegRemap[reg&0x0f]:reg&0x0f; } struct Channel: public SharedChannel { struct PSGMode { - union { - struct { - unsigned char tone: 1; - unsigned char noise: 1; - unsigned char envelope: 1; - unsigned char dac: 1; - }; - unsigned char val=1; - }; + // bit 3: DAC + // bit 2: envelope + // bit 1: noise + // bit 0: tone + unsigned char val; unsigned char getTone() { - return dac?0:(tone<<0); + return (val&8)?0:(val&1); } unsigned char getNoise() { - return dac?0:(noise<<1); + return (val&8)?0:(val&2); } unsigned char getEnvelope() { - return dac?0:(envelope<<2); + return (val&8)?0:(val&4); } - PSGMode(unsigned char v=0): + PSGMode(unsigned char v=1): val(v) {} }; PSGMode curPSGMode; @@ -61,7 +57,7 @@ class DivPlatformAY8910: public DivDispatch { struct DAC { int sample, rate, period, pos, out; - unsigned char furnaceDAC: 1; + bool furnaceDAC; DAC(): sample(-1), @@ -69,7 +65,7 @@ class DivPlatformAY8910: public DivDispatch { period(0), pos(0), out(0), - furnaceDAC(0) {} + furnaceDAC(false) {} } dac; unsigned char autoEnvNum, autoEnvDen; diff --git a/src/engine/platform/ay8930.cpp b/src/engine/platform/ay8930.cpp index 10421942a..a337a2a31 100644 --- a/src/engine/platform/ay8930.cpp +++ b/src/engine/platform/ay8930.cpp @@ -111,7 +111,7 @@ const unsigned char dacLogTableAY8930[256]={ void DivPlatformAY8930::runDAC() { for (int i=0; i<3; i++) { - if (chan[i].active && chan[i].curPSGMode.dac && chan[i].dac.sample!=-1) { + if (chan[i].active && (chan[i].curPSGMode.val&8) && chan[i].dac.sample!=-1) { chan[i].dac.period+=chan[i].dac.rate; bool end=false; bool changed=false; @@ -235,7 +235,7 @@ void DivPlatformAY8930::tick(bool sysTick) { if (chan[i].std.vol.had) { chan[i].outVol=MIN(31,chan[i].std.vol.val)-(31-(chan[i].vol&31)); if (chan[i].outVol<0) chan[i].outVol=0; - if (!chan[i].nextPSGMode.dac) { + if (!(chan[i].nextPSGMode.val&8)) { if (isMuted[i]) { rWrite(0x08+i,0); } else { @@ -255,7 +255,7 @@ void DivPlatformAY8930::tick(bool sysTick) { rWrite(0x06,chan[i].std.duty.val); } if (chan[i].std.wave.had) { - if (!chan[i].nextPSGMode.dac) { + if (!(chan[i].nextPSGMode.val&8)) { chan[i].nextPSGMode.val=(chan[i].std.wave.val+1)&7; if (chan[i].active) { chan[i].curPSGMode.val=chan[i].nextPSGMode.val; @@ -278,7 +278,7 @@ void DivPlatformAY8930::tick(bool sysTick) { } if (chan[i].std.phaseReset.had) { if (chan[i].std.phaseReset.val==1) { - if (chan[i].nextPSGMode.dac) { + if (chan[i].nextPSGMode.val&8) { if (dumpWrites) addWrite(0xffff0002+(i<<8),0); if (chan[i].dac.sample<0 || chan[i].dac.sample>=parent->song.sampleLen) { if (dumpWrites) { @@ -337,7 +337,7 @@ void DivPlatformAY8930::tick(bool sysTick) { if (chan[i].freq<0) chan[i].freq=0; if (chan[i].freq>65535) chan[i].freq=65535; if (chan[i].keyOn) { - if (!chan[i].nextPSGMode.dac) { + if (!(chan[i].nextPSGMode.val&8)) { chan[i].curPSGMode.val=chan[i].nextPSGMode.val; } if (chan[i].insChanged) { @@ -397,11 +397,11 @@ int DivPlatformAY8930::dispatch(DivCommand c) { case DIV_CMD_NOTE_ON: { DivInstrument* ins=parent->getIns(chan[c.chan].ins,DIV_INS_AY8930); if (ins->type==DIV_INS_AMIGA || ins->amiga.useSample) { - chan[c.chan].nextPSGMode.dac=true; + chan[c.chan].nextPSGMode.val|=8; } else if (chan[c.chan].dac.furnaceDAC) { - chan[c.chan].nextPSGMode.dac=false; + chan[c.chan].nextPSGMode.val&=~8; } - if (chan[c.chan].nextPSGMode.dac) { + if (chan[c.chan].nextPSGMode.val&8) { if (skipRegisterWrites) break; if (ins->type==DIV_INS_AMIGA || ins->amiga.useSample) { if (c.value!=DIV_NOTE_NULL) { @@ -453,7 +453,8 @@ int DivPlatformAY8930::dispatch(DivCommand c) { } chan[c.chan].dac.furnaceDAC=false; } - chan[c.chan].curPSGMode.dac=chan[c.chan].nextPSGMode.dac; + chan[c.chan].curPSGMode.val&=~8; + chan[c.chan].curPSGMode.val|=chan[c.chan].nextPSGMode.val&8; break; } if (c.value!=DIV_NOTE_NULL) { @@ -467,7 +468,7 @@ int DivPlatformAY8930::dispatch(DivCommand c) { if (!parent->song.brokenOutVol && !chan[c.chan].std.vol.will) { chan[c.chan].outVol=chan[c.chan].vol; } - if (!chan[c.chan].nextPSGMode.dac) { + if (!(chan[c.chan].nextPSGMode.val&8)) { if (isMuted[c.chan]) { rWrite(0x08+c.chan,0); } else { @@ -479,7 +480,7 @@ int DivPlatformAY8930::dispatch(DivCommand c) { case DIV_CMD_NOTE_OFF: chan[c.chan].dac.sample=-1; if (dumpWrites) addWrite(0xffff0002+(c.chan<<8),0); - chan[c.chan].nextPSGMode.dac=false; + chan[c.chan].nextPSGMode.val&=~8; chan[c.chan].keyOff=true; chan[c.chan].active=false; chan[c.chan].macroInit(NULL); @@ -493,7 +494,7 @@ int DivPlatformAY8930::dispatch(DivCommand c) { if (!chan[c.chan].std.vol.has) { chan[c.chan].outVol=c.value; } - if (!chan[c.chan].nextPSGMode.dac) { + if (!(chan[c.chan].nextPSGMode.val&8)) { if (isMuted[c.chan]) { rWrite(0x08+c.chan,0); } else { @@ -548,7 +549,7 @@ int DivPlatformAY8930::dispatch(DivCommand c) { } case DIV_CMD_STD_NOISE_MODE: if (c.value<0x10) { - if (!chan[c.chan].nextPSGMode.dac) { + if (!(chan[c.chan].nextPSGMode.val&8)) { chan[c.chan].nextPSGMode.val=(c.value+1)&7; if (chan[c.chan].active) { chan[c.chan].curPSGMode.val=chan[c.chan].nextPSGMode.val; @@ -571,11 +572,11 @@ int DivPlatformAY8930::dispatch(DivCommand c) { chan[c.chan].envelope.mode=c.value>>4; rWrite(regMode[c.chan],chan[c.chan].envelope.mode); if (c.value&15) { - chan[c.chan].nextPSGMode.envelope|=1; + chan[c.chan].nextPSGMode.val|=4; } else { - chan[c.chan].nextPSGMode.envelope&=~1; + chan[c.chan].nextPSGMode.val&=~4; } - if (!chan[c.chan].nextPSGMode.dac && chan[c.chan].active) { + if (!(chan[c.chan].nextPSGMode.val&8) && chan[c.chan].active) { chan[c.chan].curPSGMode.val=chan[c.chan].nextPSGMode.val; } if (isMuted[c.chan]) { @@ -630,8 +631,15 @@ int DivPlatformAY8930::dispatch(DivCommand c) { immWrite(14+(c.value?1:0),(c.value?portBVal:portAVal)); break; case DIV_CMD_SAMPLE_MODE: - chan[c.chan].nextPSGMode.dac=(c.value>0)?1:0; - chan[c.chan].curPSGMode.dac=chan[c.chan].nextPSGMode.dac; + if (c.value>0) { + chan[c.chan].nextPSGMode.val|=8; + } else { + chan[c.chan].nextPSGMode.val&=~8; + } + if (chan[c.chan].active) { + chan[c.chan].curPSGMode.val&=~8; + chan[c.chan].curPSGMode.val|=chan[c.chan].nextPSGMode.val&8; + } break; case DIV_CMD_SAMPLE_BANK: sampleBank=c.value; @@ -672,7 +680,7 @@ void DivPlatformAY8930::muteChannel(int ch, bool mute) { if (isMuted[ch]) { rWrite(0x08+ch,0); } else if (chan[ch].active) { - if (chan[ch].nextPSGMode.dac) { + if (chan[ch].nextPSGMode.val&8) { rWrite(0x08+ch,chan[ch].dac.out&31); } else { rWrite(0x08+ch,(chan[ch].outVol&31)|((chan[ch].nextPSGMode.getEnvelope())<<3)); diff --git a/src/engine/platform/ay8930.h b/src/engine/platform/ay8930.h index 113aed917..0ff69ad40 100644 --- a/src/engine/platform/ay8930.h +++ b/src/engine/platform/ay8930.h @@ -39,29 +39,25 @@ class DivPlatformAY8930: public DivDispatch { } envelope; struct PSGMode { - union { - struct { - unsigned char tone: 1; - unsigned char noise: 1; - unsigned char envelope: 1; - unsigned char dac: 1; - }; - unsigned char val=1; - }; + // bit 3: DAC + // bit 2: envelope + // bit 1: noise + // bit 0: tone + unsigned char val; unsigned char getTone() { - return dac?0:(tone<<0); + return (val&8)?0:(val&1); } unsigned char getNoise() { - return dac?0:(noise<<1); + return (val&8)?0:(val&2); } unsigned char getEnvelope() { - return dac?0:(envelope<<2); + return (val&8)?0:(val&4); } - PSGMode(unsigned char v=0): + PSGMode(unsigned char v=1): val(v) {} }; PSGMode curPSGMode; @@ -69,7 +65,7 @@ class DivPlatformAY8930: public DivDispatch { struct DAC { int sample, rate, period, pos, out; - unsigned char furnaceDAC: 1; + bool furnaceDAC; DAC(): sample(-1), @@ -77,7 +73,7 @@ class DivPlatformAY8930: public DivDispatch { period(0), pos(0), out(0), - furnaceDAC(0) {} + furnaceDAC(false) {} } dac; unsigned char autoEnvNum, autoEnvDen, duty; diff --git a/src/gui/debug.cpp b/src/gui/debug.cpp index d2b2f44ab..8723ce4e8 100644 --- a/src/gui/debug.cpp +++ b/src/gui/debug.cpp @@ -761,17 +761,6 @@ void putDispatchChan(void* data, int chanNum, int type) { DivPlatformAY8910::Channel* ch=(DivPlatformAY8910::Channel*)data; ImGui::Text("> AY-3-8910"); COMMON_CHAN_DEBUG; - ImGui::Text("* psgMode:"); - ImGui::Text(" * curr:"); - ImGui::Text(" - tone: %d",ch->curPSGMode.tone); - ImGui::Text(" - noise: %d",ch->curPSGMode.noise); - ImGui::Text(" - envelope: %d",ch->curPSGMode.envelope); - ImGui::Text(" - dac: %d",ch->curPSGMode.dac); - ImGui::Text(" * next:"); - ImGui::Text(" - tone: %d",ch->nextPSGMode.tone); - ImGui::Text(" - noise: %d",ch->nextPSGMode.noise); - ImGui::Text(" - envelope: %d",ch->nextPSGMode.envelope); - ImGui::Text(" - dac: %d",ch->nextPSGMode.dac); ImGui::Text("* DAC:"); ImGui::Text(" - sample: %d",ch->dac.sample); ImGui::Text(" - rate: %d",ch->dac.rate); @@ -789,22 +778,6 @@ void putDispatchChan(void* data, int chanNum, int type) { ImGui::Text("> AY8930"); COMMON_CHAN_DEBUG; ImGui::Text("- duty: %d",ch->duty); - ImGui::Text("* envelope:"); - ImGui::Text(" - mode: %d",ch->envelope.mode); - ImGui::Text(" - period: %d",ch->envelope.period); - ImGui::Text(" * slide: %d",ch->envelope.slide); - ImGui::Text(" - low: %d",ch->envelope.slideLow); - ImGui::Text("* psgMode:"); - ImGui::Text(" * curr:"); - ImGui::Text(" - tone: %d",ch->curPSGMode.tone); - ImGui::Text(" - noise: %d",ch->curPSGMode.noise); - ImGui::Text(" - envelope: %d",ch->curPSGMode.envelope); - ImGui::Text(" - dac: %d",ch->curPSGMode.dac); - ImGui::Text(" * next:"); - ImGui::Text(" - tone: %d",ch->nextPSGMode.tone); - ImGui::Text(" - noise: %d",ch->nextPSGMode.noise); - ImGui::Text(" - envelope: %d",ch->nextPSGMode.envelope); - ImGui::Text(" - dac: %d",ch->nextPSGMode.dac); ImGui::Text("* DAC:"); ImGui::Text(" - sample: %d",ch->dac.sample); ImGui::Text(" - rate: %d",ch->dac.rate); From f2af2fbe761ae6f7fb72e1cc5d5f955c13a6f89b Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 12 Aug 2023 00:16:06 -0500 Subject: [PATCH 186/202] GUI: fix crash on big endian I hope issue #649 --- extern/imgui_patched/imgui_draw.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/extern/imgui_patched/imgui_draw.cpp b/extern/imgui_patched/imgui_draw.cpp index db56f7e3c..6e39f4d0d 100644 --- a/extern/imgui_patched/imgui_draw.cpp +++ b/extern/imgui_patched/imgui_draw.cpp @@ -2224,10 +2224,22 @@ ImFont* ImFontAtlas::AddFontFromMemoryTTF(void* ttf_data, int ttf_size, float si ImFont* ImFontAtlas::AddFontFromMemoryCompressedTTF(const void* compressed_ttf_data, int compressed_ttf_size, float size_pixels, const ImFontConfig* font_cfg_template, const ImWchar* glyph_ranges) { + // workaround for big-endian +#ifdef TA_BIG_ENDIAN + unsigned char* beData=(unsigned char*)IM_ALLOC(compressed_ttf_size); + for (int i=0; i Date: Sat, 12 Aug 2023 01:54:12 -0500 Subject: [PATCH 187/202] =?UTF-8?q?C140:=20help=20=C2=B5-law=20ISN'T=20WOR?= =?UTF-8?q?KING?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- papers/format.md | 1 + src/engine/platform/c140.cpp | 22 ++++++++++++++++----- src/engine/sample.cpp | 38 ++++++++++++++++++++++++++++++++++++ src/engine/sample.h | 7 ++++++- src/engine/sysDef.cpp | 5 ++--- src/gui/guiConst.cpp | 2 +- src/gui/sampleEdit.cpp | 2 +- 7 files changed, 66 insertions(+), 11 deletions(-) diff --git a/papers/format.md b/papers/format.md index 46bb4c1fa..9eef48522 100644 --- a/papers/format.md +++ b/papers/format.md @@ -219,6 +219,7 @@ size | description | - 0xcb: Casio PV-1000 - 3 channels | - 0xcc: K053260 - 4 channels | - 0xcd: TED - 2 channels + | - 0xce: Namco C140 - 24 channels | - 0xde: YM2610B extended - 19 channels | - 0xe0: QSound - 19 channels | - 0xfc: Pong - 1 channel diff --git a/src/engine/platform/c140.cpp b/src/engine/platform/c140.cpp index a7a3b162b..55f4983ad 100644 --- a/src/engine/platform/c140.cpp +++ b/src/engine/platform/c140.cpp @@ -143,7 +143,7 @@ void DivPlatformC140::tick(bool sysTick) { chan[i].freq=(int)(off*parent->calcFreq(chan[i].baseFreq,chan[i].pitch,chan[i].fixedArp?chan[i].baseNoteOverride:chan[i].arpOff,chan[i].fixedArp,false,2,chan[i].pitch2,chipClock,CHIP_FREQBASE)); if (chan[i].freq<0) chan[i].freq=0; if (chan[i].freq>65535) chan[i].freq=65535; - ctrl|=(chan[i].active?0x80:0)|((s->isLoopable())?0x10:0); + ctrl|=(chan[i].active?0x80:0)|((s->isLoopable())?0x10:0)|((s->depth==DIV_SAMPLE_DEPTH_MULAW)?0x08:0); if (chan[i].keyOn) { unsigned int bank=0; unsigned int start=0; @@ -174,7 +174,6 @@ void DivPlatformC140::tick(bool sysTick) { chan[i].volChangedL=true; chan[i].volChangedR=true; } - chan[i].keyOn=false; } if (chan[i].keyOff) { chan[i].keyOff=false; @@ -184,7 +183,10 @@ void DivPlatformC140::tick(bool sysTick) { rWrite(0x03+(i<<4),chan[i].freq&0xff); chan[i].freqChanged=false; } - rWrite(0x05+(i<<4),ctrl); + if (chan[i].keyOn) { + rWrite(0x05+(i<<4),ctrl); + chan[i].keyOn=false; + } } } } @@ -437,10 +439,20 @@ void DivPlatformC140::renderSamples(int sysID) { break; } if (memPos+length>=(getSampleMemCapacity())) { - memcpy(sampleMem+(memPos/sizeof(short)),s->data16,(getSampleMemCapacity())-memPos); + if (s->depth==DIV_SAMPLE_DEPTH_MULAW) { + + } else { + memcpy(sampleMem+(memPos/sizeof(short)),s->data16,(getSampleMemCapacity())-memPos); + } logW("out of C140 memory for sample %d!",i); } else { - memcpy(sampleMem+(memPos/sizeof(short)),s->data16,length); + if (s->depth==DIV_SAMPLE_DEPTH_MULAW) { + for (unsigned int i=0; idataMuLaw[i]<<8)^0xff00; + } + } else { + memcpy(sampleMem+(memPos/sizeof(short)),s->data16,length); + } } sampleOff[i]=memPos>>1; sampleLoaded[i]=true; diff --git a/src/engine/sample.cpp b/src/engine/sample.cpp index 17cd235c1..127f3eff6 100644 --- a/src/engine/sample.cpp +++ b/src/engine/sample.cpp @@ -269,6 +269,9 @@ int DivSample::getSampleOffset(int offset, int length, DivSampleDepth depth) { case DIV_SAMPLE_DEPTH_VOX: off=(offset+1)/2; break; + case DIV_SAMPLE_DEPTH_MULAW: + off=offset; + break; case DIV_SAMPLE_DEPTH_16BIT: off=offset*2; break; @@ -316,6 +319,10 @@ int DivSample::getSampleOffset(int offset, int length, DivSampleDepth depth) { off=(offset+1)/2; len=(length+1)/2; break; + case DIV_SAMPLE_DEPTH_MULAW: + off=offset; + len=length; + break; case DIV_SAMPLE_DEPTH_16BIT: off=offset*2; len=length*2; @@ -365,6 +372,9 @@ int DivSample::getEndPosition(DivSampleDepth depth) { case DIV_SAMPLE_DEPTH_VOX: off=lengthVOX; break; + case DIV_SAMPLE_DEPTH_MULAW: + off=lengthMuLaw; + break; case DIV_SAMPLE_DEPTH_16BIT: off=length16; break; @@ -538,6 +548,12 @@ bool DivSample::initInternal(DivSampleDepth d, int count) { dataVOX=new unsigned char[lengthVOX]; memset(dataVOX,0,lengthVOX); break; + case DIV_SAMPLE_DEPTH_MULAW: // 8-bit µ-law + if (dataMuLaw!=NULL) delete[] dataMuLaw; + lengthMuLaw=count; + dataMuLaw=new unsigned char[(count+4095)&(~0xfff)]; + memset(dataMuLaw,0,(count+4095)&(~0xfff)); + break; case DIV_SAMPLE_DEPTH_16BIT: // 16-bit if (data16!=NULL) delete[] data16; length16=count*2; @@ -1155,6 +1171,13 @@ void DivSample::render(unsigned int formatMask) { case DIV_SAMPLE_DEPTH_VOX: // VOX oki_decode(dataVOX,data16,samples); break; + case DIV_SAMPLE_DEPTH_MULAW: // 8-bit µ-law PCM + for (unsigned int i=0; i>24)|((si&0x03f80000)>>19))^0xff; + } + } } void* DivSample::getCurBuf() { @@ -1255,6 +1288,8 @@ void* DivSample::getCurBuf() { return dataBRR; case DIV_SAMPLE_DEPTH_VOX: return dataVOX; + case DIV_SAMPLE_DEPTH_MULAW: + return dataMuLaw; case DIV_SAMPLE_DEPTH_16BIT: return data16; default: @@ -1283,6 +1318,8 @@ unsigned int DivSample::getCurBufLen() { return lengthBRR; case DIV_SAMPLE_DEPTH_VOX: return lengthVOX; + case DIV_SAMPLE_DEPTH_MULAW: + return lengthMuLaw; case DIV_SAMPLE_DEPTH_16BIT: return length16; default: @@ -1392,4 +1429,5 @@ DivSample::~DivSample() { if (dataB) delete[] dataB; if (dataBRR) delete[] dataBRR; if (dataVOX) delete[] dataVOX; + if (dataMuLaw) delete[] dataMuLaw; } diff --git a/src/engine/sample.h b/src/engine/sample.h index ce1bf1fa2..bbf90d4f5 100644 --- a/src/engine/sample.h +++ b/src/engine/sample.h @@ -43,6 +43,7 @@ enum DivSampleDepth: unsigned char { DIV_SAMPLE_DEPTH_8BIT=8, DIV_SAMPLE_DEPTH_BRR=9, DIV_SAMPLE_DEPTH_VOX=10, + DIV_SAMPLE_DEPTH_MULAW=11, DIV_SAMPLE_DEPTH_16BIT=16, DIV_SAMPLE_DEPTH_MAX // boundary for sample depth }; @@ -108,6 +109,7 @@ struct DivSample { // - 8: 8-bit PCM // - 9: BRR (SNES) // - 10: VOX ADPCM + // - 11: 8-bit µ-law PCM // - 16: 16-bit PCM DivSampleDepth depth; bool loop, brrEmphasis, dither; @@ -130,8 +132,9 @@ struct DivSample { unsigned char* dataB; // 6 unsigned char* dataBRR; // 9 unsigned char* dataVOX; // 10 + unsigned char* dataMuLaw; // 11 - unsigned int length8, length16, length1, lengthDPCM, lengthZ, lengthQSoundA, lengthA, lengthB, lengthBRR, lengthVOX; + unsigned int length8, length16, length1, lengthDPCM, lengthZ, lengthQSoundA, lengthA, lengthB, lengthBRR, lengthVOX, lengthMuLaw; unsigned int samples; @@ -337,6 +340,7 @@ struct DivSample { dataB(NULL), dataBRR(NULL), dataVOX(NULL), + dataMuLaw(NULL), length8(0), length16(0), length1(0), @@ -347,6 +351,7 @@ struct DivSample { lengthB(0), lengthBRR(0), lengthVOX(0), + lengthMuLaw(0), samples(0) { for (int i=0; idepth==DIV_SAMPLE_DEPTH_8BIT)?255:32767); if (posX>=0) { - statusBar2=fmt::sprintf("(%d, %d)",posX,posY); + statusBar2=fmt::sprintf("(%d, %d) $%.2x",posX,posY,((unsigned char*)sample->getCurBuf())[posX]); } } From 94cb733c60737b297acc8dc8f46fad5d9ab7eee3 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 12 Aug 2023 02:52:50 -0500 Subject: [PATCH 188/202] fix build error hopefully --- src/engine/platform/c140.cpp | 2 +- src/engine/sample.cpp | 22 ++++++++++++++-------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/engine/platform/c140.cpp b/src/engine/platform/c140.cpp index 55f4983ad..f2ee8dfef 100644 --- a/src/engine/platform/c140.cpp +++ b/src/engine/platform/c140.cpp @@ -448,7 +448,7 @@ void DivPlatformC140::renderSamples(int sysID) { } else { if (s->depth==DIV_SAMPLE_DEPTH_MULAW) { for (unsigned int i=0; idataMuLaw[i]<<8)^0xff00; + sampleMem[i+(memPos/sizeof(short))]=((s->dataMuLaw[i]^0xff)<<8); } } else { memcpy(sampleMem+(memPos/sizeof(short)),s->data16,length); diff --git a/src/engine/sample.cpp b/src/engine/sample.cpp index 127f3eff6..8ddcf2297 100644 --- a/src/engine/sample.cpp +++ b/src/engine/sample.cpp @@ -1128,6 +1128,11 @@ bool DivSample::resample(double sRate, double tRate, int filter) { #define NOT_IN_FORMAT(x) (depth!=x && formatMask&(1U<<(unsigned int)x)) +union IntFloat { + unsigned int i; + float f; +}; + void DivSample::render(unsigned int formatMask) { // step 1: convert to 16-bit if needed if (depth!=DIV_SAMPLE_DEPTH_16BIT) { @@ -1173,9 +1178,10 @@ void DivSample::render(unsigned int formatMask) { break; case DIV_SAMPLE_DEPTH_MULAW: // 8-bit µ-law PCM for (unsigned int i=0; i>24)|((si&0x03f80000)>>19))^0xff; + IntFloat s; + s.f=(float)-data16[i]; + s.f/=32768.0f; + s.i-=0x3f800000; + dataMuLaw[i]=(((s.i&0x80000000)>>24)|((s.i&0x03f80000)>>19))^0xff; } } } From 06243c9d9d29fa81f665d16b854e61feda73dd66 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 12 Aug 2023 02:53:05 -0500 Subject: [PATCH 189/202] asdfasdf --- src/engine/platform/c140.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/platform/c140.cpp b/src/engine/platform/c140.cpp index f2ee8dfef..aadc7c168 100644 --- a/src/engine/platform/c140.cpp +++ b/src/engine/platform/c140.cpp @@ -448,7 +448,7 @@ void DivPlatformC140::renderSamples(int sysID) { } else { if (s->depth==DIV_SAMPLE_DEPTH_MULAW) { for (unsigned int i=0; idataMuLaw[i]^0xff)<<8); + sampleMem[i+(memPos/sizeof(short))]=(s->dataMuLaw[i]<<8); } } else { memcpy(sampleMem+(memPos/sizeof(short)),s->data16,length); From 320d965f78c931e7ef78d9ffb04c55d29353a2f0 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 12 Aug 2023 03:42:10 -0500 Subject: [PATCH 190/202] =?UTF-8?q?fix=20=C2=B5-law=20encoding?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/engine/platform/c140.cpp | 2 +- src/engine/sample.cpp | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/engine/platform/c140.cpp b/src/engine/platform/c140.cpp index aadc7c168..b679aaeee 100644 --- a/src/engine/platform/c140.cpp +++ b/src/engine/platform/c140.cpp @@ -448,7 +448,7 @@ void DivPlatformC140::renderSamples(int sysID) { } else { if (s->depth==DIV_SAMPLE_DEPTH_MULAW) { for (unsigned int i=0; idataMuLaw[i]<<8); + sampleMem[i+(memPos/sizeof(short))]=((s->dataMuLaw[i])<<8); } } else { memcpy(sampleMem+(memPos/sizeof(short)),s->data16,length); diff --git a/src/engine/sample.cpp b/src/engine/sample.cpp index 8ddcf2297..c2ff85a6a 100644 --- a/src/engine/sample.cpp +++ b/src/engine/sample.cpp @@ -1266,10 +1266,11 @@ void DivSample::render(unsigned int formatMask) { if (!initInternal(DIV_SAMPLE_DEPTH_MULAW,samples)) return; for (unsigned int i=0; i>24)|((s.i&0x03f80000)>>19))^0xff; + dataMuLaw[i]=(((data16[i]<0)?0x80:0)|(s.i&0x03f80000)>>19)^0xff; } } } From f12d6012344a44b1fd6bc4b189c004c1adc76fad Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 12 Aug 2023 03:45:08 -0500 Subject: [PATCH 191/202] C140: fix key off --- src/engine/platform/c140.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/engine/platform/c140.cpp b/src/engine/platform/c140.cpp index b679aaeee..110e73d84 100644 --- a/src/engine/platform/c140.cpp +++ b/src/engine/platform/c140.cpp @@ -137,6 +137,7 @@ void DivPlatformC140::tick(bool sysTick) { chan[i].audPos=0; } if (chan[i].freqChanged || chan[i].keyOn || chan[i].keyOff) { + bool writeCtrl=false; DivSample* s=parent->getSample(chan[i].sample); unsigned char ctrl=0; double off=(s->centerRate>=1)?((double)s->centerRate/8363.0):1.0; @@ -174,8 +175,11 @@ void DivPlatformC140::tick(bool sysTick) { chan[i].volChangedL=true; chan[i].volChangedR=true; } + writeCtrl=true; + chan[i].keyOn=false; } if (chan[i].keyOff) { + writeCtrl=true; chan[i].keyOff=false; } if (chan[i].freqChanged) { @@ -183,9 +187,8 @@ void DivPlatformC140::tick(bool sysTick) { rWrite(0x03+(i<<4),chan[i].freq&0xff); chan[i].freqChanged=false; } - if (chan[i].keyOn) { + if (writeCtrl) { rWrite(0x05+(i<<4),ctrl); - chan[i].keyOn=false; } } } From 984a3b745086cfb0e15b4e027d49162ca1a99906 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 12 Aug 2023 04:07:14 -0500 Subject: [PATCH 192/202] YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA --- src/engine/platform/c140.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/engine/platform/c140.cpp b/src/engine/platform/c140.cpp index 110e73d84..ce730999f 100644 --- a/src/engine/platform/c140.cpp +++ b/src/engine/platform/c140.cpp @@ -451,7 +451,10 @@ void DivPlatformC140::renderSamples(int sysID) { } else { if (s->depth==DIV_SAMPLE_DEPTH_MULAW) { for (unsigned int i=0; idataMuLaw[i])<<8); + unsigned char x=s->dataMuLaw[i]^0xff; + if (x&0x80) x^=15; + unsigned char c140Mu=(x&0x80)|((x&15)<<3)|((x&0x70)>>4); + sampleMem[i+(memPos/sizeof(short))]=((c140Mu)<<8); } } else { memcpy(sampleMem+(memPos/sizeof(short)),s->data16,length); From 6d1df99254b0a5eb794e1750a659397778bca4e3 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 12 Aug 2023 04:12:10 -0500 Subject: [PATCH 193/202] GUI: remove debug --- src/gui/sampleEdit.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/sampleEdit.cpp b/src/gui/sampleEdit.cpp index b4ab5123c..390b8d571 100644 --- a/src/gui/sampleEdit.cpp +++ b/src/gui/sampleEdit.cpp @@ -1608,7 +1608,7 @@ void FurnaceGUI::drawSampleEdit() { } posY=(0.5-pos.y/rectSize.y)*((sample->depth==DIV_SAMPLE_DEPTH_8BIT)?255:32767); if (posX>=0) { - statusBar2=fmt::sprintf("(%d, %d) $%.2x",posX,posY,((unsigned char*)sample->getCurBuf())[posX]); + statusBar2=fmt::sprintf("(%d, %d)",posX,posY); } } From 1e580d6936c5607345635e5627ecfaae4586ad2f Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 12 Aug 2023 04:12:22 -0500 Subject: [PATCH 194/202] C140: comment --- src/engine/platform/c140.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/engine/platform/c140.cpp b/src/engine/platform/c140.cpp index ce730999f..d98827754 100644 --- a/src/engine/platform/c140.cpp +++ b/src/engine/platform/c140.cpp @@ -441,9 +441,15 @@ void DivPlatformC140::renderSamples(int sysID) { logW("out of C140 memory for sample %d!",i); break; } + // why is C140 not G.711-compliant? this weird bit mangling had me puzzled for 3 hours... if (memPos+length>=(getSampleMemCapacity())) { if (s->depth==DIV_SAMPLE_DEPTH_MULAW) { - + for (unsigned int i=0; i<(getSampleMemCapacity())-memPos; i++) { + unsigned char x=s->dataMuLaw[i]^0xff; + if (x&0x80) x^=15; + unsigned char c140Mu=(x&0x80)|((x&15)<<3)|((x&0x70)>>4); + sampleMem[i+(memPos/sizeof(short))]=((c140Mu)<<8); + } } else { memcpy(sampleMem+(memPos/sizeof(short)),s->data16,(getSampleMemCapacity())-memPos); } From 1f10c31414d504c108ef09d53a8d31824d83560f Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 12 Aug 2023 04:19:20 -0500 Subject: [PATCH 195/202] update ins type --- papers/newIns.md | 1 + src/gui/dataList.cpp | 2 +- src/gui/guiConst.cpp | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/papers/newIns.md b/papers/newIns.md index 786a553c3..4ef3be31d 100644 --- a/papers/newIns.md +++ b/papers/newIns.md @@ -119,6 +119,7 @@ the following instrument types are available: - 49: PV-1000 - 50: K053260 - 52: TED +- 53: C140 the following feature codes are recognized: diff --git a/src/gui/dataList.cpp b/src/gui/dataList.cpp index edc1a9145..fcdc7bb93 100644 --- a/src/gui/dataList.cpp +++ b/src/gui/dataList.cpp @@ -288,7 +288,7 @@ void FurnaceGUI::insListItem(int i, int dir, int asset) { break; case DIV_INS_C140: ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_INSTR_C140]); - name=fmt::sprintf(ICON_FA_BAR_CHART "##_INS%d",i); + name=fmt::sprintf(ICON_FA_VOLUME_UP "##_INS%d",i); break; default: ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_INSTR_UNKNOWN]); diff --git a/src/gui/guiConst.cpp b/src/gui/guiConst.cpp index 02d844da9..b5369a6c6 100644 --- a/src/gui/guiConst.cpp +++ b/src/gui/guiConst.cpp @@ -935,7 +935,7 @@ const FurnaceGUIColorDef guiColors[GUI_COLOR_MAX]={ D(GUI_COLOR_INSTR_K053260,"",ImVec4(1.0f,0.8f,0.1f,1.0f)), D(GUI_COLOR_INSTR_SCSP,"",ImVec4(0.5f,0.5f,0.5f,1.0f)), D(GUI_COLOR_INSTR_TED,"",ImVec4(0.7f,0.6f,1.0f,1.0f)), - D(GUI_COLOR_INSTR_C140,"",ImVec4(0.7f,0.6f,1.0f,1.0f)), + D(GUI_COLOR_INSTR_C140,"",ImVec4(1.0f,1.0f,0.0f,1.0f)), D(GUI_COLOR_INSTR_UNKNOWN,"",ImVec4(0.3f,0.3f,0.3f,1.0f)), D(GUI_COLOR_CHANNEL_BG,"",ImVec4(0.4f,0.6f,0.8f,1.0f)), From 908ecf411d4fd886b6bd4a71ae76222bf9049d29 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 12 Aug 2023 04:33:33 -0500 Subject: [PATCH 196/202] C140: partially working VGM export --- src/engine/vgmOps.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/engine/vgmOps.cpp b/src/engine/vgmOps.cpp index 48afca4c4..11d3a6a9a 100644 --- a/src/engine/vgmOps.cpp +++ b/src/engine/vgmOps.cpp @@ -1059,7 +1059,7 @@ void DivEngine::performVGMWrite(SafeWriter* w, DivSystem sys, DivRegWrite& write break; case DIV_SYSTEM_C140: w->writeC(0xd4); - w->writeS(baseAddr2S|(write.addr&0x1ff)); + w->writeS_BE(baseAddr2S|(write.addr&0x1ff)); w->writeC(write.val&0xff); break; default: @@ -1786,7 +1786,8 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p break; case DIV_SYSTEM_C140: if (!hasNamco) { - hasNamco=disCont[i].dispatch->chipClock; + // ?!?!?! + hasNamco=disCont[i].dispatch->rate/2; CHIP_VOL(40,0.4); willExport[i]=true; writeC140[0]=disCont[i].dispatch; From 393af54938605b7de5630b3742e9d6d6465be00a Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 12 Aug 2023 16:21:24 -0500 Subject: [PATCH 197/202] GUI: bring the combo box back --- src/gui/insEdit.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/gui/insEdit.cpp b/src/gui/insEdit.cpp index 1bfcf2848..4f7befd09 100644 --- a/src/gui/insEdit.cpp +++ b/src/gui/insEdit.cpp @@ -4515,6 +4515,7 @@ void FurnaceGUI::drawInsEdit() { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::TableSetBgColor(ImGuiTableBgTarget_CellBg,ImGui::GetColorU32(ImGuiCol_TableHeaderBg)); + ImGui::AlignTextToFramePadding(); ImGui::Text("%s",noteNames[60+i]); ImGui::TableNextColumn(); if (sampleMap.map<0 || sampleMap.map>=e->song.sampleLen) { @@ -4524,6 +4525,7 @@ void FurnaceGUI::drawInsEdit() { sName=fmt::sprintf("%3d##SM%d",sampleMap.map,i); } ImGui::PushFont(patFont); + ImGui::AlignTextToFramePadding(); ImGui::SetNextItemWidth(ImGui::CalcTextSize("00000").x); ImGui::Selectable(sName.c_str(),(sampleMapWaitingInput && sampleMapColumn==0 && i>=sampleMapMin && i<=sampleMapMax)); if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) { @@ -4574,6 +4576,7 @@ void FurnaceGUI::drawInsEdit() { } sName+=fmt::sprintf("##SN%d",i); ImGui::PushFont(patFont); + ImGui::AlignTextToFramePadding(); ImGui::SetNextItemWidth(ImGui::CalcTextSize("00000").x); ImGui::Selectable(sName.c_str(),(sampleMapWaitingInput && sampleMapColumn==1 && i>=sampleMapMin && i<=sampleMapMax)); if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) { @@ -4618,9 +4621,25 @@ void FurnaceGUI::drawInsEdit() { ImGui::PopFont(); ImGui::TableNextColumn(); + String prevName="---"; if (sampleMap.map>=0 && sampleMap.mapsong.sampleLen) { - ImGui::TextUnformatted(e->song.sample[sampleMap.map]->name.c_str()); + prevName=e->song.sample[sampleMap.map]->name; } + ImGui::PushID(i+2); + ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); + if (ImGui::BeginCombo("##SMSample",prevName.c_str())) { + if (ImGui::Selectable("---")) { + sampleMap.map=-1; + } + for (int k=0; ksong.sampleLen; k++) { + String itemName=fmt::sprintf("%d: %s",k,e->song.sample[k]->name); + if (ImGui::Selectable(itemName.c_str())) { + sampleMap.map=k; + } + } + ImGui::EndCombo(); + } + ImGui::PopID(); } ImGui::PopStyleColor(2); ImGui::EndTable(); From 4214bdee710a0fe411c91fbf4d4b968a9b8259cb Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 12 Aug 2023 16:46:35 -0500 Subject: [PATCH 198/202] C140: ?!?!?! --- src/engine/vgmOps.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/engine/vgmOps.cpp b/src/engine/vgmOps.cpp index 11d3a6a9a..860cf8fc7 100644 --- a/src/engine/vgmOps.cpp +++ b/src/engine/vgmOps.cpp @@ -2202,10 +2202,14 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p w->writeC(0x67); w->writeC(0x66); w->writeC(0x8d); - w->writeI((writeC140[i]->getSampleMemUsage()+8)|(i*0x80000000)); + unsigned short* mem=(unsigned short*)writeC140[i]->getSampleMem(); + size_t memLen=writeC140[i]->getSampleMemUsage()>>1; + w->writeI((memLen+8)|(i*0x80000000)); w->writeI(writeC140[i]->getSampleMemCapacity()); w->writeI(0); - w->write(writeC140[i]->getSampleMem(),writeC140[i]->getSampleMemUsage()); + for (size_t i=0; iwriteC(mem[i]>>8); + } } } From d7de177d260ab87ab6bbf23f9fa14f25c0d37cb6 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 12 Aug 2023 16:55:23 -0500 Subject: [PATCH 199/202] VGM export: new ripper name --- src/engine/vgmOps.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/vgmOps.cpp b/src/engine/vgmOps.cpp index 860cf8fc7..63b1e699f 100644 --- a/src/engine/vgmOps.cpp +++ b/src/engine/vgmOps.cpp @@ -2562,7 +2562,7 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p ws=utf8To16(song.authorJ.c_str()); w->writeWString(ws,false); // japanese author name w->writeS(0); // date - w->writeWString(L"Furnace Tracker",false); // ripper + w->writeWString(L"Furnace (chiptune tracker)",false); // ripper w->writeS(0); // notes int gd3Len=w->tell()-gd3Off-12; From 987ca3ad113bbdf7a22c2692f59a50badb32bdce Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 12 Aug 2023 17:08:01 -0500 Subject: [PATCH 200/202] C140: VGM volume --- src/engine/platform/c140.cpp | 4 ++++ src/engine/platform/c140.h | 1 + src/engine/vgmOps.cpp | 4 ++-- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/engine/platform/c140.cpp b/src/engine/platform/c140.cpp index d98827754..1fb645070 100644 --- a/src/engine/platform/c140.cpp +++ b/src/engine/platform/c140.cpp @@ -398,6 +398,10 @@ int DivPlatformC140::getRegisterPoolSize() { return 512; } +float DivPlatformC140::getPostAmp() { + return 3.0f; +} + const void* DivPlatformC140::getSampleMem(int index) { return index == 0 ? sampleMem : NULL; } diff --git a/src/engine/platform/c140.h b/src/engine/platform/c140.h index 98ab77b63..bb34dac65 100644 --- a/src/engine/platform/c140.h +++ b/src/engine/platform/c140.h @@ -77,6 +77,7 @@ class DivPlatformC140: public DivDispatch { DivDispatchOscBuffer* getOscBuffer(int chan); unsigned char* getRegisterPool(); int getRegisterPoolSize(); + float getPostAmp(); void reset(); void forceIns(); void tick(bool sysTick=true); diff --git a/src/engine/vgmOps.cpp b/src/engine/vgmOps.cpp index 63b1e699f..26e973dbd 100644 --- a/src/engine/vgmOps.cpp +++ b/src/engine/vgmOps.cpp @@ -1788,12 +1788,12 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p if (!hasNamco) { // ?!?!?! hasNamco=disCont[i].dispatch->rate/2; - CHIP_VOL(40,0.4); + CHIP_VOL(40,1.0); willExport[i]=true; writeC140[0]=disCont[i].dispatch; } else if (!(hasNamco&0x40000000)) { isSecond[i]=true; - CHIP_VOL_SECOND(40,0.4); + CHIP_VOL_SECOND(40,1.0); willExport[i]=true; writeC140[1]=disCont[i].dispatch; hasNamco|=0x40000000; From cd0c8cfca96d610e7ed76b6ba60640cf8388ccc4 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 12 Aug 2023 17:28:54 -0500 Subject: [PATCH 201/202] C140: fix chan osc --- src/engine/platform/c140.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/platform/c140.cpp b/src/engine/platform/c140.cpp index 1fb645070..e5de79488 100644 --- a/src/engine/platform/c140.cpp +++ b/src/engine/platform/c140.cpp @@ -73,7 +73,7 @@ void DivPlatformC140::acquire(short** buf, size_t len) { buf[1][h]=c140.rout; for (int i=0; i<24; i++) { - oscBuf[i]->data[oscBuf[i]->needle++]=(c140.voice[i].lout+c140.voice[i].rout)>>9; + oscBuf[i]->data[oscBuf[i]->needle++]=(c140.voice[i].lout+c140.voice[i].rout)>>10; } } } From bc136c94c865d606e6b057e696c0b6a79fbf0f5f Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 12 Aug 2023 19:18:28 -0500 Subject: [PATCH 202/202] update format.md --- papers/format.md | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/papers/format.md b/papers/format.md index 9eef48522..4a5e6e900 100644 --- a/papers/format.md +++ b/papers/format.md @@ -143,8 +143,8 @@ size | description | - 0x49: Neo Geo CD extended - 16 channels | - 0x80: AY-3-8910 - 3 channels | - 0x81: Amiga - 4 channels - | - 0x82: YM2151 alone - 8 channels - | - 0x83: YM2612 alone - 6 channels + | - 0x82: YM2151 - 8 channels + | - 0x83: YM2612 - 6 channels | - 0x84: TIA - 2 channels | - 0x85: VIC-20 - 4 channels | - 0x86: PET - 1 channel @@ -159,7 +159,7 @@ size | description | - 0x8f: OPL (YM3526) - 9 channels | - 0x90: OPL2 (YM3812) - 9 channels | - 0x91: OPL3 (YMF262) - 18 channels - | - 0x92: MultiPCM - 28 channels + | - 0x92: MultiPCM - 28 channels (UNAVAILABLE) | - 0x93: Intel 8253 (beeper) - 1 channel | - 0x94: POKEY - 4 channels | - 0x95: RF5C68 - 8 channels @@ -187,8 +187,8 @@ size | description | - 0xab: MSM6258 - 1 channel | - 0xac: Commander X16 (VERA) - 17 channels | - 0xad: Bubble System WSG - 2 channels - | - 0xae: OPL4 (YMF278B) - 42 channels - | - 0xaf: OPL4 drums (YMF278B) - 44 channels + | - 0xae: OPL4 (YMF278B) - 42 channels (UNAVAILABLE) + | - 0xaf: OPL4 drums (YMF278B) - 44 channels (UNAVAILABLE) | - 0xb0: Seta/Allumer X1-010 - 16 channels | - 0xb1: Ensoniq ES5506 - 32 channels | - 0xb2: Yamaha Y8950 - 10 channels @@ -199,27 +199,29 @@ size | description | - 0xb7: YM2608 extended - 19 channels | - 0xb8: YMZ280B - 8 channels | - 0xb9: Namco WSG - 3 channels - | - 0xba: Namco 15xx - 8 channels - | - 0xbb: Namco CUS30 - 8 channels + | - 0xba: Namco C15 - 8 channels + | - 0xbb: Namco C30 - 8 channels | - 0xbc: MSM5232 - 8 channels - | - 0xbd: YM2612 extra features extended - 11 channels - | - 0xbe: YM2612 extra features - 7 channels + | - 0xbd: YM2612 DualPCM extended - 11 channels + | - 0xbe: YM2612 DualPCM - 7 channels | - 0xbf: T6W28 - 4 channels | - 0xc0: PCM DAC - 1 channel | - 0xc1: YM2612 CSM - 10 channels - | - 0xc2: Neo Geo CSM (YM2610) - 18 channels - | - 0xc3: YM2203 CSM - 10 channels - | - 0xc4: YM2608 CSM - 20 channels - | - 0xc5: YM2610B CSM - 20 channels + | - 0xc2: Neo Geo CSM (YM2610) - 18 channels (UNAVAILABLE) + | - 0xc3: YM2203 CSM - 10 channels (UNAVAILABLE) + | - 0xc4: YM2608 CSM - 20 channels (UNAVAILABLE) + | - 0xc5: YM2610B CSM - 20 channels (UNAVAILABLE) | - 0xc6: K007232 - 2 channels | - 0xc7: GA20 - 4 channels | - 0xc8: SM8521 - 3 channels - | - 0xc9: M114S - 16 channels + | - 0xc9: M114S - 16 channels (UNAVAILABLE) | - 0xca: ZX Spectrum (beeper, QuadTone engine) - 5 channels | - 0xcb: Casio PV-1000 - 3 channels | - 0xcc: K053260 - 4 channels | - 0xcd: TED - 2 channels | - 0xce: Namco C140 - 24 channels + | - 0xcf: Namco C219 - 16 channels (UNAVAILABLE) + | - 0xd0: Namco C352 - 32 channels (UNAVAILABLE) | - 0xde: YM2610B extended - 19 channels | - 0xe0: QSound - 19 channels | - 0xfc: Pong - 1 channel @@ -228,6 +230,8 @@ size | description | - 0xff: reserved for development | - (compound!) means that the system is composed of two or more chips, | and has to be flattened. + | - (UNAVAILABLE) means that the chip hasn't been implemented in Furnace + | yet. 32 | sound chip volumes (<135) or reserved | - signed char, 64=1.0, 127=~2.0 | - as of version 135 these fields only exist for compatibility reasons.

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�qbF8&DPHEB5Y_8Vyupundqk2WJ1>b3bLa_wiulfxaN+(S``s??XyYVia$<5Qe z))97P=!CAE^w2Cl74rE&$@r?>+KXF)+7`%blw)MGQGOOAmP5tE3ZX@L*B8|7R}Brs zR4Ycx9t|fxiw*>J$DV2f@yZZcf~H5?imVr8aUXzRelEt-d>2-&31QsI1oW|(f0I5M z$+vbf#O88;C18q0{hLIqf*q1M-S^t}EXHX7OZX1Nkw*x!ZoL4$dntZO05xRp^wALm z`2cT>?5U;i&j(*ii$0IMKK^0Lb@AZUwzO;d-Nbj>QNEqS4Dg?cQ=y-?QQh73ZMQ3r za^T;w@UCGfR=K1}{7(WgTTp?7t)8q&aC~F{4JrTQt?nt5=1re56e88jX4sdr?ae8s z2WcZ|X||qE>s?go-%t1X@4TcDEnA+RVUMvN40<#|9$58FDLPU;`Uya6h|CEWWnhYvD%X^9wH&PPMbo5~s{ zFJGz*d!h=o8@KajW}u2kdF~Sxz3xnoxyA%tb>*+c5Hp^7XBuvSGLSH-7Me;9;@m)<)w&U<5H6=~a<~?g%O)_` z|6yTvYLFvnfAMEwZ&XhF!^A=yBKTFN-hr-t&BQ#Xk%@5XSuL;1&-vyJa)oX;2km(6 zXXX?_xdsAXUguR-d$qL|I9;bk(0peel~7s8aJ(sD#SIA5nLo4Pv^-#Xz6cH;{{)mI znNHv;MQ#h2MMiPQ`_i%FZA3TcS7zsUJDl#ir*-MsQK~nRHwSi-Z6>zvm)tbEcz&fX z>OS&-Y>~3GwPCR(;V&q^@2-1aT&G8O`|?nQZwYqZx9@|B6ug>O!5r9b7)#@!U8U0D z{@Z@Q=g!nx%S&{V!7XU6X~ZjFUBPmG)>R$Ar7=`-;C#FsH^aRS_G8Y<>Aw6PvDnHFU$@FP@$Jsr$+O(?L$USJ_99$XKXbzr~X4~9I);w{|t7E`ePuF2|J8STi zA%CwU^o)*vgF}b_ME3(jKDXk&ATJb--9_lp{|0r1^>H1FGEW6FYwp*gw@KPv6zs0n zdnk{C!CuW1EycUjr{1`RQmqa>Kwdd&1l2w#q42#fV^aPNi%*gn+#7VZo4##+xgDU8pX!0O@geK+iM zxP=ZN<`wSZtsmmK?uU5d=`@j?j|@!gcJ$tGB9>aZx#y#3Ol%$7$AYmm^wU7Z=c~&= z;*QfSq26h57yK0JvejuN8!&uce`09@88xn?sOQgUGLW9pn9MV3=jOvxw4EIW1{<|d zm(~_PI{JadfcoB%31B`Hwd63Us}my3PG4M{zC78@D{VSuxdFNBGqdss_sPlVm48|345IJ}PfoyBl4<`}B>`}BB3bLcK{2|TE+b;g|DTmKvKl#*kE;xk zf-)l3!ih2#A1LYPQv3a0CChMIlJ-?f;jYWgZ5?{nUKjO0QKHU3Cxip?;-w_d1rkt=2*Y91yrRw7%L|B9rywfm5xO5I_ant{sOB-U+Mf^)Ja~o!CwUk z@xMug$a=+L|1J6M6{r38_5W+)U;X;`b+5ll_b<)=W8#0Wv;U#_pA`9jnfSlz@&Ck| zLR{W@)xQi;bur#=e2?(Dc~Csad;b^4J}FE0m%(}1LjODy^#5))WSBhu({tr7E8?`D z{+lQ0FPCWB?*518)xT{y7keFJRhNUnS7|N0nneAlVfTuk{IXxyy|~qw!;nBj*T>yA zP%!@_wOpx^Vv`93xM+U<%<}L1s%SPWlMUw6CB?;J=fG=TGLgyyXCMi8TWhX=x|kD^ zUe1sOT&TltJ|CpW50uHAv`w=RW1V4{jIppNTR5T<3&bjzc@?xgNsi!%#62M6gI|7r zuRg=SslKqe`sv_D*Xfj$xt`Fq!^1#-!dFRCb!pC_NR#Q|KSjRQ9*P&}=p%AHT|Wfw zs{v@;)>m2(C-^Y4kdZ}rB1F44vl@;I%``P!%TH4e`5{e4rw z*j-Wix)gZHRLI%`m#XxTqfQ)(3WT`csL~2pZ@w%&628vyv);#`H%&N)ZA@)@6xnkE zy!w9J9W#uZBiO5sUXG@6NtfWwA3;Hn146v_9TRmMfJo55Y3!)wb3dP zFDKnr4pu~K4lpdPSx`$(#=AVN#3lea&&+Vx+l!SH!(6?n_K8sgF&z+R86%GTwYBWP eZ6yJM&xkUXUvuFky*+>&2OXU literal 165108 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