Some fleshing out YMF278B

Add OpenMSX YMF278B core option, Expand RAM size option
This commit is contained in:
cam900 2024-07-12 12:16:24 +09:00
parent a8ec76699b
commit 221fa5aa42
11 changed files with 275 additions and 104 deletions

View file

@ -294,6 +294,7 @@ const char* aboutLine[]={
_N("PowerNoise emulator by scratchminer"),
_N("ep128emu by Istvan Varga"),
_N("NDS sound emulator by cam900"),
_N("OpenMSX YMF278 emulator (modified version) by the openMSX developers"),
"",
_N("greetings to:"),
"NEOART Costa Rica",

View file

@ -1737,6 +1737,7 @@ class FurnaceGUI {
int opnbCore;
int opl2Core;
int opl3Core;
int opl4Core;
int esfmCore;
int opllCore;
int ayCore;
@ -1763,6 +1764,7 @@ class FurnaceGUI {
int opnbCoreRender;
int opl2CoreRender;
int opl3CoreRender;
int opl4CoreRender;
int esfmCoreRender;
int opllCoreRender;
int ayCoreRender;
@ -1995,6 +1997,7 @@ class FurnaceGUI {
opnbCore(1),
opl2Core(0),
opl3Core(0),
opl4Core(0),
esfmCore(0),
opllCore(0),
ayCore(0),
@ -2021,6 +2024,7 @@ class FurnaceGUI {
opnbCoreRender(1),
opl2CoreRender(0),
opl3CoreRender(0),
opl4CoreRender(0),
esfmCoreRender(0),
opllCoreRender(0),
ayCoreRender(0),

View file

@ -189,6 +189,11 @@ const char* opl3Cores[]={
"YMF262-LLE"
};
const char* opl4Cores[]={
"Nuked-OPL3 + OpenMSX",
"ymfm"
};
const char* esfmCores[]={
"ESFMu",
_N("ESFMu (fast)")
@ -2046,6 +2051,17 @@ void FurnaceGUI::drawSettings() {
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
if (ImGui::Combo("##OPL3CoreRender",&settings.opl3CoreRender,opl3Cores,3)) settingsChanged=true;
ImGui::TableNextRow();
ImGui::TableNextColumn();
ImGui::AlignTextToFramePadding();
ImGui::Text("OPL4");
ImGui::TableNextColumn();
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
if (ImGui::Combo("##OPL4Core",&settings.opl4Core,opl4Cores,2)) settingsChanged=true;
ImGui::TableNextColumn();
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
if (ImGui::Combo("##OPL4CoreRender",&settings.opl4CoreRender,opl4Cores,2)) settingsChanged=true;
ImGui::TableNextRow();
ImGui::TableNextColumn();
ImGui::AlignTextToFramePadding();
@ -4959,6 +4975,7 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
settings.opnbCore=conf.getInt("opnbCore",1);
settings.opl2Core=conf.getInt("opl2Core",0);
settings.opl3Core=conf.getInt("opl3Core",0);
settings.opl4Core=conf.getInt("opl4Core",0);
settings.esfmCore=conf.getInt("esfmCore",0);
settings.opllCore=conf.getInt("opllCore",0);
settings.ayCore=conf.getInt("ayCore",0);
@ -4987,6 +5004,7 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
settings.opnbCoreRender=conf.getInt("opnbCoreRender",1);
settings.opl2CoreRender=conf.getInt("opl2CoreRender",0);
settings.opl3CoreRender=conf.getInt("opl3CoreRender",0);
settings.opl4CoreRender=conf.getInt("opl4CoreRender",0);
settings.esfmCoreRender=conf.getInt("esfmCoreRender",0);
settings.opllCoreRender=conf.getInt("opllCoreRender",0);
settings.ayCoreRender=conf.getInt("ayCoreRender",0);
@ -5032,6 +5050,7 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
clampSetting(settings.opnbCore,0,2);
clampSetting(settings.opl2Core,0,2);
clampSetting(settings.opl3Core,0,2);
clampSetting(settings.opl4Core,0,1);
clampSetting(settings.esfmCore,0,1);
clampSetting(settings.opllCore,0,1);
clampSetting(settings.ayCore,0,1);
@ -5058,6 +5077,7 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
clampSetting(settings.opnbCoreRender,0,2);
clampSetting(settings.opl2CoreRender,0,2);
clampSetting(settings.opl3CoreRender,0,2);
clampSetting(settings.opl4CoreRender,0,1);
clampSetting(settings.esfmCoreRender,0,1);
clampSetting(settings.opllCoreRender,0,1);
clampSetting(settings.ayCoreRender,0,1);
@ -5543,6 +5563,7 @@ void FurnaceGUI::writeConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
conf.set("opnbCore",settings.opnbCore);
conf.set("opl2Core",settings.opl2Core);
conf.set("opl3Core",settings.opl3Core);
conf.set("opl4Core",settings.opl4Core);
conf.set("esfmCore",settings.esfmCore);
conf.set("opllCore",settings.opllCore);
conf.set("ayCore",settings.ayCore);
@ -5571,6 +5592,7 @@ void FurnaceGUI::writeConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
conf.set("opnbCoreRender",settings.opnbCoreRender);
conf.set("opl2CoreRender",settings.opl2CoreRender);
conf.set("opl3CoreRender",settings.opl3CoreRender);
conf.set("opl4CoreRender",settings.opl4CoreRender);
conf.set("esfmCoreRender",settings.esfmCoreRender);
conf.set("opllCoreRender",settings.opllCoreRender);
conf.set("ayCoreRender",settings.ayCoreRender);
@ -5634,6 +5656,7 @@ void FurnaceGUI::commitSettings() {
settings.opnbCore!=e->getConfInt("opnbCore",1) ||
settings.opl2Core!=e->getConfInt("opl2Core",0) ||
settings.opl3Core!=e->getConfInt("opl3Core",0) ||
settings.opl4Core!=e->getConfInt("opl4Core",0) ||
settings.esfmCore!=e->getConfInt("esfmCore",0) ||
settings.opllCore!=e->getConfInt("opllCore",0) ||
settings.ayCore!=e->getConfInt("ayCore",0) ||

View file

@ -2538,14 +2538,22 @@ bool FurnaceGUI::drawSysConf(int chan, int sysPos, DivSystem type, DivConfig& fl
ramSize=2;
altered=true;
}
if (ImGui::RadioButton(_("512KB"),ramSize==3)) {
if (ImGui::RadioButton(_("640KB"),ramSize==3)) {
ramSize=3;
altered=true;
}
if (ImGui::RadioButton(_("128KB"),ramSize==4)) {
if (ImGui::RadioButton(_("512KB"),ramSize==4)) {
ramSize=4;
altered=true;
}
if (ImGui::RadioButton(_("256KB"),ramSize==5)) {
ramSize=5;
altered=true;
}
if (ImGui::RadioButton(_("128KB"),ramSize==6)) {
ramSize=6;
altered=true;
}
ImGui::Unindent();
if (altered) {