dev125 - prepare for ExtCh FM macros

This commit is contained in:
tildearrow 2022-11-07 18:39:04 -05:00
parent 06ddf07d48
commit 8d8bdfd1f7
10 changed files with 56 additions and 6 deletions

View file

@ -32,6 +32,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
case DIV_SYSTEM_YM2612_FRAC_EXT: {
int clockSel=flags.getInt("clockSel",0);
bool ladder=flags.getBool("ladderEffect",0);
bool noExtMacros=flags.getBool("noExtMacros",false);
if (ImGui::RadioButton("NTSC (7.67MHz)",clockSel==0)) {
clockSel=0;
@ -56,11 +57,17 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
if (ImGui::Checkbox("Enable DAC distortion",&ladder)) {
altered=true;
}
if (type==DIV_SYSTEM_YM2612_EXT || type==DIV_SYSTEM_YM2612_FRAC_EXT) {
if (ImGui::Checkbox("Disable ExtCh FM macros (compatibility)",&noExtMacros)) {
altered=true;
}
}
if (altered) {
e->lockSave([&]() {
flags.set("clockSel",clockSel);
flags.set("ladderEffect",ladder);
flags.set("noExtMacros",noExtMacros);
});
}
break;
@ -439,6 +446,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
case DIV_SYSTEM_YM2610B:
case DIV_SYSTEM_YM2610B_EXT: {
int clockSel=flags.getInt("clockSel",0);
bool noExtMacros=flags.getBool("noExtMacros",false);
if (ImGui::RadioButton("8MHz (Neo Geo MVS)",clockSel==0)) {
clockSel=0;
@ -449,9 +457,16 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
altered=true;
}
if (type==DIV_SYSTEM_YM2610_EXT || type==DIV_SYSTEM_YM2610_FULL_EXT || type==DIV_SYSTEM_YM2610B_EXT) {
if (ImGui::Checkbox("Disable ExtCh FM macros (compatibility)",&noExtMacros)) {
altered=true;
}
}
if (altered) {
e->lockSave([&]() {
flags.set("clockSel",clockSel);
flags.set("noExtMacros",noExtMacros);
});
}
break;
@ -789,6 +804,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
case DIV_SYSTEM_OPN_EXT: {
int clockSel=flags.getInt("clockSel",0);
int prescale=flags.getInt("prescale",0);
bool noExtMacros=flags.getBool("noExtMacros",false);
ImGui::Text("Clock rate:");
if (ImGui::RadioButton("3.58MHz (NTSC)",clockSel==0)) {
@ -829,10 +845,17 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
altered=true;
}
if (type==DIV_SYSTEM_OPN_EXT) {
if (ImGui::Checkbox("Disable ExtCh FM macros (compatibility)",&noExtMacros)) {
altered=true;
}
}
if (altered) {
e->lockSave([&]() {
flags.set("clockSel",clockSel);
flags.set("prescale",prescale);
flags.set("noExtMacros",noExtMacros);
});
}
break;
@ -841,6 +864,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
case DIV_SYSTEM_PC98_EXT: {
int clockSel=flags.getInt("clockSel",0);
int prescale=flags.getInt("prescale",0);
bool noExtMacros=flags.getBool("noExtMacros",false);
ImGui::Text("Clock rate:");
if (ImGui::RadioButton("8MHz (Arcade)",clockSel==0)) {
@ -865,10 +889,17 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
altered=true;
}
if (type==DIV_SYSTEM_PC98_EXT) {
if (ImGui::Checkbox("Disable ExtCh FM macros (compatibility)",&noExtMacros)) {
altered=true;
}
}
if (altered) {
e->lockSave([&]() {
flags.set("clockSel",clockSel);
flags.set("prescale",prescale);
flags.set("noExtMacros",noExtMacros);
});
}
break;