From fb83d86d786f9085c47b60955513a6e05a806347 Mon Sep 17 00:00:00 2001 From: LTVA1 <87536432+LTVA1@users.noreply.github.com> Date: Fri, 2 Aug 2024 19:21:47 +0300 Subject: [PATCH] sigh, stub functions for SID3 info save/load --- src/engine/instrument.cpp | 28 ++++++++++++++++++++++++++++ src/engine/instrument.h | 2 ++ 2 files changed, 30 insertions(+) diff --git a/src/engine/instrument.cpp b/src/engine/instrument.cpp index 48e7d52c9..b04f56afa 100644 --- a/src/engine/instrument.cpp +++ b/src/engine/instrument.cpp @@ -880,6 +880,12 @@ void DivInstrument::writeFeatureS2(SafeWriter* w) { FEATURE_END; } +void DivInstrument::writeFeatureS3(SafeWriter* w) { + FEATURE_BEGIN("S3"); + + FEATURE_END; +} + void DivInstrument::putInsData2(SafeWriter* w, bool fui, const DivSong* song, bool insName) { size_t blockStartSeek=0; size_t blockEndSeek=0; @@ -926,6 +932,7 @@ void DivInstrument::putInsData2(SafeWriter* w, bool fui, const DivSong* song, bo bool featureEF=false; bool featurePN=false; bool featureS2=false; + bool featureS3=false; bool checkForWL=false; @@ -1169,6 +1176,11 @@ void DivInstrument::putInsData2(SafeWriter* w, bool fui, const DivSong* song, bo feature64=true; featureS2=true; break; + case DIV_INS_SID3: + feature64=true; + featureS2=true; + featureS3=true; + break; case DIV_INS_MAX: break; case DIV_INS_NULL: @@ -1225,6 +1237,9 @@ void DivInstrument::putInsData2(SafeWriter* w, bool fui, const DivSong* song, bo if (sid2!=defaultIns.sid2) { featureS2=true; } + if (sid3!=defaultIns.sid3) { + featureS3=true; + } } // check ins name @@ -1376,6 +1391,9 @@ void DivInstrument::putInsData2(SafeWriter* w, bool fui, const DivSong* song, bo if (featureS2) { writeFeatureS2(w); } + if (featureS3) { + writeFeatureS3(w); + } if (fui && (featureSL || featureWL)) { w->write("EN",2); @@ -2216,6 +2234,14 @@ void DivInstrument::readFeatureS2(SafeReader& reader, short version) { READ_FEAT_END; } +void DivInstrument::readFeatureS3(SafeReader& reader, short version) { + READ_FEAT_BEGIN; + + + + READ_FEAT_END; +} + DivDataErrors DivInstrument::readInsDataNew(SafeReader& reader, short version, bool fui, DivSong* song) { unsigned char featCode[2]; bool volIsCutoff=false; @@ -2290,6 +2316,8 @@ DivDataErrors DivInstrument::readInsDataNew(SafeReader& reader, short version, b readFeaturePN(reader,version); } else if (memcmp(featCode,"S2",2)==0) { // SID2 readFeatureS2(reader,version); + } else if (memcmp(featCode,"S3",2)==0) { // SID3 + readFeatureS3(reader,version); } else { if (song==NULL && (memcmp(featCode,"SL",2)==0 || (memcmp(featCode,"WL",2)==0))) { // nothing diff --git a/src/engine/instrument.h b/src/engine/instrument.h index d08c0aa12..fc3f56b5c 100644 --- a/src/engine/instrument.h +++ b/src/engine/instrument.h @@ -968,6 +968,7 @@ struct DivInstrument { void writeFeatureEF(SafeWriter* w); void writeFeaturePN(SafeWriter* w); void writeFeatureS2(SafeWriter* w); + void writeFeatureS3(SafeWriter* w); void readFeatureNA(SafeReader& reader, short version); void readFeatureFM(SafeReader& reader, short version); @@ -991,6 +992,7 @@ struct DivInstrument { void readFeatureEF(SafeReader& reader, short version); void readFeaturePN(SafeReader& reader, short version); void readFeatureS2(SafeReader& reader, short version); + void readFeatureS3(SafeReader& reader, short version); DivDataErrors readInsDataOld(SafeReader& reader, short version); DivDataErrors readInsDataNew(SafeReader& reader, short version, bool fui, DivSong* song);