diff --git a/src/engine/chipUtils.h b/src/engine/chipUtils.h index 90c52953c..4ddc0738d 100644 --- a/src/engine/chipUtils.h +++ b/src/engine/chipUtils.h @@ -55,7 +55,7 @@ template struct SharedChannel { freqChanged=true; } } - virtual void macroInit(DivInstrument* which) { + void macroInit(DivInstrument* which) { std.init(which); pitch2=0; arpOff=0; diff --git a/src/engine/platform/es5506.h b/src/engine/platform/es5506.h index 30405497c..d5ac2b9ba 100644 --- a/src/engine/platform/es5506.h +++ b/src/engine/platform/es5506.h @@ -185,17 +185,6 @@ class DivPlatformES5506: public DivDispatch, public es550x_intf { signed int oscOut; DivInstrumentES5506::Filter filter; DivInstrumentES5506::Envelope envelope; - virtual void macroInit(DivInstrument* which) override { - SharedChannel::macroInit(which); - if (std.ex1.mode==2) { - k1Offs=0; - } - if (std.ex1.mode==2) { - k2Offs=0; - } - k1Prev=0xffff; - k2Prev=0xffff; - } Channel(): SharedChannel(0xff), pcm(PCM()), diff --git a/src/engine/platform/ym2610.cpp b/src/engine/platform/ym2610.cpp index 87ce2b704..94da94447 100644 --- a/src/engine/platform/ym2610.cpp +++ b/src/engine/platform/ym2610.cpp @@ -820,7 +820,7 @@ int DivPlatformYM2610::dispatch(DivCommand c) { DivSample* s=parent->getSample(chan[c.chan].sample); immWrite(0x12,(sampleOffB[chan[c.chan].sample]>>8)&0xff); immWrite(0x13,sampleOffB[chan[c.chan].sample]>>16); - int end=((sampleOffB[chan[c.chan].sample]+s->lengthB+0xff)&~0xff)-1; + int end=sampleOffB[chan[c.chan].sample]+s->lengthB-1; immWrite(0x14,(end>>8)&0xff); immWrite(0x15,end>>16); immWrite(0x11,isMuted[c.chan]?0:(chan[c.chan].pan<<6)); @@ -851,7 +851,7 @@ int DivPlatformYM2610::dispatch(DivCommand c) { DivSample* s=parent->getSample(12*sampleBank+c.value%12); immWrite(0x12,(sampleOffB[chan[c.chan].sample]>>8)&0xff); immWrite(0x13,sampleOffB[chan[c.chan].sample]>>16); - int end=((sampleOffB[chan[c.chan].sample]+s->lengthB+0xff)&~0xff)-1; + int end=sampleOffB[chan[c.chan].sample]+s->lengthB-1; immWrite(0x14,(end>>8)&0xff); immWrite(0x15,end>>16); immWrite(0x11,isMuted[c.chan]?0:(chan[c.chan].pan<<6)); @@ -891,7 +891,7 @@ int DivPlatformYM2610::dispatch(DivCommand c) { DivSample* s=parent->getSample(chan[c.chan].sample); immWrite(0x110+c.chan-adpcmAChanOffs,(sampleOffA[chan[c.chan].sample]>>8)&0xff); immWrite(0x118+c.chan-adpcmAChanOffs,sampleOffA[chan[c.chan].sample]>>16); - int end=((sampleOffA[chan[c.chan].sample]+s->lengthA+0xff)&~0xff)-1; + int end=sampleOffA[chan[c.chan].sample]+s->lengthA-1; immWrite(0x120+c.chan-adpcmAChanOffs,(end>>8)&0xff); immWrite(0x128+c.chan-adpcmAChanOffs,end>>16); immWrite(0x108+c.chan-adpcmAChanOffs,isMuted[c.chan]?0:((chan[c.chan].pan<<6)|chan[c.chan].outVol)); @@ -922,7 +922,7 @@ int DivPlatformYM2610::dispatch(DivCommand c) { DivSample* s=parent->getSample(12*sampleBank+c.value%12); immWrite(0x110+c.chan-adpcmAChanOffs,(sampleOffA[chan[c.chan].sample]>>8)&0xff); immWrite(0x118+c.chan-adpcmAChanOffs,sampleOffA[chan[c.chan].sample]>>16); - int end=((sampleOffA[chan[c.chan].sample]+s->lengthA+0xff)&~0xff)-1; + int end=sampleOffA[chan[c.chan].sample]+s->lengthA-1; immWrite(0x120+c.chan-adpcmAChanOffs,(end>>8)&0xff); immWrite(0x128+c.chan-adpcmAChanOffs,end>>16); immWrite(0x108+c.chan-adpcmAChanOffs,isMuted[c.chan]?0:((chan[c.chan].pan<<6)|chan[c.chan].outVol)); diff --git a/src/engine/platform/ym2610b.cpp b/src/engine/platform/ym2610b.cpp index de169984e..79792df01 100644 --- a/src/engine/platform/ym2610b.cpp +++ b/src/engine/platform/ym2610b.cpp @@ -887,7 +887,7 @@ int DivPlatformYM2610B::dispatch(DivCommand c) { DivSample* s=parent->getSample(chan[c.chan].sample); immWrite(0x12,(sampleOffB[chan[c.chan].sample]>>8)&0xff); immWrite(0x13,sampleOffB[chan[c.chan].sample]>>16); - int end=((sampleOffB[chan[c.chan].sample]+s->lengthB+0xff)&~0xff)-1; + int end=sampleOffB[chan[c.chan].sample]+s->lengthB-1; immWrite(0x14,(end>>8)&0xff); immWrite(0x15,end>>16); immWrite(0x11,isMuted[c.chan]?0:(chan[c.chan].pan<<6)); @@ -918,7 +918,7 @@ int DivPlatformYM2610B::dispatch(DivCommand c) { DivSample* s=parent->getSample(12*sampleBank+c.value%12); immWrite(0x12,(sampleOffB[chan[c.chan].sample]>>8)&0xff); immWrite(0x13,sampleOffB[chan[c.chan].sample]>>16); - int end=((sampleOffB[chan[c.chan].sample]+s->lengthB+0xff)&~0xff)-1; + int end=sampleOffB[chan[c.chan].sample]+s->lengthB-1; immWrite(0x14,(end>>8)&0xff); immWrite(0x15,end>>16); immWrite(0x11,isMuted[c.chan]?0:(chan[c.chan].pan<<6)); @@ -958,7 +958,7 @@ int DivPlatformYM2610B::dispatch(DivCommand c) { DivSample* s=parent->getSample(chan[c.chan].sample); immWrite(0x110+c.chan-adpcmAChanOffs,(sampleOffA[chan[c.chan].sample]>>8)&0xff); immWrite(0x118+c.chan-adpcmAChanOffs,sampleOffA[chan[c.chan].sample]>>16); - int end=((sampleOffA[chan[c.chan].sample]+s->lengthA+0xff)&~0xff)-1; + int end=sampleOffA[chan[c.chan].sample]+s->lengthA-1; immWrite(0x120+c.chan-adpcmAChanOffs,(end>>8)&0xff); immWrite(0x128+c.chan-adpcmAChanOffs,end>>16); immWrite(0x108+c.chan-adpcmAChanOffs,isMuted[c.chan]?0:((chan[c.chan].pan<<6)|chan[c.chan].outVol)); @@ -989,7 +989,7 @@ int DivPlatformYM2610B::dispatch(DivCommand c) { DivSample* s=parent->getSample(12*sampleBank+c.value%12); immWrite(0x110+c.chan-adpcmAChanOffs,(sampleOffA[chan[c.chan].sample]>>8)&0xff); immWrite(0x118+c.chan-adpcmAChanOffs,sampleOffA[chan[c.chan].sample]>>16); - int end=((sampleOffA[chan[c.chan].sample]+s->lengthA+0xff)&~0xff)-1; + int end=sampleOffA[chan[c.chan].sample]+s->lengthA-1; immWrite(0x120+c.chan-adpcmAChanOffs,(end>>8)&0xff); immWrite(0x128+c.chan-adpcmAChanOffs,end>>16); immWrite(0x108+c.chan-adpcmAChanOffs,isMuted[c.chan]?0:((chan[c.chan].pan<<6)|chan[c.chan].outVol)); diff --git a/src/engine/sample.h b/src/engine/sample.h index fa955d01e..35eda8c5e 100644 --- a/src/engine/sample.h +++ b/src/engine/sample.h @@ -53,8 +53,7 @@ enum DivResampleFilters { DIV_RESAMPLE_CUBIC, DIV_RESAMPLE_BLEP, DIV_RESAMPLE_SINC, - DIV_RESAMPLE_BEST, - DIV_RESAMPLE_MAX // for identify boundary + DIV_RESAMPLE_BEST }; struct DivSampleHistory { diff --git a/src/gui/guiConst.cpp b/src/gui/guiConst.cpp index 4f0a6b916..0735df06c 100644 --- a/src/gui/guiConst.cpp +++ b/src/gui/guiConst.cpp @@ -158,7 +158,7 @@ const char* sampleDepths[DIV_SAMPLE_DEPTH_MAX]={ "16-bit PCM" }; -const char* resampleStrats[DIV_RESAMPLE_MAX]={ +const char* resampleStrats[]={ "none", "linear", "cubic spline", diff --git a/src/gui/insEdit.cpp b/src/gui/insEdit.cpp index 9fb803bea..fb19b4ba9 100644 --- a/src/gui/insEdit.cpp +++ b/src/gui/insEdit.cpp @@ -4384,7 +4384,7 @@ void FurnaceGUI::drawInsEdit() { sName=e->song.sample[sampleMap.map]->name; } ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - if (ImGui::BeginCombo(fmt::sprintf("##SampleMap_Index_%d",i).c_str(),sName.c_str())) { + if (ImGui::BeginCombo("##SM",sName.c_str())) { String id; if (ImGui::Selectable("-- empty --",sampleMap.map==-1)) { PARAMETER sampleMap.map=-1; @@ -4400,11 +4400,10 @@ void FurnaceGUI::drawInsEdit() { } /*ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - if (ImGui::InputInt(fmt::sprintf("##SampleMap_Freq_%d",i).c_str(),&sampleMap.freq,50,500)) { PARAMETER + if (ImGui::InputInt("##SF",&sampleMap.freq,50,500)) { PARAMETER if (sampleMap.freq<0) sampleMap.freq=0; if (sampleMap.freq>262144) sampleMap.freq=262144; - } - */ + }*/ ImGui::PopID(); } ImGui::EndTable(); @@ -5146,23 +5145,6 @@ void FurnaceGUI::drawInsEdit() { if (ins->type==DIV_INS_SAA1099) waveMax=2; if (ins->type==DIV_INS_FM || ins->type==DIV_INS_OPL || ins->type==DIV_INS_OPL_DRUMS || ins->type==DIV_INS_OPZ || ins->type==DIV_INS_OPM) waveMax=0; if (ins->type==DIV_INS_MIKEY) waveMax=0; - if ((ins->type==DIV_INS_AMIGA && !ins->amiga.useWave) || ins->type==DIV_INS_ES5506) { - if (!ins->amiga.useWave) { - waveLabel="Sample index"; - waveMax=ins->amiga.useNoteMap?120:MAX(0,(int)(e->song.sampleLen)-1); - } else { - waveMax=MAX(0,(int)(e->song.waveLen)-1); - } - } else if (ins->type==DIV_INS_GB || - (ins->type==DIV_INS_AMIGA && ins->amiga.useWave) || - ins->type==DIV_INS_X1_010 || - ins->type==DIV_INS_N163 || - ins->type==DIV_INS_FDS || - ins->type==DIV_INS_SWAN || - ins->type==DIV_INS_PCE || - ins->type==DIV_INS_SCC) { - waveMax=MAX(0,(int)(e->song.waveLen)-1); - } if (ins->type==DIV_INS_MULTIPCM) waveMax=0; if (ins->type==DIV_INS_ADPCMA) waveMax=0; if (ins->type==DIV_INS_ADPCMB) waveMax=0;