setting to choose between OPL2 and OPL3, channel naming

This commit is contained in:
LTVA1 2024-08-14 18:40:17 +03:00 committed by tildearrow
parent 41e094d79d
commit 5770f381ba
6 changed files with 72 additions and 32 deletions

View file

@ -2417,7 +2417,7 @@ int FurnaceGUI::load(String path) {
return 1;
}
fclose(f);
if (!e->load(file,(size_t)len,path.c_str())) {
if (!e->load(file,(size_t)len,path.c_str(),settings.OPL2s3mImport)) {
lastError=e->getLastError();
logE("could not open file!");
return 1;
@ -4110,7 +4110,7 @@ bool FurnaceGUI::loop() {
if (!tutorial.introPlayed || settings.alwaysPlayIntro==3 || (settings.alwaysPlayIntro==2 && curFileName.empty())) {
unsigned char* introTemp=new unsigned char[intro_fur_len];
memcpy(introTemp,intro_fur,intro_fur_len);
e->load(introTemp,intro_fur_len);
e->load(introTemp,intro_fur_len,NULL,settings.OPL2s3mImport);
}
}

View file

@ -1958,6 +1958,7 @@ class FurnaceGUI {
unsigned int maxUndoSteps;
float vibrationStrength;
int vibrationLength;
bool OPL2s3mImport;
String mainFontPath;
String headFontPath;
String patFontPath;
@ -2214,6 +2215,7 @@ class FurnaceGUI {
maxUndoSteps(100),
vibrationStrength(0.5f),
vibrationLength(20),
OPL2s3mImport(false),
mainFontPath(""),
headFontPath(""),
patFontPath(""),

View file

@ -1254,6 +1254,14 @@ void FurnaceGUI::drawSettings() {
}
popDestColor();
// SUBSECTION CONFIGURATION
CONFIG_SUBSECTION(_("Modules import"));
bool s3mOPL2B=settings.OPL2s3mImport;
if (ImGui::Checkbox(_("Use OPL2 instead of OPL3 for .s3m modules import"),&s3mOPL2B)) {
settings.OPL2s3mImport=s3mOPL2B;
settingsChanged=true;
}
END_SECTION;
}
CONFIG_SECTION(_("Audio")) {
@ -4746,6 +4754,8 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
settings.vibrationStrength=conf.getFloat("vibrationStrength",0.5f);
settings.vibrationLength=conf.getInt("vibrationLength",20);
settings.OPL2s3mImport=conf.getInt("OPL2s3mImport",false);
settings.backupEnable=conf.getInt("backupEnable",1);
settings.backupInterval=conf.getInt("backupInterval",30);
settings.backupMaxCopies=conf.getInt("backupMaxCopies",5);
@ -5331,6 +5341,8 @@ void FurnaceGUI::writeConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
conf.set("vibrationStrength",settings.vibrationStrength);
conf.set("vibrationLength",settings.vibrationLength);
conf.set("OPL2s3mImport",settings.OPL2s3mImport);
conf.set("backupEnable",settings.backupEnable);
conf.set("backupInterval",settings.backupInterval);
conf.set("backupMaxCopies",settings.backupMaxCopies);