i honestly don't agree with this compat flag

This commit is contained in:
tildearrow 2022-09-23 13:28:57 -05:00
parent 6b684d655a
commit b9a4b568b6
4 changed files with 2 additions and 12 deletions

View file

@ -179,7 +179,6 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) {
ds.brokenPortaArp=false; ds.brokenPortaArp=false;
ds.snNoLowPeriods=true; ds.snNoLowPeriods=true;
ds.ignorePCEDACVolume=true; ds.ignorePCEDACVolume=true;
ds.newY8950PCMFreq=false;
ds.delayBehavior=0; ds.delayBehavior=0;
ds.jumpTreatment=2; ds.jumpTreatment=2;
@ -1103,7 +1102,6 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) {
ds.autoSystem=false; ds.autoSystem=false;
} }
ds.ignorePCEDACVolume=true; ds.ignorePCEDACVolume=true;
ds.newY8950PCMFreq=false;
ds.isDMF=false; ds.isDMF=false;
reader.readS(); // reserved reader.readS(); // reserved

View file

@ -28,8 +28,6 @@
#define KVSL(x,y) ((chan[x].state.op[orderedOpsL1[ops==4][y]].kvs==2 && isOutputL[ops==4][chan[x].state.alg][y]) || chan[x].state.op[orderedOpsL1[ops==4][y]].kvs==1) #define KVSL(x,y) ((chan[x].state.op[orderedOpsL1[ops==4][y]].kvs==2 && isOutputL[ops==4][chan[x].state.alg][y]) || chan[x].state.op[orderedOpsL1[ops==4][y]].kvs==1)
#define OPLPCMDiv (parent->song.newY8950PCMFreq?((oplType==3)?288:72):144)
#define CHIP_FREQBASE chipFreqBase #define CHIP_FREQBASE chipFreqBase
// N = invalid // N = invalid
@ -276,7 +274,7 @@ double DivPlatformOPL::NOTE_ADPCMB(int note) {
if (adpcmChan<0) return 0; if (adpcmChan<0) return 0;
if (chan[adpcmChan].sample>=0 && chan[adpcmChan].sample<parent->song.sampleLen) { if (chan[adpcmChan].sample>=0 && chan[adpcmChan].sample<parent->song.sampleLen) {
double off=65535.0*(double)(parent->getSample(chan[adpcmChan].sample)->centerRate)/8363.0; double off=65535.0*(double)(parent->getSample(chan[adpcmChan].sample)->centerRate)/8363.0;
return parent->calcBaseFreq((double)chipClock/OPLPCMDiv,off,note,false); return parent->calcBaseFreq((double)chipClock/144,off,note,false);
} }
return 0; return 0;
} }
@ -506,7 +504,7 @@ void DivPlatformOPL::tick(bool sysTick) {
if (chan[adpcmChan].freqChanged || chan[adpcmChan].keyOn || chan[adpcmChan].keyOff) { if (chan[adpcmChan].freqChanged || chan[adpcmChan].keyOn || chan[adpcmChan].keyOff) {
if (chan[adpcmChan].sample>=0 && chan[adpcmChan].sample<parent->song.sampleLen) { if (chan[adpcmChan].sample>=0 && chan[adpcmChan].sample<parent->song.sampleLen) {
double off=65535.0*(double)(parent->getSample(chan[adpcmChan].sample)->centerRate)/8363.0; double off=65535.0*(double)(parent->getSample(chan[adpcmChan].sample)->centerRate)/8363.0;
chan[adpcmChan].freq=parent->calcFreq(chan[adpcmChan].baseFreq,chan[adpcmChan].pitch,false,4,chan[adpcmChan].pitch2,(double)chipClock/OPLPCMDiv,off); chan[adpcmChan].freq=parent->calcFreq(chan[adpcmChan].baseFreq,chan[adpcmChan].pitch,false,4,chan[adpcmChan].pitch2,(double)chipClock/144,off);
} else { } else {
chan[adpcmChan].freq=0; chan[adpcmChan].freq=0;
} }

View file

@ -512,7 +512,6 @@ struct DivSong {
bool brokenPortaArp; bool brokenPortaArp;
bool snNoLowPeriods; bool snNoLowPeriods;
bool ignorePCEDACVolume; bool ignorePCEDACVolume;
bool newY8950PCMFreq;
bool autoSystem; bool autoSystem;
std::vector<DivInstrument*> ins; std::vector<DivInstrument*> ins;
@ -619,7 +618,6 @@ struct DivSong {
brokenPortaArp(false), brokenPortaArp(false),
snNoLowPeriods(false), snNoLowPeriods(false),
ignorePCEDACVolume(true), ignorePCEDACVolume(true),
newY8950PCMFreq(false),
autoSystem(true) { autoSystem(true) {
for (int i=0; i<32; i++) { for (int i=0; i<32; i++) {
system[i]=DIV_SYSTEM_NULL; system[i]=DIV_SYSTEM_NULL;

View file

@ -147,10 +147,6 @@ void FurnaceGUI::drawCompatFlags() {
if (ImGui::IsItemHovered()) { if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("when enabled, PC Engine DAC Volume is ignored."); ImGui::SetTooltip("when enabled, PC Engine DAC Volume is ignored.");
} }
ImGui::Checkbox("New Y8950 Frequency calculation",&e->song.newY8950PCMFreq);
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("when enabled, use corrected Y8950 frequency calculation");
}
ImGui::Text("Pitch linearity:"); ImGui::Text("Pitch linearity:");
if (ImGui::RadioButton("None",e->song.linearPitch==0)) { if (ImGui::RadioButton("None",e->song.linearPitch==0)) {