dev99 - major Fractal system change

7 channels instead of 8 - CSM only supported on ExtCh system
This commit is contained in:
tildearrow 2022-05-27 05:13:10 -05:00
parent a776129c3d
commit 68cc84253c
5 changed files with 58 additions and 14 deletions

View file

@ -168,6 +168,9 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) {
ds.snDutyReset=true;
ds.oldOctaveBoundary=false;
ds.noOPN2Vol=true;
ds.newVolumeScaling=false;
ds.volMacroLinger=false;
ds.brokenOutVol=true; // ???
// 1.1 compat flags
if (ds.version>24) {
@ -1035,6 +1038,11 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) {
if (ds.version<97) { // actually should be 98 but yky uses this feature ahead of time
ds.noOPN2Vol=true;
}
if (ds.version<99) {
ds.newVolumeScaling=false;
ds.volMacroLinger=false;
ds.brokenOutVol=true;
}
ds.isDMF=false;
reader.readS(); // reserved
@ -1422,7 +1430,16 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) {
} else {
reader.readC();
}
for (int i=0; i<12; i++) {
if (ds.version>=99) {
ds.newVolumeScaling=reader.readC();
ds.volMacroLinger=reader.readC();
ds.brokenOutVol=reader.readC();
} else {
reader.readC();
reader.readC();
reader.readC();
}
for (int i=0; i<9; i++) {
reader.readC();
}
}
@ -2891,7 +2908,10 @@ SafeWriter* DivEngine::saveFur(bool notPrimary) {
w->writeC(song.pitchSlideSpeed);
w->writeC(song.oldOctaveBoundary);
w->writeC(song.noOPN2Vol);
for (int i=0; i<12; i++) {
w->writeC(song.newVolumeScaling);
w->writeC(song.volMacroLinger);
w->writeC(song.brokenOutVol);
for (int i=0; i<9; i++) {
w->writeC(0);
}