Game Boy: add an option to select wave ch invert

This commit is contained in:
tildearrow 2023-05-04 02:18:56 -05:00
parent bf95a358bc
commit 1e5163c738
3 changed files with 30 additions and 2 deletions

View file

@ -310,6 +310,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
case DIV_SYSTEM_GB: {
int chipType=flags.getInt("chipType",0);
bool noAntiClick=flags.getBool("noAntiClick",false);
bool invertWave=flags.getBool("invertWave",true);
bool enoughAlready=flags.getBool("enoughAlready",false);
if (ImGui::Checkbox("Disable anti-click",&noAntiClick)) {
@ -332,6 +333,26 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
chipType=3;
altered=true;
}
ImGui::Text("Wave channel orientation:");
if (chipType==3) {
if (ImGui::RadioButton("Normal",!invertWave)) {
invertWave=false;
altered=true;
}
if (ImGui::RadioButton("Inverted",invertWave)) {
invertWave=true;
altered=true;
}
} else {
if (ImGui::RadioButton("Exact data (inverted)",!invertWave)) {
invertWave=false;
altered=true;
}
if (ImGui::RadioButton("Exact output (normal)",invertWave)) {
invertWave=true;
altered=true;
}
}
if (ImGui::Checkbox("Pretty please one more compat flag when I use arpeggio and my sound length",&enoughAlready)) {
altered=true;
}
@ -340,6 +361,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
e->lockSave([&]() {
flags.set("chipType",chipType);
flags.set("noAntiClick",noAntiClick);
flags.set("invertWave",invertWave);
flags.set("enoughAlready",enoughAlready);
});
}