diff --git a/src/engine/instrument.cpp b/src/engine/instrument.cpp index 68896a45e..7dbf5b3fd 100644 --- a/src/engine/instrument.cpp +++ b/src/engine/instrument.cpp @@ -236,40 +236,40 @@ void DivInstrument::putInsData(SafeWriter* w) { for (int i=0; i<4; i++) { DivInstrumentSTD::OpMacro& op=std.opMacros[i]; for (int j=0; jwriteC(op.amMacro.val[j]); + w->writeC(op.amMacro.val[j]&0xff); } for (int j=0; jwriteC(op.arMacro.val[j]); + w->writeC(op.arMacro.val[j]&0xff); } for (int j=0; jwriteC(op.drMacro.val[j]); + w->writeC(op.drMacro.val[j]&0xff); } for (int j=0; jwriteC(op.multMacro.val[j]); + w->writeC(op.multMacro.val[j]&0xff); } for (int j=0; jwriteC(op.rrMacro.val[j]); + w->writeC(op.rrMacro.val[j]&0xff); } for (int j=0; jwriteC(op.slMacro.val[j]); + w->writeC(op.slMacro.val[j]&0xff); } for (int j=0; jwriteC(op.tlMacro.val[j]); + w->writeC(op.tlMacro.val[j]&0xff); } for (int j=0; jwriteC(op.dt2Macro.val[j]); + w->writeC(op.dt2Macro.val[j]&0xff); } for (int j=0; jwriteC(op.rsMacro.val[j]); + w->writeC(op.rsMacro.val[j]&0xff); } for (int j=0; jwriteC(op.dtMacro.val[j]); + w->writeC(op.dtMacro.val[j]&0xff); } for (int j=0; jwriteC(op.d2rMacro.val[j]); + w->writeC(op.d2rMacro.val[j]&0xff); } for (int j=0; jwriteC(op.ssgMacro.val[j]); + w->writeC(op.ssgMacro.val[j]&0xff); } } @@ -696,20 +696,45 @@ DivDataErrors DivInstrument::readInsData(SafeReader& reader, short version) { op.ssgMacro.open=reader.readC(); } + // FM macro low 8 bits for (int i=0; i<4; i++) { DivInstrumentSTD::OpMacro& op=std.opMacros[i]; - reader.read(op.amMacro.val,op.amMacro.len); - reader.read(op.arMacro.val,op.arMacro.len); - reader.read(op.drMacro.val,op.drMacro.len); - reader.read(op.multMacro.val,op.multMacro.len); - reader.read(op.rrMacro.val,op.rrMacro.len); - reader.read(op.slMacro.val,op.slMacro.len); - reader.read(op.tlMacro.val,op.tlMacro.len); - reader.read(op.dt2Macro.val,op.dt2Macro.len); - reader.read(op.rsMacro.val,op.rsMacro.len); - reader.read(op.dtMacro.val,op.dtMacro.len); - reader.read(op.d2rMacro.val,op.d2rMacro.len); - reader.read(op.ssgMacro.val,op.ssgMacro.len); + for (int j=0; j