dev231 - YM2612: actually be YM2612 by default

pull request #2533
This commit is contained in:
tildearrow 2025-06-02 12:59:10 -05:00
parent 967e717396
commit ffbe910c99
6 changed files with 40 additions and 16 deletions

View file

@ -54,8 +54,8 @@ class DivWorkPool;
#define DIV_UNSTABLE
#define DIV_VERSION "dev230"
#define DIV_ENGINE_VERSION 230
#define DIV_VERSION "dev231"
#define DIV_ENGINE_VERSION 231
// for imports
#define DIV_VERSION_MOD 0xff01
#define DIV_VERSION_FC 0xff02

View file

@ -2126,6 +2126,21 @@ bool DivEngine::loadFur(unsigned char* file, size_t len, int variantID) {
}
}
// YM2612 chip type
if (ds.version<231) {
for (int i=0; i<ds.systemLen; i++) {
if (ds.system[i]==DIV_SYSTEM_YM2612 ||
ds.system[i]==DIV_SYSTEM_YM2612_EXT ||
ds.system[i]==DIV_SYSTEM_YM2612_EXT ||
ds.system[i]==DIV_SYSTEM_YM2612_DUALPCM ||
ds.system[i]==DIV_SYSTEM_YM2612_DUALPCM_EXT ||
ds.system[i]==DIV_SYSTEM_YM2612_CSM) {
if (!ds.systemFlags[i].has("chipType") && !ds.systemFlags[i].has("ladderEffect")) {
ds.systemFlags[i].set("chipType",0);
}
}
}
}
if (active) quitDispatch();
BUSY_BEGIN_SOFT;

View file

@ -1857,9 +1857,11 @@ void DivPlatformGenesis::setFlags(const DivConfig& flags) {
break;
}
if (flags.has("chipType")) {
chipType=flags.getInt("chipType",0);
} else {
chipType=flags.getInt("chipType",1);
} else if (flags.has("ladderEffect")) {
chipType=flags.getBool("ladderEffect",false)?1:0;
} else {
chipType=1;
}
noExtMacros=flags.getBool("noExtMacros",false);
fbAllOps=flags.getBool("fbAllOps",false);

View file

@ -3168,27 +3168,27 @@ void FurnaceGUI::initSystemPresets() {
);
ENTRY(
_("Yamaha YM3438 (OPN2C)"), {
CH(DIV_SYSTEM_YM2612, 1.0f, 0, "")
CH(DIV_SYSTEM_YM2612, 1.0f, 0, "chipType=0")
}
);
SUB_ENTRY(
_("Yamaha YM3438 (extended channel 3)"), {
CH(DIV_SYSTEM_YM2612_EXT, 1.0f, 0, "")
CH(DIV_SYSTEM_YM2612_EXT, 1.0f, 0, "chipType=0")
}
);
SUB_ENTRY(
_("Yamaha YM3438 (OPN2C) CSM"), {
CH(DIV_SYSTEM_YM2612_CSM, 1.0f, 0, "")
CH(DIV_SYSTEM_YM2612_CSM, 1.0f, 0, "chipType=0")
}
);
SUB_ENTRY(
_("Yamaha YM3438 (OPN2C) with DualPCM"), {
CH(DIV_SYSTEM_YM2612_DUALPCM, 1.0f, 0, "")
CH(DIV_SYSTEM_YM2612_DUALPCM, 1.0f, 0, "chipType=0")
}
);
SUB_ENTRY(
_("Yamaha YM3438 (extended channel 3) with DualPCM"), {
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 1.0f, 0, "")
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 1.0f, 0, "chipType=0")
}
);
ENTRY(

View file

@ -1450,6 +1450,13 @@ void FurnaceGUI::drawSampleEdit() {
}
}
if (mobileUI) {
sameLineMaybe();
if (ImGui::Button(ICON_FA_ELLIPSIS_H "##SMobMenu")) {
ImGui::OpenPopup("SRightClick");
}
}
ImGui::Separator();
// time

View file

@ -36,10 +36,10 @@ bool FurnaceGUI::drawSysConf(int chan, int sysPos, DivSystem type, DivConfig& fl
case DIV_SYSTEM_YM2612_DUALPCM_EXT:
case DIV_SYSTEM_YM2612_CSM: {
int clockSel=flags.getInt("clockSel",0);
int chipType=0;
int chipType=1;
if (flags.has("chipType")) {
chipType=flags.getInt("chipType",0);
} else {
chipType=flags.getInt("chipType",1);
} else if (flags.has("ladderEffect")) {
chipType=flags.getBool("ladderEffect",0)?1:0;
}
int interruptSimCycles=flags.getInt("interruptSimCycles",0);
@ -73,14 +73,14 @@ bool FurnaceGUI::drawSysConf(int chan, int sysPos, DivSystem type, DivConfig& fl
ImGui::Text(_("Chip type:"));
ImGui::Indent();
if (ImGui::RadioButton(_("YM3438 (9-bit DAC)"),chipType==0)) {
chipType=0;
altered=true;
}
if (ImGui::RadioButton(_("YM2612 (9-bit DAC with distortion)"),chipType==1)) {
chipType=1;
altered=true;
}
if (ImGui::RadioButton(_("YM3438 (9-bit DAC)"),chipType==0)) {
chipType=0;
altered=true;
}
if (ImGui::RadioButton(_("YMF276 (external DAC)"),chipType==2)) {
chipType=2;
altered=true;