Merge branch 'master' into ymf289b

This commit is contained in:
tildearrow 2023-05-11 16:59:38 -05:00
commit 25eb720631
230 changed files with 69242 additions and 87659 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);
});
}
@ -434,6 +456,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
case DIV_SYSTEM_FDS:
case DIV_SYSTEM_MMC5: {
int clockSel=flags.getInt("clockSel",0);
bool dpcmMode=flags.getBool("dpcmMode",true);
ImGui::Text("Clock rate:");
if (ImGui::RadioButton("NTSC (1.79MHz)",clockSel==0)) {
clockSel=0;
@ -448,9 +473,21 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
altered=true;
}
ImGui::Text("DPCM channel mode:");
if (ImGui::RadioButton("DPCM (muffled samples; low CPU usage)",dpcmMode)) {
dpcmMode=true;
altered=true;
}
if (ImGui::RadioButton("PCM (crisp samples; high CPU usage)",!dpcmMode)) {
dpcmMode=false;
altered=true;
}
if (altered) {
e->lockSave([&]() {
flags.set("clockSel",clockSel);
flags.set("dpcmMode",dpcmMode);
});
}
break;
@ -621,6 +658,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
chipType=3;
altered=true;
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("note: AY-3-8914 is not supported by the VGM format!");
}
}
ImGui::BeginDisabled(type==DIV_SYSTEM_AY8910 && chipType==2);
if (ImGui::Checkbox("Stereo##_AY_STEREO",&stereo)) {
@ -681,6 +721,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
case DIV_SYSTEM_AMIGA: {
bool clockSel=flags.getInt("clockSel",0);
int chipType=flags.getInt("chipType",0);
int chipMem=flags.getInt("chipMem",21);
int stereoSep=flags.getInt("stereoSep",0);
bool bypassLimits=flags.getBool("bypassLimits",false);
@ -690,6 +731,8 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
if (stereoSep>127) stereoSep=127;
altered=true;
} rightClickable
ImGui::Text("Model:");
if (ImGui::RadioButton("Amiga 500 (OCS)",chipType==0)) {
chipType=0;
altered=true;
@ -698,6 +741,26 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
chipType=1;
altered=true;
}
ImGui::Text("Chip memory:");
if (ImGui::RadioButton("2MB (ECS/AGA max)",chipMem==21)) {
chipMem=21;
altered=true;
}
if (ImGui::RadioButton("1MB",chipMem==20)) {
chipMem=20;
altered=true;
}
if (ImGui::RadioButton("512KB (OCS max)",chipMem==19)) {
chipMem=19;
altered=true;
}
if (ImGui::RadioButton("256KB",chipMem==18)) {
chipMem=18;
altered=true;
}
if (ImGui::Checkbox("PAL",&clockSel)) {
altered=true;
}
@ -709,6 +772,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
e->lockSave([&]() {
flags.set("clockSel",(int)clockSel);
flags.set("chipType",chipType);
flags.set("chipMem",chipMem);
flags.set("stereoSep",stereoSep);
flags.set("bypassLimits",bypassLimits);
});
@ -831,6 +895,10 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=1;
altered=true;
}
if (ImGui::RadioButton("14.32MHz (NTSC)",clockSel==2)) {
clockSel=2;
altered=true;
}
if (ImGui::Checkbox("Stereo",&stereo)) {
altered=true;
@ -1719,7 +1787,57 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
}
break;
}
case DIV_SYSTEM_SM8521: {
case DIV_SYSTEM_NAMCO:
case DIV_SYSTEM_NAMCO_15XX: {
bool romMode=flags.getBool("romMode",false);
ImGui::Text("Waveform storage mode:");
if (ImGui::RadioButton("RAM",!romMode)) {
romMode=false;
altered=true;
}
if (ImGui::RadioButton("ROM (up to 8 waves)",romMode)) {
romMode=true;
altered=true;
}
if (altered) {
e->lockSave([&]() {
flags.set("romMode",romMode);
});
}
break;
}
case DIV_SYSTEM_NAMCO_CUS30: {
bool newNoise=flags.getBool("newNoise",true);
if (InvCheckbox("Compatible noise frequencies",&newNoise)) {
altered=true;
}
if (altered) {
e->lockSave([&]() {
flags.set("newNoise",newNoise);
});
}
break;
}
case DIV_SYSTEM_SEGAPCM:
case DIV_SYSTEM_SEGAPCM_COMPAT: {
bool oldSlides=flags.getBool("oldSlides",false);
if (ImGui::Checkbox("Legacy slides and pitch (compatibility)",&oldSlides)) {
altered=true;
}
if (altered) {
e->lockSave([&]() {
flags.set("oldSlides",oldSlides);
});
}
break;
}
case DIV_SYSTEM_SM8521:/* {
bool noAntiClick=flags.getBool("noAntiClick",false);
if (ImGui::Checkbox("Disable anti-click",&noAntiClick)) {
@ -1732,17 +1850,18 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
});
}
break;
}
}*/
case DIV_SYSTEM_SWAN:
case DIV_SYSTEM_BUBSYS_WSG:
case DIV_SYSTEM_PET:
case DIV_SYSTEM_VBOY:
case DIV_SYSTEM_GA20:
ImGui::Text("nothing to configure");
break;
case DIV_SYSTEM_PV1000:
case DIV_SYSTEM_VERA:
break;
case DIV_SYSTEM_YMU759:
supportsCustomRate=false;
ImGui::Text("nothing to configure");
break;
default: {
bool sysPal=flags.getInt("clockSel",0);