This commit is contained in:
tildearrow 2024-12-06 18:51:44 -05:00
parent 8263a320c3
commit 8215371d31

View file

@ -1185,6 +1185,9 @@ SafeWriter* DivEngine::saveDMF(unsigned char version) {
if (song.system[0]==DIV_SYSTEM_NES && song.system[1]==DIV_SYSTEM_FDS) { if (song.system[0]==DIV_SYSTEM_NES && song.system[1]==DIV_SYSTEM_FDS) {
isFlat=true; isFlat=true;
} }
if (song.system[0]==DIV_SYSTEM_AY8910 && song.system[1]==DIV_SYSTEM_SCC) {
isFlat=true;
}
} }
// fail if more than one system // fail if more than one system
if (!isFlat && song.systemLen!=1) { if (!isFlat && song.systemLen!=1) {
@ -1216,6 +1219,12 @@ SafeWriter* DivEngine::saveDMF(unsigned char version) {
lastError="FDS not supported in 1.0/legacy .dmf!"; lastError="FDS not supported in 1.0/legacy .dmf!";
return NULL; return NULL;
} }
// fail if the system is SCC and version<25
if (version<25 && song.system[0]==DIV_SYSTEM_AY8910 && song.system[1]==DIV_SYSTEM_SCC) {
logE("AY + SCC not supported in 1.0/legacy .dmf!");
lastError="AY + SCC not supported in 1.0/legacy .dmf!";
return NULL;
}
// fail if the system is Furnace-exclusive // fail if the system is Furnace-exclusive
if (!isFlat && systemToFileDMF(song.system[0])==0) { if (!isFlat && systemToFileDMF(song.system[0])==0) {
logE("cannot save Furnace-exclusive system song!"); logE("cannot save Furnace-exclusive system song!");
@ -1277,6 +1286,9 @@ SafeWriter* DivEngine::saveDMF(unsigned char version) {
} else if (song.system[0]==DIV_SYSTEM_NES && song.system[1]==DIV_SYSTEM_FDS) { } else if (song.system[0]==DIV_SYSTEM_NES && song.system[1]==DIV_SYSTEM_FDS) {
w->writeC(systemToFileDMF(DIV_SYSTEM_NES_FDS)); w->writeC(systemToFileDMF(DIV_SYSTEM_NES_FDS));
sys=DIV_SYSTEM_NES_FDS; sys=DIV_SYSTEM_NES_FDS;
} else if (song.system[0]==DIV_SYSTEM_AY8910 && song.system[1]==DIV_SYSTEM_SCC) {
w->writeC(systemToFileDMF(DIV_SYSTEM_MSX2));
sys=DIV_SYSTEM_MSX2;
} else { } else {
w->writeC(systemToFileDMF(song.system[0])); w->writeC(systemToFileDMF(song.system[0]));
sys=song.system[0]; sys=song.system[0];