diff --git a/src/engine/instrument.cpp b/src/engine/instrument.cpp index e21f406e7..d2b5e6acc 100644 --- a/src/engine/instrument.cpp +++ b/src/engine/instrument.cpp @@ -1068,6 +1068,10 @@ void DivInstrument::putInsData2(SafeWriter* w, bool fui, const DivSong* song, bo featureSM=true; featureSL=true; break; + case DIV_INS_GBA_MINMOD: + featureSM=true; + featureSL=true; + break; case DIV_INS_MAX: break; case DIV_INS_NULL: diff --git a/src/engine/platform/gbaminmod.cpp b/src/engine/platform/gbaminmod.cpp index 4d3605195..1fb66ddd2 100644 --- a/src/engine/platform/gbaminmod.cpp +++ b/src/engine/platform/gbaminmod.cpp @@ -67,12 +67,12 @@ void DivPlatformGBAMinMod::acquire(short** buf, size_t len) { // the driver generates 4 samples at a time and can be start-offset sampPos=mixBufReadPos&3; if (sampPos==mixBufOffset) { - for (int j=mixBufOffset; j<4; j++) { + for (size_t j=mixBufOffset; j<4; j++) { mixOut[0][j]=0; mixOut[1][j]=0; } for (int i=0; i>32; chState[i].address+=((unsigned long long)chState[i].freq)<<8; unsigned int newAddr=chState[i].address>>32; @@ -114,7 +114,7 @@ void DivPlatformGBAMinMod::acquire(short** buf, size_t len) { oscOut[i][j]=volScale>0?outA*64/volScale:0; } } - for (int j=mixBufOffset; j<4; j++) { + for (size_t j=mixBufOffset; j<4; j++) { mixBuf[mixBufPage][mixBufWritePos]=mixOut[0][j]; mixBuf[mixBufPage+1][mixBufWritePos]=mixOut[1][j]; mixBufWritePos++; @@ -152,7 +152,7 @@ void DivPlatformGBAMinMod::acquire(short** buf, size_t len) { mixBufOffset=(4-(mixBufReadPos&3))&3; mixBufReadPos=0; mixBufWritePos=mixBufOffset; - for (int j=0; jcapacity; k++) { + for (int k=0; k<(int)mc->capacity; k++) { signed char val=(signed char)mc->memory[k]; ImVec2 pos1=ImLerp(dataRect.Min,dataRect.Max,ImVec2((double)k/(double)(mc->capacity),1.0f-((float)(val+129)/256.0f))); ImVec2 pos2=ImLerp(dataRect.Min,dataRect.Max,ImVec2((double)(k+1)/(double)(mc->capacity),1.0f));