separate cores + selection for playback and export
This commit is contained in:
parent
edad084e5d
commit
8da1085809
|
@ -821,6 +821,18 @@ void DivEngine::runExportThread() {
|
|||
size_t fadeOutSamples=got.rate*exportFadeOut;
|
||||
size_t curFadeOutSample=0;
|
||||
bool isFadingOut=false;
|
||||
|
||||
setConf("arcadeCore",getConfInt("arcadeCoreRender",0));
|
||||
setConf("ym2612Core",getConfInt("ym2612CoreRender",0));
|
||||
setConf("snCore",getConfInt("snCoreRender",0));
|
||||
setConf("nesCore",getConfInt("nesCoreRender",0));
|
||||
setConf("fdsCore",getConfInt("fdsCoreRender",0));
|
||||
setConf("c64Core",getConfInt("c64CoreRender",0));
|
||||
setConf("pokeyCore",getConfInt("pokeyCoreRender",0));
|
||||
setConf("opnCore",getConfInt("opnCoreRender",0));
|
||||
|
||||
switchMaster(true);
|
||||
|
||||
switch (exportMode) {
|
||||
case DIV_EXPORT_MODE_ONE: {
|
||||
SNDFILE* sf;
|
||||
|
@ -1144,6 +1156,18 @@ void DivEngine::runExportThread() {
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
setConf("arcadeCore",getConfInt("arcadeCorePlayback",0));
|
||||
setConf("ym2612Core",getConfInt("ym2612CorePlayback",0));
|
||||
setConf("snCore",getConfInt("snCorePlayback",0));
|
||||
setConf("nesCore",getConfInt("nesCorePlayback",0));
|
||||
setConf("fdsCore",getConfInt("fdsCorePlayback",0));
|
||||
setConf("c64Core",getConfInt("c64CorePlayback",0));
|
||||
setConf("pokeyCore",getConfInt("pokeyCorePlayback",0));
|
||||
setConf("opnCore",getConfInt("opnCorePlayback",0));
|
||||
|
||||
switchMaster(true);
|
||||
|
||||
stopExport=false;
|
||||
}
|
||||
#else
|
||||
|
|
|
@ -1419,6 +1419,22 @@ class FurnaceGUI {
|
|||
int c64Core;
|
||||
int pokeyCore;
|
||||
int opnCore;
|
||||
int arcadeCorePlayback;
|
||||
int ym2612CorePlayback;
|
||||
int snCorePlayback;
|
||||
int nesCorePlayback;
|
||||
int fdsCorePlayback;
|
||||
int c64CorePlayback;
|
||||
int pokeyCorePlayback;
|
||||
int opnCorePlayback;
|
||||
int arcadeCoreRender;
|
||||
int ym2612CoreRender;
|
||||
int snCoreRender;
|
||||
int nesCoreRender;
|
||||
int fdsCoreRender;
|
||||
int c64CoreRender;
|
||||
int pokeyCoreRender;
|
||||
int opnCoreRender;
|
||||
int pcSpeakerOutMethod;
|
||||
String yrw801Path;
|
||||
String tg100Path;
|
||||
|
|
|
@ -1192,42 +1192,74 @@ void FurnaceGUI::drawSettings() {
|
|||
ImGui::AlignTextToFramePadding();
|
||||
ImGui::Text("Arcade/YM2151 core");
|
||||
ImGui::SameLine();
|
||||
ImGui::Combo("##ArcadeCore",&settings.arcadeCore,arcadeCores,2);
|
||||
ImGui::PushItemWidth(ImGui::GetContentRegionAvail().x*0.4f);
|
||||
ImGui::Combo("##ArcadeCorePlayback",&settings.arcadeCorePlayback,arcadeCores,2);
|
||||
ImGui::SameLine();
|
||||
ImGui::Combo("##ArcadeCoreRender",&settings.arcadeCoreRender,arcadeCores,2);
|
||||
ImGui::PopItemWidth();
|
||||
|
||||
ImGui::AlignTextToFramePadding();
|
||||
ImGui::Text("Genesis/YM2612 core");
|
||||
ImGui::SameLine();
|
||||
ImGui::Combo("##YM2612Core",&settings.ym2612Core,ym2612Cores,2);
|
||||
ImGui::PushItemWidth(ImGui::GetContentRegionAvail().x*0.4f);
|
||||
ImGui::Combo("##YM2612CorePlayback",&settings.ym2612CorePlayback,ym2612Cores,2);
|
||||
ImGui::SameLine();
|
||||
ImGui::Combo("##YM2612CoreRender",&settings.ym2612CoreRender,ym2612Cores,2);
|
||||
ImGui::PopItemWidth();
|
||||
|
||||
ImGui::AlignTextToFramePadding();
|
||||
ImGui::Text("SN76489 core");
|
||||
ImGui::SameLine();
|
||||
ImGui::Combo("##SNCore",&settings.snCore,snCores,2);
|
||||
ImGui::PushItemWidth(ImGui::GetContentRegionAvail().x*0.4f);
|
||||
ImGui::Combo("##SNCorePlayback",&settings.snCorePlayback,snCores,2);
|
||||
ImGui::SameLine();
|
||||
ImGui::Combo("##SNCoreRender",&settings.snCoreRender,snCores,2);
|
||||
ImGui::PopItemWidth();
|
||||
|
||||
ImGui::AlignTextToFramePadding();
|
||||
ImGui::Text("NES core");
|
||||
ImGui::SameLine();
|
||||
ImGui::Combo("##NESCore",&settings.nesCore,nesCores,2);
|
||||
ImGui::PushItemWidth(ImGui::GetContentRegionAvail().x*0.4f);
|
||||
ImGui::Combo("##NESCorePlayback",&settings.nesCorePlayback,nesCores,2);
|
||||
ImGui::SameLine();
|
||||
ImGui::Combo("##NESCoreRender",&settings.nesCoreRender,nesCores,2);
|
||||
ImGui::PopItemWidth();
|
||||
|
||||
ImGui::AlignTextToFramePadding();
|
||||
ImGui::Text("FDS core");
|
||||
ImGui::SameLine();
|
||||
ImGui::Combo("##FDSCore",&settings.fdsCore,nesCores,2);
|
||||
ImGui::PushItemWidth(ImGui::GetContentRegionAvail().x*0.4f);
|
||||
ImGui::Combo("##FDSCorePlayback",&settings.fdsCorePlayback,nesCores,2);
|
||||
ImGui::SameLine();
|
||||
ImGui::Combo("##FDSCoreRender",&settings.fdsCoreRender,nesCores,2);
|
||||
ImGui::PopItemWidth();
|
||||
|
||||
ImGui::AlignTextToFramePadding();
|
||||
ImGui::Text("SID core");
|
||||
ImGui::SameLine();
|
||||
ImGui::Combo("##C64Core",&settings.c64Core,c64Cores,3);
|
||||
ImGui::PushItemWidth(ImGui::GetContentRegionAvail().x*0.4f);
|
||||
ImGui::Combo("##C64CorePlayback",&settings.c64CorePlayback,c64Cores,3);
|
||||
ImGui::SameLine();
|
||||
ImGui::Combo("##C64CoreRender",&settings.c64CoreRender,c64Cores,3);
|
||||
ImGui::PopItemWidth();
|
||||
|
||||
ImGui::AlignTextToFramePadding();
|
||||
ImGui::Text("POKEY core");
|
||||
ImGui::SameLine();
|
||||
ImGui::Combo("##POKEYCore",&settings.pokeyCore,pokeyCores,2);
|
||||
ImGui::PushItemWidth(ImGui::GetContentRegionAvail().x*0.4f);
|
||||
ImGui::Combo("##POKEYCorePlayback",&settings.pokeyCorePlayback,pokeyCores,2);
|
||||
ImGui::SameLine();
|
||||
ImGui::Combo("##POKEYCoreRender",&settings.pokeyCoreRender,pokeyCores,2);
|
||||
ImGui::PopItemWidth();
|
||||
|
||||
ImGui::AlignTextToFramePadding();
|
||||
ImGui::Text("OPN/OPNA/OPNB cores");
|
||||
ImGui::SameLine();
|
||||
ImGui::Combo("##OPNCore",&settings.opnCore,opnCores,2);
|
||||
ImGui::PushItemWidth(ImGui::GetContentRegionAvail().x*0.4f);
|
||||
ImGui::Combo("##OPNCorePlayback",&settings.opnCorePlayback,opnCores,2);
|
||||
ImGui::SameLine();
|
||||
ImGui::Combo("##OPNCoreRender",&settings.opnCoreRender,opnCores,2);
|
||||
ImGui::PopItemWidth();
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
|
@ -2930,14 +2962,30 @@ void FurnaceGUI::syncSettings() {
|
|||
settings.audioQuality=e->getConfInt("audioQuality",0);
|
||||
settings.audioBufSize=e->getConfInt("audioBufSize",1024);
|
||||
settings.audioRate=e->getConfInt("audioRate",44100);
|
||||
settings.arcadeCore=e->getConfInt("arcadeCore",0);
|
||||
settings.ym2612Core=e->getConfInt("ym2612Core",0);
|
||||
settings.snCore=e->getConfInt("snCore",0);
|
||||
settings.nesCore=e->getConfInt("nesCore",0);
|
||||
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.arcadeCore=settings.arcadeCorePlayback;
|
||||
settings.ym2612Core=settings.ym2612CorePlayback;
|
||||
settings.snCore=settings.snCorePlayback;
|
||||
settings.nesCore=settings.nesCorePlayback;
|
||||
settings.fdsCore=settings.fdsCorePlayback;
|
||||
settings.c64Core=settings.c64CorePlayback;
|
||||
settings.pokeyCore=settings.pokeyCorePlayback;
|
||||
settings.opnCore=settings.opnCorePlayback;
|
||||
settings.arcadeCorePlayback=e->getConfInt("arcadeCorePlayback",0);
|
||||
settings.ym2612CorePlayback=e->getConfInt("ym2612CorePlayback",0);
|
||||
settings.snCorePlayback=e->getConfInt("snCorePlayback",0);
|
||||
settings.nesCorePlayback=e->getConfInt("nesCorePlayback",0);
|
||||
settings.fdsCorePlayback=e->getConfInt("fdsCorePlayback",0);
|
||||
settings.c64CorePlayback=e->getConfInt("c64CorePlayback",0);
|
||||
settings.pokeyCorePlayback=e->getConfInt("pokeyCorePlayback",1);
|
||||
settings.opnCorePlayback=e->getConfInt("opnCorePlayback",1);
|
||||
settings.arcadeCoreRender=e->getConfInt("arcadeCoreRender",0);
|
||||
settings.ym2612CoreRender=e->getConfInt("ym2612CoreRender",0);
|
||||
settings.snCoreRender=e->getConfInt("snCoreRender",0);
|
||||
settings.nesCoreRender=e->getConfInt("nesCoreRender",0);
|
||||
settings.fdsCoreRender=e->getConfInt("fdsCoreRender",0);
|
||||
settings.c64CoreRender=e->getConfInt("c64CoreRender",0);
|
||||
settings.pokeyCoreRender=e->getConfInt("pokeyCoreRender",1);
|
||||
settings.opnCoreRender=e->getConfInt("opnCoreRender",1);
|
||||
settings.pcSpeakerOutMethod=e->getConfInt("pcSpeakerOutMethod",0);
|
||||
settings.yrw801Path=e->getConfString("yrw801Path","");
|
||||
settings.tg100Path=e->getConfString("tg100Path","");
|
||||
|
@ -3098,6 +3146,22 @@ void FurnaceGUI::syncSettings() {
|
|||
clampSetting(settings.c64Core,0,2);
|
||||
clampSetting(settings.pokeyCore,0,1);
|
||||
clampSetting(settings.opnCore,0,1);
|
||||
clampSetting(settings.arcadeCorePlayback,0,1);
|
||||
clampSetting(settings.ym2612CorePlayback,0,1);
|
||||
clampSetting(settings.snCorePlayback,0,1);
|
||||
clampSetting(settings.nesCorePlayback,0,1);
|
||||
clampSetting(settings.fdsCorePlayback,0,1);
|
||||
clampSetting(settings.c64CorePlayback,0,2);
|
||||
clampSetting(settings.pokeyCorePlayback,0,1);
|
||||
clampSetting(settings.opnCorePlayback,0,1);
|
||||
clampSetting(settings.arcadeCoreRender,0,1);
|
||||
clampSetting(settings.ym2612CoreRender,0,1);
|
||||
clampSetting(settings.snCoreRender,0,1);
|
||||
clampSetting(settings.nesCoreRender,0,1);
|
||||
clampSetting(settings.fdsCoreRender,0,1);
|
||||
clampSetting(settings.c64CoreRender,0,2);
|
||||
clampSetting(settings.pokeyCoreRender,0,1);
|
||||
clampSetting(settings.opnCoreRender,0,1);
|
||||
clampSetting(settings.pcSpeakerOutMethod,0,4);
|
||||
clampSetting(settings.mainFont,0,6);
|
||||
clampSetting(settings.patFont,0,6);
|
||||
|
@ -3280,14 +3344,22 @@ void FurnaceGUI::commitSettings() {
|
|||
settings.mu5Path!=e->getConfString("mu5Path","");
|
||||
|
||||
bool coresChanged=(
|
||||
settings.arcadeCore!=e->getConfInt("arcadeCore",0) ||
|
||||
settings.ym2612Core!=e->getConfInt("ym2612Core",0) ||
|
||||
settings.snCore!=e->getConfInt("snCore",0) ||
|
||||
settings.nesCore!=e->getConfInt("nesCore",0) ||
|
||||
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.arcadeCorePlayback!=e->getConfInt("arcadeCore",0) ||
|
||||
settings.ym2612CorePlayback!=e->getConfInt("ym2612Core",0) ||
|
||||
settings.snCorePlayback!=e->getConfInt("snCore",0) ||
|
||||
settings.nesCorePlayback!=e->getConfInt("nesCore",0) ||
|
||||
settings.fdsCorePlayback!=e->getConfInt("fdsCore",0) ||
|
||||
settings.c64CorePlayback!=e->getConfInt("c64Core",0) ||
|
||||
settings.pokeyCorePlayback!=e->getConfInt("pokeyCore",1) ||
|
||||
settings.opnCorePlayback!=e->getConfInt("opnCore",1) ||
|
||||
settings.arcadeCoreRender!=e->getConfInt("arcadeCore",0) ||
|
||||
settings.ym2612CoreRender!=e->getConfInt("ym2612Core",0) ||
|
||||
settings.snCoreRender!=e->getConfInt("snCore",0) ||
|
||||
settings.nesCoreRender!=e->getConfInt("nesCore",0) ||
|
||||
settings.fdsCoreRender!=e->getConfInt("fdsCore",0) ||
|
||||
settings.c64CoreRender!=e->getConfInt("c64Core",0) ||
|
||||
settings.pokeyCoreRender!=e->getConfInt("pokeyCore",1) ||
|
||||
settings.opnCoreRender!=e->getConfInt("opnCore",1)
|
||||
);
|
||||
|
||||
e->setConf("mainFontSize",settings.mainFontSize);
|
||||
|
@ -3312,6 +3384,22 @@ void FurnaceGUI::commitSettings() {
|
|||
e->setConf("c64Core",settings.c64Core);
|
||||
e->setConf("pokeyCore",settings.pokeyCore);
|
||||
e->setConf("opnCore",settings.opnCore);
|
||||
e->setConf("arcadeCorePlayback",settings.arcadeCorePlayback);
|
||||
e->setConf("ym2612CorePlayback",settings.ym2612CorePlayback);
|
||||
e->setConf("snCorePlayback",settings.snCorePlayback);
|
||||
e->setConf("nesCorePlayback",settings.nesCorePlayback);
|
||||
e->setConf("fdsCorePlayback",settings.fdsCorePlayback);
|
||||
e->setConf("c64CorePlayback",settings.c64CorePlayback);
|
||||
e->setConf("pokeyCorePlayback",settings.pokeyCorePlayback);
|
||||
e->setConf("opnCorePlayback",settings.opnCorePlayback);
|
||||
e->setConf("arcadeCoreRender",settings.arcadeCoreRender);
|
||||
e->setConf("ym2612CoreRender",settings.ym2612CoreRender);
|
||||
e->setConf("snCoreRender",settings.snCoreRender);
|
||||
e->setConf("nesCoreRender",settings.nesCoreRender);
|
||||
e->setConf("fdsCoreRender",settings.fdsCoreRender);
|
||||
e->setConf("c64CoreRender",settings.c64CoreRender);
|
||||
e->setConf("pokeyCoreRender",settings.pokeyCoreRender);
|
||||
e->setConf("opnCoreRender",settings.opnCoreRender);
|
||||
e->setConf("pcSpeakerOutMethod",settings.pcSpeakerOutMethod);
|
||||
e->setConf("yrw801Path",settings.yrw801Path);
|
||||
e->setConf("tg100Path",settings.tg100Path);
|
||||
|
|
Loading…
Reference in New Issue