possible fix to #1356
This commit is contained in:
parent
a79c82033c
commit
741d350fe2
|
@ -4417,8 +4417,12 @@ void DivEngine::updateSysFlags(int system, bool restart) {
|
||||||
saveLock.unlock();
|
saveLock.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (restart && isPlaying()) {
|
if (restart) {
|
||||||
|
if (isPlaying()) {
|
||||||
playSub(false);
|
playSub(false);
|
||||||
|
} else if (freelance) {
|
||||||
|
reset();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
BUSY_END;
|
BUSY_END;
|
||||||
}
|
}
|
||||||
|
|
|
@ -754,6 +754,8 @@ void DivPlatformSNES::initEcho() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void DivPlatformSNES::reset() {
|
void DivPlatformSNES::reset() {
|
||||||
|
writes.clear();
|
||||||
|
|
||||||
memcpy(sampleMem,copyOfSampleMem,65536);
|
memcpy(sampleMem,copyOfSampleMem,65536);
|
||||||
dsp.init(sampleMem);
|
dsp.init(sampleMem);
|
||||||
dsp.set_output(NULL,0);
|
dsp.set_output(NULL,0);
|
||||||
|
|
|
@ -1446,7 +1446,6 @@ class FurnaceGUI {
|
||||||
int sysSeparators;
|
int sysSeparators;
|
||||||
int forceMono;
|
int forceMono;
|
||||||
int controlLayout;
|
int controlLayout;
|
||||||
int restartOnFlagChange;
|
|
||||||
int statusDisplay;
|
int statusDisplay;
|
||||||
float dpiScale;
|
float dpiScale;
|
||||||
int viewPrevPattern;
|
int viewPrevPattern;
|
||||||
|
@ -1612,7 +1611,6 @@ class FurnaceGUI {
|
||||||
sysSeparators(1),
|
sysSeparators(1),
|
||||||
forceMono(0),
|
forceMono(0),
|
||||||
controlLayout(3),
|
controlLayout(3),
|
||||||
restartOnFlagChange(1),
|
|
||||||
statusDisplay(0),
|
statusDisplay(0),
|
||||||
dpiScale(0.0f),
|
dpiScale(0.0f),
|
||||||
viewPrevPattern(1),
|
viewPrevPattern(1),
|
||||||
|
|
|
@ -674,11 +674,6 @@ void FurnaceGUI::drawSettings() {
|
||||||
}
|
}
|
||||||
ImGui::Unindent();
|
ImGui::Unindent();
|
||||||
|
|
||||||
bool restartOnFlagChangeB=settings.restartOnFlagChange;
|
|
||||||
if (ImGui::Checkbox("Restart song when changing chip properties",&restartOnFlagChangeB)) {
|
|
||||||
settings.restartOnFlagChange=restartOnFlagChangeB;
|
|
||||||
}
|
|
||||||
|
|
||||||
// SUBSECTION START-UP
|
// SUBSECTION START-UP
|
||||||
CONFIG_SUBSECTION("Start-up");
|
CONFIG_SUBSECTION("Start-up");
|
||||||
ImGui::Text("Play intro on start-up:");
|
ImGui::Text("Play intro on start-up:");
|
||||||
|
@ -2954,7 +2949,6 @@ void FurnaceGUI::syncSettings() {
|
||||||
settings.sysSeparators=e->getConfInt("sysSeparators",1);
|
settings.sysSeparators=e->getConfInt("sysSeparators",1);
|
||||||
settings.forceMono=e->getConfInt("forceMono",0);
|
settings.forceMono=e->getConfInt("forceMono",0);
|
||||||
settings.controlLayout=e->getConfInt("controlLayout",3);
|
settings.controlLayout=e->getConfInt("controlLayout",3);
|
||||||
settings.restartOnFlagChange=e->getConfInt("restartOnFlagChange",1);
|
|
||||||
settings.statusDisplay=e->getConfInt("statusDisplay",0);
|
settings.statusDisplay=e->getConfInt("statusDisplay",0);
|
||||||
settings.dpiScale=e->getConfFloat("dpiScale",0.0f);
|
settings.dpiScale=e->getConfFloat("dpiScale",0.0f);
|
||||||
settings.viewPrevPattern=e->getConfInt("viewPrevPattern",1);
|
settings.viewPrevPattern=e->getConfInt("viewPrevPattern",1);
|
||||||
|
@ -3327,7 +3321,6 @@ void FurnaceGUI::commitSettings() {
|
||||||
e->setConf("sysSeparators",settings.sysSeparators);
|
e->setConf("sysSeparators",settings.sysSeparators);
|
||||||
e->setConf("forceMono",settings.forceMono);
|
e->setConf("forceMono",settings.forceMono);
|
||||||
e->setConf("controlLayout",settings.controlLayout);
|
e->setConf("controlLayout",settings.controlLayout);
|
||||||
e->setConf("restartOnFlagChange",settings.restartOnFlagChange);
|
|
||||||
e->setConf("statusDisplay",settings.statusDisplay);
|
e->setConf("statusDisplay",settings.statusDisplay);
|
||||||
e->setConf("dpiScale",settings.dpiScale);
|
e->setConf("dpiScale",settings.dpiScale);
|
||||||
e->setConf("viewPrevPattern",settings.viewPrevPattern);
|
e->setConf("viewPrevPattern",settings.viewPrevPattern);
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool modifyOnChange, bool fromMenu) {
|
bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool modifyOnChange, bool fromMenu) {
|
||||||
bool altered=false;
|
bool altered=false;
|
||||||
bool restart=settings.restartOnFlagChange && modifyOnChange;
|
bool restart=modifyOnChange;
|
||||||
bool supportsCustomRate=true;
|
bool supportsCustomRate=true;
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
|
Loading…
Reference in New Issue