YM2608-LLE, part 1 - DOES NOT WORK

This commit is contained in:
tildearrow 2024-04-25 20:25:34 -05:00
parent 790502726f
commit 94e9aee874
6 changed files with 98 additions and 36 deletions

View file

@ -154,7 +154,8 @@ const char* pokeyCores[]={
const char* opnCores[]={
"ymfm only",
"Nuked-OPN2 (FM) + ymfm (SSG/ADPCM)"
"Nuked-OPN2 (FM) + ymfm (SSG/ADPCM)",
"YM2608-LLE"
};
const char* opl2Cores[]={
@ -1706,13 +1707,35 @@ void FurnaceGUI::drawSettings() {
ImGui::TableNextRow();
ImGui::TableNextColumn();
ImGui::AlignTextToFramePadding();
ImGui::Text("OPN/OPNA/OPNB");
ImGui::Text("OPN");
ImGui::TableNextColumn();
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
if (ImGui::Combo("##OPNCore",&settings.opnCore,opnCores,2)) settingsChanged=true;
if (ImGui::Combo("##OPNCore",&settings.opn1Core,opnCores,3)) settingsChanged=true;
ImGui::TableNextColumn();
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
if (ImGui::Combo("##OPNCoreRender",&settings.opnCoreRender,opnCores,2)) settingsChanged=true;
if (ImGui::Combo("##OPNCoreRender",&settings.opn1CoreRender,opnCores,3)) settingsChanged=true;
ImGui::TableNextRow();
ImGui::TableNextColumn();
ImGui::AlignTextToFramePadding();
ImGui::Text("OPNA");
ImGui::TableNextColumn();
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
if (ImGui::Combo("##OPNACore",&settings.opnaCore,opnCores,3)) settingsChanged=true;
ImGui::TableNextColumn();
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
if (ImGui::Combo("##OPNACoreRender",&settings.opnaCoreRender,opnCores,3)) settingsChanged=true;
ImGui::TableNextRow();
ImGui::TableNextColumn();
ImGui::AlignTextToFramePadding();
ImGui::Text("OPNB");
ImGui::TableNextColumn();
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
if (ImGui::Combo("##OPNBCore",&settings.opnbCore,opnCores,3)) settingsChanged=true;
ImGui::TableNextColumn();
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
if (ImGui::Combo("##OPNBCoreRender",&settings.opnbCoreRender,opnCores,3)) settingsChanged=true;
ImGui::TableNextRow();
ImGui::TableNextColumn();
@ -4338,7 +4361,9 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
settings.fdsCore=conf.getInt("fdsCore",0);
settings.c64Core=conf.getInt("c64Core",0);
settings.pokeyCore=conf.getInt("pokeyCore",1);
settings.opnCore=conf.getInt("opnCore",1);
settings.opn1Core=conf.getInt("opn1Core",1);
settings.opnaCore=conf.getInt("opnaCore",1);
settings.opnbCore=conf.getInt("opnbCore",1);
settings.opl2Core=conf.getInt("opl2Core",0);
settings.opl3Core=conf.getInt("opl3Core",0);
settings.esfmCore=conf.getInt("esfmCore",0);
@ -4363,7 +4388,9 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
settings.fdsCoreRender=conf.getInt("fdsCoreRender",1);
settings.c64CoreRender=conf.getInt("c64CoreRender",1);
settings.pokeyCoreRender=conf.getInt("pokeyCoreRender",1);
settings.opnCoreRender=conf.getInt("opnCoreRender",1);
settings.opn1CoreRender=conf.getInt("opn1CoreRender",1);
settings.opnaCoreRender=conf.getInt("opnaCoreRender",1);
settings.opnbCoreRender=conf.getInt("opnbCoreRender",1);
settings.opl2CoreRender=conf.getInt("opl2CoreRender",0);
settings.opl3CoreRender=conf.getInt("opl3CoreRender",0);
settings.esfmCoreRender=conf.getInt("esfmCoreRender",0);
@ -4405,7 +4432,9 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
clampSetting(settings.fdsCore,0,1);
clampSetting(settings.c64Core,0,2);
clampSetting(settings.pokeyCore,0,1);
clampSetting(settings.opnCore,0,1);
clampSetting(settings.opn1Core,0,2);
clampSetting(settings.opnaCore,0,2);
clampSetting(settings.opnbCore,0,2);
clampSetting(settings.opl2Core,0,2);
clampSetting(settings.opl3Core,0,2);
clampSetting(settings.esfmCore,0,1);
@ -4428,7 +4457,9 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
clampSetting(settings.fdsCoreRender,0,1);
clampSetting(settings.c64CoreRender,0,2);
clampSetting(settings.pokeyCoreRender,0,1);
clampSetting(settings.opnCoreRender,0,1);
clampSetting(settings.opn1CoreRender,0,2);
clampSetting(settings.opnaCoreRender,0,2);
clampSetting(settings.opnbCoreRender,0,2);
clampSetting(settings.opl2CoreRender,0,2);
clampSetting(settings.opl3CoreRender,0,2);
clampSetting(settings.esfmCoreRender,0,1);
@ -4882,7 +4913,9 @@ void FurnaceGUI::writeConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
conf.set("fdsCore",settings.fdsCore);
conf.set("c64Core",settings.c64Core);
conf.set("pokeyCore",settings.pokeyCore);
conf.set("opnCore",settings.opnCore);
conf.set("opn1Core",settings.opn1Core);
conf.set("opnaCore",settings.opnaCore);
conf.set("opnbCore",settings.opnbCore);
conf.set("opl2Core",settings.opl2Core);
conf.set("opl3Core",settings.opl3Core);
conf.set("esfmCore",settings.esfmCore);
@ -4907,7 +4940,9 @@ void FurnaceGUI::writeConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
conf.set("fdsCoreRender",settings.fdsCoreRender);
conf.set("c64CoreRender",settings.c64CoreRender);
conf.set("pokeyCoreRender",settings.pokeyCoreRender);
conf.set("opnCoreRender",settings.opnCoreRender);
conf.set("opn1CoreRender",settings.opn1CoreRender);
conf.set("opnaCoreRender",settings.opnaCoreRender);
conf.set("opnbCoreRender",settings.opnbCoreRender);
conf.set("opl2CoreRender",settings.opl2CoreRender);
conf.set("opl3CoreRender",settings.opl3CoreRender);
conf.set("esfmCoreRender",settings.esfmCoreRender);
@ -4965,7 +5000,9 @@ void FurnaceGUI::commitSettings() {
settings.fdsCore!=e->getConfInt("fdsCore",0) ||
settings.c64Core!=e->getConfInt("c64Core",0) ||
settings.pokeyCore!=e->getConfInt("pokeyCore",1) ||
settings.opnCore!=e->getConfInt("opnCore",1) ||
settings.opn1Core!=e->getConfInt("opn1Core",1) ||
settings.opnaCore!=e->getConfInt("opnaCore",1) ||
settings.opnbCore!=e->getConfInt("opnbCore",1) ||
settings.opl2Core!=e->getConfInt("opl2Core",0) ||
settings.opl3Core!=e->getConfInt("opl3Core",0) ||
settings.esfmCore!=e->getConfInt("esfmCore",0) ||